summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/bb/__init__.py2
-rw-r--r--bitbake/lib/bb/cache.py14
-rw-r--r--bitbake/lib/bb/codeparser.py2
-rw-r--r--bitbake/lib/bb/command.py9
-rw-r--r--bitbake/lib/bb/cooker.py283
-rw-r--r--bitbake/lib/bb/cookerdata.py11
-rw-r--r--bitbake/lib/bb/data.py1
-rw-r--r--bitbake/lib/bb/data_smart.py20
-rw-r--r--bitbake/lib/bb/event.py8
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py166
-rw-r--r--bitbake/lib/bb/fetch2/git.py56
-rw-r--r--bitbake/lib/bb/fetch2/local.py54
-rw-r--r--bitbake/lib/bb/fetch2/ssh.py3
-rw-r--r--bitbake/lib/bb/fetch2/wget.py275
-rwxr-xr-xbitbake/lib/bb/main.py390
-rw-r--r--bitbake/lib/bb/parse/__init__.py5
-rw-r--r--bitbake/lib/bb/parse/ast.py6
-rw-r--r--bitbake/lib/bb/parse/parse_py/ConfHandler.py20
-rw-r--r--bitbake/lib/bb/runqueue.py2
-rw-r--r--bitbake/lib/bb/server/process.py5
-rw-r--r--bitbake/lib/bb/server/xmlrpc.py9
-rw-r--r--bitbake/lib/bb/siggen.py52
-rw-r--r--bitbake/lib/bb/tests/data.py13
-rw-r--r--bitbake/lib/bb/tests/fetch.py81
-rw-r--r--bitbake/lib/bb/tests/utils.py54
-rw-r--r--bitbake/lib/bb/tinfoil.py2
-rw-r--r--bitbake/lib/bb/ui/buildinfohelper.py488
-rw-r--r--bitbake/lib/bb/ui/depexp.py9
-rw-r--r--bitbake/lib/bb/ui/knotty.py47
-rw-r--r--bitbake/lib/bb/ui/ncurses.py4
-rw-r--r--bitbake/lib/bb/ui/toasterui.py83
-rw-r--r--bitbake/lib/bb/ui/uievent.py7
-rw-r--r--bitbake/lib/bb/utils.py206
-rw-r--r--bitbake/lib/bs4/AUTHORS.txt43
-rw-r--r--bitbake/lib/bs4/COPYING.txt26
-rw-r--r--bitbake/lib/bs4/NEWS.txt1066
-rw-r--r--bitbake/lib/bs4/__init__.py406
-rw-r--r--bitbake/lib/bs4/builder/__init__.py321
-rw-r--r--bitbake/lib/bs4/builder/_html5lib.py285
-rw-r--r--bitbake/lib/bs4/builder/_htmlparser.py258
-rw-r--r--bitbake/lib/bs4/builder/_lxml.py233
-rw-r--r--bitbake/lib/bs4/dammit.py829
-rw-r--r--bitbake/lib/bs4/diagnose.py204
-rw-r--r--bitbake/lib/bs4/element.py1611
-rw-r--r--bitbake/lib/bs4/testing.py592
-rw-r--r--bitbake/lib/bs4/tests/__init__.py1
-rw-r--r--bitbake/lib/bs4/tests/test_builder_registry.py141
-rw-r--r--bitbake/lib/bs4/tests/test_docs.py36
-rw-r--r--bitbake/lib/bs4/tests/test_html5lib.py85
-rw-r--r--bitbake/lib/bs4/tests/test_htmlparser.py19
-rw-r--r--bitbake/lib/bs4/tests/test_lxml.py91
-rw-r--r--bitbake/lib/bs4/tests/test_soup.py434
-rw-r--r--bitbake/lib/bs4/tests/test_tree.py1829
-rw-r--r--bitbake/lib/prserv/serv.py14
-rw-r--r--bitbake/lib/pyinotify.py2416
-rw-r--r--bitbake/lib/toaster/bldcontrol/bbcontroller.py36
-rw-r--r--bitbake/lib/toaster/bldcontrol/localhostbecontroller.py219
-rw-r--r--bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py268
-rw-r--r--bitbake/lib/toaster/bldcontrol/management/commands/loadconf.py174
-rw-r--r--bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py78
-rw-r--r--bitbake/lib/toaster/bldcontrol/migrations/0007_auto__add_field_buildrequest_environment__chg_field_buildrequest_build.py145
-rw-r--r--bitbake/lib/toaster/bldcontrol/migrations/0008_brarchive.py138
-rw-r--r--bitbake/lib/toaster/bldcontrol/models.py62
-rw-r--r--bitbake/lib/toaster/bldcontrol/sshbecontroller.py104
-rw-r--r--bitbake/lib/toaster/bldcontrol/tests.py31
-rw-r--r--bitbake/lib/toaster/bldviewer/tests.py5
-rw-r--r--bitbake/lib/toaster/orm/admin.py23
-rw-r--r--bitbake/lib/toaster/orm/fixtures/orm_views_testdata.json140835
-rw-r--r--bitbake/lib/toaster/orm/migrations/0014_auto__chg_field_package_summary__chg_field_layer_summary__chg_field_re.py336
-rw-r--r--bitbake/lib/toaster/orm/migrations/0015_auto__add_field_layer_vcs_web_url__add_field_layer_vcs_web_tree_base_u.py336
-rw-r--r--bitbake/lib/toaster/orm/migrations/0016_auto__add_field_release_helptext__chg_field_release_branch__add_index_.py359
-rw-r--r--bitbake/lib/toaster/orm/migrations/0017_auto__del_toastersettingdefaultlayer__add_releaselayersourcepriority__.py396
-rw-r--r--bitbake/lib/toaster/orm/migrations/0018_auto__add_field_layer_version_project.py331
-rw-r--r--bitbake/lib/toaster/orm/migrations/0019_auto__add_buildartifact.py342
-rw-r--r--bitbake/lib/toaster/orm/models.py606
-rw-r--r--bitbake/lib/toaster/orm/tests.py140
-rw-r--r--bitbake/lib/toaster/orm/urls.py27
-rw-r--r--bitbake/lib/toaster/orm/views.py60
-rw-r--r--bitbake/lib/toaster/toastergui/static/css/default.css138
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/images/ui-bg_diagonals-thick_18_b81900_40x40.pngbin0 -> 418 bytes
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/images/ui-bg_diagonals-thick_20_666666_40x40.pngbin0 -> 312 bytes
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/images/ui-bg_flat_10_000000_40x100.pngbin0 -> 205 bytes
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_100_f6f6f6_1x400.pngbin0 -> 262 bytes
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_100_fdf5ce_1x400.pngbin0 -> 348 bytes
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_65_ffffff_1x400.pngbin0 -> 207 bytes
-rw-r--r--bitbake/lib/toaster/toastergui/static/css/images/ui-bg_gloss-wave_35_f6a828_500x100.pngbin0 -> 5815 bytes
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.pngbin0 -> 278 bytes
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.pngbin0 -> 328 bytes
-rw-r--r--bitbake/lib/toaster/toastergui/static/css/images/ui-icons_222222_256x240.pngbin0 -> 6922 bytes
-rw-r--r--bitbake/lib/toaster/toastergui/static/css/images/ui-icons_228ef1_256x240.pngbin0 -> 4549 bytes
-rw-r--r--bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ef8c08_256x240.pngbin0 -> 4549 bytes
-rw-r--r--bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ffd27a_256x240.pngbin0 -> 4549 bytes
-rw-r--r--bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ffffff_256x240.pngbin0 -> 6299 bytes
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/jquery-ui.min.css7
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/jquery-ui.structure.min.css5
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/css/jquery-ui.theme.min.css5
-rw-r--r--bitbake/lib/toaster/toastergui/static/img/toaster_1.7.pngbin0 -> 125151 bytes
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/.jshintrc11
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/angular-animate.min.js28
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/angular-cookies.min.js8
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/angular-route.min.js14
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/angular-sanitize.min.js15
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/angular.min.js215
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/angular.min.js.map8
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/base.js136
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/bootstrap.min.js11
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/js/filtersnippet.js95
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/importlayer.js274
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/jquery-ui.js15003
-rwxr-xr-xbitbake/lib/toaster/toastergui/static/js/jquery-ui.min.js7
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/layerdetails.js407
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/libtoaster.js421
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/machines.js97
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/main.js111
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/projectapp.js882
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/ui-bootstrap-tpls-0.11.0.js10
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/ui-bootstrap-tpls-0.11.0.min.js10
-rw-r--r--bitbake/lib/toaster/toastergui/templates/base.html138
-rw-r--r--bitbake/lib/toaster/toastergui/templates/basebuilddetailpage.html5
-rw-r--r--bitbake/lib/toaster/toastergui/templates/basebuildpage.html7
-rw-r--r--bitbake/lib/toaster/toastergui/templates/baseprojectpage.html20
-rw-r--r--bitbake/lib/toaster/toastergui/templates/basetable_bottom.html15
-rw-r--r--bitbake/lib/toaster/toastergui/templates/basetable_top.html3
-rw-r--r--bitbake/lib/toaster/toastergui/templates/basetable_top_buildprojects.html16
-rw-r--r--bitbake/lib/toaster/toastergui/templates/basetable_top_layers.html5
-rw-r--r--bitbake/lib/toaster/toastergui/templates/basetable_top_projectbuilds.html16
-rw-r--r--bitbake/lib/toaster/toastergui/templates/bpackage.html4
-rw-r--r--bitbake/lib/toaster/toastergui/templates/build.html130
-rw-r--r--bitbake/lib/toaster/toastergui/templates/builddashboard.html182
-rw-r--r--bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html67
-rw-r--r--bitbake/lib/toaster/toastergui/templates/configuration.html6
-rw-r--r--bitbake/lib/toaster/toastergui/templates/configvars.html4
-rw-r--r--bitbake/lib/toaster/toastergui/templates/detail_pagination_bottom.html60
-rw-r--r--bitbake/lib/toaster/toastergui/templates/detail_search_header.html68
-rw-r--r--bitbake/lib/toaster/toastergui/templates/detail_sorted_header.html25
-rw-r--r--bitbake/lib/toaster/toastergui/templates/filtersnippet.html34
-rw-r--r--bitbake/lib/toaster/toastergui/templates/importlayer.html137
-rw-r--r--bitbake/lib/toaster/toastergui/templates/landing.html95
-rw-r--r--bitbake/lib/toaster/toastergui/templates/landing_not_managed.html32
-rw-r--r--bitbake/lib/toaster/toastergui/templates/layerdetails.html641
-rw-r--r--bitbake/lib/toaster/toastergui/templates/layers.html365
-rw-r--r--bitbake/lib/toaster/toastergui/templates/layers_dep_modal.html99
-rw-r--r--bitbake/lib/toaster/toastergui/templates/machines.html131
-rw-r--r--bitbake/lib/toaster/toastergui/templates/managed_builds.html167
-rw-r--r--bitbake/lib/toaster/toastergui/templates/managed_mrb_section.html183
-rw-r--r--bitbake/lib/toaster/toastergui/templates/mrb_section.html69
-rw-r--r--bitbake/lib/toaster/toastergui/templates/newproject.html131
-rw-r--r--bitbake/lib/toaster/toastergui/templates/package_detail_base.html5
-rw-r--r--bitbake/lib/toaster/toastergui/templates/package_included_reverse_dependencies.html4
-rw-r--r--bitbake/lib/toaster/toastergui/templates/project.html753
-rw-r--r--bitbake/lib/toaster/toastergui/templates/projectbuilds.html137
-rw-r--r--bitbake/lib/toaster/toastergui/templates/projectconf.html845
-rw-r--r--bitbake/lib/toaster/toastergui/templates/projects.html71
-rw-r--r--bitbake/lib/toaster/toastergui/templates/recipe.html68
-rw-r--r--bitbake/lib/toaster/toastergui/templates/recipe_packages.html123
-rw-r--r--bitbake/lib/toaster/toastergui/templates/recipes.html7
-rw-r--r--bitbake/lib/toaster/toastergui/templates/target.html18
-rw-r--r--bitbake/lib/toaster/toastergui/templates/targets.html362
-rw-r--r--bitbake/lib/toaster/toastergui/templates/task.html27
-rw-r--r--bitbake/lib/toaster/toastergui/templates/tasks.html12
-rw-r--r--bitbake/lib/toaster/toastergui/templates/unavailable_artifact.html15
-rw-r--r--bitbake/lib/toaster/toastergui/templatetags/projecttags.py73
-rw-r--r--bitbake/lib/toaster/toastergui/urls.py30
-rwxr-xr-xbitbake/lib/toaster/toastergui/views.py2114
-rw-r--r--bitbake/lib/toaster/toastermain/settings.py95
-rw-r--r--bitbake/lib/toaster/toastermain/urls.py35
166 files changed, 25589 insertions, 158356 deletions
diff --git a/bitbake/lib/bb/__init__.py b/bitbake/lib/bb/__init__.py
index 4d69552c44..64ccd445b4 100644
--- a/bitbake/lib/bb/__init__.py
+++ b/bitbake/lib/bb/__init__.py
@@ -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.24.0"
+__version__ = "1.26.0"
import sys
if sys.version_info < (2, 7, 3):
diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py
index ac0c27f922..a1dde96425 100644
--- a/bitbake/lib/bb/cache.py
+++ b/bitbake/lib/bb/cache.py
@@ -43,7 +43,7 @@ except ImportError:
logger.info("Importing cPickle failed. "
"Falling back to a very slow implementation.")
-__cache_version__ = "147"
+__cache_version__ = "148"
def getCacheFile(path, filename, data_hash):
return os.path.join(path, filename + "." + data_hash)
@@ -529,8 +529,11 @@ class Cache(object):
if hasattr(info_array[0], 'file_checksums'):
for _, fl in info_array[0].file_checksums.items():
for f in fl.split():
- if not ('*' in f or os.path.exists(f)):
- logger.debug(2, "Cache: %s's file checksum list file %s was removed",
+ if "*" in f:
+ continue
+ f, exist = f.split(":")
+ if (exist == "True" and not os.path.exists(f)) or (exist == "False" and os.path.exists(f)):
+ logger.debug(2, "Cache: %s's file checksum list file %s changed",
fn, f)
self.remove(fn)
return False
@@ -620,10 +623,13 @@ class Cache(object):
def mtime(cachefile):
return bb.parse.cached_mtime_noerror(cachefile)
- def add_info(self, filename, info_array, cacheData, parsed=None):
+ def add_info(self, filename, info_array, cacheData, parsed=None, watcher=None):
if isinstance(info_array[0], CoreRecipeInfo) and (not info_array[0].skipped):
cacheData.add_from_recipeinfo(filename, info_array)
+ if watcher:
+ watcher(info_array[0].file_depends)
+
if not self.has_cache:
return
diff --git a/bitbake/lib/bb/codeparser.py b/bitbake/lib/bb/codeparser.py
index 8b8f91a762..21a36f64ca 100644
--- a/bitbake/lib/bb/codeparser.py
+++ b/bitbake/lib/bb/codeparser.py
@@ -178,7 +178,7 @@ class BufferedLogger(Logger):
class PythonParser():
getvars = (".getVar", ".appendVar", ".prependVar")
- containsfuncs = ("bb.utils.contains", "base_contains", "oe.utils.contains", "bb.utils.contains_any")
+ containsfuncs = ("bb.utils.contains", "base_contains", "bb.utils.contains_any")
execfuncs = ("bb.build.exec_func", "bb.build.exec_task")
def warn(self, func, arg):
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py
index 60f9ac08aa..24ff341045 100644
--- a/bitbake/lib/bb/command.py
+++ b/bitbake/lib/bb/command.py
@@ -123,11 +123,11 @@ class Command:
def finishAsyncCommand(self, msg=None, code=None):
if msg or msg == "":
- bb.event.fire(CommandFailed(msg), self.cooker.event_data)
+ bb.event.fire(CommandFailed(msg), self.cooker.expanded_data)
elif code:
- bb.event.fire(CommandExit(code), self.cooker.event_data)
+ bb.event.fire(CommandExit(code), self.cooker.expanded_data)
else:
- bb.event.fire(CommandCompleted(), self.cooker.event_data)
+ bb.event.fire(CommandCompleted(), self.cooker.expanded_data)
self.currentAsyncCommand = None
self.cooker.finishcommand()
@@ -273,7 +273,8 @@ class CommandsSync:
def updateConfig(self, command, params):
options = params[0]
- command.cooker.updateConfigOpts(options)
+ environment = params[1]
+ command.cooker.updateConfigOpts(options, environment)
class CommandsAsync:
"""
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index a900b07a80..9c101f2e72 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -39,6 +39,7 @@ from bb import utils, data, parse, event, cache, providers, taskdata, runqueue
import Queue
import signal
import prserv.serv
+import pyinotify
logger = logging.getLogger("BitBake")
collectlog = logging.getLogger("BitBake.Collection")
@@ -120,8 +121,34 @@ class BBCooker:
self.configuration = configuration
+ self.configwatcher = pyinotify.WatchManager()
+ self.configwatcher.bbseen = []
+ self.confignotifier = pyinotify.Notifier(self.configwatcher, self.config_notifications)
+ self.watchmask = pyinotify.IN_CLOSE_WRITE | pyinotify.IN_CREATE | pyinotify.IN_DELETE | \
+ pyinotify.IN_DELETE_SELF | pyinotify.IN_MODIFY | pyinotify.IN_MOVE_SELF | \
+ pyinotify.IN_MOVED_FROM | pyinotify.IN_MOVED_TO
+ self.watcher = pyinotify.WatchManager()
+ self.watcher.bbseen = []
+ self.notifier = pyinotify.Notifier(self.watcher, self.notifications)
+
+
self.initConfigurationData()
+ self.inotify_modified_files = []
+
+ def _process_inotify_updates(server, notifier_list, abort):
+ for n in notifier_list:
+ if n.check_events(timeout=0):
+ # read notified events and enqeue them
+ n.read_events()
+ n.process_events()
+ return 1.0
+
+ self.configuration.server_register_idlecallback(_process_inotify_updates, [self.confignotifier, self.notifier])
+
+ self.baseconfig_valid = True
+ self.parsecache_valid = False
+
# Take a lock so only one copy of bitbake can run against a given build
# directory at a time
lockfile = self.data.expand("${TOPDIR}/bitbake.lock")
@@ -156,6 +183,43 @@ class BBCooker:
# Let SIGHUP exit as SIGTERM
signal.signal(signal.SIGHUP, self.sigterm_exception)
+ def config_notifications(self, event):
+ if not event.path in self.inotify_modified_files:
+ self.inotify_modified_files.append(event.path)
+ self.baseconfig_valid = False
+
+ def notifications(self, event):
+ if not event.path in self.inotify_modified_files:
+ self.inotify_modified_files.append(event.path)
+ self.parsecache_valid = False
+
+ def add_filewatch(self, deps, watcher=None):
+ if not watcher:
+ watcher = self.watcher
+ for i in deps:
+ f = os.path.dirname(i[0])
+ if f in watcher.bbseen:
+ continue
+ watcher.bbseen.append(f)
+ while True:
+ # We try and add watches for files that don't exist but if they did, would influence
+ # the parser. The parent directory of these files may not exist, in which case we need
+ # to watch any parent that does exist for changes.
+ try:
+ watcher.add_watch(f, self.watchmask, quiet=False)
+ break
+ except pyinotify.WatchManagerError as e:
+ if 'ENOENT' in str(e):
+ f = os.path.dirname(f)
+ watcher.bbseen.append(f)
+ continue
+ if 'ENOSPC' in str(e):
+ providerlog.error("No space left on device or exceeds fs.inotify.max_user_watches?")
+ providerlog.error("To check max_user_watches: sysctl -n fs.inotify.max_user_watches.")
+ providerlog.error("To modify max_user_watches: sysctl -n -w fs.inotify.max_user_watches=<value>.")
+ providerlog.error("Root privilege is required to modify max_user_watches.")
+ raise
+
def sigterm_exception(self, signum, stackframe):
if signum == signal.SIGTERM:
bb.warn("Cooker recieved SIGTERM, shutting down...")
@@ -165,13 +229,13 @@ class BBCooker:
def setFeatures(self, features):
# we only accept a new feature set if we're in state initial, so we can reset without problems
- if self.state != state.initial:
+ if not self.state in [state.initial, state.shutdown, state.forceshutdown, state.stopped, state.error]:
raise Exception("Illegal state for feature set change")
original_featureset = list(self.featureset)
for feature in features:
self.featureset.setFeature(feature)
bb.debug(1, "Features set %s (was %s)" % (original_featureset, list(self.featureset)))
- if (original_featureset != list(self.featureset)):
+ if (original_featureset != list(self.featureset)) and self.state != state.error:
self.reset()
def initConfigurationData(self):
@@ -205,12 +269,82 @@ class BBCooker:
self.data = self.databuilder.data
self.data_hash = self.databuilder.data_hash
+
+ # we log all events to a file if so directed
+ if self.configuration.writeeventlog:
+ import json, pickle
+ DEFAULT_EVENTFILE = self.configuration.writeeventlog
+ class EventLogWriteHandler():
+
+ class EventWriter():
+ def __init__(self, cooker):
+ self.file_inited = None
+ self.cooker = cooker
+ self.event_queue = []
+
+ def init_file(self):
+ try:
+ # delete the old log
+ os.remove(DEFAULT_EVENTFILE)
+ except:
+ pass
+
+ # write current configuration data
+ with open(DEFAULT_EVENTFILE, "w") as f:
+ f.write("%s\n" % json.dumps({ "allvariables" : self.cooker.getAllKeysWithFlags(["doc", "func"])}))
+
+ def write_event(self, event):
+ with open(DEFAULT_EVENTFILE, "a") as f:
+ try:
+ f.write("%s\n" % json.dumps({"class":event.__module__ + "." + event.__class__.__name__, "vars":json.dumps(pickle.dumps(event)) }))
+ except Exception as e:
+ import traceback
+ print(e, traceback.format_exc(e))
+
+
+ def send(self, event):
+ event_class = event.__module__ + "." + event.__class__.__name__
+
+ # init on bb.event.BuildStarted
+ if self.file_inited is None:
+ if event_class == "bb.event.BuildStarted":
+ self.init_file()
+ self.file_inited = True
+
+ # write pending events
+ for e in self.event_queue:
+ self.write_event(e)
+
+ # also write the current event
+ self.write_event(event)
+
+ else:
+ # queue all events until the file is inited
+ self.event_queue.append(event)
+
+ else:
+ # we have the file, just write the event
+ self.write_event(event)
+
+ # set our handler's event processor
+ event = EventWriter(self) # self is the cooker here
+
+
+ # set up cooker features for this mock UI handler
+
+ # we need to write the dependency tree in the log
+ self.featureset.setFeature(CookerFeatures.SEND_DEPENDS_TREE)
+ # register the log file writer as UI Handler
+ bb.event.register_UIHhandler(EventLogWriteHandler())
+
+
#
- # Special updated configuration we use for firing events
+ # Copy of the data store which has been expanded.
+ # Used for firing events and accessing variables where expansion needs to be accounted for
#
- self.event_data = bb.data.createCopy(self.data)
- bb.data.update_data(self.event_data)
- bb.parse.init_parser(self.event_data)
+ self.expanded_data = bb.data.createCopy(self.data)
+ bb.data.update_data(self.expanded_data)
+ bb.parse.init_parser(self.expanded_data)
if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset:
self.disableDataTracking()
@@ -245,7 +379,7 @@ class BBCooker:
f.write(total)
#add to history
- loginfo = {"op":append, "file":default_file, "line":total.count("\n")}
+ loginfo = {"op":"append", "file":default_file, "line":total.count("\n")}
self.data.appendVar(var, val, **loginfo)
def saveConfigurationVar(self, var, val, default_file, op):
@@ -314,7 +448,7 @@ class BBCooker:
f.write(total)
#add to history
- loginfo = {"op":set, "file":default_file, "line":total.count("\n")}
+ loginfo = {"op":"set", "file":default_file, "line":total.count("\n")}
self.data.setVar(var, val, **loginfo)
def removeConfigurationVar(self, var):
@@ -376,9 +510,29 @@ class BBCooker:
self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) )
- def updateConfigOpts(self,options):
+ def updateConfigOpts(self, options, environment):
for o in options:
setattr(self.configuration, o, options[o])
+ clean = True
+ for k in bb.utils.approved_variables():
+ if k in environment and k not in self.configuration.env:
+ logger.debug(1, "Updating environment variable %s to %s" % (k, environment[k]))
+ self.configuration.env[k] = environment[k]
+ clean = False
+ if k in self.configuration.env and k not in environment:
+ logger.debug(1, "Updating environment variable %s (deleted)" % (k))
+ del self.configuration.env[k]
+ clean = False
+ if k not in self.configuration.env and k not in environment:
+ continue
+ if environment[k] != self.configuration.env[k]:
+ logger.debug(1, "Updating environment variable %s to %s" % (k, environment[k]))
+ self.configuration.env[k] = environment[k]
+ clean = False
+ if not clean:
+ logger.debug(1, "Base environment change, triggering reparse")
+ self.baseconfig_valid = False
+ self.reset()
def runCommands(self, server, data, abort):
"""
@@ -425,7 +579,7 @@ class BBCooker:
fn = self.matchFile(fn)
fn = bb.cache.Cache.realfn2virtual(fn, cls)
elif len(pkgs_to_build) == 1:
- ignore = self.data.getVar("ASSUME_PROVIDED", True) or ""
+ ignore = self.expanded_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])
@@ -505,7 +659,7 @@ class BBCooker:
taskdata, runlist, pkgs_to_build = self.buildTaskData(pkgs_to_build, task, False)
return runlist, taskdata
-
+
######## WARNING : this function requires cache_extra to be enabled ########
def generateTaskDepTreeData(self, pkgs_to_build, task):
@@ -957,42 +1111,30 @@ class BBCooker:
# Check dependencies and store information for priority calculation
deps = self.data.getVar("LAYERDEPENDS_%s" % c, True)
if deps:
- depnamelist = []
- deplist = deps.split()
- for dep in deplist:
- depsplit = dep.split(':')
- if len(depsplit) > 1:
- try:
- depver = int(depsplit[1])
- except ValueError:
- parselog.error("invalid version value in LAYERDEPENDS_%s: \"%s\"", c, dep)
- errors = True
- continue
- else:
- depver = None
- dep = depsplit[0]
- depnamelist.append(dep)
-
+ try:
+ deplist = bb.utils.explode_dep_versions2(deps)
+ except bb.utils.VersionStringException as vse:
+ bb.fatal('Error parsing LAYERDEPENDS_%s: %s' % (c, str(vse)))
+ for dep, oplist in deplist.iteritems():
if dep in collection_list:
- if depver:
+ for opstr in oplist:
layerver = self.data.getVar("LAYERVERSION_%s" % dep, True)
+ (op, depver) = opstr.split()
if layerver:
try:
- lver = int(layerver)
- except ValueError:
- parselog.error("invalid value for LAYERVERSION_%s: \"%s\"", c, layerver)
- errors = True
- continue
- if lver != depver:
- parselog.error("Layer '%s' depends on version %d of layer '%s', but version %d is enabled in your configuration", c, depver, dep, lver)
+ res = bb.utils.vercmp_string_op(layerver, depver, op)
+ except bb.utils.VersionStringException as vse:
+ bb.fatal('Error parsing LAYERDEPENDS_%s: %s' % (c, str(vse)))
+ if not res:
+ parselog.error("Layer '%s' depends on version %s of layer '%s', but version %s is currently enabled in your configuration. Check that you are using the correct matching versions/branches of these two layers.", c, opstr, dep, layerver)
errors = True
else:
- parselog.error("Layer '%s' depends on version %d of layer '%s', which exists in your configuration but does not specify a version", c, depver, dep)
+ parselog.error("Layer '%s' depends on version %s of layer '%s', which exists in your configuration but does not specify a version. Check that you are using the correct matching versions/branches of these two layers.", c, opstr, dep)
errors = True
else:
parselog.error("Layer '%s' depends on layer '%s', but this layer is not enabled in your configuration", c, dep)
errors = True
- collection_depends[c] = depnamelist
+ collection_depends[c] = deplist.keys()
else:
collection_depends[c] = []
@@ -1044,7 +1186,7 @@ class BBCooker:
bf = os.path.abspath(bf)
self.collection = CookerCollectFiles(self.recipecache.bbfile_config_priorities)
- filelist, masked = self.collection.collect_bbfiles(self.data, self.event_data)
+ filelist, masked = self.collection.collect_bbfiles(self.data, self.expanded_data)
try:
os.stat(bf)
bf = os.path.abspath(bf)
@@ -1134,7 +1276,7 @@ class BBCooker:
taskdata.add_provider(self.data, self.recipecache, item)
buildname = self.data.getVar("BUILDNAME")
- bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.event_data)
+ bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.expanded_data)
# Execute the runqueue
runlist = [[item, "do_%s" % task]]
@@ -1161,8 +1303,8 @@ class BBCooker:
return False
if not retval:
- bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, item, failures), self.event_data)
self.command.finishAsyncCommand(msg)
+ bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, item, failures), self.expanded_data)
return False
if retval is True:
return True
@@ -1194,8 +1336,8 @@ class BBCooker:
return False
if not retval:
- bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, targets, failures), self.data)
self.command.finishAsyncCommand(msg)
+ bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, targets, failures), self.data)
return False
if retval is True:
return True
@@ -1286,29 +1428,45 @@ class BBCooker:
if self.state == state.running:
return
- if self.state in (state.shutdown, state.forceshutdown):
+ if self.state in (state.shutdown, state.forceshutdown, state.error):
if hasattr(self.parser, 'shutdown'):
self.parser.shutdown(clean=False, force = True)
raise bb.BBHandledException()
if self.state != state.parsing:
+
+ # reload files for which we got notifications
+ for p in self.inotify_modified_files:
+ bb.parse.update_cache(p)
+ self.inotify_modified_files = []
+
+ if not self.baseconfig_valid:
+ logger.debug(1, "Reloading base configuration data")
+ self.initConfigurationData()
+ self.baseconfig_valid = True
+ self.parsecache_valid = False
+
+ if self.state != state.parsing and not self.parsecache_valid:
self.parseConfiguration ()
if CookerFeatures.SEND_SANITYEVENTS in self.featureset:
bb.event.fire(bb.event.SanityCheck(False), self.data)
- ignore = self.data.getVar("ASSUME_PROVIDED", True) or ""
+ ignore = self.expanded_data.getVar("ASSUME_PROVIDED", True) or ""
self.recipecache.ignored_dependencies = set(ignore.split())
for dep in self.configuration.extra_assume_provided:
self.recipecache.ignored_dependencies.add(dep)
self.collection = CookerCollectFiles(self.recipecache.bbfile_config_priorities)
- (filelist, masked) = self.collection.collect_bbfiles(self.data, self.event_data)
+ (filelist, masked) = self.collection.collect_bbfiles(self.data, self.expanded_data)
self.data.renameVar("__depends", "__base_depends")
+ self.add_filewatch(self.data.getVar("__base_depends"), self.configwatcher)
self.parser = CookerParser(self, filelist, masked)
- self.state = state.parsing
+ self.parsecache_valid = True
+
+ self.state = state.parsing
if not self.parser.parse_next():
collectlog.debug(1, "parsing complete")
@@ -1316,7 +1474,7 @@ class BBCooker:
raise bb.BBHandledException()
self.show_appends_with_no_recipes()
self.handlePrefProviders()
- self.recipecache.bbfile_priority = self.collection.collection_priorities(self.recipecache.pkg_fn)
+ self.recipecache.bbfile_priority = self.collection.collection_priorities(self.recipecache.pkg_fn, self.data)
self.state = state.running
return None
@@ -1330,7 +1488,7 @@ class BBCooker:
if len(pkgs_to_build) == 0:
raise NothingToBuild
- ignore = (self.data.getVar("ASSUME_PROVIDED", True) or "").split()
+ ignore = (self.expanded_data.getVar("ASSUME_PROVIDED", True) or "").split()
for pkg in pkgs_to_build:
if pkg in ignore:
parselog.warn("Explicit target \"%s\" is in ASSUME_PROVIDED, ignoring" % pkg)
@@ -1360,13 +1518,13 @@ class BBCooker:
try:
self.prhost = prserv.serv.auto_start(self.data)
except prserv.serv.PRServiceConfigError:
- bb.event.fire(CookerExit(), self.event_data)
+ bb.event.fire(CookerExit(), self.expanded_data)
self.state = state.error
return
def post_serve(self):
prserv.serv.auto_shutdown(self.data)
- bb.event.fire(CookerExit(), self.event_data)
+ bb.event.fire(CookerExit(), self.expanded_data)
def shutdown(self, force = False):
if force:
@@ -1415,6 +1573,7 @@ class CookerExit(bb.event.Event):
class CookerCollectFiles(object):
def __init__(self, priorities):
self.appendlist = {}
+ self.bbappends = []
self.appliedappendlist = []
self.bbfile_config_priorities = priorities
@@ -1509,6 +1668,7 @@ class CookerCollectFiles(object):
# Build a list of .bbappend files for each .bb file
for f in bbappend:
base = os.path.basename(f).replace('.bbappend', '.bb')
+ self.bbappends.append((base, f))
if not base in self.appendlist:
self.appendlist[base] = []
if f not in self.appendlist[base]:
@@ -1534,14 +1694,14 @@ class CookerCollectFiles(object):
"""
filelist = []
f = os.path.basename(fn)
- for bbappend in self.appendlist:
+ for b in self.bbappends:
+ (bbappend, filename) = b
if (bbappend == f) or ('%' in bbappend and bbappend.startswith(f[:bbappend.index('%')])):
self.appliedappendlist.append(bbappend)
- for filename in self.appendlist[bbappend]:
- filelist.append(filename)
+ filelist.append(filename)
return filelist
- def collection_priorities(self, pkgfns):
+ def collection_priorities(self, pkgfns, d):
priorities = {}
@@ -1550,18 +1710,18 @@ class CookerCollectFiles(object):
for p in pkgfns:
realfn, cls = bb.cache.Cache.virtualfn2realfn(p)
priorities[p] = self.calc_bbfile_priority(realfn, matched)
-
+
# Don't show the warning if the BBFILE_PATTERN did match .bbappend files
unmatched = set()
- for _, _, regex, pri in self.bbfile_config_priorities:
+ for _, _, regex, pri in self.bbfile_config_priorities:
if not regex in matched:
unmatched.add(regex)
def findmatch(regex):
- for bbfile in self.appendlist:
- for append in self.appendlist[bbfile]:
- if regex.match(append):
- return True
+ for b in self.bbappends:
+ (bbfile, append) = b
+ if regex.match(append):
+ return True
return False
for unmatch in unmatched.copy():
@@ -1570,7 +1730,8 @@ class CookerCollectFiles(object):
for collection, pattern, regex, _ in self.bbfile_config_priorities:
if regex in unmatched:
- collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern))
+ if d.getVar('BBFILE_PATTERN_IGNORE_EMPTY_%s' % collection, True) != '1':
+ collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern))
return priorities
@@ -1870,7 +2031,7 @@ class CookerParser(object):
self.skipped += 1
self.cooker.skiplist[virtualfn] = SkippedPackage(info_array[0])
self.bb_cache.add_info(virtualfn, info_array, self.cooker.recipecache,
- parsed=parsed)
+ parsed=parsed, watcher = self.cooker.add_filewatch)
return True
def reparse(self, filename):
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py
index 470d5381ae..6c11a60e0f 100644
--- a/bitbake/lib/bb/cookerdata.py
+++ b/bitbake/lib/bb/cookerdata.py
@@ -33,8 +33,8 @@ logger = logging.getLogger("BitBake")
parselog = logging.getLogger("BitBake.Parsing")
class ConfigParameters(object):
- def __init__(self):
- self.options, targets = self.parseCommandLine()
+ def __init__(self, argv=sys.argv):
+ self.options, targets = self.parseCommandLine(argv)
self.environment = self.parseEnvironment()
self.options.pkgs_to_build = targets or []
@@ -46,7 +46,7 @@ class ConfigParameters(object):
for key, val in self.options.__dict__.items():
setattr(self, key, val)
- def parseCommandLine(self):
+ def parseCommandLine(self, argv=sys.argv):
raise Exception("Caller must implement commandline option parsing")
def parseEnvironment(self):
@@ -69,14 +69,14 @@ class ConfigParameters(object):
if bbpkgs:
self.options.pkgs_to_build.extend(bbpkgs.split())
- def updateToServer(self, server):
+ def updateToServer(self, server, environment):
options = {}
for o in ["abort", "tryaltconfigs", "force", "invalidate_stamp",
"verbose", "debug", "dry_run", "dump_signatures",
"debug_domains", "extra_assume_provided", "profile"]:
options[o] = getattr(self.options, o)
- ret, error = server.runCommand(["updateConfig", options])
+ ret, error = server.runCommand(["updateConfig", options, environment])
if error:
raise Exception("Unable to update the server configuration with local parameters: %s" % error)
@@ -139,6 +139,7 @@ class CookerConfiguration(object):
self.dry_run = False
self.tracking = False
self.interface = []
+ self.writeeventlog = False
self.env = {}
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py
index eb628c7df3..82eefef1a6 100644
--- a/bitbake/lib/bb/data.py
+++ b/bitbake/lib/bb/data.py
@@ -238,6 +238,7 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
# to a shell, we need to escape the quotes in the var
alter = re.sub('"', '\\"', val)
alter = re.sub('\n', ' \\\n', alter)
+ alter = re.sub('\\$', '\\\\$', alter)
o.write('%s="%s"\n' % (varExpanded, alter))
return 0
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py
index 9a42a17062..7bb7b4aae3 100644
--- a/bitbake/lib/bb/data_smart.py
+++ b/bitbake/lib/bb/data_smart.py
@@ -296,9 +296,14 @@ class VariableHistory(object):
self.variables[var] = []
class DataSmart(MutableMapping):
- def __init__(self, special = COWDictBase.copy(), seen = COWDictBase.copy() ):
+ def __init__(self, special = None, seen = None ):
self.dict = {}
+ if special is None:
+ special = COWDictBase.copy()
+ if seen is None:
+ seen = COWDictBase.copy()
+
self.inchistory = IncludeHistory()
self.varhistory = VariableHistory(self)
self._tracking = False
@@ -589,7 +594,7 @@ class DataSmart(MutableMapping):
self._makeShadowCopy(var)
self.dict[var][flag] = value
- if flag == "defaultval" and '_' in var:
+ if flag == "_defaultval" and '_' in var:
self._setvar_update_overrides(var)
if flag == "unexport" or flag == "export":
@@ -605,8 +610,8 @@ class DataSmart(MutableMapping):
if local_var is not None:
if flag in local_var:
value = copy.copy(local_var[flag])
- elif flag == "_content" and "defaultval" in local_var and not noweakdefault:
- value = copy.copy(local_var["defaultval"])
+ elif flag == "_content" and "_defaultval" in local_var and not noweakdefault:
+ value = copy.copy(local_var["_defaultval"])
if expand and value:
# Only getvar (flag == _content) hits the expand cache
cachename = None
@@ -616,7 +621,8 @@ class DataSmart(MutableMapping):
cachename = var + "[" + flag + "]"
value = self.expand(value, cachename)
if value and flag == "_content" and local_var is not None and "_removeactive" in local_var:
- removes = [self.expand(r) for r in local_var["_removeactive"]]
+ removes = [self.expand(r).split() for r in local_var["_removeactive"]]
+ removes = reduce(lambda a, b: a+b, removes, [])
filtered = filter(lambda v: v not in removes,
value.split())
value = " ".join(filtered)
@@ -740,12 +746,16 @@ class DataSmart(MutableMapping):
yield key
def __iter__(self):
+ deleted = set()
def keylist(d):
klist = set()
for key in d:
if key == "_data":
continue
+ if key in deleted:
+ continue
if not d[key]:
+ deleted.add(key)
continue
klist.add(key)
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
index 6cbd0d55db..fec6a05b38 100644
--- a/bitbake/lib/bb/event.py
+++ b/bitbake/lib/bb/event.py
@@ -68,6 +68,7 @@ _ui_logfilters = {}
_ui_handler_seq = 0
_event_handler_map = {}
_catchall_handlers = {}
+_eventfilter = None
def execute_handler(name, handler, event, d):
event.data = d
@@ -95,6 +96,9 @@ def fire_class_handlers(event, d):
evt_hmap = _event_handler_map.get(eid, {})
for name, handler in _handlers.iteritems():
if name in _catchall_handlers or name in evt_hmap:
+ if _eventfilter:
+ if not _eventfilter(name, handler, event, d):
+ continue
execute_handler(name, handler, event, d)
ui_queue = []
@@ -205,6 +209,10 @@ def remove(name, handler):
"""Remove an Event handler"""
_handlers.pop(name)
+def set_eventfilter(func):
+ global _eventfilter
+ _eventfilter = func
+
def register_UIHhandler(handler):
bb.event._ui_handler_seq = bb.event._ui_handler_seq + 1
_ui_handlers[_ui_handler_seq] = handler
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index c0a4763a8b..b004dae0d4 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -45,6 +45,13 @@ _checksum_cache = bb.checksum.FileChecksumCache()
logger = logging.getLogger("BitBake.Fetcher")
+try:
+ import cPickle as pickle
+except ImportError:
+ import pickle
+ logger.info("Importing cPickle failed. "
+ "Falling back to a very slow implementation.")
+
class BBFetchException(Exception):
"""Class all fetch exceptions inherit from"""
def __init__(self, message):
@@ -525,7 +532,7 @@ def fetcher_compare_revisions(d):
def mirror_from_string(data):
return [ i.split() for i in (data or "").replace('\\n','\n').split('\n') if i ]
-def verify_checksum(ud, d):
+def verify_checksum(ud, d, precomputed={}):
"""
verify the MD5 and SHA256 checksum for downloaded src
@@ -533,13 +540,28 @@ def verify_checksum(ud, d):
the downloaded file, or if BB_STRICT_CHECKSUM is set and there are no
checksums specified.
+ Returns a dict of checksums that can be stored in a done stamp file and
+ passed in as precomputed parameter in a later call to avoid re-computing
+ the checksums from the file. This allows verifying the checksums of the
+ file against those in the recipe each time, rather than only after
+ downloading. See https://bugzilla.yoctoproject.org/show_bug.cgi?id=5571.
"""
- if not ud.method.supports_checksum(ud):
- return
+ _MD5_KEY = "md5"
+ _SHA256_KEY = "sha256"
+
+ if ud.ignore_checksums or not ud.method.supports_checksum(ud):
+ return {}
- md5data = bb.utils.md5_file(ud.localpath)
- sha256data = bb.utils.sha256_file(ud.localpath)
+ if _MD5_KEY in precomputed:
+ md5data = precomputed[_MD5_KEY]
+ else:
+ md5data = bb.utils.md5_file(ud.localpath)
+
+ if _SHA256_KEY in precomputed:
+ sha256data = precomputed[_SHA256_KEY]
+ else:
+ sha256data = bb.utils.sha256_file(ud.localpath)
if ud.method.recommends_checksum(ud):
# If strict checking enabled and neither sum defined, raise error
@@ -589,6 +611,72 @@ def verify_checksum(ud, d):
if len(msg):
raise ChecksumError('Checksum mismatch!%s' % msg, ud.url, md5data)
+ return {
+ _MD5_KEY: md5data,
+ _SHA256_KEY: sha256data
+ }
+
+
+def verify_donestamp(ud, d):
+ """
+ Check whether the done stamp file has the right checksums (if the fetch
+ method supports them). If it doesn't, delete the done stamp and force
+ a re-download.
+
+ Returns True, if the donestamp exists and is valid, False otherwise. When
+ returning False, any existing done stamps are removed.
+ """
+ if not os.path.exists(ud.donestamp):
+ return False
+
+ if not ud.method.supports_checksum(ud):
+ # done stamp exists, checksums not supported; assume the local file is
+ # current
+ return True
+
+ if not os.path.exists(ud.localpath):
+ # done stamp exists, but the downloaded file does not; the done stamp
+ # must be incorrect, re-trigger the download
+ bb.utils.remove(ud.donestamp)
+ return False
+
+ precomputed_checksums = {}
+ # Only re-use the precomputed checksums if the donestamp is newer than the
+ # file. Do not rely on the mtime of directories, though. If ud.localpath is
+ # a directory, there will probably not be any checksums anyway.
+ if (os.path.isdir(ud.localpath) or
+ os.path.getmtime(ud.localpath) < os.path.getmtime(ud.donestamp)):
+ try:
+ with open(ud.donestamp, "rb") as cachefile:
+ pickled = pickle.Unpickler(cachefile)
+ precomputed_checksums.update(pickled.load())
+ except Exception as e:
+ # Avoid the warnings on the upgrade path from emtpy done stamp
+ # files to those containing the checksums.
+ if not isinstance(e, EOFError):
+ # Ignore errors, they aren't fatal
+ logger.warn("Couldn't load checksums from donestamp %s: %s "
+ "(msg: %s)" % (ud.donestamp, type(e).__name__,
+ str(e)))
+
+ try:
+ checksums = verify_checksum(ud, d, precomputed_checksums)
+ # If the cache file did not have the checksums, compute and store them
+ # as an upgrade path from the previous done stamp file format.
+ if checksums != precomputed_checksums:
+ with open(ud.donestamp, "wb") as cachefile:
+ p = pickle.Pickler(cachefile, pickle.HIGHEST_PROTOCOL)
+ p.dump(checksums)
+ return True
+ except ChecksumError as e:
+ # Checksums failed to verify, trigger re-download and remove the
+ # incorrect stamp file.
+ logger.warn("Checksum mismatch for local file %s\n"
+ "Cleaning and trying again." % ud.localpath)
+ rename_bad_checksum(ud, e.checksum)
+ bb.utils.remove(ud.donestamp)
+ return False
+
def update_stamp(ud, d):
"""
@@ -603,8 +691,11 @@ def update_stamp(ud, d):
# Errors aren't fatal here
pass
else:
- verify_checksum(ud, d)
- open(ud.donestamp, 'w').close()
+ checksums = verify_checksum(ud, d)
+ # Store the checksums for later re-verification against the recipe
+ with open(ud.donestamp, "wb") as cachefile:
+ p = pickle.Pickler(cachefile, pickle.HIGHEST_PROTOCOL)
+ p.dump(checksums)
def subprocess_setup():
# Python installs a SIGPIPE handler by default. This is usually not what
@@ -620,11 +711,13 @@ def get_autorev(d):
def get_srcrev(d):
"""
- Return the version string for the current package
- (usually to be used as PV)
+ Return the revsion string, usually for use in the version string (PV) of the current package
Most packages usually only have one SCM so we just pass on the call.
In the multi SCM case, we build a value based on SRCREV_FORMAT which must
have been set.
+
+ The idea here is that we put the string "AUTOINC+" into return value if the revisions are not
+ incremental, other code is then responsible for turning that into an increasing value (if needed)
"""
scms = []
@@ -803,7 +896,7 @@ def try_mirror_url(origud, ud, ld, check = False):
os.chdir(ld.getVar("DL_DIR", True))
- if not os.path.exists(ud.donestamp) or ud.method.need_update(ud, ld):
+ if not verify_donestamp(ud, ld) or ud.method.need_update(ud, ld):
ud.method.download(ud, ld)
if hasattr(ud.method,"build_mirror_data"):
ud.method.build_mirror_data(ud, ld)
@@ -819,12 +912,13 @@ def try_mirror_url(origud, ud, ld, check = False):
dldir = ld.getVar("DL_DIR", True)
if origud.mirrortarball and os.path.basename(ud.localpath) == os.path.basename(origud.mirrortarball) \
and os.path.basename(ud.localpath) != os.path.basename(origud.localpath):
+ # Create donestamp in old format to avoid triggering a re-download
bb.utils.mkdirhier(os.path.dirname(ud.donestamp))
open(ud.donestamp, 'w').close()
dest = os.path.join(dldir, os.path.basename(ud.localpath))
if not os.path.exists(dest):
os.symlink(ud.localpath, dest)
- if not os.path.exists(origud.donestamp) or origud.method.need_update(origud, ld):
+ if not verify_donestamp(origud, ld) or origud.method.need_update(origud, ld):
origud.method.download(origud, ld)
if hasattr(origud.method,"build_mirror_data"):
origud.method.build_mirror_data(origud, ld)
@@ -936,22 +1030,21 @@ def get_checksum_file_list(d):
ud = fetch.ud[u]
if ud and isinstance(ud.method, local.Local):
- ud.setup_localpath(d)
- f = ud.localpath
- pth = ud.decodedurl
- if '*' in pth:
- f = os.path.join(os.path.abspath(f), pth)
- if f.startswith(dl_dir):
- # The local fetcher's behaviour is to return a path under DL_DIR if it couldn't find the file anywhere else
- if os.path.exists(f):
- bb.warn("Getting checksum for %s SRC_URI entry %s: file not found except in DL_DIR" % (d.getVar('PN', True), os.path.basename(f)))
- else:
- bb.warn("Unable to get checksum for %s SRC_URI entry %s: file could not be found" % (d.getVar('PN', True), os.path.basename(f)))
- filelist.append(f)
+ paths = ud.method.localpaths(ud, d)
+ for f in paths:
+ pth = ud.decodedurl
+ if '*' in pth:
+ f = os.path.join(os.path.abspath(f), pth)
+ if f.startswith(dl_dir):
+ # The local fetcher's behaviour is to return a path under DL_DIR if it couldn't find the file anywhere else
+ if os.path.exists(f):
+ bb.warn("Getting checksum for %s SRC_URI entry %s: file not found except in DL_DIR" % (d.getVar('PN', True), os.path.basename(f)))
+ else:
+ bb.warn("Unable to get checksum for %s SRC_URI entry %s: file could not be found" % (d.getVar('PN', True), os.path.basename(f)))
+ filelist.append(f + ":" + str(os.path.exists(f)))
return " ".join(filelist)
-
def get_file_checksums(filelist, pn):
"""Get a list of the checksums for a list of local files
@@ -981,6 +1074,10 @@ def get_file_checksums(filelist, pn):
checksums = []
for pth in filelist.split():
+ exist = pth.split(":")[1]
+ if exist == "False":
+ continue
+ pth = pth.split(":")[0]
if '*' in pth:
# Handle globs
for f in glob.glob(pth):
@@ -988,14 +1085,12 @@ def get_file_checksums(filelist, pn):
checksums.extend(checksum_dir(f))
else:
checksum = checksum_file(f)
- if checksum:
- checksums.append((f, checksum))
+ checksums.append((f, checksum))
elif os.path.isdir(pth):
checksums.extend(checksum_dir(pth))
else:
checksum = checksum_file(pth)
- if checksum:
- checksums.append((pth, checksum))
+ checksums.append((pth, checksum))
checksums.sort(key=operator.itemgetter(1))
return checksums
@@ -1041,6 +1136,7 @@ class FetchData(object):
self.sha256_expected = None
else:
self.sha256_expected = d.getVarFlag("SRC_URI", self.sha256_name)
+ self.ignore_checksums = False
self.names = self.parm.get("name",'default').split(',')
@@ -1197,9 +1293,9 @@ class FetchMethod(object):
bb.fatal("Invalid value for 'unpack' parameter for %s: %s" %
(file, urldata.parm.get('unpack')))
- dots = file.split(".")
- if dots[-1] in ['gz', 'bz2', 'Z', 'xz']:
- efile = os.path.join(rootdir, os.path.basename('.'.join(dots[0:-1])))
+ base, ext = os.path.splitext(file)
+ if ext in ['.gz', '.bz2', '.Z', '.xz', '.lz']:
+ efile = os.path.join(rootdir, os.path.basename(base))
else:
efile = file
cmd = None
@@ -1219,6 +1315,10 @@ class FetchMethod(object):
cmd = 'xz -dc %s | tar x --no-same-owner -f -' % file
elif file.endswith('.xz'):
cmd = 'xz -dc %s > %s' % (file, efile)
+ elif file.endswith('.tar.lz'):
+ cmd = 'lzip -dc %s | tar x --no-same-owner -f -' % file
+ elif file.endswith('.lz'):
+ cmd = 'lzip -dc %s > %s' % (file, efile)
elif file.endswith('.zip') or file.endswith('.jar'):
try:
dos = bb.utils.to_boolean(urldata.parm.get('dos'), False)
@@ -1414,7 +1514,7 @@ class Fetch(object):
try:
self.d.setVar("BB_NO_NETWORK", network)
- if os.path.exists(ud.donestamp) and not m.need_update(ud, self.d):
+ if verify_donestamp(ud, self.d) and not m.need_update(ud, self.d):
localpath = ud.localpath
elif m.try_premirror(ud, self.d):
logger.debug(1, "Trying PREMIRRORS")
@@ -1427,7 +1527,7 @@ class Fetch(object):
os.chdir(self.d.getVar("DL_DIR", True))
firsterr = None
- if not localpath and ((not os.path.exists(ud.donestamp)) or m.need_update(ud, self.d)):
+ if not localpath and ((not verify_donestamp(ud, self.d)) or m.need_update(ud, self.d)):
try:
logger.debug(1, "Trying Upstream")
m.download(ud, self.d)
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index 799fb6c0fe..0fd9beee19 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -67,6 +67,7 @@ Supported SRC_URI options are:
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
+import re
import bb
from bb import data
from bb.fetch2 import FetchMethod
@@ -245,7 +246,7 @@ class Git(FetchMethod):
subdir = ud.parm.get("subpath", "")
if subdir != "":
readpathspec = ":%s" % (subdir)
- def_destsuffix = "%s/" % os.path.basename(subdir)
+ def_destsuffix = "%s/" % os.path.basename(subdir.rstrip('/'))
else:
readpathspec = ""
def_destsuffix = "git/"
@@ -339,9 +340,56 @@ class Git(FetchMethod):
"""
Compute the HEAD revision for the url
"""
- search = "refs/heads/%s refs/tags/%s^{}" % (ud.unresolvedrev[name], ud.unresolvedrev[name])
- output = self._lsremote(ud, d, search)
- return output.split()[0]
+ output = self._lsremote(ud, d, "")
+ # Tags of the form ^{} may not work, need to fallback to other form
+ if ud.unresolvedrev[name][:5] == "refs/":
+ head = ud.unresolvedrev[name]
+ tag = ud.unresolvedrev[name]
+ else:
+ head = "refs/heads/%s" % ud.unresolvedrev[name]
+ tag = "refs/tags/%s" % ud.unresolvedrev[name]
+ for s in [head, tag + "^{}", tag]:
+ for l in output.split('\n'):
+ if s in l:
+ return l.split()[0]
+ raise bb.fetch2.FetchError("Unable to resolve '%s' in upstream git repository in git ls-remote output" % ud.unresolvedrev[name])
+
+ def latest_versionstring(self, ud, d):
+ """
+ Compute the latest release name like "x.y.x" in "x.y.x+gitHASH"
+ by searching through the tags output of ls-remote, comparing
+ versions and returning the highest match.
+ """
+ verstring = ""
+ tagregex = re.compile(d.getVar('GITTAGREGEX', True) or "(?P<pver>([0-9][\.|_]?)+)")
+ try:
+ output = self._lsremote(ud, d, "refs/tags/*^{}")
+ except bb.fetch2.FetchError or bb.fetch2.NetworkAccess:
+ return ""
+
+ for line in output.split("\n"):
+ if not line:
+ break
+
+ line = line.split("/")[-1]
+ # Ignore non-released branches
+ m = re.search("(alpha|beta|rc|final)+", line)
+ if m:
+ continue
+
+ # search for version in the line
+ tag = tagregex.search(line)
+ if tag == None:
+ continue
+
+ tag = tag.group('pver')
+ tag = tag.replace("_", ".")
+
+ if verstring and bb.utils.vercmp(("0", tag, ""), ("0", verstring, "")) < 0:
+ continue
+ verstring = tag
+
+ return verstring
def _build_revision(self, ud, d, name):
return ud.revisions[name]
diff --git a/bitbake/lib/bb/fetch2/local.py b/bitbake/lib/bb/fetch2/local.py
index 6fa188fc48..0785236a6b 100644
--- a/bitbake/lib/bb/fetch2/local.py
+++ b/bitbake/lib/bb/fetch2/local.py
@@ -51,29 +51,41 @@ class Local(FetchMethod):
"""
Return the local filename of a given url assuming a successful fetch.
"""
+ return self.localpaths(urldata, d)[-1]
+
+ def localpaths(self, urldata, d):
+ """
+ Return the local filename of a given url assuming a successful fetch.
+ """
+ searched = []
path = urldata.decodedurl
newpath = path
- if path[0] != "/":
- filespath = data.getVar('FILESPATH', d, True)
- if filespath:
- logger.debug(2, "Searching for %s in paths:\n %s" % (path, "\n ".join(filespath.split(":"))))
- newpath = bb.utils.which(filespath, path)
- if not newpath:
- filesdir = data.getVar('FILESDIR', d, True)
- 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):
- 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))
- return dldirfile
- return newpath
+ if path[0] == "/":
+ return [path]
+ filespath = data.getVar('FILESPATH', d, True)
+ if filespath:
+ logger.debug(2, "Searching for %s in paths:\n %s" % (path, "\n ".join(filespath.split(":"))))
+ newpath, hist = bb.utils.which(filespath, path, history=True)
+ searched.extend(hist)
+ if not newpath:
+ filesdir = data.getVar('FILESDIR', d, True)
+ if filesdir:
+ logger.debug(2, "Searching for %s in path: %s" % (path, filesdir))
+ newpath = os.path.join(filesdir, path)
+ searched.append(newpath)
+ 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, hist = bb.utils.which(filespath, ".", history=True)
+ searched.extend(hist)
+ logger.debug(2, "Searching for %s in path: %s" % (path, newpath))
+ return searched
+ if not os.path.exists(newpath):
+ 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))
+ searched.append(dldirfile)
+ return searched
+ return searched
def need_update(self, ud, d):
if ud.url.find("*") != -1:
diff --git a/bitbake/lib/bb/fetch2/ssh.py b/bitbake/lib/bb/fetch2/ssh.py
index 4ae979472c..635578a711 100644
--- a/bitbake/lib/bb/fetch2/ssh.py
+++ b/bitbake/lib/bb/fetch2/ssh.py
@@ -87,7 +87,8 @@ class SSH(FetchMethod):
m = __pattern__.match(urldata.url)
path = m.group('path')
host = m.group('host')
- urldata.localpath = os.path.join(d.getVar('DL_DIR', True), os.path.basename(path))
+ urldata.localpath = os.path.join(d.getVar('DL_DIR', True),
+ os.path.basename(os.path.normpath(path)))
def download(self, urldata, d):
dldir = d.getVar('DL_DIR', True)
diff --git a/bitbake/lib/bb/fetch2/wget.py b/bitbake/lib/bb/fetch2/wget.py
index 0456490368..162a6bd3be 100644
--- a/bitbake/lib/bb/fetch2/wget.py
+++ b/bitbake/lib/bb/fetch2/wget.py
@@ -25,6 +25,9 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
+import re
+import tempfile
+import subprocess
import os
import logging
import bb
@@ -34,6 +37,7 @@ from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import logger
from bb.fetch2 import runfetchcmd
+from bs4 import BeautifulSoup
class Wget(FetchMethod):
"""Class to fetch urls via 'wget'"""
@@ -104,3 +108,274 @@ class Wget(FetchMethod):
self._runwget(ud, d, fetchcmd, True)
return True
+
+ def _parse_path(self, regex, s):
+ """
+ Find and group name, version and archive type in the given string s
+ """
+
+ m = regex.search(s)
+ if m:
+ pname = ''
+ pver = ''
+ ptype = ''
+
+ mdict = m.groupdict()
+ if 'name' in mdict.keys():
+ pname = mdict['name']
+ if 'pver' in mdict.keys():
+ pver = mdict['pver']
+ if 'type' in mdict.keys():
+ ptype = mdict['type']
+
+ bb.debug(3, "_parse_path: %s, %s, %s" % (pname, pver, ptype))
+
+ return (pname, pver, ptype)
+
+ return None
+
+ def _modelate_version(self, version):
+ if version[0] in ['.', '-']:
+ if version[1].isdigit():
+ version = version[1] + version[0] + version[2:len(version)]
+ else:
+ version = version[1:len(version)]
+
+ version = re.sub('-', '.', version)
+ version = re.sub('_', '.', version)
+ version = re.sub('(rc)+', '.1000.', version)
+ version = re.sub('(beta)+', '.100.', version)
+ version = re.sub('(alpha)+', '.10.', version)
+ if version[0] == 'v':
+ version = version[1:len(version)]
+ return version
+
+ def _vercmp(self, old, new):
+ """
+ Check whether 'new' is newer than 'old' version. We use existing vercmp() for the
+ purpose. PE is cleared in comparison as it's not for build, and PR is cleared too
+ for simplicity as it's somehow difficult to get from various upstream format
+ """
+
+ (oldpn, oldpv, oldsuffix) = old
+ (newpn, newpv, newsuffix) = new
+
+ """
+ Check for a new suffix type that we have never heard of before
+ """
+ if (newsuffix):
+ m = self.suffix_regex_comp.search(newsuffix)
+ if not m:
+ bb.warn("%s has a possible unknown suffix: %s" % (newpn, newsuffix))
+ return False
+
+ """
+ Not our package so ignore it
+ """
+ if oldpn != newpn:
+ return False
+
+ oldpv = self._modelate_version(oldpv)
+ newpv = self._modelate_version(newpv)
+
+ return bb.utils.vercmp(("0", oldpv, ""), ("0", newpv, ""))
+
+ def _fetch_index(self, uri, ud, d):
+ """
+ Run fetch checkstatus to get directory information
+ """
+ f = tempfile.NamedTemporaryFile()
+
+ agent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Ubuntu/9.10 (karmic) Firefox/3.6.12"
+ fetchcmd = self.basecmd
+ fetchcmd += " -O " + f.name + " --user-agent='" + agent + "' '" + uri + "'"
+ try:
+ self._runwget(ud, d, fetchcmd, True)
+ fetchresult = f.read()
+ except bb.fetch2.BBFetchException:
+ fetchresult = ""
+
+ f.close()
+ return fetchresult
+
+ def _check_latest_version(self, url, package, package_regex, current_version, ud, d):
+ """
+ Return the latest version of a package inside a given directory path
+ If error or no version, return ""
+ """
+ valid = 0
+ version = ['', '', '']
+
+ bb.debug(3, "VersionURL: %s" % (url))
+ soup = BeautifulSoup(self._fetch_index(url, ud, d))
+ if not soup:
+ bb.debug(3, "*** %s NO SOUP" % (url))
+ return ""
+
+ for line in soup.find_all('a', href=True):
+ bb.debug(3, "line['href'] = '%s'" % (line['href']))
+ bb.debug(3, "line = '%s'" % (str(line)))
+
+ newver = self._parse_path(package_regex, line['href'])
+ if not newver:
+ newver = self._parse_path(package_regex, str(line))
+
+ if newver:
+ bb.debug(3, "Upstream version found: %s" % newver[1])
+ if valid == 0:
+ version = newver
+ valid = 1
+ elif self._vercmp(version, newver) < 0:
+ version = newver
+
+ pupver = re.sub('_', '.', version[1])
+
+ bb.debug(3, "*** %s -> UpstreamVersion = %s (CurrentVersion = %s)" %
+ (package, pupver or "N/A", current_version[1]))
+
+ if valid:
+ return pupver
+
+ return ""
+
+ def _check_latest_version_by_dir(self, dirver, package, package_regex,
+ current_version, ud, d):
+ """
+ Scan every directory in order to get upstream version.
+ """
+ version_dir = ['', '', '']
+ version = ['', '', '']
+
+ dirver_regex = re.compile("(\D*)((\d+[\.-_])+(\d+))")
+ s = dirver_regex.search(dirver)
+ if s:
+ version_dir[1] = s.group(2)
+ else:
+ version_dir[1] = dirver
+
+ dirs_uri = bb.fetch.encodeurl([ud.type, ud.host,
+ ud.path.split(dirver)[0], ud.user, ud.pswd, {}])
+ bb.debug(3, "DirURL: %s, %s" % (dirs_uri, package))
+
+ soup = BeautifulSoup(self._fetch_index(dirs_uri, ud, d))
+ if not soup:
+ return version[1]
+
+ for line in soup.find_all('a', href=True):
+ s = dirver_regex.search(line['href'].strip("/"))
+ if s:
+ version_dir_new = ['', s.group(2), '']
+ if self._vercmp(version_dir, version_dir_new) <= 0:
+ dirver_new = s.group(1) + s.group(2)
+ path = ud.path.replace(dirver, dirver_new, True) \
+ .split(package)[0]
+ uri = bb.fetch.encodeurl([ud.type, ud.host, path,
+ ud.user, ud.pswd, {}])
+
+ pupver = self._check_latest_version(uri,
+ package, package_regex, current_version, ud, d)
+ if pupver:
+ version[1] = pupver
+
+ version_dir = version_dir_new
+
+ return version[1]
+
+ def _init_regexes(self, package, ud, d):
+ """
+ Match as many patterns as possible such as:
+ gnome-common-2.20.0.tar.gz (most common format)
+ gtk+-2.90.1.tar.gz
+ xf86-input-synaptics-12.6.9.tar.gz
+ dri2proto-2.3.tar.gz
+ blktool_4.orig.tar.gz
+ libid3tag-0.15.1b.tar.gz
+ unzip552.tar.gz
+ icu4c-3_6-src.tgz
+ genext2fs_1.3.orig.tar.gz
+ gst-fluendo-mp3
+ """
+ # match most patterns which uses "-" as separator to version digits
+ pn_prefix1 = "[a-zA-Z][a-zA-Z0-9]*([-_][a-zA-Z]\w+)*\+?[-_]"
+ # a loose pattern such as for unzip552.tar.gz
+ pn_prefix2 = "[a-zA-Z]+"
+ # a loose pattern such as for 80325-quicky-0.4.tar.gz
+ pn_prefix3 = "[0-9]+[-]?[a-zA-Z]+"
+ # Save the Package Name (pn) Regex for use later
+ pn_regex = "(%s|%s|%s)" % (pn_prefix1, pn_prefix2, pn_prefix3)
+
+ # match version
+ pver_regex = "(([A-Z]*\d+[a-zA-Z]*[\.-_]*)+)"
+
+ # match arch
+ parch_regex = "-source|_all_"
+
+ # src.rpm extension was added only for rpm package. Can be removed if the rpm
+ # packaged will always be considered as having to be manually upgraded
+ psuffix_regex = "(tar\.gz|tgz|tar\.bz2|zip|xz|rpm|bz2|orig\.tar\.gz|tar\.xz|src\.tar\.gz|src\.tgz|svnr\d+\.tar\.bz2|stable\.tar\.gz|src\.rpm)"
+
+ # match name, version and archive type of a package
+ package_regex_comp = re.compile("(?P<name>%s?\.?v?)(?P<pver>%s)(?P<arch>%s)?[\.-](?P<type>%s$)"
+ % (pn_regex, pver_regex, parch_regex, psuffix_regex))
+ self.suffix_regex_comp = re.compile(psuffix_regex)
+
+ # compile regex, can be specific by package or generic regex
+ pn_regex = d.getVar('REGEX', True)
+ if pn_regex:
+ package_custom_regex_comp = re.compile(pn_regex)
+ else:
+ version = self._parse_path(package_regex_comp, package)
+ if version:
+ package_custom_regex_comp = re.compile(
+ "(?P<name>%s)(?P<pver>%s)(?P<arch>%s)?[\.-](?P<type>%s)" %
+ (re.escape(version[0]), pver_regex, parch_regex, psuffix_regex))
+ else:
+ package_custom_regex_comp = None
+
+ return package_custom_regex_comp
+
+ def latest_versionstring(self, ud, d):
+ """
+ Manipulate the URL and try to obtain the latest package version
+
+ sanity check to ensure same name and type.
+ """
+ package = ud.path.split("/")[-1]
+ current_version = ['', d.getVar('PV', True), '']
+
+ """possible to have no version in pkg name, such as spectrum-fw"""
+ if not re.search("\d+", package):
+ current_version[1] = re.sub('_', '.', current_version[1])
+ current_version[1] = re.sub('-', '.', current_version[1])
+ return current_version[1]
+
+ package_regex = self._init_regexes(package, ud, d)
+ if package_regex is None:
+ bb.warn("latest_versionstring: package %s don't match pattern" % (package))
+ return ""
+ bb.debug(3, "latest_versionstring, regex: %s" % (package_regex.pattern))
+
+ uri = ""
+ regex_uri = d.getVar("REGEX_URI", True)
+ if not regex_uri:
+ path = ud.path.split(package)[0]
+
+ # search for version matches on folders inside the path, like:
+ # "5.7" in http://download.gnome.org/sources/${PN}/5.7/${PN}-${PV}.tar.gz
+ dirver_regex = re.compile("(?P<dirver>[^/]*(\d+\.)*\d+([-_]r\d+)*)/")
+ m = dirver_regex.search(path)
+ if m:
+ pn = d.getVar('PN', True)
+ dirver = m.group('dirver')
+
+ dirver_pn_regex = re.compile("%s\d?" % (re.escape(pn)))
+ if not dirver_pn_regex.search(dirver):
+ return self._check_latest_version_by_dir(dirver,
+ package, package_regex, current_version, ud, d)
+
+ uri = bb.fetch.encodeurl([ud.type, ud.host, path, ud.user, ud.pswd, {}])
+ else:
+ uri = regex_uri
+
+ return self._check_latest_version(uri, package, package_regex,
+ current_version, ud, d)
diff --git a/bitbake/lib/bb/main.py b/bitbake/lib/bb/main.py
new file mode 100755
index 0000000000..1f19cc5dcf
--- /dev/null
+++ b/bitbake/lib/bb/main.py
@@ -0,0 +1,390 @@
+#!/usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# Copyright (C) 2003, 2004 Chris Larson
+# Copyright (C) 2003, 2004 Phil Blundell
+# Copyright (C) 2003 - 2005 Michael 'Mickey' Lauer
+# Copyright (C) 2005 Holger Hans Peter Freyther
+# Copyright (C) 2005 ROAD GmbH
+# Copyright (C) 2006 Richard Purdie
+#
+# 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 os
+import sys
+import logging
+import optparse
+import warnings
+
+import bb
+from bb import event
+import bb.msg
+from bb import cooker
+from bb import ui
+from bb import server
+from bb import cookerdata
+
+__version__ = "1.26.0"
+logger = logging.getLogger("BitBake")
+
+class BBMainException(bb.BBHandledException):
+ pass
+
+def get_ui(config):
+ if not config.ui:
+ # modify 'ui' attribute because it is also read by cooker
+ config.ui = os.environ.get('BITBAKE_UI', 'knotty')
+
+ interface = config.ui
+
+ try:
+ # Dynamically load the UI based on the ui name. Although we
+ # suggest a fixed set this allows you to have flexibility in which
+ # ones are available.
+ module = __import__("bb.ui", fromlist = [interface])
+ return getattr(module, interface)
+ except AttributeError:
+ raise BBMainException("FATAL: Invalid user interface '%s' specified.\n"
+ "Valid interfaces: depexp, goggle, ncurses, hob, knotty [default]." % interface)
+
+
+# Display bitbake/OE warnings via the BitBake.Warnings logger, ignoring others"""
+warnlog = logging.getLogger("BitBake.Warnings")
+_warnings_showwarning = warnings.showwarning
+def _showwarning(message, category, filename, lineno, file=None, line=None):
+ if file is not None:
+ if _warnings_showwarning is not None:
+ _warnings_showwarning(message, category, filename, lineno, file, line)
+ else:
+ s = warnings.formatwarning(message, category, filename, lineno)
+ warnlog.warn(s)
+
+warnings.showwarning = _showwarning
+warnings.filterwarnings("ignore")
+warnings.filterwarnings("default", module="(<string>$|(oe|bb)\.)")
+warnings.filterwarnings("ignore", category=PendingDeprecationWarning)
+warnings.filterwarnings("ignore", category=ImportWarning)
+warnings.filterwarnings("ignore", category=DeprecationWarning, module="<string>$")
+warnings.filterwarnings("ignore", message="With-statements now directly support multiple context managers")
+
+class BitBakeConfigParameters(cookerdata.ConfigParameters):
+
+ def parseCommandLine(self, argv=sys.argv):
+ parser = optparse.OptionParser(
+ version = "BitBake Build Tool Core version %s, %%prog version %s" % (bb.__version__, __version__),
+ usage = """%prog [options] [recipename/target ...]
+
+ Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
+ It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
+ will provide the layer, BBFILES and other configuration information.""")
+
+ parser.add_option("-b", "--buildfile", help = "Execute tasks from a specific .bb recipe directly. WARNING: Does not handle any dependencies from other recipes.",
+ action = "store", dest = "buildfile", default = None)
+
+ parser.add_option("-k", "--continue", help = "Continue as much as possible after an error. While the target that failed and anything depending on it cannot be built, as much as possible will be built before stopping.",
+ action = "store_false", dest = "abort", default = True)
+
+ parser.add_option("-a", "--tryaltconfigs", help = "Continue with builds by trying to use alternative providers where possible.",
+ action = "store_true", dest = "tryaltconfigs", default = False)
+
+ parser.add_option("-f", "--force", help = "Force the specified targets/task to run (invalidating any existing stamp file).",
+ action = "store_true", dest = "force", default = False)
+
+ parser.add_option("-c", "--cmd", help = "Specify the task to execute. The exact options available depend on the metadata. Some examples might be 'compile' or 'populate_sysroot' or 'listtasks' may give a list of the tasks available.",
+ action = "store", dest = "cmd")
+
+ parser.add_option("-C", "--clear-stamp", help = "Invalidate the stamp for the specified task such as 'compile' and then run the default task for the specified target(s).",
+ action = "store", dest = "invalidate_stamp")
+
+ parser.add_option("-r", "--read", help = "Read the specified file before bitbake.conf.",
+ action = "append", dest = "prefile", default = [])
+
+ parser.add_option("-R", "--postread", help = "Read the specified file after bitbake.conf.",
+ action = "append", dest = "postfile", default = [])
+
+ parser.add_option("-v", "--verbose", help = "Output more log message data to the terminal.",
+ action = "store_true", dest = "verbose", default = False)
+
+ parser.add_option("-D", "--debug", help = "Increase the debug level. You can specify this more than once.",
+ action = "count", dest="debug", default = 0)
+
+ parser.add_option("-n", "--dry-run", help = "Don't execute, just go through the motions.",
+ action = "store_true", dest = "dry_run", default = False)
+
+ parser.add_option("-S", "--dump-signatures", help = "Dump out the signature construction information, with no task execution. The SIGNATURE_HANDLER parameter is passed to the handler. Two common values are none and printdiff but the handler may define more/less. none means only dump the signature, printdiff means compare the dumped signature with the cached one.",
+ action = "append", dest = "dump_signatures", default = [], metavar="SIGNATURE_HANDLER")
+
+ parser.add_option("-p", "--parse-only", help = "Quit after parsing the BB recipes.",
+ action = "store_true", dest = "parse_only", default = False)
+
+ parser.add_option("-s", "--show-versions", help = "Show current and preferred versions of all recipes.",
+ action = "store_true", dest = "show_versions", default = False)
+
+ parser.add_option("-e", "--environment", help = "Show the global or per-recipe environment complete with information about where variables were set/changed.",
+ action = "store_true", dest = "show_environment", default = False)
+
+ parser.add_option("-g", "--graphviz", help = "Save dependency tree information for the specified targets in the dot syntax.",
+ action = "store_true", dest = "dot_graph", default = False)
+
+ parser.add_option("-I", "--ignore-deps", help = """Assume these dependencies don't exist and are already provided (equivalent to ASSUME_PROVIDED). Useful to make dependency graphs more appealing""",
+ action = "append", dest = "extra_assume_provided", default = [])
+
+ parser.add_option("-l", "--log-domains", help = """Show debug logging for the specified logging domains""",
+ action = "append", dest = "debug_domains", default = [])
+
+ parser.add_option("-P", "--profile", help = "Profile the command and save reports.",
+ action = "store_true", dest = "profile", default = False)
+
+ parser.add_option("-u", "--ui", help = "The user interface to use (e.g. knotty, hob, depexp).",
+ action = "store", dest = "ui")
+
+ parser.add_option("-t", "--servertype", help = "Choose which server to use, process or xmlrpc.",
+ action = "store", dest = "servertype")
+
+ parser.add_option("", "--token", help = "Specify the connection token to be used when connecting to a remote server.",
+ action = "store", dest = "xmlrpctoken")
+
+ parser.add_option("", "--revisions-changed", help = "Set the exit code depending on whether upstream floating revisions have changed or not.",
+ action = "store_true", dest = "revisions_changed", default = False)
+
+ parser.add_option("", "--server-only", help = "Run bitbake without a UI, only starting a server (cooker) process.",
+ action = "store_true", dest = "server_only", default = False)
+
+ parser.add_option("-B", "--bind", help = "The name/address for the bitbake server to bind to.",
+ action = "store", dest = "bind", default = False)
+
+ parser.add_option("", "--no-setscene", help = "Do not run any setscene tasks. sstate will be ignored and everything needed, built.",
+ action = "store_true", dest = "nosetscene", default = False)
+
+ parser.add_option("", "--remote-server", help = "Connect to the specified server.",
+ action = "store", dest = "remote_server", default = False)
+
+ parser.add_option("-m", "--kill-server", help = "Terminate the remote server.",
+ action = "store_true", dest = "kill_server", default = False)
+
+ parser.add_option("", "--observe-only", help = "Connect to a server as an observing-only client.",
+ action = "store_true", dest = "observe_only", default = False)
+
+ parser.add_option("", "--status-only", help = "Check the status of the remote bitbake server.",
+ action = "store_true", dest = "status_only", default = False)
+
+ parser.add_option("-w", "--write-log", help = "Writes the event log of the build to a bitbake event json file. Use '' (empty string) to assign the name automatically.",
+ action = "store", dest = "writeeventlog")
+
+ options, targets = parser.parse_args(argv)
+
+ # some environmental variables set also configuration options
+ if "BBSERVER" in os.environ:
+ options.servertype = "xmlrpc"
+ options.remote_server = os.environ["BBSERVER"]
+
+ if "BBTOKEN" in os.environ:
+ options.xmlrpctoken = os.environ["BBTOKEN"]
+
+ if "BBEVENTLOG" is os.environ:
+ options.writeeventlog = os.environ["BBEVENTLOG"]
+
+ # fill in proper log name if not supplied
+ if options.writeeventlog is not None and len(options.writeeventlog) == 0:
+ import datetime
+ options.writeeventlog = "bitbake_eventlog_%s.json" % datetime.datetime.now().strftime("%Y%m%d%H%M%S")
+
+ # if BBSERVER says to autodetect, let's do that
+ if options.remote_server:
+ [host, port] = options.remote_server.split(":", 2)
+ port = int(port)
+ # use automatic port if port set to -1, means read it from
+ # the bitbake.lock file; this is a bit tricky, but we always expect
+ # to be in the base of the build directory if we need to have a
+ # chance to start the server later, anyway
+ if port == -1:
+ lock_location = "./bitbake.lock"
+ # we try to read the address at all times; if the server is not started,
+ # we'll try to start it after the first connect fails, below
+ try:
+ lf = open(lock_location, 'r')
+ remotedef = lf.readline()
+ [host, port] = remotedef.split(":")
+ port = int(port)
+ lf.close()
+ options.remote_server = remotedef
+ except Exception as e:
+ raise BBMainException("Failed to read bitbake.lock (%s), invalid port" % str(e))
+
+ return options, targets[1:]
+
+
+def start_server(servermodule, configParams, configuration, features):
+ server = servermodule.BitBakeServer()
+ if configParams.bind:
+ (host, port) = configParams.bind.split(':')
+ server.initServer((host, int(port)))
+ configuration.interface = [ server.serverImpl.host, server.serverImpl.port ]
+ else:
+ server.initServer()
+ configuration.interface = []
+
+ try:
+ configuration.setServerRegIdleCallback(server.getServerIdleCB())
+
+ cooker = bb.cooker.BBCooker(configuration, features)
+
+ server.addcooker(cooker)
+ server.saveConnectionDetails()
+ except Exception as e:
+ exc_info = sys.exc_info()
+ while hasattr(server, "event_queue"):
+ try:
+ import queue
+ except ImportError:
+ import Queue as queue
+ try:
+ event = server.event_queue.get(block=False)
+ except (queue.Empty, IOError):
+ break
+ if isinstance(event, logging.LogRecord):
+ logger.handle(event)
+ raise exc_info[1], None, exc_info[2]
+ server.detach()
+ return server
+
+
+def bitbake_main(configParams, configuration):
+
+ # Python multiprocessing requires /dev/shm on Linux
+ if sys.platform.startswith('linux') and not os.access('/dev/shm', os.W_OK | os.X_OK):
+ raise BBMainException("FATAL: /dev/shm does not exist or is not writable")
+
+ # Unbuffer stdout to avoid log truncation in the event
+ # of an unorderly exit as well as to provide timely
+ # updates to log files for use with tail
+ try:
+ if sys.stdout.name == '<stdout>':
+ sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
+ except:
+ pass
+
+
+ configuration.setConfigParameters(configParams)
+
+ ui_module = get_ui(configParams)
+
+ # Server type can be xmlrpc or process currently, if nothing is specified,
+ # the default server is process
+ if configParams.servertype:
+ server_type = configParams.servertype
+ else:
+ server_type = 'process'
+
+ try:
+ module = __import__("bb.server", fromlist = [server_type])
+ servermodule = getattr(module, server_type)
+ except AttributeError:
+ raise BBMainException("FATAL: Invalid server type '%s' specified.\n"
+ "Valid interfaces: xmlrpc, process [default]." % server_type)
+
+ if configParams.server_only:
+ if configParams.servertype != "xmlrpc":
+ raise BBMainException("FATAL: If '--server-only' is defined, we must set the "
+ "servertype as 'xmlrpc'.\n")
+ if not configParams.bind:
+ raise BBMainException("FATAL: The '--server-only' option requires a name/address "
+ "to bind to with the -B option.\n")
+ if configParams.remote_server:
+ raise BBMainException("FATAL: The '--server-only' option conflicts with %s.\n" %
+ ("the BBSERVER environment variable" if "BBSERVER" in os.environ \
+ else "the '--remote-server' option" ))
+
+ if configParams.bind and configParams.servertype != "xmlrpc":
+ raise BBMainException("FATAL: If '-B' or '--bind' is defined, we must "
+ "set the servertype as 'xmlrpc'.\n")
+
+ if configParams.remote_server and configParams.servertype != "xmlrpc":
+ raise BBMainException("FATAL: If '--remote-server' is defined, we must "
+ "set the servertype as 'xmlrpc'.\n")
+
+ if configParams.observe_only and (not configParams.remote_server or configParams.bind):
+ raise BBMainException("FATAL: '--observe-only' can only be used by UI clients "
+ "connecting to a server.\n")
+
+ if configParams.kill_server and not configParams.remote_server:
+ raise BBMainException("FATAL: '--kill-server' can only be used to terminate a remote server")
+
+ if "BBDEBUG" in os.environ:
+ level = int(os.environ["BBDEBUG"])
+ if level > configuration.debug:
+ configuration.debug = level
+
+ bb.msg.init_msgconfig(configParams.verbose, configuration.debug,
+ configuration.debug_domains)
+
+ # Ensure logging messages get sent to the UI as events
+ handler = bb.event.LogHandler()
+ if not configParams.status_only:
+ # In status only mode there are no logs and no UI
+ logger.addHandler(handler)
+
+ # Clear away any spurious environment variables while we stoke up the cooker
+ cleanedvars = bb.utils.clean_environment()
+
+ featureset = []
+ if not configParams.server_only:
+ # Collect the feature set for the UI
+ featureset = getattr(ui_module, "featureSet", [])
+
+ if not configParams.remote_server:
+ # we start a server with a given configuration
+ server = start_server(servermodule, configParams, configuration, featureset)
+ bb.event.ui_queue = []
+ else:
+ # we start a stub server that is actually a XMLRPClient that connects to a real server
+ server = servermodule.BitBakeXMLRPCClient(configParams.observe_only, configParams.xmlrpctoken)
+ server.saveConnectionDetails(configParams.remote_server)
+
+
+ if not configParams.server_only:
+ try:
+ server_connection = server.establishConnection(featureset)
+ except Exception as e:
+ if configParams.kill_server:
+ return 0
+ bb.fatal("Could not connect to server %s: %s" % (configParams.remote_server, str(e)))
+
+ # Restore the environment in case the UI needs it
+ for k in cleanedvars:
+ os.environ[k] = cleanedvars[k]
+
+ logger.removeHandler(handler)
+
+
+ if configParams.status_only:
+ server_connection.terminate()
+ return 0
+
+ if configParams.kill_server:
+ server_connection.connection.terminateServer()
+ bb.event.ui_queue = []
+ return 0
+
+ try:
+ return ui_module.main(server_connection.connection, server_connection.events, configParams)
+ finally:
+ bb.event.ui_queue = []
+ server_connection.terminate()
+ else:
+ print("Bitbake server address: %s, server port: %s" % (server.serverImpl.host, server.serverImpl.port))
+ return 0
+
+ return 1
diff --git a/bitbake/lib/bb/parse/__init__.py b/bitbake/lib/bb/parse/__init__.py
index 2303f15b9e..25effc2200 100644
--- a/bitbake/lib/bb/parse/__init__.py
+++ b/bitbake/lib/bb/parse/__init__.py
@@ -73,6 +73,11 @@ def update_mtime(f):
__mtime_cache[f] = os.stat(f)[stat.ST_MTIME]
return __mtime_cache[f]
+def update_cache(f):
+ if f in __mtime_cache:
+ logger.debug(1, "Updating mtime cache for %s" % f)
+ update_mtime(f)
+
def mark_dependency(d, f):
if f.startswith('./'):
f = "%s/%s" % (os.getcwd(), f[2:])
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py
index 4e5a06e761..c53ab17d68 100644
--- a/bitbake/lib/bb/parse/ast.py
+++ b/bitbake/lib/bb/parse/ast.py
@@ -128,7 +128,7 @@ class DataNode(AstNode):
if 'flag' in groupd and groupd['flag'] != None:
flag = groupd['flag']
elif groupd["lazyques"]:
- flag = "defaultval"
+ flag = "_defaultval"
loginfo['op'] = op
loginfo['detail'] = groupd["value"]
@@ -139,7 +139,7 @@ class DataNode(AstNode):
data.setVar(key, val, **loginfo)
class MethodNode(AstNode):
- tr_tbl = string.maketrans('/.+-@%', '______')
+ tr_tbl = string.maketrans('/.+-@%&', '_______')
def __init__(self, filename, lineno, func_name, body):
AstNode.__init__(self, filename, lineno)
@@ -226,6 +226,8 @@ class ExportFuncsNode(AstNode):
if data.getVarFlag(calledfunc, "python"):
data.setVar(func, " bb.build.exec_func('" + calledfunc + "', d)\n")
else:
+ if "-" in self.classname:
+ bb.fatal("The classname %s contains a dash character and is calling an sh function %s using EXPORT_FUNCTIONS. Since a dash is illegal in sh function names, this cannot work, please rename the class or don't use EXPORT_FUNCTIONS." % (self.classname, calledfunc))
data.setVar(func, " " + calledfunc + "\n")
data.setVarFlag(func, 'export_func', '1')
diff --git a/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
index 978ebe4608..861faf0e76 100644
--- a/bitbake/lib/bb/parse/parse_py/ConfHandler.py
+++ b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
@@ -27,7 +27,7 @@
import re, os
import logging
import bb.utils
-from bb.parse import ParseError, resolve_file, ast, logger
+from bb.parse import ParseError, resolve_file, ast, logger, handle
__config_regexp__ = re.compile( r"""
^
@@ -66,38 +66,36 @@ def init(data):
def supports(fn, d):
return fn[-5:] == ".conf"
-def include(oldfn, fn, lineno, data, error_out):
+def include(parentfn, fn, lineno, data, error_out):
"""
error_out: A string indicating the verb (e.g. "include", "inherit") to be
used in a ParseError that will be raised if the file to be included could
not be included. Specify False to avoid raising an error in this case.
"""
- if oldfn == fn: # prevent infinite recursion
+ if parentfn == fn: # prevent infinite recursion
return None
- import bb
fn = data.expand(fn)
- oldfn = data.expand(oldfn)
+ parentfn = data.expand(parentfn)
if not os.path.isabs(fn):
- dname = os.path.dirname(oldfn)
+ dname = os.path.dirname(parentfn)
bbpath = "%s:%s" % (dname, data.getVar("BBPATH", True))
abs_fn, attempts = bb.utils.which(bbpath, fn, history=True)
if abs_fn and bb.parse.check_dependency(data, abs_fn):
- bb.warn("Duplicate inclusion for %s in %s" % (abs_fn, data.getVar('FILE', True)))
+ logger.warn("Duplicate inclusion for %s in %s" % (abs_fn, data.getVar('FILE', True)))
for af in attempts:
bb.parse.mark_dependency(data, af)
if abs_fn:
fn = abs_fn
elif bb.parse.check_dependency(data, fn):
- bb.warn("Duplicate inclusion for %s in %s" % (fn, data.getVar('FILE', True)))
+ logger.warn("Duplicate inclusion for %s in %s" % (fn, data.getVar('FILE', True)))
- from bb.parse import handle
try:
- ret = handle(fn, data, True)
+ ret = bb.parse.handle(fn, data, True)
except (IOError, OSError):
if error_out:
- raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), oldfn, lineno)
+ raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), parentfn, lineno)
logger.debug(2, "CONF file '%s' not found", fn)
bb.parse.mark_dependency(data, fn)
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 90c610695f..c503980666 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -430,7 +430,7 @@ class RunQueueData:
# Nothing to do
return 0
- logger.info("Preparing runqueue")
+ logger.info("Preparing RunQueue")
# Step A - Work out a list of tasks to run
#
diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py
index d362f8d7fe..c9286ddba7 100644
--- a/bitbake/lib/bb/server/process.py
+++ b/bitbake/lib/bb/server/process.py
@@ -115,7 +115,7 @@ class ProcessServer(Process, BaseImplServer):
self.quitout.recv()
self.quit = True
- self.idle_commands(.1, [self.event_queue._reader, self.command_channel, self.quitout])
+ self.idle_commands(.1, [self.command_channel, self.quitout])
except Exception:
logger.exception('Running command %s', command)
@@ -135,6 +135,9 @@ class ProcessServer(Process, BaseImplServer):
nextsleep = None
elif retval is True:
nextsleep = None
+ elif isinstance(retval, float):
+ if (retval < nextsleep):
+ nextsleep = retval
elif nextsleep is None:
continue
else:
diff --git a/bitbake/lib/bb/server/xmlrpc.py b/bitbake/lib/bb/server/xmlrpc.py
index 4205a4c35f..75ec8556f4 100644
--- a/bitbake/lib/bb/server/xmlrpc.py
+++ b/bitbake/lib/bb/server/xmlrpc.py
@@ -235,12 +235,16 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
fds = [self]
nextsleep = 0.1
for function, data in self._idlefuns.items():
+ retval = None
try:
retval = function(self, data, False)
if retval is False:
del self._idlefuns[function]
elif retval is True:
nextsleep = 0
+ elif isinstance(retval, float):
+ if (retval < nextsleep):
+ nextsleep = retval
else:
fds = fds + retval
except SystemExit:
@@ -248,6 +252,9 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
except:
import traceback
traceback.print_exc()
+ if retval == None:
+ # the function execute failed; delete it
+ del self._idlefuns[function]
pass
socktimeout = self.socket.gettimeout() or nextsleep
@@ -299,6 +306,8 @@ class BitBakeXMLRPCServerConnection(BitBakeBaseServerConnection):
_, error = self.connection.runCommand(["setFeatures", self.featureset])
if error:
+ # disconnect the client, we can't make the setFeature work
+ self.connection.removeClient()
# no need to log it here, the error shall be sent to the client
raise BaseException(error)
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index 28f93bae7b..2de3aff332 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -62,6 +62,13 @@ class SignatureGenerator(object):
def dump_sigs(self, dataCache, options):
return
+ def get_taskdata(self):
+ return (self.runtaskdeps, self.taskhash, self.file_checksum_values)
+
+ def set_taskdata(self, data):
+ self.runtaskdeps, self.taskhash, self.file_checksum_values = data
+
+
class SignatureGeneratorBasic(SignatureGenerator):
"""
"""
@@ -185,7 +192,14 @@ class SignatureGeneratorBasic(SignatureGenerator):
checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename)
for (f,cs) in checksums:
self.file_checksum_values[k][f] = cs
- data = data + cs
+ if cs:
+ data = data + cs
+
+ taskdep = dataCache.task_deps[fn]
+ if 'nostamp' in taskdep and task in taskdep['nostamp']:
+ # Nostamp tasks need an implicit taint so that they force any dependent tasks to run
+ import uuid
+ data = data + str(uuid.uuid4())
taint = self.read_taint(fn, task, dataCache.stamp[fn])
if taint:
@@ -197,12 +211,6 @@ class SignatureGeneratorBasic(SignatureGenerator):
#d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task])
return h
- def get_taskdata(self):
- return (self.runtaskdeps, self.taskhash, self.file_checksum_values)
-
- def set_taskdata(self, data):
- self.runtaskdeps, self.taskhash, self.file_checksum_values = data
-
def dump_sigtask(self, fn, task, stampbase, runtime):
k = fn + "." + task
if runtime == "customfile":
@@ -306,6 +314,12 @@ def clean_basepaths(a):
b[clean_basepath(x)] = a[x]
return b
+def clean_basepaths_list(a):
+ b = []
+ for x in a:
+ b.append(clean_basepath(x))
+ return b
+
def compare_sigfiles(a, b, recursecb = None):
output = []
@@ -405,6 +419,17 @@ def compare_sigfiles(a, b, recursecb = None):
for f in removed:
output.append("Dependency on checksum of file %s was removed" % (f))
+ changed = []
+ for idx, task in enumerate(a_data['runtaskdeps']):
+ a = a_data['runtaskdeps'][idx]
+ b = b_data['runtaskdeps'][idx]
+ if a_data['runtaskhashes'][a] != b_data['runtaskhashes'][b]:
+ changed.append("%s with hash %s\n changed to\n%s with hash %s" % (a, a_data['runtaskhashes'][a], b, b_data['runtaskhashes'][b]))
+
+ if changed:
+ output.append("runtaskdeps changed from %s to %s" % (clean_basepaths_list(a_data['runtaskdeps']), clean_basepaths_list(b_data['runtaskdeps'])))
+ output.append("\n".join(changed))
+
if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data:
a = a_data['runtaskhashes']
@@ -481,4 +506,17 @@ def dump_sigfile(a):
if 'taint' in a_data:
output.append("Tainted (by forced/invalidated task): %s" % a_data['taint'])
+ data = a_data['basehash']
+ for dep in a_data['runtaskdeps']:
+ data = data + a_data['runtaskhashes'][dep]
+
+ for c in a_data['file_checksum_values']:
+ data = data + c[1]
+
+ if 'taint' in a_data:
+ data = data + a_data['taint']
+
+ h = hashlib.md5(data).hexdigest()
+ output.append("Computed Hash is %s" % h)
+
return output
diff --git a/bitbake/lib/bb/tests/data.py b/bitbake/lib/bb/tests/data.py
index 9b09ff4c61..7994a88a78 100644
--- a/bitbake/lib/bb/tests/data.py
+++ b/bitbake/lib/bb/tests/data.py
@@ -121,6 +121,12 @@ class DataExpansions(unittest.TestCase):
keys = self.d.keys()
self.assertEqual(keys, ['value_of_foo', 'foo', 'bar'])
+ def test_keys_deletion(self):
+ newd = bb.data.createCopy(self.d)
+ newd.delVar("bar")
+ keys = newd.keys()
+ self.assertEqual(keys, ['value_of_foo', 'foo'])
+
class TestNestedExpansions(unittest.TestCase):
def setUp(self):
self.d = bb.data.init()
@@ -266,6 +272,13 @@ class TestConcatOverride(unittest.TestCase):
bb.data.update_data(self.d)
self.assertEqual(self.d.getVar("TEST", True), "Y")
+ def test_remove_expansion_items(self):
+ self.d.setVar("TEST", "A B C D")
+ self.d.setVar("BAR", "B D")
+ self.d.setVar("TEST_remove", "${BAR}")
+ bb.data.update_data(self.d)
+ self.assertEqual(self.d.getVar("TEST", True), "A C")
+
class TestOverrides(unittest.TestCase):
def setUp(self):
self.d = bb.data.init()
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py
index d95b43a5e3..d56ef49948 100644
--- a/bitbake/lib/bb/tests/fetch.py
+++ b/bitbake/lib/bb/tests/fetch.py
@@ -24,6 +24,7 @@ import tempfile
import subprocess
import os
from bb.fetch2 import URI
+from bb.fetch2 import FetchMethod
import bb
class URITest(unittest.TestCase):
@@ -565,5 +566,83 @@ class URLHandle(unittest.TestCase):
result = bb.fetch.encodeurl(v)
self.assertEqual(result, k)
+class FetchMethodTest(FetcherTest):
+
+ test_git_uris = {
+ # version pattern "X.Y.Z"
+ ("mx-1.0", "git://github.com/clutter-project/mx.git;branch=mx-1.4", "9b1db6b8060bd00b121a692f942404a24ae2960f", "")
+ : "1.99.4",
+ # version pattern "vX.Y"
+ ("mtd-utils", "git://git.infradead.org/mtd-utils.git", "ca39eb1d98e736109c64ff9c1aa2a6ecca222d8f", "")
+ : "1.5.0",
+ # version pattern "pkg_name-X.Y"
+ ("presentproto", "git://anongit.freedesktop.org/git/xorg/proto/presentproto", "24f3a56e541b0a9e6c6ee76081f441221a120ef9", "")
+ : "1.0",
+ # version pattern "pkg_name-vX.Y.Z"
+ ("dtc", "git://git.qemu.org/dtc.git", "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf", "")
+ : "1.4.0",
+ # combination version pattern
+ ("sysprof", "git://git.gnome.org/sysprof", "cd44ee6644c3641507fb53b8a2a69137f2971219", "")
+ : "1.2.0",
+ ("u-boot-mkimage", "git://git.denx.de/u-boot.git;branch=master;protocol=git", "62c175fbb8a0f9a926c88294ea9f7e88eb898f6c", "")
+ : "2014.01",
+ # version pattern "yyyymmdd"
+ ("mobile-broadband-provider-info", "git://git.gnome.org/mobile-broadband-provider-info", "4ed19e11c2975105b71b956440acdb25d46a347d", "")
+ : "20120614",
+ # packages with a valid GITTAGREGEX
+ ("xf86-video-omap", "git://anongit.freedesktop.org/xorg/driver/xf86-video-omap", "ae0394e687f1a77e966cf72f895da91840dffb8f", "(?P<pver>(\d+\.(\d\.?)*))")
+ : "0.4.3",
+ ("build-appliance-image", "git://git.yoctoproject.org/poky", "b37dd451a52622d5b570183a81583cc34c2ff555", "(?P<pver>(([0-9][\.|_]?)+[0-9]))")
+ : "11.0.0",
+ ("chkconfig-alternatives-native", "git://github.com/kergoth/chkconfig;branch=sysroot", "cd437ecbd8986c894442f8fce1e0061e20f04dee", "chkconfig\-(?P<pver>((\d+[\.\-_]*)+))")
+ : "1.3.59",
+ ("remake", "git://github.com/rocky/remake.git", "f05508e521987c8494c92d9c2871aec46307d51d", "(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))")
+ : "3.82+dbg0.9",
+ }
-
+ test_wget_uris = {
+ # packages with versions inside directory name
+ ("util-linux", "http://kernel.org/pub/linux/utils/util-linux/v2.23/util-linux-2.24.2.tar.bz2", "", "")
+ : "2.24.2",
+ ("enchant", "http://www.abisource.com/downloads/enchant/1.6.0/enchant-1.6.0.tar.gz", "", "")
+ : "1.6.0",
+ ("cmake", "http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz", "", "")
+ : "2.8.12.1",
+ # packages with versions only in current directory
+ ("eglic", "http://downloads.yoctoproject.org/releases/eglibc/eglibc-2.18-svnr23787.tar.bz2", "", "")
+ : "2.19",
+ ("gnu-config", "http://downloads.yoctoproject.org/releases/gnu-config/gnu-config-20120814.tar.bz2", "", "")
+ : "20120814",
+ # packages with "99" in the name of possible version
+ ("pulseaudio", "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-4.0.tar.xz", "", "")
+ : "5.0",
+ ("xserver-xorg", "http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.15.1.tar.bz2", "", "")
+ : "1.15.1",
+ # packages with valid REGEX_URI and REGEX
+ ("cups", "http://www.cups.org/software/1.7.2/cups-1.7.2-source.tar.bz2", "http://www.cups.org/software.php", "(?P<name>cups\-)(?P<pver>((\d+[\.\-_]*)+))\-source\.tar\.gz")
+ : "2.0.0",
+ ("db", "http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz", "http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html", "http://download.oracle.com/otn/berkeley-db/(?P<name>db-)(?P<pver>((\d+[\.\-_]*)+))\.tar\.gz")
+ : "6.1.19",
+ }
+ if os.environ.get("BB_SKIP_NETTESTS") == "yes":
+ print("Unset BB_SKIP_NETTESTS to run network tests")
+ else:
+ def test_git_latest_versionstring(self):
+ for k, v in self.test_git_uris.items():
+ self.d.setVar("PN", k[0])
+ self.d.setVar("SRCREV", k[2])
+ self.d.setVar("GITTAGREGEX", k[3])
+ ud = bb.fetch2.FetchData(k[1], self.d)
+ verstring = ud.method.latest_versionstring(ud, self.d)
+ r = bb.utils.vercmp_string(v, verstring)
+ self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring))
+
+ def test_wget_latest_versionstring(self):
+ for k, v in self.test_wget_uris.items():
+ self.d.setVar("PN", k[0])
+ self.d.setVar("REGEX_URI", k[2])
+ self.d.setVar("REGEX", k[3])
+ ud = bb.fetch2.FetchData(k[1], self.d)
+ verstring = ud.method.latest_versionstring(ud, self.d)
+ r = bb.utils.vercmp_string(v, verstring)
+ self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring))
diff --git a/bitbake/lib/bb/tests/utils.py b/bitbake/lib/bb/tests/utils.py
index 7c50b1d786..6e09858e51 100644
--- a/bitbake/lib/bb/tests/utils.py
+++ b/bitbake/lib/bb/tests/utils.py
@@ -21,6 +21,7 @@
import unittest
import bb
+import os
class VerCmpString(unittest.TestCase):
@@ -35,6 +36,10 @@ class VerCmpString(unittest.TestCase):
self.assertTrue(result < 0)
result = bb.utils.vercmp_string('1.1', '1_p2')
self.assertTrue(result < 0)
+ result = bb.utils.vercmp_string('1.0', '1.0+1.1-beta1')
+ self.assertTrue(result < 0)
+ result = bb.utils.vercmp_string('1.1', '1.0+1.1-beta1')
+ self.assertTrue(result > 0)
def test_explode_dep_versions(self):
correctresult = {"foo" : ["= 1.10"]}
@@ -51,3 +56,52 @@ class VerCmpString(unittest.TestCase):
result = bb.utils.explode_dep_versions2("foo ( =1.10 )")
self.assertEqual(result, correctresult)
+ def test_vercmp_string_op(self):
+ compareops = [('1', '1', '=', True),
+ ('1', '1', '==', True),
+ ('1', '1', '!=', False),
+ ('1', '1', '>', False),
+ ('1', '1', '<', False),
+ ('1', '1', '>=', True),
+ ('1', '1', '<=', True),
+ ('1', '0', '=', False),
+ ('1', '0', '==', False),
+ ('1', '0', '!=', True),
+ ('1', '0', '>', True),
+ ('1', '0', '<', False),
+ ('1', '0', '>>', True),
+ ('1', '0', '<<', False),
+ ('1', '0', '>=', True),
+ ('1', '0', '<=', False),
+ ('0', '1', '=', False),
+ ('0', '1', '==', False),
+ ('0', '1', '!=', True),
+ ('0', '1', '>', False),
+ ('0', '1', '<', True),
+ ('0', '1', '>>', False),
+ ('0', '1', '<<', True),
+ ('0', '1', '>=', False),
+ ('0', '1', '<=', True)]
+
+ for arg1, arg2, op, correctresult in compareops:
+ result = bb.utils.vercmp_string_op(arg1, arg2, op)
+ self.assertEqual(result, correctresult, 'vercmp_string_op("%s", "%s", "%s") != %s' % (arg1, arg2, op, correctresult))
+
+ # Check that clearly invalid operator raises an exception
+ self.assertRaises(bb.utils.VersionStringException, bb.utils.vercmp_string_op, '0', '0', '$')
+
+
+class Path(unittest.TestCase):
+ def test_unsafe_delete_path(self):
+ checkitems = [('/', True),
+ ('//', True),
+ ('///', True),
+ (os.getcwd().count(os.sep) * ('..' + os.sep), True),
+ (os.environ.get('HOME', '/home/test'), True),
+ ('/home/someone', True),
+ ('/home/other/', True),
+ ('/home/other/subdir', False),
+ ('', False)]
+ for arg1, correctresult in checkitems:
+ result = bb.utils._check_unsafe_delete_path(arg1)
+ self.assertEqual(result, correctresult, '_check_unsafe_delete_path("%s") != %s' % (arg1, correctresult))
diff --git a/bitbake/lib/bb/tinfoil.py b/bitbake/lib/bb/tinfoil.py
index 6bcbd47ab3..8fc9be3039 100644
--- a/bitbake/lib/bb/tinfoil.py
+++ b/bitbake/lib/bb/tinfoil.py
@@ -90,7 +90,7 @@ class TinfoilConfigParameters(ConfigParameters):
self.initial_options = options
super(TinfoilConfigParameters, self).__init__()
- def parseCommandLine(self):
+ def parseCommandLine(self, argv=sys.argv):
class DummyOptions:
def __init__(self, initial_options):
for key, val in initial_options.items():
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py
index a0a2d80ffa..64bd94e5e8 100644
--- a/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/bitbake/lib/bb/ui/buildinfohelper.py
@@ -26,12 +26,20 @@ os.environ["DJANGO_SETTINGS_MODULE"] = "toaster.toastermain.settings"
import toaster.toastermain.settings as toaster_django_settings
from toaster.orm.models import Build, Task, Recipe, Layer_Version, Layer, Target, LogMessage, HelpText
-from toaster.orm.models import Target_Image_File
+from toaster.orm.models import Target_Image_File, BuildArtifact
from toaster.orm.models import Variable, VariableHistory
from toaster.orm.models import Package, Package_File, Target_Installed_Package, Target_File
from toaster.orm.models import Task_Dependency, Package_Dependency
from toaster.orm.models import Recipe_Dependency
from bb.msg import BBLogFormatter as format
+from django.db import models
+from pprint import pformat
+import logging
+
+from django.db import transaction, connection
+
+logger = logging.getLogger("BitBake")
+
class NotExisting(Exception):
pass
@@ -43,8 +51,57 @@ class ORMWrapper(object):
"""
def __init__(self):
+ self.layer_version_objects = []
+ self.task_objects = {}
+ self.recipe_objects = {}
pass
+ @staticmethod
+ def _build_key(**kwargs):
+ key = "0"
+ for k in sorted(kwargs.keys()):
+ if isinstance(kwargs[k], models.Model):
+ key += "-%d" % kwargs[k].id
+ else:
+ key += "-%s" % str(kwargs[k])
+ return key
+
+
+ def _cached_get_or_create(self, clazz, **kwargs):
+ """ This is a memory-cached get_or_create. We assume that the objects will not be created in the
+ database through any other means.
+ """
+
+ assert issubclass(clazz, models.Model), "_cached_get_or_create needs to get the class as first argument"
+
+ key = ORMWrapper._build_key(**kwargs)
+ dictname = "objects_%s" % clazz.__name__
+ if not dictname in vars(self).keys():
+ vars(self)[dictname] = {}
+
+ created = False
+ if not key in vars(self)[dictname].keys():
+ vars(self)[dictname][key] = clazz.objects.create(**kwargs)
+ created = True
+
+ return (vars(self)[dictname][key], created)
+
+
+ def _cached_get(self, clazz, **kwargs):
+ """ This is a memory-cached get. We assume that the objects will not change in the database between gets.
+ """
+ assert issubclass(clazz, models.Model), "_cached_get needs to get the class as first argument"
+
+ key = ORMWrapper._build_key(**kwargs)
+ dictname = "objects_%s" % clazz.__name__
+
+ if not dictname in vars(self).keys():
+ vars(self)[dictname] = {}
+
+ if not key in vars(self)[dictname].keys():
+ vars(self)[dictname][key] = clazz.objects.get(**kwargs)
+
+ return vars(self)[dictname][key]
def create_build_object(self, build_info, brbe):
assert 'machine' in build_info
@@ -65,13 +122,18 @@ class ORMWrapper(object):
build_name=build_info['build_name'],
bitbake_version=build_info['bitbake_version'])
+ logger.debug(1, "buildinfohelper: build is created %s" % build)
if brbe is not None:
+ logger.debug(1, "buildinfohelper: brbe is %s" % brbe)
from bldcontrol.models import BuildEnvironment, BuildRequest
br, be = brbe.split(":")
+
buildrequest = BuildRequest.objects.get(pk = br)
+ buildrequest.build = build
+ buildrequest.save()
+
build.project_id = buildrequest.project_id
build.save()
-
return build
def create_target_objects(self, target_info):
@@ -83,7 +145,7 @@ class ORMWrapper(object):
tgt_object = Target.objects.create( build = target_info['build'],
target = tgt_name,
is_image = False,
- );
+ )
targets.append(tgt_object)
return targets
@@ -103,8 +165,7 @@ class ORMWrapper(object):
build.outcome = outcome
build.save()
- def update_target_object(self, target, license_manifest_path):
-
+ def update_target_set_license_manifest(self, target, license_manifest_path):
target.license_manifest_path = license_manifest_path
target.save()
@@ -113,39 +174,47 @@ class ORMWrapper(object):
assert 'recipe' in task_information
assert 'task_name' in task_information
- task_object, created = Task.objects.get_or_create(
- build=task_information['build'],
- recipe=task_information['recipe'],
- task_name=task_information['task_name'],
- )
-
- if must_exist and created:
- task_information['debug'] = "build id %d, recipe id %d" % (task_information['build'].pk, task_information['recipe'].pk)
- task_object.delete()
- raise NotExisting("Task object created when expected to exist", task_information)
+ # we use must_exist info for database look-up optimization
+ task_object, created = self._cached_get_or_create(Task,
+ build=task_information['build'],
+ recipe=task_information['recipe'],
+ task_name=task_information['task_name']
+ )
+ if created and must_exist:
+ task_information['debug'] = "build id %d, recipe id %d" % (task_information['build'].pk, task_information['recipe'].pk)
+ raise NotExisting("Task object created when expected to exist", task_information)
+ object_changed = False
for v in vars(task_object):
if v in task_information.keys():
- vars(task_object)[v] = task_information[v]
+ if vars(task_object)[v] != task_information[v]:
+ vars(task_object)[v] = task_information[v]
+ object_changed = True
- # update setscene-related information
- if 1 == Task.objects.related_setscene(task_object).count():
- if task_object.outcome == Task.OUTCOME_COVERED:
- task_object.outcome = Task.OUTCOME_CACHED
+ # update setscene-related information if the task has a setscene
+ if task_object.outcome == Task.OUTCOME_COVERED and 1 == task_object.get_related_setscene().count():
+ task_object.outcome = Task.OUTCOME_CACHED
+ object_changed = True
outcome_task_setscene = Task.objects.get(task_executed=True, build = task_object.build,
recipe = task_object.recipe, task_name=task_object.task_name+"_setscene").outcome
if outcome_task_setscene == Task.OUTCOME_SUCCESS:
task_object.sstate_result = Task.SSTATE_RESTORED
+ object_changed = True
elif outcome_task_setscene == Task.OUTCOME_FAILED:
task_object.sstate_result = Task.SSTATE_FAILED
+ object_changed = True
# mark down duration if we have a start time and a current time
if 'start_time' in task_information.keys() and 'end_time' in task_information.keys():
duration = task_information['end_time'] - task_information['start_time']
task_object.elapsed_time = duration
+ object_changed = True
+ del task_information['start_time']
+ del task_information['end_time']
- task_object.save()
+ if object_changed:
+ task_object.save()
return task_object
@@ -153,20 +222,22 @@ class ORMWrapper(object):
assert 'layer_version' in recipe_information
assert 'file_path' in recipe_information
+ if recipe_information['file_path'].startswith(recipe_information['layer_version'].layer.local_path):
+ recipe_information['file_path'] = recipe_information['file_path'][len(recipe_information['layer_version'].layer.local_path):].lstrip("/")
- recipe_object, created = Recipe.objects.get_or_create(
- layer_version=recipe_information['layer_version'],
- file_path=recipe_information['file_path'])
-
- if must_exist and created:
- recipe_object.delete()
+ recipe_object, created = self._cached_get_or_create(Recipe, layer_version=recipe_information['layer_version'],
+ file_path=recipe_information['file_path'])
+ if created and must_exist:
raise NotExisting("Recipe object created when expected to exist", recipe_information)
+ object_changed = False
for v in vars(recipe_object):
if v in recipe_information.keys():
+ object_changed = True
vars(recipe_object)[v] = recipe_information[v]
- recipe_object.save()
+ if object_changed:
+ recipe_object.save()
return recipe_object
@@ -185,19 +256,53 @@ class ORMWrapper(object):
priority = layer_version_information['priority']
)
+ self.layer_version_objects.append(layer_version_object)
+
return layer_version_object
- def get_update_layer_object(self, layer_information):
+ def get_update_layer_object(self, layer_information, brbe):
assert 'name' in layer_information
assert 'local_path' in layer_information
assert 'layer_index_url' in layer_information
- layer_object, created = Layer.objects.get_or_create(
+ if brbe is None:
+ layer_object, created = Layer.objects.get_or_create(
name=layer_information['name'],
local_path=layer_information['local_path'],
layer_index_url=layer_information['layer_index_url'])
+ return layer_object
+ else:
+ # we are under managed mode; we must match the layer used in the Project Layer
+ from bldcontrol.models import BuildEnvironment, BuildRequest
+ br_id, be_id = brbe.split(":")
+
+ # find layer by checkout path;
+ from bldcontrol import bbcontroller
+ bc = bbcontroller.getBuildEnvironmentController(pk = be_id)
+
+ # we might have a race condition here, as the project layers may change between the build trigger and the actual build execution
+ # but we can only match on the layer name, so the worst thing can happen is a mis-identification of the layer, not a total failure
+
+ # note that this is different
+ buildrequest = BuildRequest.objects.get(pk = br_id)
+ for brl in buildrequest.brlayer_set.all():
+ localdirname = os.path.join(bc.getGitCloneDirectory(brl.giturl, brl.commit), brl.dirpath)
+ # we get a relative path, unless running in HEAD mode where the path is absolute
+ if not localdirname.startswith("/"):
+ localdirname = os.path.join(bc.be.sourcedir, localdirname)
+ #logger.debug(1, "Localdirname %s lcal_path %s" % (localdirname, layer_information['local_path']))
+ if localdirname.startswith(layer_information['local_path']):
+ # we matched the BRLayer, but we need the layer_version that generated this BR; reverse of the Project.schedule_build()
+ #logger.debug(1, "Matched %s to BRlayer %s" % (pformat(layer_information["local_path"]), localdirname))
+ for pl in buildrequest.project.projectlayer_set.filter(layercommit__layer__name = brl.name):
+ if pl.layercommit.layer.vcs_url == brl.giturl :
+ layer = pl.layercommit.layer
+ layer.local_path = layer_information['local_path']
+ layer.save()
+ return layer
+
+ raise NotExisting("Unidentified layer %s" % pformat(layer_information))
- return layer_object
def save_target_file_information(self, build_obj, target_obj, filedata):
assert isinstance(build_obj, Build)
@@ -229,7 +334,7 @@ class ORMWrapper(object):
parent_path = "/".join(path.split("/")[:len(path.split("/")) - 1])
if len(parent_path) == 0:
parent_path = "/"
- parent_obj = Target_File.objects.get(target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY)
+ parent_obj = self._cached_get(Target_File, target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY)
tf_obj = Target_File.objects.create(
target = target_obj,
path = path,
@@ -263,7 +368,7 @@ class ORMWrapper(object):
permission = permission,
owner = user,
group = group)
- parent_obj = Target_File.objects.get(target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY)
+ parent_obj = self._cached_get(Target_File, target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY)
tf_obj.directory = parent_obj
tf_obj.save()
@@ -318,8 +423,7 @@ class ORMWrapper(object):
searchname = pkgpnmap[p]['OPKGN']
packagedict[p]['object'], created = Package.objects.get_or_create( build = build_obj, name = searchname )
- if created:
- # package was not build in the current build, but
+ if created or packagedict[p]['object'].size == -1: # save the data anyway we can, not just if it was not created here; bug [YOCTO #6887]
# fill in everything we can from the runtime-reverse package data
try:
packagedict[p]['object'].recipe = recipes[pkgpnmap[p]['PN']]
@@ -333,11 +437,14 @@ class ORMWrapper(object):
packagedict[p]['object'].size = int(pkgpnmap[p]['PKGSIZE'])
# no files recorded for this package, so save files info
+ packagefile_objects = []
for targetpath in pkgpnmap[p]['FILES_INFO']:
targetfilesize = pkgpnmap[p]['FILES_INFO'][targetpath]
- Package_File.objects.create( package = packagedict[p]['object'],
+ packagefile_objects.append(Package_File( package = packagedict[p]['object'],
path = targetpath,
- size = targetfilesize)
+ size = targetfilesize))
+ if len(packagefile_objects):
+ Package_File.objects.bulk_create(packagefile_objects)
except KeyError as e:
errormsg += " stpi: Key error, package %s key %s \n" % ( p, e )
@@ -347,6 +454,7 @@ class ORMWrapper(object):
Target_Installed_Package.objects.create(target = target_obj, package = packagedict[p]['object'])
+ packagedeps_objs = []
for p in packagedict:
for (px,deptype) in packagedict[p]['depends']:
if deptype == 'depends':
@@ -354,19 +462,32 @@ class ORMWrapper(object):
elif deptype == 'recommends':
tdeptype = Package_Dependency.TYPE_TRECOMMENDS
- Package_Dependency.objects.create( package = packagedict[p]['object'],
+ packagedeps_objs.append(Package_Dependency( package = packagedict[p]['object'],
depends_on = packagedict[px]['object'],
dep_type = tdeptype,
- target = target_obj);
+ target = target_obj))
+
+ if len(packagedeps_objs) > 0:
+ Package_Dependency.objects.bulk_create(packagedeps_objs)
if (len(errormsg) > 0):
- raise Exception(errormsg)
+ logger.warn("buildinfohelper: target_package_info could not identify recipes: \n%s" % errormsg)
def save_target_image_file_information(self, target_obj, file_name, file_size):
target_image_file = Target_Image_File.objects.create( target = target_obj,
file_name = file_name,
file_size = file_size)
- target_image_file.save()
+
+ def save_artifact_information(self, build_obj, file_name, file_size):
+ # we skip the image files from other builds
+ if Target_Image_File.objects.filter(file_name = file_name).count() > 0:
+ return
+
+ # do not update artifacts found in other builds
+ if BuildArtifact.objects.filter(file_name = file_name).count() > 0:
+ return
+
+ BuildArtifact.objects.create(build = build_obj, file_name = file_name, file_size = file_size)
def create_logmessage(self, log_information):
assert 'build' in log_information
@@ -408,10 +529,13 @@ class ORMWrapper(object):
bp_object.save()
# save any attached file information
+ packagefile_objects = []
for path in package_info['FILES_INFO']:
- fo = Package_File.objects.create( package = bp_object,
+ packagefile_objects.append(Package_File( package = bp_object,
path = path,
- size = package_info['FILES_INFO'][path] )
+ size = package_info['FILES_INFO'][path] ))
+ if len(packagefile_objects):
+ Package_File.objects.bulk_create(packagefile_objects)
def _po_byname(p):
pkg, created = Package.objects.get_or_create(build = build_obj, name = p)
@@ -420,39 +544,44 @@ class ORMWrapper(object):
pkg.save()
return pkg
+ packagedeps_objs = []
# save soft dependency information
if 'RDEPENDS' in package_info and package_info['RDEPENDS']:
for p in bb.utils.explode_deps(package_info['RDEPENDS']):
- Package_Dependency.objects.get_or_create( package = bp_object,
- depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RDEPENDS)
+ packagedeps_objs.append(Package_Dependency( package = bp_object,
+ depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RDEPENDS))
if 'RPROVIDES' in package_info and package_info['RPROVIDES']:
for p in bb.utils.explode_deps(package_info['RPROVIDES']):
- Package_Dependency.objects.get_or_create( package = bp_object,
- depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RPROVIDES)
+ packagedeps_objs.append(Package_Dependency( package = bp_object,
+ depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RPROVIDES))
if 'RRECOMMENDS' in package_info and package_info['RRECOMMENDS']:
for p in bb.utils.explode_deps(package_info['RRECOMMENDS']):
- Package_Dependency.objects.get_or_create( package = bp_object,
- depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RRECOMMENDS)
+ packagedeps_objs.append(Package_Dependency( package = bp_object,
+ depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RRECOMMENDS))
if 'RSUGGESTS' in package_info and package_info['RSUGGESTS']:
for p in bb.utils.explode_deps(package_info['RSUGGESTS']):
- Package_Dependency.objects.get_or_create( package = bp_object,
- depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RSUGGESTS)
+ packagedeps_objs.append(Package_Dependency( package = bp_object,
+ depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RSUGGESTS))
if 'RREPLACES' in package_info and package_info['RREPLACES']:
for p in bb.utils.explode_deps(package_info['RREPLACES']):
- Package_Dependency.objects.get_or_create( package = bp_object,
- depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RREPLACES)
+ packagedeps_objs.append(Package_Dependency( package = bp_object,
+ depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RREPLACES))
if 'RCONFLICTS' in package_info and package_info['RCONFLICTS']:
for p in bb.utils.explode_deps(package_info['RCONFLICTS']):
- Package_Dependency.objects.get_or_create( package = bp_object,
- depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RCONFLICTS)
+ packagedeps_objs.append(Package_Dependency( package = bp_object,
+ depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RCONFLICTS))
+
+ if len(packagedeps_objs) > 0:
+ Package_Dependency.objects.bulk_create(packagedeps_objs)
return bp_object
def save_build_variables(self, build_obj, vardump):
assert isinstance(build_obj, Build)
+ helptext_objects = []
for k in vardump:
- desc = vardump[k]['doc'];
+ desc = vardump[k]['doc']
if desc is None:
var_words = [word for word in k.split('_')]
root_var = "_".join([word for word in var_words if word.isupper()])
@@ -460,25 +589,31 @@ class ORMWrapper(object):
desc = vardump[root_var]['doc']
if desc is None:
desc = ''
- if desc:
- helptext_obj = HelpText.objects.create(build=build_obj,
+ if len(desc):
+ helptext_objects.append(HelpText(build=build_obj,
area=HelpText.VARIABLE,
key=k,
- text=desc)
+ text=desc))
if not bool(vardump[k]['func']):
- value = vardump[k]['v'];
+ value = vardump[k]['v']
if value is None:
value = ''
variable_obj = Variable.objects.create( build = build_obj,
variable_name = k,
variable_value = value,
description = desc)
+
+ varhist_objects = []
for vh in vardump[k]['history']:
if not 'documentation.conf' in vh['file']:
- VariableHistory.objects.create( variable = variable_obj,
+ varhist_objects.append(VariableHistory( variable = variable_obj,
file_name = vh['file'],
line_number = vh['line'],
- operation = vh['op'])
+ operation = vh['op']))
+ if len(varhist_objects):
+ VariableHistory.objects.bulk_create(varhist_objects)
+
+ HelpText.objects.bulk_create(helptext_objects)
class MockEvent: pass # sometimes we mock an event, declare it here
@@ -495,11 +630,16 @@ class BuildInfoHelper(object):
self.internal_state = {}
self.internal_state['taskdata'] = {}
self.task_order = 0
+ self.autocommit_step = 1
self.server = server
+ # we use manual transactions if the database doesn't autocommit on us
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(False)
self.orm_wrapper = ORMWrapper()
self.has_build_history = has_build_history
self.tmp_dir = self.server.runCommand(["getVariable", "TMPDIR"])[0]
self.brbe = self.server.runCommand(["getVariable", "TOASTER_BRBE"])[0]
+ logger.debug(1, "buildinfohelper: Build info helper inited %s" % vars(self))
def _configure_django(self):
@@ -544,19 +684,47 @@ class BuildInfoHelper(object):
assert path.startswith("/")
assert 'build' in self.internal_state
- def _slkey(layer_version):
- assert isinstance(layer_version, Layer_Version)
- return len(layer_version.layer.local_path)
+ if self.brbe is None:
+ def _slkey_interactive(layer_version):
+ assert isinstance(layer_version, Layer_Version)
+ return len(layer_version.layer.local_path)
- # Heuristics: we always match recipe to the deepest layer path that
- # we can match to the recipe file path
- for bl in sorted(Layer_Version.objects.filter(build = self.internal_state['build']), reverse=True, key=_slkey):
- if (path.startswith(bl.layer.local_path)):
- return bl
+ # Heuristics: we always match recipe to the deepest layer path in the discovered layers
+ for lvo in sorted(self.orm_wrapper.layer_version_objects, reverse=True, key=_slkey_interactive):
+ # we can match to the recipe file path
+ if path.startswith(lvo.layer.local_path):
+ return lvo
- #TODO: if we get here, we didn't read layers correctly
- assert False
- return None
+ else:
+ br_id, be_id = self.brbe.split(":")
+ from bldcontrol.bbcontroller import getBuildEnvironmentController
+ from bldcontrol.models import BuildRequest
+ bc = getBuildEnvironmentController(pk = be_id)
+
+ def _slkey_managed(layer_version):
+ return len(bc.getGitCloneDirectory(layer_version.giturl, layer_version.commit) + layer_version.dirpath)
+
+ # Heuristics: we match the path to where the layers have been checked out
+ for brl in sorted(BuildRequest.objects.get(pk = br_id).brlayer_set.all(), reverse = True, key = _slkey_managed):
+ localdirname = os.path.join(bc.getGitCloneDirectory(brl.giturl, brl.commit), brl.dirpath)
+ # we get a relative path, unless running in HEAD mode where the path is absolute
+ if not localdirname.startswith("/"):
+ localdirname = os.path.join(bc.be.sourcedir, localdirname)
+ if path.startswith(localdirname):
+ #logger.warn("-- managed: matched path %s with layer %s " % (path, localdirname))
+ # we matched the BRLayer, but we need the layer_version that generated this br
+ for lvo in self.orm_wrapper.layer_version_objects:
+ if brl.name == lvo.layer.name:
+ return lvo
+
+ #if we get here, we didn't read layers correctly; dump whatever information we have on the error log
+ logger.error("Could not match layer version for recipe path %s : %s" % (path, self.orm_wrapper.layer_version_objects))
+
+ #mockup the new layer
+ unknown_layer, created = Layer.objects.get_or_create(name="__FIXME__unidentified_layer", local_path="/", layer_index_url="")
+ unknown_layer_version_obj, created = Layer_Version.objects.get_or_create(layer = unknown_layer, build = self.internal_state['build'])
+
+ return unknown_layer_version_obj
def _get_recipe_information_from_taskfile(self, taskfile):
localfilepath = taskfile.split(":")[-1]
@@ -599,13 +767,25 @@ class BuildInfoHelper(object):
################################
## external available methods to store information
+ @staticmethod
+ def _get_data_from_event(event):
+ evdata = None
+ if '_localdata' in vars(event):
+ evdata = event._localdata
+ elif 'data' in vars(event):
+ evdata = event.data
+ else:
+ raise Exception("Event with neither _localdata or data properties")
+ return evdata
def store_layer_info(self, event):
- assert '_localdata' in vars(event)
- layerinfos = event._localdata
+ layerinfos = BuildInfoHelper._get_data_from_event(event)
self.internal_state['lvs'] = {}
for layer in layerinfos:
- self.internal_state['lvs'][self.orm_wrapper.get_update_layer_object(layerinfos[layer])] = layerinfos[layer]['version']
+ try:
+ self.internal_state['lvs'][self.orm_wrapper.get_update_layer_object(layerinfos[layer], self.brbe)] = layerinfos[layer]['version']
+ except NotExisting as nee:
+ logger.warn("buildinfohelper: cannot identify layer exception:%s " % nee)
def store_started_build(self, event):
@@ -617,10 +797,13 @@ class BuildInfoHelper(object):
self.internal_state['build'] = build_obj
# save layer version information for this build
- for layer_obj in self.internal_state['lvs']:
- self.orm_wrapper.get_update_layer_version_object(build_obj, layer_obj, self.internal_state['lvs'][layer_obj])
+ if not 'lvs' in self.internal_state:
+ logger.error("Layer version information not found; Check if the bitbake server was configured to inherit toaster.bbclass.")
+ else:
+ for layer_obj in self.internal_state['lvs']:
+ self.orm_wrapper.get_update_layer_version_object(build_obj, layer_obj, self.internal_state['lvs'][layer_obj])
- del self.internal_state['lvs']
+ del self.internal_state['lvs']
# create target information
target_information = {}
@@ -630,20 +813,27 @@ class BuildInfoHelper(object):
self.internal_state['targets'] = self.orm_wrapper.create_target_objects(target_information)
# Save build configuration
- self.orm_wrapper.save_build_variables(build_obj, self.server.runCommand(["getAllKeysWithFlags", ["doc", "func"]])[0])
+ data = self.server.runCommand(["getAllKeysWithFlags", ["doc", "func"]])[0]
+ self.orm_wrapper.save_build_variables(build_obj, data)
return self.brbe
-
def update_target_image_file(self, event):
image_fstypes = self.server.runCommand(["getVariable", "IMAGE_FSTYPES"])[0]
+ evdata = BuildInfoHelper._get_data_from_event(event)
+
for t in self.internal_state['targets']:
if t.is_image == True:
- output_files = list(event._localdata.viewkeys())
+ output_files = list(evdata.viewkeys())
for output in output_files:
- if t.target in output and output.split('.rootfs.')[1] in image_fstypes:
- self.orm_wrapper.save_target_image_file_information(t, output, event._localdata[output])
+ if t.target in output and 'rootfs' in output and not output.endswith(".manifest"):
+ self.orm_wrapper.save_target_image_file_information(t, output, evdata[output])
+
+ def update_artifact_image_file(self, event):
+ evdata = BuildInfoHelper._get_data_from_event(event)
+ for artifact_path in evdata.keys():
+ self.orm_wrapper.save_artifact_information(self.internal_state['build'], artifact_path, evdata[artifact_path])
def update_build_information(self, event, errors, warnings, taskfailures):
if 'build' in self.internal_state:
@@ -651,12 +841,12 @@ class BuildInfoHelper(object):
def store_license_manifest_path(self, event):
- deploy_dir = event._localdata['deploy_dir']
- image_name = event._localdata['image_name']
- path = deploy_dir + "/licenses/" + image_name + "/"
+ deploy_dir = BuildInfoHelper._get_data_from_event(event)['deploy_dir']
+ image_name = BuildInfoHelper._get_data_from_event(event)['image_name']
+ path = deploy_dir + "/licenses/" + image_name + "/license.manifest"
for target in self.internal_state['targets']:
if target.target in image_name:
- self.orm_wrapper.update_target_object(target, path)
+ self.orm_wrapper.update_target_set_license_manifest(target, path)
def store_started_task(self, event):
@@ -700,14 +890,21 @@ class BuildInfoHelper(object):
def store_tasks_stats(self, event):
- for (taskfile, taskname, taskstats, recipename) in event._localdata:
+ for (taskfile, taskname, taskstats, recipename) in BuildInfoHelper._get_data_from_event(event):
localfilepath = taskfile.split(":")[-1]
assert localfilepath.startswith("/")
recipe_information = self._get_recipe_information_from_taskfile(taskfile)
- recipe_object = Recipe.objects.get(layer_version = recipe_information['layer_version'],
+ try:
+ if recipe_information['file_path'].startswith(recipe_information['layer_version'].layer.local_path):
+ recipe_information['file_path'] = recipe_information['file_path'][len(recipe_information['layer_version'].layer.local_path):].lstrip("/")
+
+ recipe_object = Recipe.objects.get(layer_version = recipe_information['layer_version'],
file_path__endswith = recipe_information['file_path'],
name = recipename)
+ except Recipe.DoesNotExist:
+ logger.error("Could not find recipe for recipe_information %s name %s" % (pformat(recipe_information), recipename))
+ raise
task_information = {}
task_information['build'] = self.internal_state['build']
@@ -715,6 +912,8 @@ class BuildInfoHelper(object):
task_information['task_name'] = taskname
task_information['cpu_usage'] = taskstats['cpu_usage']
task_information['disk_io'] = taskstats['disk_io']
+ if 'elapsed_time' in taskstats:
+ task_information['elapsed_time'] = taskstats['elapsed_time']
task_obj = self.orm_wrapper.get_update_task_object(task_information, True) # must exist
def update_and_store_task(self, event):
@@ -768,11 +967,18 @@ class BuildInfoHelper(object):
task_information['outcome'] = Task.OUTCOME_FAILED
del self.internal_state['taskdata'][identifier]
+ if not connection.features.autocommits_when_autocommit_is_off:
+ # we force a sync point here, to get the progress bar to show
+ if self.autocommit_step % 3 == 0:
+ transaction.set_autocommit(True)
+ transaction.set_autocommit(False)
+ self.autocommit_step += 1
+
self.orm_wrapper.get_update_task_object(task_information, True) # must exist
def store_missed_state_tasks(self, event):
- for (fn, taskname, taskhash, sstatefile) in event._localdata['missed']:
+ for (fn, taskname, taskhash, sstatefile) in BuildInfoHelper._get_data_from_event(event)['missed']:
identifier = fn + taskname + "_setscene"
recipe_information = self._get_recipe_information_from_taskfile(fn)
@@ -790,7 +996,7 @@ class BuildInfoHelper(object):
self.orm_wrapper.get_update_task_object(task_information)
- for (fn, taskname, taskhash, sstatefile) in event._localdata['found']:
+ for (fn, taskname, taskhash, sstatefile) in BuildInfoHelper._get_data_from_event(event)['found']:
identifier = fn + taskname + "_setscene"
recipe_information = self._get_recipe_information_from_taskfile(fn)
@@ -806,15 +1012,14 @@ class BuildInfoHelper(object):
def store_target_package_data(self, event):
- assert '_localdata' in vars(event)
# for all image targets
for target in self.internal_state['targets']:
if target.is_image:
try:
- pkgdata = event._localdata['pkgdata']
- imgdata = event._localdata['imgdata'][target.target]
+ pkgdata = BuildInfoHelper._get_data_from_event(event)['pkgdata']
+ imgdata = BuildInfoHelper._get_data_from_event(event)['imgdata'][target.target]
self.orm_wrapper.save_target_package_information(self.internal_state['build'], target, imgdata, pkgdata, self.internal_state['recipes'])
- filedata = event._localdata['filedata'][target.target]
+ filedata = BuildInfoHelper._get_data_from_event(event)['filedata'][target.target]
self.orm_wrapper.save_target_file_information(self.internal_state['build'], target, filedata)
except KeyError:
# we must have not got the data for this image, nothing to save
@@ -850,14 +1055,29 @@ class BuildInfoHelper(object):
recipe_info = {}
recipe_info['name'] = pn
- recipe_info['version'] = event._depgraph['pn'][pn]['version'].lstrip(":")
recipe_info['layer_version'] = layer_version_obj
- recipe_info['summary'] = event._depgraph['pn'][pn]['summary']
- recipe_info['license'] = event._depgraph['pn'][pn]['license']
- recipe_info['description'] = event._depgraph['pn'][pn]['description']
- recipe_info['section'] = event._depgraph['pn'][pn]['section']
- recipe_info['homepage'] = event._depgraph['pn'][pn]['homepage']
- recipe_info['bugtracker'] = event._depgraph['pn'][pn]['bugtracker']
+
+ if 'version' in event._depgraph['pn'][pn]:
+ recipe_info['version'] = event._depgraph['pn'][pn]['version'].lstrip(":")
+
+ if 'summary' in event._depgraph['pn'][pn]:
+ recipe_info['summary'] = event._depgraph['pn'][pn]['summary']
+
+ if 'license' in event._depgraph['pn'][pn]:
+ recipe_info['license'] = event._depgraph['pn'][pn]['license']
+
+ if 'description' in event._depgraph['pn'][pn]:
+ recipe_info['description'] = event._depgraph['pn'][pn]['description']
+
+ if 'section' in event._depgraph['pn'][pn]:
+ recipe_info['section'] = event._depgraph['pn'][pn]['section']
+
+ if 'homepage' in event._depgraph['pn'][pn]:
+ recipe_info['homepage'] = event._depgraph['pn'][pn]['homepage']
+
+ if 'bugtracker' in event._depgraph['pn'][pn]:
+ recipe_info['bugtracker'] = event._depgraph['pn'][pn]['bugtracker']
+
recipe_info['file_path'] = file_name
recipe = self.orm_wrapper.get_update_recipe_object(recipe_info)
recipe.is_image = False
@@ -879,20 +1099,22 @@ class BuildInfoHelper(object):
# save recipe dependency
# buildtime
+ recipedeps_objects = []
for recipe in event._depgraph['depends']:
try:
target = self.internal_state['recipes'][recipe]
for dep in event._depgraph['depends'][recipe]:
dependency = self.internal_state['recipes'][dep]
- Recipe_Dependency.objects.get_or_create( recipe = target,
- depends_on = dependency, dep_type = Recipe_Dependency.TYPE_DEPENDS)
+ recipedeps_objects.append(Recipe_Dependency( recipe = target,
+ depends_on = dependency, dep_type = Recipe_Dependency.TYPE_DEPENDS))
except KeyError as e:
if e not in assume_provided and not str(e).startswith("virtual/"):
errormsg += " stpd: KeyError saving recipe dependency for %s, %s \n" % (recipe, e)
+ Recipe_Dependency.objects.bulk_create(recipedeps_objects)
# save all task information
def _save_a_task(taskdesc):
- spec = re.split(r'\.', taskdesc);
+ spec = re.split(r'\.', taskdesc)
pn = ".".join(spec[0:-1])
taskname = spec[-1]
e = event
@@ -909,6 +1131,7 @@ class BuildInfoHelper(object):
tasks[taskdesc] = _save_a_task(taskdesc)
# create dependencies between tasks
+ taskdeps_objects = []
for taskdesc in event._depgraph['tdepends']:
target = tasks[taskdesc]
for taskdep in event._depgraph['tdepends'][taskdesc]:
@@ -917,29 +1140,32 @@ class BuildInfoHelper(object):
dep = _save_a_task(taskdep)
else:
dep = tasks[taskdep]
- Task_Dependency.objects.get_or_create( task = target, depends_on = dep )
+ taskdeps_objects.append(Task_Dependency( task = target, depends_on = dep ))
+ Task_Dependency.objects.bulk_create(taskdeps_objects)
if (len(errormsg) > 0):
- raise Exception(errormsg)
+ logger.warn("buildinfohelper: dependency info not identify recipes: \n%s" % errormsg)
def store_build_package_information(self, event):
- assert '_localdata' in vars(event)
- package_info = event._localdata
+ package_info = BuildInfoHelper._get_data_from_event(event)
self.orm_wrapper.save_build_package_information(self.internal_state['build'],
package_info,
self.internal_state['recipes'],
)
- def _store_build_done(self):
+ def _store_build_done(self, errorcode):
br_id, be_id = self.brbe.split(":")
from bldcontrol.models import BuildEnvironment, BuildRequest
be = BuildEnvironment.objects.get(pk = be_id)
be.lock = BuildEnvironment.LOCK_LOCK
be.save()
br = BuildRequest.objects.get(pk = br_id)
- br.state = BuildRequest.REQ_COMPLETED
- br.build = self.internal_state['build']
+ if errorcode == 0:
+ # request archival of the project artifacts
+ br.state = BuildRequest.REQ_ARCHIVE
+ else:
+ br.state = BuildRequest.REQ_FAILED
br.save()
@@ -947,8 +1173,19 @@ class BuildInfoHelper(object):
mockevent = MockEvent()
mockevent.levelno = format.ERROR
mockevent.msg = text
+ mockevent.pathname = '-- None'
+ mockevent.lineno = -1
+ self.store_log_event(mockevent)
+
+ def store_log_exception(self, text, backtrace = ""):
+ mockevent = MockEvent()
+ mockevent.levelno = -1
+ mockevent.msg = text
+ mockevent.pathname = backtrace
+ mockevent.lineno = -1
self.store_log_event(mockevent)
+
def store_log_event(self, event):
if event.levelno < format.WARNING:
return
@@ -963,18 +1200,20 @@ class BuildInfoHelper(object):
self.internal_state['backlog'].append(event)
else: # we're under Toaster control, post the errors to the build request
from bldcontrol.models import BuildRequest, BRError
- br, be = brbe.split(":")
+ br, be = self.brbe.split(":")
buildrequest = BuildRequest.objects.get(pk = br)
brerror = BRError.objects.create(req = buildrequest, errtype="build", errmsg = event.msg)
return
if 'build' in self.internal_state and 'backlog' in self.internal_state:
+ # if we have a backlog of events, do our best to save them here
if len(self.internal_state['backlog']):
tempevent = self.internal_state['backlog'].pop()
- print " Saving stored event ", tempevent
+ logger.debug(1, "buildinfohelper: Saving stored event %s " % tempevent)
self.store_log_event(tempevent)
else:
+ logger.error("buildinfohelper: Events not saved: %s" % self.internal_state['backlog'])
del self.internal_state['backlog']
log_information = {}
@@ -983,6 +1222,8 @@ class BuildInfoHelper(object):
log_information['level'] = LogMessage.ERROR
elif event.levelno == format.WARNING:
log_information['level'] = LogMessage.WARNING
+ elif event.levelno == -1: # toaster self-logging
+ log_information['level'] = -1
else:
log_information['level'] = LogMessage.INFO
@@ -991,10 +1232,19 @@ class BuildInfoHelper(object):
log_information['lineno'] = event.lineno
self.orm_wrapper.create_logmessage(log_information)
- def close(self):
+ def close(self, errorcode):
if self.brbe is not None:
- buildinfohelper._store_build_done()
+ self._store_build_done(errorcode)
if 'backlog' in self.internal_state:
- for event in self.internal_state['backlog']:
- print "NOTE: Unsaved log: ", event.msg
+ if 'build' in self.internal_state:
+ # we save missed events in the database for the current build
+ tempevent = self.internal_state['backlog'].pop()
+ self.store_log_event(tempevent)
+ else:
+ # we have no build, and we still have events; something amazingly wrong happend
+ for event in self.internal_state['backlog']:
+ logger.error("UNSAVED log: %s", event.msg)
+
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(True)
diff --git a/bitbake/lib/bb/ui/depexp.py b/bitbake/lib/bb/ui/depexp.py
index 5d13b5b79e..240aafc3e7 100644
--- a/bitbake/lib/bb/ui/depexp.py
+++ b/bitbake/lib/bb/ui/depexp.py
@@ -17,6 +17,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+import sys
import gobject
import gtk
import Queue
@@ -215,6 +216,12 @@ def main(server, eventHandler, params):
print("XMLRPC Fault getting commandline:\n %s" % x)
return
+ try:
+ gtk.init_check()
+ except RuntimeError:
+ sys.stderr.write("Please set DISPLAY variable before running this command \n")
+ return
+
shutdown = 0
gtkgui = gtkthread(shutdown)
@@ -236,7 +243,7 @@ def main(server, eventHandler, params):
try:
event = eventHandler.waitEvent(0.25)
if gtkthread.quit.isSet():
- _, error = server.runCommand(["stateStop"])
+ _, error = server.runCommand(["stateForceShutdown"])
if error:
print('Unable to cleanly stop: %s' % error)
break
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py
index 9e58b31727..2bee242eb0 100644
--- a/bitbake/lib/bb/ui/knotty.py
+++ b/bitbake/lib/bb/ui/knotty.py
@@ -271,7 +271,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
server.terminateServer()
return
- if consolelogfile and not params.options.show_environment:
+ if consolelogfile and not params.options.show_environment and not params.options.show_versions:
bb.utils.mkdirhier(os.path.dirname(consolelogfile))
conlogformat = bb.msg.BBLogFormatter(format_str)
consolelog = logging.FileHandler(consolelogfile)
@@ -284,7 +284,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if not params.observe_only:
params.updateFromServer(server)
- params.updateToServer(server)
+ params.updateToServer(server, os.environ.copy())
cmdline = params.parseActions()
if not cmdline:
print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")
@@ -536,24 +536,29 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if not params.observe_only:
_, error = server.runCommand(["stateForceShutdown"])
main.shutdown = 2
- summary = ""
- if taskfailures:
- summary += pluralise("\nSummary: %s task failed:",
- "\nSummary: %s tasks failed:", len(taskfailures))
- for failure in taskfailures:
- summary += "\n %s" % failure
- if warnings:
- summary += pluralise("\nSummary: There was %s WARNING message shown.",
- "\nSummary: There were %s WARNING messages shown.", warnings)
- if return_value and errors:
- summary += pluralise("\nSummary: There was %s ERROR message shown, returning a non-zero exit code.",
- "\nSummary: There were %s ERROR messages shown, returning a non-zero exit code.", errors)
- if summary:
- print(summary)
-
- if interrupted:
- print("Execution was interrupted, returning a non-zero exit code.")
- if return_value == 0:
- return_value = 1
+ try:
+ summary = ""
+ if taskfailures:
+ summary += pluralise("\nSummary: %s task failed:",
+ "\nSummary: %s tasks failed:", len(taskfailures))
+ for failure in taskfailures:
+ summary += "\n %s" % failure
+ if warnings:
+ summary += pluralise("\nSummary: There was %s WARNING message shown.",
+ "\nSummary: There were %s WARNING messages shown.", warnings)
+ if return_value and errors:
+ summary += pluralise("\nSummary: There was %s ERROR message shown, returning a non-zero exit code.",
+ "\nSummary: There were %s ERROR messages shown, returning a non-zero exit code.", errors)
+ if summary:
+ print(summary)
+
+ if interrupted:
+ print("Execution was interrupted, returning a non-zero exit code.")
+ if return_value == 0:
+ return_value = 1
+ except IOError as e:
+ import errno
+ if e.errno == errno.EPIPE:
+ pass
return return_value
diff --git a/bitbake/lib/bb/ui/ncurses.py b/bitbake/lib/bb/ui/ncurses.py
index b6c20ec388..9589a77d75 100644
--- a/bitbake/lib/bb/ui/ncurses.py
+++ b/bitbake/lib/bb/ui/ncurses.py
@@ -361,13 +361,13 @@ class NCursesUI:
shutdown = shutdown + 1
pass
-def main(server, eventHandler):
+def main(server, eventHandler, params):
if not os.isatty(sys.stdout.fileno()):
print("FATAL: Unable to run 'ncurses' UI without a TTY.")
return
ui = NCursesUI()
try:
- curses.wrapper(ui.main, server, eventHandler)
+ curses.wrapper(ui.main, server, eventHandler, params)
except:
import traceback
traceback.print_exc()
diff --git a/bitbake/lib/bb/ui/toasterui.py b/bitbake/lib/bb/ui/toasterui.py
index d81b8a989c..f0f853be14 100644
--- a/bitbake/lib/bb/ui/toasterui.py
+++ b/bitbake/lib/bb/ui/toasterui.py
@@ -41,7 +41,7 @@ import sys
import time
import xmlrpclib
-featureSet = [bb.cooker.CookerFeatures.HOB_EXTRA_CACHES, bb.cooker.CookerFeatures.SEND_DEPENDS_TREE, bb.cooker.CookerFeatures.BASEDATASTORE_TRACKING]
+featureSet = [bb.cooker.CookerFeatures.HOB_EXTRA_CACHES, bb.cooker.CookerFeatures.SEND_DEPENDS_TREE, bb.cooker.CookerFeatures.BASEDATASTORE_TRACKING, bb.cooker.CookerFeatures.SEND_SANITYEVENTS]
logger = logging.getLogger("BitBake")
interactive = sys.stdout.isatty()
@@ -58,18 +58,14 @@ def _log_settings_from_server(server):
if error:
logger.error("Unable to get the value of BBINCLUDELOGS_LINES variable: %s" % error)
raise BaseException(error)
- return includelogs, loglines
-
-def main(server, eventHandler, params ):
+ consolelogfile, error = server.runCommand(["getVariable", "BB_CONSOLELOG"])
+ if error:
+ logger.error("Unable to get the value of BB_CONSOLELOG variable: %s" % error)
+ raise BaseException(error)
+ return includelogs, loglines, consolelogfile
- includelogs, loglines = _log_settings_from_server(server)
- # verify and warn
- build_history_enabled = True
- inheritlist, error = server.runCommand(["getVariable", "INHERIT"])
- if not "buildhistory" in inheritlist.split(" "):
- logger.warn("buildhistory is not enabled. Please enable INHERIT += \"buildhistory\" to see image details.")
- build_history_enabled = False
+def main(server, eventHandler, params ):
helper = uihelper.BBUIHelper()
@@ -80,6 +76,16 @@ def main(server, eventHandler, params ):
console.setFormatter(format)
logger.addHandler(console)
+ includelogs, loglines, consolelogfile = _log_settings_from_server(server)
+
+ # verify and warn
+ build_history_enabled = True
+ inheritlist, error = server.runCommand(["getVariable", "INHERIT"])
+
+ if not "buildhistory" in inheritlist.split(" "):
+ logger.warn("buildhistory is not enabled. Please enable INHERIT += \"buildhistory\" to see image details.")
+ build_history_enabled = False
+
if not params.observe_only:
logger.error("ToasterUI can only work in observer mode")
return
@@ -95,6 +101,16 @@ def main(server, eventHandler, params ):
buildinfohelper = BuildInfoHelper(server, build_history_enabled)
+ if buildinfohelper.brbe is not None and consolelogfile:
+ # if we are under managed mode we have no other UI and we need to write our own file
+ bb.utils.mkdirhier(os.path.dirname(consolelogfile))
+ conlogformat = bb.msg.BBLogFormatter(format_str)
+ consolelog = logging.FileHandler(consolelogfile)
+ bb.msg.addDefaultlogFilter(consolelog)
+ consolelog.setFormatter(conlogformat)
+ logger.addHandler(consolelog)
+
+
while True:
try:
event = eventHandler.waitEvent(0.25)
@@ -114,8 +130,12 @@ def main(server, eventHandler, params ):
if isinstance(event, (bb.build.TaskStarted, bb.build.TaskSucceeded, bb.build.TaskFailedSilent)):
buildinfohelper.update_and_store_task(event)
+ logger.warn("Logfile for task %s" % event.logfile)
continue
+ if isinstance(event, bb.build.TaskBase):
+ logger.info(event._message)
+
if isinstance(event, bb.event.LogExecTTY):
logger.warn(event.msg)
continue
@@ -161,7 +181,12 @@ def main(server, eventHandler, params ):
if isinstance(event, bb.event.CacheLoadCompleted):
continue
if isinstance(event, bb.event.MultipleProviders):
+ logger.info("multiple providers are available for %s%s (%s)", event._is_runtime and "runtime " or "",
+ event._item,
+ ", ".join(event._candidates))
+ logger.info("consider defining a PREFERRED_PROVIDER entry to match %s", event._item)
continue
+
if isinstance(event, bb.event.NoProvider):
return_value = 1
errors = errors + 1
@@ -219,6 +244,7 @@ def main(server, eventHandler, params ):
if isinstance(event, (bb.command.CommandCompleted,
bb.command.CommandFailed,
bb.command.CommandExit)):
+ errorcode = 0
if (isinstance(event, bb.command.CommandFailed)):
event.levelno = format.ERROR
event.msg = "Command Failed " + event.error
@@ -226,18 +252,21 @@ def main(server, eventHandler, params ):
event.lineno = 0
buildinfohelper.store_log_event(event)
errors += 1
+ errorcode = 1
+ logger.error("Command execution failed: %s", event.error)
buildinfohelper.update_build_information(event, errors, warnings, taskfailures)
- buildinfohelper.close()
-
+ buildinfohelper.close(errorcode)
+ # mark the log output; controllers may kill the toasterUI after seeing this log
+ logger.info("ToasterUI build done")
# we start a new build info
if buildinfohelper.brbe is not None:
- print "we are under BuildEnvironment management - after the build, we exit"
+ logger.debug(1, "ToasterUI under BuildEnvironment management - exiting after the build")
server.terminateServer()
else:
- print "prepared for new build"
+ logger.debug(1, "ToasterUI prepared for new build")
errors = 0
warnings = 0
taskfailures = []
@@ -258,8 +287,12 @@ def main(server, eventHandler, params ):
buildinfohelper.store_missed_state_tasks(event)
elif event.type == "ImageFileSize":
buildinfohelper.update_target_image_file(event)
+ elif event.type == "ArtifactFileSize":
+ buildinfohelper.update_artifact_image_file(event)
elif event.type == "LicenseManifestPath":
buildinfohelper.store_license_manifest_path(event)
+ else:
+ logger.error("Unprocessed MetadataEvent %s " % str(event))
continue
if isinstance(event, bb.cooker.CookerExit):
@@ -292,9 +325,25 @@ def main(server, eventHandler, params ):
main.shutdown = 1
pass
except Exception as e:
- logger.error(e)
+ # print errors to log
import traceback
- traceback.print_exc()
+ from pprint import pformat
+ exception_data = traceback.format_exc()
+ logger.error("%s\n%s" % (e, exception_data))
+
+ exc_type, exc_value, tb = sys.exc_info()
+ if tb is not None:
+ curr = tb
+ while curr is not None:
+ logger.warn("Error data dump %s\n%s\n" % (traceback.format_tb(curr,1), pformat(curr.tb_frame.f_locals)))
+ curr = curr.tb_next
+
+ # save them to database, if possible; if it fails, we already logged to console.
+ try:
+ buildinfohelper.store_log_exception("%s\n%s" % (str(e), exception_data))
+ except Exception as ce:
+ logger.error("CRITICAL - Failed to to save toaster exception to the database: %s" % str(ce))
+
pass
if interrupted:
diff --git a/bitbake/lib/bb/ui/uievent.py b/bitbake/lib/bb/ui/uievent.py
index c6b100c840..7fc50c759a 100644
--- a/bitbake/lib/bb/ui/uievent.py
+++ b/bitbake/lib/bb/ui/uievent.py
@@ -106,7 +106,12 @@ class BBUIEventQueue:
self.server.timeout = 1
while not self.server.quit:
- self.server.handle_request()
+ try:
+ self.server.handle_request()
+ except Exception as e:
+ import traceback
+ logger.error("BBUIEventQueue.startCallbackHandler: Exception while trying to handle request: %s\n%s" % (e, traceback.format_exc(e)))
+
self.server.server_close()
def system_quit( self ):
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py
index 670e592fe0..c97f3ef81f 100644
--- a/bitbake/lib/bb/utils.py
+++ b/bitbake/lib/bb/utils.py
@@ -53,6 +53,9 @@ def set_context(ctx):
# Context used in better_exec, eval
_context = clean_context()
+class VersionStringException(Exception):
+ """Exception raised when an invalid version specification is found"""
+
def explode_version(s):
r = []
alpha_regexp = re.compile('^([a-zA-Z]+)(.*)$')
@@ -128,6 +131,28 @@ def vercmp_string(a, b):
tb = split_version(b)
return vercmp(ta, tb)
+def vercmp_string_op(a, b, op):
+ """
+ Compare two versions and check if the specified comparison operator matches the result of the comparison.
+ This function is fairly liberal about what operators it will accept since there are a variety of styles
+ depending on the context.
+ """
+ res = vercmp_string(a, b)
+ if op in ('=', '=='):
+ return res == 0
+ elif op == '<=':
+ return res <= 0
+ elif op == '>=':
+ return res >= 0
+ elif op in ('>', '>>'):
+ return res > 0
+ elif op in ('<', '<<'):
+ return res < 0
+ elif op == '!=':
+ return res != 0
+ else:
+ raise VersionStringException('Unsupported comparison operator "%s"' % op)
+
def explode_deps(s):
"""
Take an RDEPENDS style string of format:
@@ -188,6 +213,7 @@ def explode_dep_versions2(s):
i = i[1:]
else:
# This is an unsupported case!
+ raise VersionStringException('Invalid version specification in "(%s" - invalid or missing operator' % i)
lastcmp = (i or "")
i = ""
i.strip()
@@ -522,7 +548,7 @@ def filter_environment(good_vars):
os.unsetenv(key)
del os.environ[key]
- if len(removed_vars):
+ if removed_vars:
logger.debug(1, "Removed the following variables from the environment: %s", ", ".join(removed_vars.keys()))
return removed_vars
@@ -575,11 +601,30 @@ def build_environment(d):
if export:
os.environ[var] = d.getVar(var, True) or ""
+def _check_unsafe_delete_path(path):
+ """
+ Basic safeguard against recursively deleting something we shouldn't. If it returns True,
+ the caller should raise an exception with an appropriate message.
+ NOTE: This is NOT meant to be a security mechanism - just a guard against silly mistakes
+ with potentially disastrous results.
+ """
+ extra = ''
+ # HOME might not be /home/something, so in case we can get it, check against it
+ homedir = os.environ.get('HOME', '')
+ if homedir:
+ extra = '|%s' % homedir
+ if re.match('(/|//|/home|/home/[^/]*%s)$' % extra, os.path.abspath(path)):
+ return True
+ return False
+
def remove(path, recurse=False):
"""Equivalent to rm -f or rm -rf"""
if not path:
return
if recurse:
+ for name in glob.glob(path):
+ if _check_unsafe_delete_path(path):
+ raise Exception('bb.utils.remove: called with dangerous path "%s" and recurse=True, refusing to delete!' % path)
# shutil.rmtree(name) would be ideal but its too slow
subprocess.call(['rm', '-rf'] + glob.glob(path))
return
@@ -593,6 +638,8 @@ def remove(path, recurse=False):
def prunedir(topdir):
# Delete everything reachable from the directory named in 'topdir'.
# CAUTION: This is dangerous!
+ if _check_unsafe_delete_path(topdir):
+ raise Exception('bb.utils.prunedir: called with dangerous path "%s", refusing to delete!' % topdir)
for root, dirs, files in os.walk(topdir, topdown = False):
for name in files:
os.remove(os.path.join(root, name))
@@ -893,3 +940,160 @@ def multiprocessingpool(*args, **kwargs):
return multiprocessing.Pool(*args, **kwargs)
+def exec_flat_python_func(func, *args, **kwargs):
+ """Execute a flat python function (defined with def funcname(args):...)"""
+ # Prepare a small piece of python code which calls the requested function
+ # To do this we need to prepare two things - a set of variables we can use to pass
+ # the values of arguments into the calling function, and the list of arguments for
+ # the function being called
+ context = {}
+ funcargs = []
+ # Handle unnamed arguments
+ aidx = 1
+ for arg in args:
+ argname = 'arg_%s' % aidx
+ context[argname] = arg
+ funcargs.append(argname)
+ aidx += 1
+ # Handle keyword arguments
+ context.update(kwargs)
+ funcargs.extend(['%s=%s' % (arg, arg) for arg in kwargs.iterkeys()])
+ code = 'retval = %s(%s)' % (func, ', '.join(funcargs))
+ comp = bb.utils.better_compile(code, '<string>', '<string>')
+ bb.utils.better_exec(comp, context, code, '<string>')
+ return context['retval']
+
+def edit_metadata_file(meta_file, variables, func):
+ """Edit a recipe or config file and modify one or more specified
+ variable values set in the file using a specified callback function.
+ The file is only written to if the value(s) actually change.
+ """
+ var_res = {}
+ for var in variables:
+ var_res[var] = re.compile(r'^%s[ \t]*[?+]*=' % var)
+
+ updated = False
+ varset_start = ''
+ newlines = []
+ in_var = None
+ full_value = ''
+
+ def handle_var_end():
+ (newvalue, indent, minbreak) = func(in_var, full_value)
+ if newvalue != full_value:
+ if isinstance(newvalue, list):
+ intentspc = ' ' * indent
+ if minbreak:
+ # First item on first line
+ if len(newvalue) == 1:
+ newlines.append('%s "%s"\n' % (varset_start, newvalue[0]))
+ else:
+ newlines.append('%s "%s\\\n' % (varset_start, newvalue[0]))
+ for item in newvalue[1:]:
+ newlines.append('%s%s \\\n' % (intentspc, item))
+ newlines.append('%s"\n' % indentspc)
+ else:
+ # No item on first line
+ newlines.append('%s " \\\n' % varset_start)
+ for item in newvalue:
+ newlines.append('%s%s \\\n' % (intentspc, item))
+ newlines.append('%s"\n' % intentspc)
+ else:
+ newlines.append('%s "%s"\n' % (varset_start, newvalue))
+ return True
+ return False
+
+ with open(meta_file, 'r') as f:
+ for line in f:
+ if in_var:
+ value = line.rstrip()
+ full_value += value[:-1]
+ if value.endswith('"') or value.endswith("'"):
+ if handle_var_end():
+ updated = True
+ in_var = None
+ else:
+ matched = False
+ for (varname, var_re) in var_res.iteritems():
+ if var_re.match(line):
+ splitvalue = line.split('"', 1)
+ varset_start = splitvalue[0].rstrip()
+ value = splitvalue[1].rstrip()
+ if value.endswith('\\'):
+ value = value[:-1]
+ full_value = value
+ if value.endswith('"') or value.endswith("'"):
+ if handle_var_end():
+ updated = True
+ else:
+ in_var = varname
+ matched = True
+ break
+ if not matched:
+ newlines.append(line)
+ if updated:
+ with open(meta_file, 'w') as f:
+ f.writelines(newlines)
+
+def edit_bblayers_conf(bblayers_conf, add, remove):
+ """Edit bblayers.conf, adding and/or removing layers"""
+
+ import fnmatch
+
+ def remove_trailing_sep(pth):
+ if pth and pth[-1] == os.sep:
+ pth = pth[:-1]
+ return pth
+
+ def layerlist_param(value):
+ if not value:
+ return []
+ elif isinstance(value, list):
+ return [remove_trailing_sep(x) for x in value]
+ else:
+ return [remove_trailing_sep(value)]
+
+ notadded = []
+ notremoved = []
+
+ addlayers = layerlist_param(add)
+ removelayers = layerlist_param(remove)
+
+ # Need to use a list here because we can't set non-local variables from a callback in python 2.x
+ bblayercalls = []
+
+ def handle_bblayers(varname, origvalue):
+ bblayercalls.append(varname)
+ updated = False
+ bblayers = [remove_trailing_sep(x) for x in origvalue.split()]
+ if removelayers:
+ for removelayer in removelayers:
+ matched = False
+ for layer in bblayers:
+ if fnmatch.fnmatch(layer, removelayer):
+ updated = True
+ matched = True
+ bblayers.remove(layer)
+ break
+ if not matched:
+ notremoved.append(removelayer)
+ if addlayers:
+ for addlayer in addlayers:
+ if addlayer not in bblayers:
+ updated = True
+ bblayers.append(addlayer)
+ else:
+ notadded.append(addlayer)
+
+ if updated:
+ return (bblayers, 2, False)
+ else:
+ return (origvalue, 2, False)
+
+ edit_metadata_file(bblayers_conf, ['BBLAYERS'], handle_bblayers)
+
+ if not bblayercalls:
+ raise Exception('Unable to find BBLAYERS in %s' % bblayers_conf)
+
+ return (notadded, notremoved)
+
diff --git a/bitbake/lib/bs4/AUTHORS.txt b/bitbake/lib/bs4/AUTHORS.txt
new file mode 100644
index 0000000000..2ac8fcc8cc
--- /dev/null
+++ b/bitbake/lib/bs4/AUTHORS.txt
@@ -0,0 +1,43 @@
+Behold, mortal, the origins of Beautiful Soup...
+================================================
+
+Leonard Richardson is the primary programmer.
+
+Aaron DeVore is awesome.
+
+Mark Pilgrim provided the encoding detection code that forms the base
+of UnicodeDammit.
+
+Thomas Kluyver and Ezio Melotti finished the work of getting Beautiful
+Soup 4 working under Python 3.
+
+Simon Willison wrote soupselect, which was used to make Beautiful Soup
+support CSS selectors.
+
+Sam Ruby helped with a lot of edge cases.
+
+Jonathan Ellis was awarded the prestigous Beau Potage D'Or for his
+work in solving the nestable tags conundrum.
+
+An incomplete list of people have contributed patches to Beautiful
+Soup:
+
+ Istvan Albert, Andrew Lin, Anthony Baxter, Andrew Boyko, Tony Chang,
+ Zephyr Fang, Fuzzy, Roman Gaufman, Yoni Gilad, Richie Hindle, Peteris
+ Krumins, Kent Johnson, Ben Last, Robert Leftwich, Staffan Malmgren,
+ Ksenia Marasanova, JP Moins, Adam Monsen, John Nagle, "Jon", Ed
+ Oskiewicz, Greg Phillips, Giles Radford, Arthur Rudolph, Marko
+ Samastur, Jouni Seppänen, Alexander Schmolck, Andy Theyers, Glyn
+ Webster, Paul Wright, Danny Yoo
+
+An incomplete list of people who made suggestions or found bugs or
+found ways to break Beautiful Soup:
+
+ Hanno Böck, Matteo Bertini, Chris Curvey, Simon Cusack, Bruce Eckel,
+ Matt Ernst, Michael Foord, Tom Harris, Bill de hOra, Donald Howes,
+ Matt Patterson, Scott Roberts, Steve Strassmann, Mike Williams,
+ warchild at redho dot com, Sami Kuisma, Carlos Rocha, Bob Hutchison,
+ Joren Mc, Michal Migurski, John Kleven, Tim Heaney, Tripp Lilley, Ed
+ Summers, Dennis Sutch, Chris Smith, Aaron Sweep^W Swartz, Stuart
+ Turner, Greg Edwards, Kevin J Kalupson, Nikos Kouremenos, Artur de
+ Sousa Rocha, Yichun Wei, Per Vognsen
diff --git a/bitbake/lib/bs4/COPYING.txt b/bitbake/lib/bs4/COPYING.txt
new file mode 100644
index 0000000000..d668d13f04
--- /dev/null
+++ b/bitbake/lib/bs4/COPYING.txt
@@ -0,0 +1,26 @@
+Beautiful Soup is made available under the MIT license:
+
+ Copyright (c) 2004-2012 Leonard Richardson
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE, DAMMIT.
+
+Beautiful Soup incorporates code from the html5lib library, which is
+also made available under the MIT license.
diff --git a/bitbake/lib/bs4/NEWS.txt b/bitbake/lib/bs4/NEWS.txt
new file mode 100644
index 0000000000..88a60a2458
--- /dev/null
+++ b/bitbake/lib/bs4/NEWS.txt
@@ -0,0 +1,1066 @@
+= 4.3.2 (20131002) =
+
+* Fixed a bug in which short Unicode input was improperly encoded to
+ ASCII when checking whether or not it was the name of a file on
+ disk. [bug=1227016]
+
+* Fixed a crash when a short input contains data not valid in
+ filenames. [bug=1232604]
+
+* Fixed a bug that caused Unicode data put into UnicodeDammit to
+ return None instead of the original data. [bug=1214983]
+
+* Combined two tests to stop a spurious test failure when tests are
+ run by nosetests. [bug=1212445]
+
+= 4.3.1 (20130815) =
+
+* Fixed yet another problem with the html5lib tree builder, caused by
+ html5lib's tendency to rearrange the tree during
+ parsing. [bug=1189267]
+
+* Fixed a bug that caused the optimized version of find_all() to
+ return nothing. [bug=1212655]
+
+= 4.3.0 (20130812) =
+
+* Instead of converting incoming data to Unicode and feeding it to the
+ lxml tree builder in chunks, Beautiful Soup now makes successive
+ guesses at the encoding of the incoming data, and tells lxml to
+ parse the data as that encoding. Giving lxml more control over the
+ parsing process improves performance and avoids a number of bugs and
+ issues with the lxml parser which had previously required elaborate
+ workarounds:
+
+ - An issue in which lxml refuses to parse Unicode strings on some
+ systems. [bug=1180527]
+
+ - A returning bug that truncated documents longer than a (very
+ small) size. [bug=963880]
+
+ - A returning bug in which extra spaces were added to a document if
+ the document defined a charset other than UTF-8. [bug=972466]
+
+ This required a major overhaul of the tree builder architecture. If
+ you wrote your own tree builder and didn't tell me, you'll need to
+ modify your prepare_markup() method.
+
+* The UnicodeDammit code that makes guesses at encodings has been
+ split into its own class, EncodingDetector. A lot of apparently
+ redundant code has been removed from Unicode, Dammit, and some
+ undocumented features have also been removed.
+
+* Beautiful Soup will issue a warning if instead of markup you pass it
+ a URL or the name of a file on disk (a common beginner's mistake).
+
+* A number of optimizations improve the performance of the lxml tree
+ builder by about 33%, the html.parser tree builder by about 20%, and
+ the html5lib tree builder by about 15%.
+
+* All find_all calls should now return a ResultSet object. Patch by
+ Aaron DeVore. [bug=1194034]
+
+= 4.2.1 (20130531) =
+
+* The default XML formatter will now replace ampersands even if they
+ appear to be part of entities. That is, "&lt;" will become
+ "&amp;lt;". The old code was left over from Beautiful Soup 3, which
+ didn't always turn entities into Unicode characters.
+
+ If you really want the old behavior (maybe because you add new
+ strings to the tree, those strings include entities, and you want
+ the formatter to leave them alone on output), it can be found in
+ EntitySubstitution.substitute_xml_containing_entities(). [bug=1182183]
+
+* Gave new_string() the ability to create subclasses of
+ NavigableString. [bug=1181986]
+
+* Fixed another bug by which the html5lib tree builder could create a
+ disconnected tree. [bug=1182089]
+
+* The .previous_element of a BeautifulSoup object is now always None,
+ not the last element to be parsed. [bug=1182089]
+
+* Fixed test failures when lxml is not installed. [bug=1181589]
+
+* html5lib now supports Python 3. Fixed some Python 2-specific
+ code in the html5lib test suite. [bug=1181624]
+
+* The html.parser treebuilder can now handle numeric attributes in
+ text when the hexidecimal name of the attribute starts with a
+ capital X. Patch by Tim Shirley. [bug=1186242]
+
+= 4.2.0 (20130514) =
+
+* The Tag.select() method now supports a much wider variety of CSS
+ selectors.
+
+ - Added support for the adjacent sibling combinator (+) and the
+ general sibling combinator (~). Tests by "liquider". [bug=1082144]
+
+ - The combinators (>, +, and ~) can now combine with any supported
+ selector, not just one that selects based on tag name.
+
+ - Added limited support for the "nth-of-type" pseudo-class. Code
+ by Sven Slootweg. [bug=1109952]
+
+* The BeautifulSoup class is now aliased to "_s" and "_soup", making
+ it quicker to type the import statement in an interactive session:
+
+ from bs4 import _s
+ or
+ from bs4 import _soup
+
+ The alias may change in the future, so don't use this in code you're
+ going to run more than once.
+
+* Added the 'diagnose' submodule, which includes several useful
+ functions for reporting problems and doing tech support.
+
+ - diagnose(data) tries the given markup on every installed parser,
+ reporting exceptions and displaying successes. If a parser is not
+ installed, diagnose() mentions this fact.
+
+ - lxml_trace(data, html=True) runs the given markup through lxml's
+ XML parser or HTML parser, and prints out the parser events as
+ they happen. This helps you quickly determine whether a given
+ problem occurs in lxml code or Beautiful Soup code.
+
+ - htmlparser_trace(data) is the same thing, but for Python's
+ built-in HTMLParser class.
+
+* In an HTML document, the contents of a <script> or <style> tag will
+ no longer undergo entity substitution by default. XML documents work
+ the same way they did before. [bug=1085953]
+
+* Methods like get_text() and properties like .strings now only give
+ you strings that are visible in the document--no comments or
+ processing commands. [bug=1050164]
+
+* The prettify() method now leaves the contents of <pre> tags
+ alone. [bug=1095654]
+
+* Fix a bug in the html5lib treebuilder which sometimes created
+ disconnected trees. [bug=1039527]
+
+* Fix a bug in the lxml treebuilder which crashed when a tag included
+ an attribute from the predefined "xml:" namespace. [bug=1065617]
+
+* Fix a bug by which keyword arguments to find_parent() were not
+ being passed on. [bug=1126734]
+
+* Stop a crash when unwisely messing with a tag that's been
+ decomposed. [bug=1097699]
+
+* Now that lxml's segfault on invalid doctype has been fixed, fixed a
+ corresponding problem on the Beautiful Soup end that was previously
+ invisible. [bug=984936]
+
+* Fixed an exception when an overspecified CSS selector didn't match
+ anything. Code by Stefaan Lippens. [bug=1168167]
+
+= 4.1.3 (20120820) =
+
+* Skipped a test under Python 2.6 and Python 3.1 to avoid a spurious
+ test failure caused by the lousy HTMLParser in those
+ versions. [bug=1038503]
+
+* Raise a more specific error (FeatureNotFound) when a requested
+ parser or parser feature is not installed. Raise NotImplementedError
+ instead of ValueError when the user calls insert_before() or
+ insert_after() on the BeautifulSoup object itself. Patch by Aaron
+ Devore. [bug=1038301]
+
+= 4.1.2 (20120817) =
+
+* As per PEP-8, allow searching by CSS class using the 'class_'
+ keyword argument. [bug=1037624]
+
+* Display namespace prefixes for namespaced attribute names, instead of
+ the fully-qualified names given by the lxml parser. [bug=1037597]
+
+* Fixed a crash on encoding when an attribute name contained
+ non-ASCII characters.
+
+* When sniffing encodings, if the cchardet library is installed,
+ Beautiful Soup uses it instead of chardet. cchardet is much
+ faster. [bug=1020748]
+
+* Use logging.warning() instead of warning.warn() to notify the user
+ that characters were replaced with REPLACEMENT
+ CHARACTER. [bug=1013862]
+
+= 4.1.1 (20120703) =
+
+* Fixed an html5lib tree builder crash which happened when html5lib
+ moved a tag with a multivalued attribute from one part of the tree
+ to another. [bug=1019603]
+
+* Correctly display closing tags with an XML namespace declared. Patch
+ by Andreas Kostyrka. [bug=1019635]
+
+* Fixed a typo that made parsing significantly slower than it should
+ have been, and also waited too long to close tags with XML
+ namespaces. [bug=1020268]
+
+* get_text() now returns an empty Unicode string if there is no text,
+ rather than an empty bytestring. [bug=1020387]
+
+= 4.1.0 (20120529) =
+
+* Added experimental support for fixing Windows-1252 characters
+ embedded in UTF-8 documents. (UnicodeDammit.detwingle())
+
+* Fixed the handling of &quot; with the built-in parser. [bug=993871]
+
+* Comments, processing instructions, document type declarations, and
+ markup declarations are now treated as preformatted strings, the way
+ CData blocks are. [bug=1001025]
+
+* Fixed a bug with the lxml treebuilder that prevented the user from
+ adding attributes to a tag that didn't originally have
+ attributes. [bug=1002378] Thanks to Oliver Beattie for the patch.
+
+* Fixed some edge-case bugs having to do with inserting an element
+ into a tag it's already inside, and replacing one of a tag's
+ children with another. [bug=997529]
+
+* Added the ability to search for attribute values specified in UTF-8. [bug=1003974]
+
+ This caused a major refactoring of the search code. All the tests
+ pass, but it's possible that some searches will behave differently.
+
+= 4.0.5 (20120427) =
+
+* Added a new method, wrap(), which wraps an element in a tag.
+
+* Renamed replace_with_children() to unwrap(), which is easier to
+ understand and also the jQuery name of the function.
+
+* Made encoding substitution in <meta> tags completely transparent (no
+ more %SOUP-ENCODING%).
+
+* Fixed a bug in decoding data that contained a byte-order mark, such
+ as data encoded in UTF-16LE. [bug=988980]
+
+* Fixed a bug that made the HTMLParser treebuilder generate XML
+ definitions ending with two question marks instead of
+ one. [bug=984258]
+
+* Upon document generation, CData objects are no longer run through
+ the formatter. [bug=988905]
+
+* The test suite now passes when lxml is not installed, whether or not
+ html5lib is installed. [bug=987004]
+
+* Print a warning on HTMLParseErrors to let people know they should
+ install a better parser library.
+
+= 4.0.4 (20120416) =
+
+* Fixed a bug that sometimes created disconnected trees.
+
+* Fixed a bug with the string setter that moved a string around the
+ tree instead of copying it. [bug=983050]
+
+* Attribute values are now run through the provided output formatter.
+ Previously they were always run through the 'minimal' formatter. In
+ the future I may make it possible to specify different formatters
+ for attribute values and strings, but for now, consistent behavior
+ is better than inconsistent behavior. [bug=980237]
+
+* Added the missing renderContents method from Beautiful Soup 3. Also
+ added an encode_contents() method to go along with decode_contents().
+
+* Give a more useful error when the user tries to run the Python 2
+ version of BS under Python 3.
+
+* UnicodeDammit can now convert Microsoft smart quotes to ASCII with
+ UnicodeDammit(markup, smart_quotes_to="ascii").
+
+= 4.0.3 (20120403) =
+
+* Fixed a typo that caused some versions of Python 3 to convert the
+ Beautiful Soup codebase incorrectly.
+
+* Got rid of the 4.0.2 workaround for HTML documents--it was
+ unnecessary and the workaround was triggering a (possibly different,
+ but related) bug in lxml. [bug=972466]
+
+= 4.0.2 (20120326) =
+
+* Worked around a possible bug in lxml that prevents non-tiny XML
+ documents from being parsed. [bug=963880, bug=963936]
+
+* Fixed a bug where specifying `text` while also searching for a tag
+ only worked if `text` wanted an exact string match. [bug=955942]
+
+= 4.0.1 (20120314) =
+
+* This is the first official release of Beautiful Soup 4. There is no
+ 4.0.0 release, to eliminate any possibility that packaging software
+ might treat "4.0.0" as being an earlier version than "4.0.0b10".
+
+* Brought BS up to date with the latest release of soupselect, adding
+ CSS selector support for direct descendant matches and multiple CSS
+ class matches.
+
+= 4.0.0b10 (20120302) =
+
+* Added support for simple CSS selectors, taken from the soupselect project.
+
+* Fixed a crash when using html5lib. [bug=943246]
+
+* In HTML5-style <meta charset="foo"> tags, the value of the "charset"
+ attribute is now replaced with the appropriate encoding on
+ output. [bug=942714]
+
+* Fixed a bug that caused calling a tag to sometimes call find_all()
+ with the wrong arguments. [bug=944426]
+
+* For backwards compatibility, brought back the BeautifulStoneSoup
+ class as a deprecated wrapper around BeautifulSoup.
+
+= 4.0.0b9 (20120228) =
+
+* Fixed the string representation of DOCTYPEs that have both a public
+ ID and a system ID.
+
+* Fixed the generated XML declaration.
+
+* Renamed Tag.nsprefix to Tag.prefix, for consistency with
+ NamespacedAttribute.
+
+* Fixed a test failure that occured on Python 3.x when chardet was
+ installed.
+
+* Made prettify() return Unicode by default, so it will look nice on
+ Python 3 when passed into print().
+
+= 4.0.0b8 (20120224) =
+
+* All tree builders now preserve namespace information in the
+ documents they parse. If you use the html5lib parser or lxml's XML
+ parser, you can access the namespace URL for a tag as tag.namespace.
+
+ However, there is no special support for namespace-oriented
+ searching or tree manipulation. When you search the tree, you need
+ to use namespace prefixes exactly as they're used in the original
+ document.
+
+* The string representation of a DOCTYPE always ends in a newline.
+
+* Issue a warning if the user tries to use a SoupStrainer in
+ conjunction with the html5lib tree builder, which doesn't support
+ them.
+
+= 4.0.0b7 (20120223) =
+
+* Upon decoding to string, any characters that can't be represented in
+ your chosen encoding will be converted into numeric XML entity
+ references.
+
+* Issue a warning if characters were replaced with REPLACEMENT
+ CHARACTER during Unicode conversion.
+
+* Restored compatibility with Python 2.6.
+
+* The install process no longer installs docs or auxillary text files.
+
+* It's now possible to deepcopy a BeautifulSoup object created with
+ Python's built-in HTML parser.
+
+* About 100 unit tests that "test" the behavior of various parsers on
+ invalid markup have been removed. Legitimate changes to those
+ parsers caused these tests to fail, indicating that perhaps
+ Beautiful Soup should not test the behavior of foreign
+ libraries.
+
+ The problematic unit tests have been reformulated as informational
+ comparisons generated by the script
+ scripts/demonstrate_parser_differences.py.
+
+ This makes Beautiful Soup compatible with html5lib version 0.95 and
+ future versions of HTMLParser.
+
+= 4.0.0b6 (20120216) =
+
+* Multi-valued attributes like "class" always have a list of values,
+ even if there's only one value in the list.
+
+* Added a number of multi-valued attributes defined in HTML5.
+
+* Stopped generating a space before the slash that closes an
+ empty-element tag. This may come back if I add a special XHTML mode
+ (http://www.w3.org/TR/xhtml1/#C_2), but right now it's pretty
+ useless.
+
+* Passing text along with tag-specific arguments to a find* method:
+
+ find("a", text="Click here")
+
+ will find tags that contain the given text as their
+ .string. Previously, the tag-specific arguments were ignored and
+ only strings were searched.
+
+* Fixed a bug that caused the html5lib tree builder to build a
+ partially disconnected tree. Generally cleaned up the html5lib tree
+ builder.
+
+* If you restrict a multi-valued attribute like "class" to a string
+ that contains spaces, Beautiful Soup will only consider it a match
+ if the values correspond to that specific string.
+
+= 4.0.0b5 (20120209) =
+
+* Rationalized Beautiful Soup's treatment of CSS class. A tag
+ belonging to multiple CSS classes is treated as having a list of
+ values for the 'class' attribute. Searching for a CSS class will
+ match *any* of the CSS classes.
+
+ This actually affects all attributes that the HTML standard defines
+ as taking multiple values (class, rel, rev, archive, accept-charset,
+ and headers), but 'class' is by far the most common. [bug=41034]
+
+* If you pass anything other than a dictionary as the second argument
+ to one of the find* methods, it'll assume you want to use that
+ object to search against a tag's CSS classes. Previously this only
+ worked if you passed in a string.
+
+* Fixed a bug that caused a crash when you passed a dictionary as an
+ attribute value (possibly because you mistyped "attrs"). [bug=842419]
+
+* Unicode, Dammit now detects the encoding in HTML 5-style <meta> tags
+ like <meta charset="utf-8" />. [bug=837268]
+
+* If Unicode, Dammit can't figure out a consistent encoding for a
+ page, it will try each of its guesses again, with errors="replace"
+ instead of errors="strict". This may mean that some data gets
+ replaced with REPLACEMENT CHARACTER, but at least most of it will
+ get turned into Unicode. [bug=754903]
+
+* Patched over a bug in html5lib (?) that was crashing Beautiful Soup
+ on certain kinds of markup. [bug=838800]
+
+* Fixed a bug that wrecked the tree if you replaced an element with an
+ empty string. [bug=728697]
+
+* Improved Unicode, Dammit's behavior when you give it Unicode to
+ begin with.
+
+= 4.0.0b4 (20120208) =
+
+* Added BeautifulSoup.new_string() to go along with BeautifulSoup.new_tag()
+
+* BeautifulSoup.new_tag() will follow the rules of whatever
+ tree-builder was used to create the original BeautifulSoup object. A
+ new <p> tag will look like "<p />" if the soup object was created to
+ parse XML, but it will look like "<p></p>" if the soup object was
+ created to parse HTML.
+
+* We pass in strict=False to html.parser on Python 3, greatly
+ improving html.parser's ability to handle bad HTML.
+
+* We also monkeypatch a serious bug in html.parser that made
+ strict=False disastrous on Python 3.2.2.
+
+* Replaced the "substitute_html_entities" argument with the
+ more general "formatter" argument.
+
+* Bare ampersands and angle brackets are always converted to XML
+ entities unless the user prevents it.
+
+* Added PageElement.insert_before() and PageElement.insert_after(),
+ which let you put an element into the parse tree with respect to
+ some other element.
+
+* Raise an exception when the user tries to do something nonsensical
+ like insert a tag into itself.
+
+
+= 4.0.0b3 (20120203) =
+
+Beautiful Soup 4 is a nearly-complete rewrite that removes Beautiful
+Soup's custom HTML parser in favor of a system that lets you write a
+little glue code and plug in any HTML or XML parser you want.
+
+Beautiful Soup 4.0 comes with glue code for four parsers:
+
+ * Python's standard HTMLParser (html.parser in Python 3)
+ * lxml's HTML and XML parsers
+ * html5lib's HTML parser
+
+HTMLParser is the default, but I recommend you install lxml if you
+can.
+
+For complete documentation, see the Sphinx documentation in
+bs4/doc/source/. What follows is a summary of the changes from
+Beautiful Soup 3.
+
+=== The module name has changed ===
+
+Previously you imported the BeautifulSoup class from a module also
+called BeautifulSoup. To save keystrokes and make it clear which
+version of the API is in use, the module is now called 'bs4':
+
+ >>> from bs4 import BeautifulSoup
+
+=== It works with Python 3 ===
+
+Beautiful Soup 3.1.0 worked with Python 3, but the parser it used was
+so bad that it barely worked at all. Beautiful Soup 4 works with
+Python 3, and since its parser is pluggable, you don't sacrifice
+quality.
+
+Special thanks to Thomas Kluyver and Ezio Melotti for getting Python 3
+support to the finish line. Ezio Melotti is also to thank for greatly
+improving the HTML parser that comes with Python 3.2.
+
+=== CDATA sections are normal text, if they're understood at all. ===
+
+Currently, the lxml and html5lib HTML parsers ignore CDATA sections in
+markup:
+
+ <p><![CDATA[foo]]></p> => <p></p>
+
+A future version of html5lib will turn CDATA sections into text nodes,
+but only within tags like <svg> and <math>:
+
+ <svg><![CDATA[foo]]></svg> => <p>foo</p>
+
+The default XML parser (which uses lxml behind the scenes) turns CDATA
+sections into ordinary text elements:
+
+ <p><![CDATA[foo]]></p> => <p>foo</p>
+
+In theory it's possible to preserve the CDATA sections when using the
+XML parser, but I don't see how to get it to work in practice.
+
+=== Miscellaneous other stuff ===
+
+If the BeautifulSoup instance has .is_xml set to True, an appropriate
+XML declaration will be emitted when the tree is transformed into a
+string:
+
+ <?xml version="1.0" encoding="utf-8">
+ <markup>
+ ...
+ </markup>
+
+The ['lxml', 'xml'] tree builder sets .is_xml to True; the other tree
+builders set it to False. If you want to parse XHTML with an HTML
+parser, you can set it manually.
+
+
+= 3.2.0 =
+
+The 3.1 series wasn't very useful, so I renamed the 3.0 series to 3.2
+to make it obvious which one you should use.
+
+= 3.1.0 =
+
+A hybrid version that supports 2.4 and can be automatically converted
+to run under Python 3.0. There are three backwards-incompatible
+changes you should be aware of, but no new features or deliberate
+behavior changes.
+
+1. str() may no longer do what you want. This is because the meaning
+of str() inverts between Python 2 and 3; in Python 2 it gives you a
+byte string, in Python 3 it gives you a Unicode string.
+
+The effect of this is that you can't pass an encoding to .__str__
+anymore. Use encode() to get a string and decode() to get Unicode, and
+you'll be ready (well, readier) for Python 3.
+
+2. Beautiful Soup is now based on HTMLParser rather than SGMLParser,
+which is gone in Python 3. There's some bad HTML that SGMLParser
+handled but HTMLParser doesn't, usually to do with attribute values
+that aren't closed or have brackets inside them:
+
+ <a href="foo</a>, </a><a href="bar">baz</a>
+ <a b="<a>">', '<a b="&lt;a&gt;"></a><a>"></a>
+
+A later version of Beautiful Soup will allow you to plug in different
+parsers to make tradeoffs between speed and the ability to handle bad
+HTML.
+
+3. In Python 3 (but not Python 2), HTMLParser converts entities within
+attributes to the corresponding Unicode characters. In Python 2 it's
+possible to parse this string and leave the &eacute; intact.
+
+ <a href="http://crummy.com?sacr&eacute;&bleu">
+
+In Python 3, the &eacute; is always converted to \xe9 during
+parsing.
+
+
+= 3.0.7a =
+
+Added an import that makes BS work in Python 2.3.
+
+
+= 3.0.7 =
+
+Fixed a UnicodeDecodeError when unpickling documents that contain
+non-ASCII characters.
+
+Fixed a TypeError that occured in some circumstances when a tag
+contained no text.
+
+Jump through hoops to avoid the use of chardet, which can be extremely
+slow in some circumstances. UTF-8 documents should never trigger the
+use of chardet.
+
+Whitespace is preserved inside <pre> and <textarea> tags that contain
+nothing but whitespace.
+
+Beautiful Soup can now parse a doctype that's scoped to an XML namespace.
+
+
+= 3.0.6 =
+
+Got rid of a very old debug line that prevented chardet from working.
+
+Added a Tag.decompose() method that completely disconnects a tree or a
+subset of a tree, breaking it up into bite-sized pieces that are
+easy for the garbage collecter to collect.
+
+Tag.extract() now returns the tag that was extracted.
+
+Tag.findNext() now does something with the keyword arguments you pass
+it instead of dropping them on the floor.
+
+Fixed a Unicode conversion bug.
+
+Fixed a bug that garbled some <meta> tags when rewriting them.
+
+
+= 3.0.5 =
+
+Soup objects can now be pickled, and copied with copy.deepcopy.
+
+Tag.append now works properly on existing BS objects. (It wasn't
+originally intended for outside use, but it can be now.) (Giles
+Radford)
+
+Passing in a nonexistent encoding will no longer crash the parser on
+Python 2.4 (John Nagle).
+
+Fixed an underlying bug in SGMLParser that thinks ASCII has 255
+characters instead of 127 (John Nagle).
+
+Entities are converted more consistently to Unicode characters.
+
+Entity references in attribute values are now converted to Unicode
+characters when appropriate. Numeric entities are always converted,
+because SGMLParser always converts them outside of attribute values.
+
+ALL_ENTITIES happens to just be the XHTML entities, so I renamed it to
+XHTML_ENTITIES.
+
+The regular expression for bare ampersands was too loose. In some
+cases ampersands were not being escaped. (Sam Ruby?)
+
+Non-breaking spaces and other special Unicode space characters are no
+longer folded to ASCII spaces. (Robert Leftwich)
+
+Information inside a TEXTAREA tag is now parsed literally, not as HTML
+tags. TEXTAREA now works exactly the same way as SCRIPT. (Zephyr Fang)
+
+= 3.0.4 =
+
+Fixed a bug that crashed Unicode conversion in some cases.
+
+Fixed a bug that prevented UnicodeDammit from being used as a
+general-purpose data scrubber.
+
+Fixed some unit test failures when running against Python 2.5.
+
+When considering whether to convert smart quotes, UnicodeDammit now
+looks at the original encoding in a case-insensitive way.
+
+= 3.0.3 (20060606) =
+
+Beautiful Soup is now usable as a way to clean up invalid XML/HTML (be
+sure to pass in an appropriate value for convertEntities, or XML/HTML
+entities might stick around that aren't valid in HTML/XML). The result
+may not validate, but it should be good enough to not choke a
+real-world XML parser. Specifically, the output of a properly
+constructed soup object should always be valid as part of an XML
+document, but parts may be missing if they were missing in the
+original. As always, if the input is valid XML, the output will also
+be valid.
+
+= 3.0.2 (20060602) =
+
+Previously, Beautiful Soup correctly handled attribute values that
+contained embedded quotes (sometimes by escaping), but not other kinds
+of XML character. Now, it correctly handles or escapes all special XML
+characters in attribute values.
+
+I aliased methods to the 2.x names (fetch, find, findText, etc.) for
+backwards compatibility purposes. Those names are deprecated and if I
+ever do a 4.0 I will remove them. I will, I tell you!
+
+Fixed a bug where the findAll method wasn't passing along any keyword
+arguments.
+
+When run from the command line, Beautiful Soup now acts as an HTML
+pretty-printer, not an XML pretty-printer.
+
+= 3.0.1 (20060530) =
+
+Reintroduced the "fetch by CSS class" shortcut. I thought keyword
+arguments would replace it, but they don't. You can't call soup('a',
+class='foo') because class is a Python keyword.
+
+If Beautiful Soup encounters a meta tag that declares the encoding,
+but a SoupStrainer tells it not to parse that tag, Beautiful Soup will
+no longer try to rewrite the meta tag to mention the new
+encoding. Basically, this makes SoupStrainers work in real-world
+applications instead of crashing the parser.
+
+= 3.0.0 "Who would not give all else for two p" (20060528) =
+
+This release is not backward-compatible with previous releases. If
+you've got code written with a previous version of the library, go
+ahead and keep using it, unless one of the features mentioned here
+really makes your life easier. Since the library is self-contained,
+you can include an old copy of the library in your old applications,
+and use the new version for everything else.
+
+The documentation has been rewritten and greatly expanded with many
+more examples.
+
+Beautiful Soup autodetects the encoding of a document (or uses the one
+you specify), and converts it from its native encoding to
+Unicode. Internally, it only deals with Unicode strings. When you
+print out the document, it converts to UTF-8 (or another encoding you
+specify). [Doc reference]
+
+It's now easy to make large-scale changes to the parse tree without
+screwing up the navigation members. The methods are extract,
+replaceWith, and insert. [Doc reference. See also Improving Memory
+Usage with extract]
+
+Passing True in as an attribute value gives you tags that have any
+value for that attribute. You don't have to create a regular
+expression. Passing None for an attribute value gives you tags that
+don't have that attribute at all.
+
+Tag objects now know whether or not they're self-closing. This avoids
+the problem where Beautiful Soup thought that tags like <BR /> were
+self-closing even in XML documents. You can customize the self-closing
+tags for a parser object by passing them in as a list of
+selfClosingTags: you don't have to subclass anymore.
+
+There's a new built-in parser, MinimalSoup, which has most of
+BeautifulSoup's HTML-specific rules, but no tag nesting rules. [Doc
+reference]
+
+You can use a SoupStrainer to tell Beautiful Soup to parse only part
+of a document. This saves time and memory, often making Beautiful Soup
+about as fast as a custom-built SGMLParser subclass. [Doc reference,
+SoupStrainer reference]
+
+You can (usually) use keyword arguments instead of passing a
+dictionary of attributes to a search method. That is, you can replace
+soup(args={"id" : "5"}) with soup(id="5"). You can still use args if
+(for instance) you need to find an attribute whose name clashes with
+the name of an argument to findAll. [Doc reference: **kwargs attrs]
+
+The method names have changed to the better method names used in
+Rubyful Soup. Instead of find methods and fetch methods, there are
+only find methods. Instead of a scheme where you can't remember which
+method finds one element and which one finds them all, we have find
+and findAll. In general, if the method name mentions All or a plural
+noun (eg. findNextSiblings), then it finds many elements
+method. Otherwise, it only finds one element. [Doc reference]
+
+Some of the argument names have been renamed for clarity. For instance
+avoidParserProblems is now parserMassage.
+
+Beautiful Soup no longer implements a feed method. You need to pass a
+string or a filehandle into the soup constructor, not with feed after
+the soup has been created. There is still a feed method, but it's the
+feed method implemented by SGMLParser and calling it will bypass
+Beautiful Soup and cause problems.
+
+The NavigableText class has been renamed to NavigableString. There is
+no NavigableUnicodeString anymore, because every string inside a
+Beautiful Soup parse tree is a Unicode string.
+
+findText and fetchText are gone. Just pass a text argument into find
+or findAll.
+
+Null was more trouble than it was worth, so I got rid of it. Anything
+that used to return Null now returns None.
+
+Special XML constructs like comments and CDATA now have their own
+NavigableString subclasses, instead of being treated as oddly-formed
+data. If you parse a document that contains CDATA and write it back
+out, the CDATA will still be there.
+
+When you're parsing a document, you can get Beautiful Soup to convert
+XML or HTML entities into the corresponding Unicode characters. [Doc
+reference]
+
+= 2.1.1 (20050918) =
+
+Fixed a serious performance bug in BeautifulStoneSoup which was
+causing parsing to be incredibly slow.
+
+Corrected several entities that were previously being incorrectly
+translated from Microsoft smart-quote-like characters.
+
+Fixed a bug that was breaking text fetch.
+
+Fixed a bug that crashed the parser when text chunks that look like
+HTML tag names showed up within a SCRIPT tag.
+
+THEAD, TBODY, and TFOOT tags are now nestable within TABLE
+tags. Nested tables should parse more sensibly now.
+
+BASE is now considered a self-closing tag.
+
+= 2.1.0 "Game, or any other dish?" (20050504) =
+
+Added a wide variety of new search methods which, given a starting
+point inside the tree, follow a particular navigation member (like
+nextSibling) over and over again, looking for Tag and NavigableText
+objects that match certain criteria. The new methods are findNext,
+fetchNext, findPrevious, fetchPrevious, findNextSibling,
+fetchNextSiblings, findPreviousSibling, fetchPreviousSiblings,
+findParent, and fetchParents. All of these use the same basic code
+used by first and fetch, so you can pass your weird ways of matching
+things into these methods.
+
+The fetch method and its derivatives now accept a limit argument.
+
+You can now pass keyword arguments when calling a Tag object as though
+it were a method.
+
+Fixed a bug that caused all hand-created tags to share a single set of
+attributes.
+
+= 2.0.3 (20050501) =
+
+Fixed Python 2.2 support for iterators.
+
+Fixed a bug that gave the wrong representation to tags within quote
+tags like <script>.
+
+Took some code from Mark Pilgrim that treats CDATA declarations as
+data instead of ignoring them.
+
+Beautiful Soup's setup.py will now do an install even if the unit
+tests fail. It won't build a source distribution if the unit tests
+fail, so I can't release a new version unless they pass.
+
+= 2.0.2 (20050416) =
+
+Added the unit tests in a separate module, and packaged it with
+distutils.
+
+Fixed a bug that sometimes caused renderContents() to return a Unicode
+string even if there was no Unicode in the original string.
+
+Added the done() method, which closes all of the parser's open
+tags. It gets called automatically when you pass in some text to the
+constructor of a parser class; otherwise you must call it yourself.
+
+Reinstated some backwards compatibility with 1.x versions: referencing
+the string member of a NavigableText object returns the NavigableText
+object instead of throwing an error.
+
+= 2.0.1 (20050412) =
+
+Fixed a bug that caused bad results when you tried to reference a tag
+name shorter than 3 characters as a member of a Tag, eg. tag.table.td.
+
+Made sure all Tags have the 'hidden' attribute so that an attempt to
+access tag.hidden doesn't spawn an attempt to find a tag named
+'hidden'.
+
+Fixed a bug in the comparison operator.
+
+= 2.0.0 "Who cares for fish?" (20050410)
+
+Beautiful Soup version 1 was very useful but also pretty stupid. I
+originally wrote it without noticing any of the problems inherent in
+trying to build a parse tree out of ambiguous HTML tags. This version
+solves all of those problems to my satisfaction. It also adds many new
+clever things to make up for the removal of the stupid things.
+
+== Parsing ==
+
+The parser logic has been greatly improved, and the BeautifulSoup
+class should much more reliably yield a parse tree that looks like
+what the page author intended. For a particular class of odd edge
+cases that now causes problems, there is a new class,
+ICantBelieveItsBeautifulSoup.
+
+By default, Beautiful Soup now performs some cleanup operations on
+text before parsing it. This is to avoid common problems with bad
+definitions and self-closing tags that crash SGMLParser. You can
+provide your own set of cleanup operations, or turn it off
+altogether. The cleanup operations include fixing self-closing tags
+that don't close, and replacing Microsoft smart quotes and similar
+characters with their HTML entity equivalents.
+
+You can now get a pretty-print version of parsed HTML to get a visual
+picture of how Beautiful Soup parses it, with the Tag.prettify()
+method.
+
+== Strings and Unicode ==
+
+There are separate NavigableText subclasses for ASCII and Unicode
+strings. These classes directly subclass the corresponding base data
+types. This means you can treat NavigableText objects as strings
+instead of having to call methods on them to get the strings.
+
+str() on a Tag always returns a string, and unicode() always returns
+Unicode. Previously it was inconsistent.
+
+== Tree traversal ==
+
+In a first() or fetch() call, the tag name or the desired value of an
+attribute can now be any of the following:
+
+ * A string (matches that specific tag or that specific attribute value)
+ * A list of strings (matches any tag or attribute value in the list)
+ * A compiled regular expression object (matches any tag or attribute
+ value that matches the regular expression)
+ * A callable object that takes the Tag object or attribute value as a
+ string. It returns None/false/empty string if the given string
+ doesn't match, and any other value if it does.
+
+This is much easier to use than SQL-style wildcards (see, regular
+expressions are good for something). Because of this, I took out
+SQL-style wildcards. I'll put them back if someone complains, but
+their removal simplifies the code a lot.
+
+You can use fetch() and first() to search for text in the parse tree,
+not just tags. There are new alias methods fetchText() and firstText()
+designed for this purpose. As with searching for tags, you can pass in
+a string, a regular expression object, or a method to match your text.
+
+If you pass in something besides a map to the attrs argument of
+fetch() or first(), Beautiful Soup will assume you want to match that
+thing against the "class" attribute. When you're scraping
+well-structured HTML, this makes your code a lot cleaner.
+
+1.x and 2.x both let you call a Tag object as a shorthand for
+fetch(). For instance, foo("bar") is a shorthand for
+foo.fetch("bar"). In 2.x, you can also access a specially-named member
+of a Tag object as a shorthand for first(). For instance, foo.barTag
+is a shorthand for foo.first("bar"). By chaining these shortcuts you
+traverse a tree in very little code: for header in
+soup.bodyTag.pTag.tableTag('th'):
+
+If an element relationship (like parent or next) doesn't apply to a
+tag, it'll now show up Null instead of None. first() will also return
+Null if you ask it for a nonexistent tag. Null is an object that's
+just like None, except you can do whatever you want to it and it'll
+give you Null instead of throwing an error.
+
+This lets you do tree traversals like soup.htmlTag.headTag.titleTag
+without having to worry if the intermediate stages are actually
+there. Previously, if there was no 'head' tag in the document, headTag
+in that instance would have been None, and accessing its 'titleTag'
+member would have thrown an AttributeError. Now, you can get what you
+want when it exists, and get Null when it doesn't, without having to
+do a lot of conditionals checking to see if every stage is None.
+
+There are two new relations between page elements: previousSibling and
+nextSibling. They reference the previous and next element at the same
+level of the parse tree. For instance, if you have HTML like this:
+
+ <p><ul><li>Foo<br /><li>Bar</ul>
+
+The first 'li' tag has a previousSibling of Null and its nextSibling
+is the second 'li' tag. The second 'li' tag has a nextSibling of Null
+and its previousSibling is the first 'li' tag. The previousSibling of
+the 'ul' tag is the first 'p' tag. The nextSibling of 'Foo' is the
+'br' tag.
+
+I took out the ability to use fetch() to find tags that have a
+specific list of contents. See, I can't even explain it well. It was
+really difficult to use, I never used it, and I don't think anyone
+else ever used it. To the extent anyone did, they can probably use
+fetchText() instead. If it turns out someone needs it I'll think of
+another solution.
+
+== Tree manipulation ==
+
+You can add new attributes to a tag, and delete attributes from a
+tag. In 1.x you could only change a tag's existing attributes.
+
+== Porting Considerations ==
+
+There are three changes in 2.0 that break old code:
+
+In the post-1.2 release you could pass in a function into fetch(). The
+function took a string, the tag name. In 2.0, the function takes the
+actual Tag object.
+
+It's no longer to pass in SQL-style wildcards to fetch(). Use a
+regular expression instead.
+
+The different parsing algorithm means the parse tree may not be shaped
+like you expect. This will only actually affect you if your code uses
+one of the affected parts. I haven't run into this problem yet while
+porting my code.
+
+= Between 1.2 and 2.0 =
+
+This is the release to get if you want Python 1.5 compatibility.
+
+The desired value of an attribute can now be any of the following:
+
+ * A string
+ * A string with SQL-style wildcards
+ * A compiled RE object
+ * A callable that returns None/false/empty string if the given value
+ doesn't match, and any other value otherwise.
+
+This is much easier to use than SQL-style wildcards (see, regular
+expressions are good for something). Because of this, I no longer
+recommend you use SQL-style wildcards. They may go away in a future
+release to clean up the code.
+
+Made Beautiful Soup handle processing instructions as text instead of
+ignoring them.
+
+Applied patch from Richie Hindle (richie at entrian dot com) that
+makes tag.string a shorthand for tag.contents[0].string when the tag
+has only one string-owning child.
+
+Added still more nestable tags. The nestable tags thing won't work in
+a lot of cases and needs to be rethought.
+
+Fixed an edge case where searching for "%foo" would match any string
+shorter than "foo".
+
+= 1.2 "Who for such dainties would not stoop?" (20040708) =
+
+Applied patch from Ben Last (ben at benlast dot com) that made
+Tag.renderContents() correctly handle Unicode.
+
+Made BeautifulStoneSoup even dumber by making it not implicitly close
+a tag when another tag of the same type is encountered; only when an
+actual closing tag is encountered. This change courtesy of Fuzzy (mike
+at pcblokes dot com). BeautifulSoup still works as before.
+
+= 1.1 "Swimming in a hot tureen" =
+
+Added more 'nestable' tags. Changed popping semantics so that when a
+nestable tag is encountered, tags are popped up to the previously
+encountered nestable tag (of whatever kind). I will revert this if
+enough people complain, but it should make more people's lives easier
+than harder. This enhancement was suggested by Anthony Baxter (anthony
+at interlink dot com dot au).
+
+= 1.0 "So rich and green" (20040420) =
+
+Initial release.
diff --git a/bitbake/lib/bs4/__init__.py b/bitbake/lib/bs4/__init__.py
new file mode 100644
index 0000000000..7ba34269af
--- /dev/null
+++ b/bitbake/lib/bs4/__init__.py
@@ -0,0 +1,406 @@
+"""Beautiful Soup
+Elixir and Tonic
+"The Screen-Scraper's Friend"
+http://www.crummy.com/software/BeautifulSoup/
+
+Beautiful Soup uses a pluggable XML or HTML parser to parse a
+(possibly invalid) document into a tree representation. Beautiful Soup
+provides provides methods and Pythonic idioms that make it easy to
+navigate, search, and modify the parse tree.
+
+Beautiful Soup works with Python 2.6 and up. It works better if lxml
+and/or html5lib is installed.
+
+For more than you ever wanted to know about Beautiful Soup, see the
+documentation:
+http://www.crummy.com/software/BeautifulSoup/bs4/doc/
+"""
+
+__author__ = "Leonard Richardson (leonardr@segfault.org)"
+__version__ = "4.3.2"
+__copyright__ = "Copyright (c) 2004-2013 Leonard Richardson"
+__license__ = "MIT"
+
+__all__ = ['BeautifulSoup']
+
+import os
+import re
+import warnings
+
+from .builder import builder_registry, ParserRejectedMarkup
+from .dammit import UnicodeDammit
+from .element import (
+ CData,
+ Comment,
+ DEFAULT_OUTPUT_ENCODING,
+ Declaration,
+ Doctype,
+ NavigableString,
+ PageElement,
+ ProcessingInstruction,
+ ResultSet,
+ SoupStrainer,
+ Tag,
+ )
+
+# The very first thing we do is give a useful error if someone is
+# running this code under Python 3 without converting it.
+syntax_error = u'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work. You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).'
+
+class BeautifulSoup(Tag):
+ """
+ This class defines the basic interface called by the tree builders.
+
+ These methods will be called by the parser:
+ reset()
+ feed(markup)
+
+ The tree builder may call these methods from its feed() implementation:
+ handle_starttag(name, attrs) # See note about return value
+ handle_endtag(name)
+ handle_data(data) # Appends to the current data node
+ endData(containerClass=NavigableString) # Ends the current data node
+
+ No matter how complicated the underlying parser is, you should be
+ able to build a tree using 'start tag' events, 'end tag' events,
+ 'data' events, and "done with data" events.
+
+ If you encounter an empty-element tag (aka a self-closing tag,
+ like HTML's <br> tag), call handle_starttag and then
+ handle_endtag.
+ """
+ ROOT_TAG_NAME = u'[document]'
+
+ # If the end-user gives no indication which tree builder they
+ # want, look for one with these features.
+ DEFAULT_BUILDER_FEATURES = ['html', 'fast']
+
+ ASCII_SPACES = '\x20\x0a\x09\x0c\x0d'
+
+ def __init__(self, markup="", features=None, builder=None,
+ parse_only=None, from_encoding=None, **kwargs):
+ """The Soup object is initialized as the 'root tag', and the
+ provided markup (which can be a string or a file-like object)
+ is fed into the underlying parser."""
+
+ if 'convertEntities' in kwargs:
+ warnings.warn(
+ "BS4 does not respect the convertEntities argument to the "
+ "BeautifulSoup constructor. Entities are always converted "
+ "to Unicode characters.")
+
+ if 'markupMassage' in kwargs:
+ del kwargs['markupMassage']
+ warnings.warn(
+ "BS4 does not respect the markupMassage argument to the "
+ "BeautifulSoup constructor. The tree builder is responsible "
+ "for any necessary markup massage.")
+
+ if 'smartQuotesTo' in kwargs:
+ del kwargs['smartQuotesTo']
+ warnings.warn(
+ "BS4 does not respect the smartQuotesTo argument to the "
+ "BeautifulSoup constructor. Smart quotes are always converted "
+ "to Unicode characters.")
+
+ if 'selfClosingTags' in kwargs:
+ del kwargs['selfClosingTags']
+ warnings.warn(
+ "BS4 does not respect the selfClosingTags argument to the "
+ "BeautifulSoup constructor. The tree builder is responsible "
+ "for understanding self-closing tags.")
+
+ if 'isHTML' in kwargs:
+ del kwargs['isHTML']
+ warnings.warn(
+ "BS4 does not respect the isHTML argument to the "
+ "BeautifulSoup constructor. You can pass in features='html' "
+ "or features='xml' to get a builder capable of handling "
+ "one or the other.")
+
+ def deprecated_argument(old_name, new_name):
+ if old_name in kwargs:
+ warnings.warn(
+ 'The "%s" argument to the BeautifulSoup constructor '
+ 'has been renamed to "%s."' % (old_name, new_name))
+ value = kwargs[old_name]
+ del kwargs[old_name]
+ return value
+ return None
+
+ parse_only = parse_only or deprecated_argument(
+ "parseOnlyThese", "parse_only")
+
+ from_encoding = from_encoding or deprecated_argument(
+ "fromEncoding", "from_encoding")
+
+ if len(kwargs) > 0:
+ arg = kwargs.keys().pop()
+ raise TypeError(
+ "__init__() got an unexpected keyword argument '%s'" % arg)
+
+ if builder is None:
+ if isinstance(features, basestring):
+ features = [features]
+ if features is None or len(features) == 0:
+ features = self.DEFAULT_BUILDER_FEATURES
+ builder_class = builder_registry.lookup(*features)
+ if builder_class is None:
+ raise FeatureNotFound(
+ "Couldn't find a tree builder with the features you "
+ "requested: %s. Do you need to install a parser library?"
+ % ",".join(features))
+ builder = builder_class()
+ self.builder = builder
+ self.is_xml = builder.is_xml
+ self.builder.soup = self
+
+ self.parse_only = parse_only
+
+ if hasattr(markup, 'read'): # It's a file-type object.
+ markup = markup.read()
+ elif len(markup) <= 256:
+ # Print out warnings for a couple beginner problems
+ # involving passing non-markup to Beautiful Soup.
+ # Beautiful Soup will still parse the input as markup,
+ # just in case that's what the user really wants.
+ if (isinstance(markup, unicode)
+ and not os.path.supports_unicode_filenames):
+ possible_filename = markup.encode("utf8")
+ else:
+ possible_filename = markup
+ is_file = False
+ try:
+ is_file = os.path.exists(possible_filename)
+ except Exception, e:
+ # This is almost certainly a problem involving
+ # characters not valid in filenames on this
+ # system. Just let it go.
+ pass
+ if is_file:
+ warnings.warn(
+ '"%s" looks like a filename, not markup. You should probably open this file and pass the filehandle into Beautiful Soup.' % markup)
+ if markup[:5] == "http:" or markup[:6] == "https:":
+ # TODO: This is ugly but I couldn't get it to work in
+ # Python 3 otherwise.
+ if ((isinstance(markup, bytes) and not b' ' in markup)
+ or (isinstance(markup, unicode) and not u' ' in markup)):
+ warnings.warn(
+ '"%s" looks like a URL. Beautiful Soup is not an HTTP client. You should probably use an HTTP client to get the document behind the URL, and feed that document to Beautiful Soup.' % markup)
+
+ for (self.markup, self.original_encoding, self.declared_html_encoding,
+ self.contains_replacement_characters) in (
+ self.builder.prepare_markup(markup, from_encoding)):
+ self.reset()
+ try:
+ self._feed()
+ break
+ except ParserRejectedMarkup:
+ pass
+
+ # Clear out the markup and remove the builder's circular
+ # reference to this object.
+ self.markup = None
+ self.builder.soup = None
+
+ def _feed(self):
+ # Convert the document to Unicode.
+ self.builder.reset()
+
+ self.builder.feed(self.markup)
+ # Close out any unfinished strings and close all the open tags.
+ self.endData()
+ while self.currentTag.name != self.ROOT_TAG_NAME:
+ self.popTag()
+
+ def reset(self):
+ Tag.__init__(self, self, self.builder, self.ROOT_TAG_NAME)
+ self.hidden = 1
+ self.builder.reset()
+ self.current_data = []
+ self.currentTag = None
+ self.tagStack = []
+ self.preserve_whitespace_tag_stack = []
+ self.pushTag(self)
+
+ def new_tag(self, name, namespace=None, nsprefix=None, **attrs):
+ """Create a new tag associated with this soup."""
+ return Tag(None, self.builder, name, namespace, nsprefix, attrs)
+
+ def new_string(self, s, subclass=NavigableString):
+ """Create a new NavigableString associated with this soup."""
+ navigable = subclass(s)
+ navigable.setup()
+ return navigable
+
+ def insert_before(self, successor):
+ raise NotImplementedError("BeautifulSoup objects don't support insert_before().")
+
+ def insert_after(self, successor):
+ raise NotImplementedError("BeautifulSoup objects don't support insert_after().")
+
+ def popTag(self):
+ tag = self.tagStack.pop()
+ if self.preserve_whitespace_tag_stack and tag == self.preserve_whitespace_tag_stack[-1]:
+ self.preserve_whitespace_tag_stack.pop()
+ #print "Pop", tag.name
+ if self.tagStack:
+ self.currentTag = self.tagStack[-1]
+ return self.currentTag
+
+ def pushTag(self, tag):
+ #print "Push", tag.name
+ if self.currentTag:
+ self.currentTag.contents.append(tag)
+ self.tagStack.append(tag)
+ self.currentTag = self.tagStack[-1]
+ if tag.name in self.builder.preserve_whitespace_tags:
+ self.preserve_whitespace_tag_stack.append(tag)
+
+ def endData(self, containerClass=NavigableString):
+ if self.current_data:
+ current_data = u''.join(self.current_data)
+ # If whitespace is not preserved, and this string contains
+ # nothing but ASCII spaces, replace it with a single space
+ # or newline.
+ if not self.preserve_whitespace_tag_stack:
+ strippable = True
+ for i in current_data:
+ if i not in self.ASCII_SPACES:
+ strippable = False
+ break
+ if strippable:
+ if '\n' in current_data:
+ current_data = '\n'
+ else:
+ current_data = ' '
+
+ # Reset the data collector.
+ self.current_data = []
+
+ # Should we add this string to the tree at all?
+ if self.parse_only and len(self.tagStack) <= 1 and \
+ (not self.parse_only.text or \
+ not self.parse_only.search(current_data)):
+ return
+
+ o = containerClass(current_data)
+ self.object_was_parsed(o)
+
+ def object_was_parsed(self, o, parent=None, most_recent_element=None):
+ """Add an object to the parse tree."""
+ parent = parent or self.currentTag
+ most_recent_element = most_recent_element or self._most_recent_element
+ o.setup(parent, most_recent_element)
+
+ if most_recent_element is not None:
+ most_recent_element.next_element = o
+ self._most_recent_element = o
+ parent.contents.append(o)
+
+ def _popToTag(self, name, nsprefix=None, inclusivePop=True):
+ """Pops the tag stack up to and including the most recent
+ instance of the given tag. If inclusivePop is false, pops the tag
+ stack up to but *not* including the most recent instqance of
+ the given tag."""
+ #print "Popping to %s" % name
+ if name == self.ROOT_TAG_NAME:
+ # The BeautifulSoup object itself can never be popped.
+ return
+
+ most_recently_popped = None
+
+ stack_size = len(self.tagStack)
+ for i in range(stack_size - 1, 0, -1):
+ t = self.tagStack[i]
+ if (name == t.name and nsprefix == t.prefix):
+ if inclusivePop:
+ most_recently_popped = self.popTag()
+ break
+ most_recently_popped = self.popTag()
+
+ return most_recently_popped
+
+ def handle_starttag(self, name, namespace, nsprefix, attrs):
+ """Push a start tag on to the stack.
+
+ If this method returns None, the tag was rejected by the
+ SoupStrainer. You should proceed as if the tag had not occured
+ in the document. For instance, if this was a self-closing tag,
+ don't call handle_endtag.
+ """
+
+ # print "Start tag %s: %s" % (name, attrs)
+ self.endData()
+
+ if (self.parse_only and len(self.tagStack) <= 1
+ and (self.parse_only.text
+ or not self.parse_only.search_tag(name, attrs))):
+ return None
+
+ tag = Tag(self, self.builder, name, namespace, nsprefix, attrs,
+ self.currentTag, self._most_recent_element)
+ if tag is None:
+ return tag
+ if self._most_recent_element:
+ self._most_recent_element.next_element = tag
+ self._most_recent_element = tag
+ self.pushTag(tag)
+ return tag
+
+ def handle_endtag(self, name, nsprefix=None):
+ #print "End tag: " + name
+ self.endData()
+ self._popToTag(name, nsprefix)
+
+ def handle_data(self, data):
+ self.current_data.append(data)
+
+ def decode(self, pretty_print=False,
+ eventual_encoding=DEFAULT_OUTPUT_ENCODING,
+ formatter="minimal"):
+ """Returns a string or Unicode representation of this document.
+ To get Unicode, pass None for encoding."""
+
+ if self.is_xml:
+ # Print the XML declaration
+ encoding_part = ''
+ if eventual_encoding != None:
+ encoding_part = ' encoding="%s"' % eventual_encoding
+ prefix = u'<?xml version="1.0"%s?>\n' % encoding_part
+ else:
+ prefix = u''
+ if not pretty_print:
+ indent_level = None
+ else:
+ indent_level = 0
+ return prefix + super(BeautifulSoup, self).decode(
+ indent_level, eventual_encoding, formatter)
+
+# Alias to make it easier to type import: 'from bs4 import _soup'
+_s = BeautifulSoup
+_soup = BeautifulSoup
+
+class BeautifulStoneSoup(BeautifulSoup):
+ """Deprecated interface to an XML parser."""
+
+ def __init__(self, *args, **kwargs):
+ kwargs['features'] = 'xml'
+ warnings.warn(
+ 'The BeautifulStoneSoup class is deprecated. Instead of using '
+ 'it, pass features="xml" into the BeautifulSoup constructor.')
+ super(BeautifulStoneSoup, self).__init__(*args, **kwargs)
+
+
+class StopParsing(Exception):
+ pass
+
+class FeatureNotFound(ValueError):
+ pass
+
+
+#By default, act as an HTML pretty-printer.
+if __name__ == '__main__':
+ import sys
+ soup = BeautifulSoup(sys.stdin)
+ print soup.prettify()
diff --git a/bitbake/lib/bs4/builder/__init__.py b/bitbake/lib/bs4/builder/__init__.py
new file mode 100644
index 0000000000..740f5f29cd
--- /dev/null
+++ b/bitbake/lib/bs4/builder/__init__.py
@@ -0,0 +1,321 @@
+from collections import defaultdict
+import itertools
+import sys
+from bs4.element import (
+ CharsetMetaAttributeValue,
+ ContentMetaAttributeValue,
+ whitespace_re
+ )
+
+__all__ = [
+ 'HTMLTreeBuilder',
+ 'SAXTreeBuilder',
+ 'TreeBuilder',
+ 'TreeBuilderRegistry',
+ ]
+
+# Some useful features for a TreeBuilder to have.
+FAST = 'fast'
+PERMISSIVE = 'permissive'
+STRICT = 'strict'
+XML = 'xml'
+HTML = 'html'
+HTML_5 = 'html5'
+
+
+class TreeBuilderRegistry(object):
+
+ def __init__(self):
+ self.builders_for_feature = defaultdict(list)
+ self.builders = []
+
+ def register(self, treebuilder_class):
+ """Register a treebuilder based on its advertised features."""
+ for feature in treebuilder_class.features:
+ self.builders_for_feature[feature].insert(0, treebuilder_class)
+ self.builders.insert(0, treebuilder_class)
+
+ def lookup(self, *features):
+ if len(self.builders) == 0:
+ # There are no builders at all.
+ return None
+
+ if len(features) == 0:
+ # They didn't ask for any features. Give them the most
+ # recently registered builder.
+ return self.builders[0]
+
+ # Go down the list of features in order, and eliminate any builders
+ # that don't match every feature.
+ features = list(features)
+ features.reverse()
+ candidates = None
+ candidate_set = None
+ while len(features) > 0:
+ feature = features.pop()
+ we_have_the_feature = self.builders_for_feature.get(feature, [])
+ if len(we_have_the_feature) > 0:
+ if candidates is None:
+ candidates = we_have_the_feature
+ candidate_set = set(candidates)
+ else:
+ # Eliminate any candidates that don't have this feature.
+ candidate_set = candidate_set.intersection(
+ set(we_have_the_feature))
+
+ # The only valid candidates are the ones in candidate_set.
+ # Go through the original list of candidates and pick the first one
+ # that's in candidate_set.
+ if candidate_set is None:
+ return None
+ for candidate in candidates:
+ if candidate in candidate_set:
+ return candidate
+ return None
+
+# The BeautifulSoup class will take feature lists from developers and use them
+# to look up builders in this registry.
+builder_registry = TreeBuilderRegistry()
+
+class TreeBuilder(object):
+ """Turn a document into a Beautiful Soup object tree."""
+
+ features = []
+
+ is_xml = False
+ preserve_whitespace_tags = set()
+ empty_element_tags = None # A tag will be considered an empty-element
+ # tag when and only when it has no contents.
+
+ # A value for these tag/attribute combinations is a space- or
+ # comma-separated list of CDATA, rather than a single CDATA.
+ cdata_list_attributes = {}
+
+
+ def __init__(self):
+ self.soup = None
+
+ def reset(self):
+ pass
+
+ def can_be_empty_element(self, tag_name):
+ """Might a tag with this name be an empty-element tag?
+
+ The final markup may or may not actually present this tag as
+ self-closing.
+
+ For instance: an HTMLBuilder does not consider a <p> tag to be
+ an empty-element tag (it's not in
+ HTMLBuilder.empty_element_tags). This means an empty <p> tag
+ will be presented as "<p></p>", not "<p />".
+
+ The default implementation has no opinion about which tags are
+ empty-element tags, so a tag will be presented as an
+ empty-element tag if and only if it has no contents.
+ "<foo></foo>" will become "<foo />", and "<foo>bar</foo>" will
+ be left alone.
+ """
+ if self.empty_element_tags is None:
+ return True
+ return tag_name in self.empty_element_tags
+
+ def feed(self, markup):
+ raise NotImplementedError()
+
+ def prepare_markup(self, markup, user_specified_encoding=None,
+ document_declared_encoding=None):
+ return markup, None, None, False
+
+ def test_fragment_to_document(self, fragment):
+ """Wrap an HTML fragment to make it look like a document.
+
+ Different parsers do this differently. For instance, lxml
+ introduces an empty <head> tag, and html5lib
+ doesn't. Abstracting this away lets us write simple tests
+ which run HTML fragments through the parser and compare the
+ results against other HTML fragments.
+
+ This method should not be used outside of tests.
+ """
+ return fragment
+
+ def set_up_substitutions(self, tag):
+ return False
+
+ def _replace_cdata_list_attribute_values(self, tag_name, attrs):
+ """Replaces class="foo bar" with class=["foo", "bar"]
+
+ Modifies its input in place.
+ """
+ if not attrs:
+ return attrs
+ if self.cdata_list_attributes:
+ universal = self.cdata_list_attributes.get('*', [])
+ tag_specific = self.cdata_list_attributes.get(
+ tag_name.lower(), None)
+ for attr in attrs.keys():
+ if attr in universal or (tag_specific and attr in tag_specific):
+ # We have a "class"-type attribute whose string
+ # value is a whitespace-separated list of
+ # values. Split it into a list.
+ value = attrs[attr]
+ if isinstance(value, basestring):
+ values = whitespace_re.split(value)
+ else:
+ # html5lib sometimes calls setAttributes twice
+ # for the same tag when rearranging the parse
+ # tree. On the second call the attribute value
+ # here is already a list. If this happens,
+ # leave the value alone rather than trying to
+ # split it again.
+ values = value
+ attrs[attr] = values
+ return attrs
+
+class SAXTreeBuilder(TreeBuilder):
+ """A Beautiful Soup treebuilder that listens for SAX events."""
+
+ def feed(self, markup):
+ raise NotImplementedError()
+
+ def close(self):
+ pass
+
+ def startElement(self, name, attrs):
+ attrs = dict((key[1], value) for key, value in list(attrs.items()))
+ #print "Start %s, %r" % (name, attrs)
+ self.soup.handle_starttag(name, attrs)
+
+ def endElement(self, name):
+ #print "End %s" % name
+ self.soup.handle_endtag(name)
+
+ def startElementNS(self, nsTuple, nodeName, attrs):
+ # Throw away (ns, nodeName) for now.
+ self.startElement(nodeName, attrs)
+
+ def endElementNS(self, nsTuple, nodeName):
+ # Throw away (ns, nodeName) for now.
+ self.endElement(nodeName)
+ #handler.endElementNS((ns, node.nodeName), node.nodeName)
+
+ def startPrefixMapping(self, prefix, nodeValue):
+ # Ignore the prefix for now.
+ pass
+
+ def endPrefixMapping(self, prefix):
+ # Ignore the prefix for now.
+ # handler.endPrefixMapping(prefix)
+ pass
+
+ def characters(self, content):
+ self.soup.handle_data(content)
+
+ def startDocument(self):
+ pass
+
+ def endDocument(self):
+ pass
+
+
+class HTMLTreeBuilder(TreeBuilder):
+ """This TreeBuilder knows facts about HTML.
+
+ Such as which tags are empty-element tags.
+ """
+
+ preserve_whitespace_tags = set(['pre', 'textarea'])
+ empty_element_tags = set(['br' , 'hr', 'input', 'img', 'meta',
+ 'spacer', 'link', 'frame', 'base'])
+
+ # The HTML standard defines these attributes as containing a
+ # space-separated list of values, not a single value. That is,
+ # class="foo bar" means that the 'class' attribute has two values,
+ # 'foo' and 'bar', not the single value 'foo bar'. When we
+ # encounter one of these attributes, we will parse its value into
+ # a list of values if possible. Upon output, the list will be
+ # converted back into a string.
+ cdata_list_attributes = {
+ "*" : ['class', 'accesskey', 'dropzone'],
+ "a" : ['rel', 'rev'],
+ "link" : ['rel', 'rev'],
+ "td" : ["headers"],
+ "th" : ["headers"],
+ "td" : ["headers"],
+ "form" : ["accept-charset"],
+ "object" : ["archive"],
+
+ # These are HTML5 specific, as are *.accesskey and *.dropzone above.
+ "area" : ["rel"],
+ "icon" : ["sizes"],
+ "iframe" : ["sandbox"],
+ "output" : ["for"],
+ }
+
+ def set_up_substitutions(self, tag):
+ # We are only interested in <meta> tags
+ if tag.name != 'meta':
+ return False
+
+ http_equiv = tag.get('http-equiv')
+ content = tag.get('content')
+ charset = tag.get('charset')
+
+ # We are interested in <meta> tags that say what encoding the
+ # document was originally in. This means HTML 5-style <meta>
+ # tags that provide the "charset" attribute. It also means
+ # HTML 4-style <meta> tags that provide the "content"
+ # attribute and have "http-equiv" set to "content-type".
+ #
+ # In both cases we will replace the value of the appropriate
+ # attribute with a standin object that can take on any
+ # encoding.
+ meta_encoding = None
+ if charset is not None:
+ # HTML 5 style:
+ # <meta charset="utf8">
+ meta_encoding = charset
+ tag['charset'] = CharsetMetaAttributeValue(charset)
+
+ elif (content is not None and http_equiv is not None
+ and http_equiv.lower() == 'content-type'):
+ # HTML 4 style:
+ # <meta http-equiv="content-type" content="text/html; charset=utf8">
+ tag['content'] = ContentMetaAttributeValue(content)
+
+ return (meta_encoding is not None)
+
+def register_treebuilders_from(module):
+ """Copy TreeBuilders from the given module into this module."""
+ # I'm fairly sure this is not the best way to do this.
+ this_module = sys.modules['bs4.builder']
+ for name in module.__all__:
+ obj = getattr(module, name)
+
+ if issubclass(obj, TreeBuilder):
+ setattr(this_module, name, obj)
+ this_module.__all__.append(name)
+ # Register the builder while we're at it.
+ this_module.builder_registry.register(obj)
+
+class ParserRejectedMarkup(Exception):
+ pass
+
+# Builders are registered in reverse order of priority, so that custom
+# builder registrations will take precedence. In general, we want lxml
+# to take precedence over html5lib, because it's faster. And we only
+# want to use HTMLParser as a last result.
+from . import _htmlparser
+register_treebuilders_from(_htmlparser)
+try:
+ from . import _html5lib
+ register_treebuilders_from(_html5lib)
+except ImportError:
+ # They don't have html5lib installed.
+ pass
+try:
+ from . import _lxml
+ register_treebuilders_from(_lxml)
+except ImportError:
+ # They don't have lxml installed.
+ pass
diff --git a/bitbake/lib/bs4/builder/_html5lib.py b/bitbake/lib/bs4/builder/_html5lib.py
new file mode 100644
index 0000000000..7de36ae75e
--- /dev/null
+++ b/bitbake/lib/bs4/builder/_html5lib.py
@@ -0,0 +1,285 @@
+__all__ = [
+ 'HTML5TreeBuilder',
+ ]
+
+import warnings
+from bs4.builder import (
+ PERMISSIVE,
+ HTML,
+ HTML_5,
+ HTMLTreeBuilder,
+ )
+from bs4.element import NamespacedAttribute
+import html5lib
+from html5lib.constants import namespaces
+from bs4.element import (
+ Comment,
+ Doctype,
+ NavigableString,
+ Tag,
+ )
+
+class HTML5TreeBuilder(HTMLTreeBuilder):
+ """Use html5lib to build a tree."""
+
+ features = ['html5lib', PERMISSIVE, HTML_5, HTML]
+
+ def prepare_markup(self, markup, user_specified_encoding):
+ # Store the user-specified encoding for use later on.
+ self.user_specified_encoding = user_specified_encoding
+ yield (markup, None, None, False)
+
+ # These methods are defined by Beautiful Soup.
+ def feed(self, markup):
+ if self.soup.parse_only is not None:
+ warnings.warn("You provided a value for parse_only, but the html5lib tree builder doesn't support parse_only. The entire document will be parsed.")
+ parser = html5lib.HTMLParser(tree=self.create_treebuilder)
+ doc = parser.parse(markup, encoding=self.user_specified_encoding)
+
+ # Set the character encoding detected by the tokenizer.
+ if isinstance(markup, unicode):
+ # We need to special-case this because html5lib sets
+ # charEncoding to UTF-8 if it gets Unicode input.
+ doc.original_encoding = None
+ else:
+ doc.original_encoding = parser.tokenizer.stream.charEncoding[0]
+
+ def create_treebuilder(self, namespaceHTMLElements):
+ self.underlying_builder = TreeBuilderForHtml5lib(
+ self.soup, namespaceHTMLElements)
+ return self.underlying_builder
+
+ def test_fragment_to_document(self, fragment):
+ """See `TreeBuilder`."""
+ return u'<html><head></head><body>%s</body></html>' % fragment
+
+
+class TreeBuilderForHtml5lib(html5lib.treebuilders._base.TreeBuilder):
+
+ def __init__(self, soup, namespaceHTMLElements):
+ self.soup = soup
+ super(TreeBuilderForHtml5lib, self).__init__(namespaceHTMLElements)
+
+ def documentClass(self):
+ self.soup.reset()
+ return Element(self.soup, self.soup, None)
+
+ def insertDoctype(self, token):
+ name = token["name"]
+ publicId = token["publicId"]
+ systemId = token["systemId"]
+
+ doctype = Doctype.for_name_and_ids(name, publicId, systemId)
+ self.soup.object_was_parsed(doctype)
+
+ def elementClass(self, name, namespace):
+ tag = self.soup.new_tag(name, namespace)
+ return Element(tag, self.soup, namespace)
+
+ def commentClass(self, data):
+ return TextNode(Comment(data), self.soup)
+
+ def fragmentClass(self):
+ self.soup = BeautifulSoup("")
+ self.soup.name = "[document_fragment]"
+ return Element(self.soup, self.soup, None)
+
+ def appendChild(self, node):
+ # XXX This code is not covered by the BS4 tests.
+ self.soup.append(node.element)
+
+ def getDocument(self):
+ return self.soup
+
+ def getFragment(self):
+ return html5lib.treebuilders._base.TreeBuilder.getFragment(self).element
+
+class AttrList(object):
+ def __init__(self, element):
+ self.element = element
+ self.attrs = dict(self.element.attrs)
+ def __iter__(self):
+ return list(self.attrs.items()).__iter__()
+ def __setitem__(self, name, value):
+ "set attr", name, value
+ self.element[name] = value
+ def items(self):
+ return list(self.attrs.items())
+ def keys(self):
+ return list(self.attrs.keys())
+ def __len__(self):
+ return len(self.attrs)
+ def __getitem__(self, name):
+ return self.attrs[name]
+ def __contains__(self, name):
+ return name in list(self.attrs.keys())
+
+
+class Element(html5lib.treebuilders._base.Node):
+ def __init__(self, element, soup, namespace):
+ html5lib.treebuilders._base.Node.__init__(self, element.name)
+ self.element = element
+ self.soup = soup
+ self.namespace = namespace
+
+ def appendChild(self, node):
+ string_child = child = None
+ if isinstance(node, basestring):
+ # Some other piece of code decided to pass in a string
+ # instead of creating a TextElement object to contain the
+ # string.
+ string_child = child = node
+ elif isinstance(node, Tag):
+ # Some other piece of code decided to pass in a Tag
+ # instead of creating an Element object to contain the
+ # Tag.
+ child = node
+ elif node.element.__class__ == NavigableString:
+ string_child = child = node.element
+ else:
+ child = node.element
+
+ if not isinstance(child, basestring) and child.parent is not None:
+ node.element.extract()
+
+ if (string_child and self.element.contents
+ and self.element.contents[-1].__class__ == NavigableString):
+ # We are appending a string onto another string.
+ # TODO This has O(n^2) performance, for input like
+ # "a</a>a</a>a</a>..."
+ old_element = self.element.contents[-1]
+ new_element = self.soup.new_string(old_element + string_child)
+ old_element.replace_with(new_element)
+ self.soup._most_recent_element = new_element
+ else:
+ if isinstance(node, basestring):
+ # Create a brand new NavigableString from this string.
+ child = self.soup.new_string(node)
+
+ # Tell Beautiful Soup to act as if it parsed this element
+ # immediately after the parent's last descendant. (Or
+ # immediately after the parent, if it has no children.)
+ if self.element.contents:
+ most_recent_element = self.element._last_descendant(False)
+ else:
+ most_recent_element = self.element
+
+ self.soup.object_was_parsed(
+ child, parent=self.element,
+ most_recent_element=most_recent_element)
+
+ def getAttributes(self):
+ return AttrList(self.element)
+
+ def setAttributes(self, attributes):
+ if attributes is not None and len(attributes) > 0:
+
+ converted_attributes = []
+ for name, value in list(attributes.items()):
+ if isinstance(name, tuple):
+ new_name = NamespacedAttribute(*name)
+ del attributes[name]
+ attributes[new_name] = value
+
+ self.soup.builder._replace_cdata_list_attribute_values(
+ self.name, attributes)
+ for name, value in attributes.items():
+ self.element[name] = value
+
+ # The attributes may contain variables that need substitution.
+ # Call set_up_substitutions manually.
+ #
+ # The Tag constructor called this method when the Tag was created,
+ # but we just set/changed the attributes, so call it again.
+ self.soup.builder.set_up_substitutions(self.element)
+ attributes = property(getAttributes, setAttributes)
+
+ def insertText(self, data, insertBefore=None):
+ if insertBefore:
+ text = TextNode(self.soup.new_string(data), self.soup)
+ self.insertBefore(data, insertBefore)
+ else:
+ self.appendChild(data)
+
+ def insertBefore(self, node, refNode):
+ index = self.element.index(refNode.element)
+ if (node.element.__class__ == NavigableString and self.element.contents
+ and self.element.contents[index-1].__class__ == NavigableString):
+ # (See comments in appendChild)
+ old_node = self.element.contents[index-1]
+ new_str = self.soup.new_string(old_node + node.element)
+ old_node.replace_with(new_str)
+ else:
+ self.element.insert(index, node.element)
+ node.parent = self
+
+ def removeChild(self, node):
+ node.element.extract()
+
+ def reparentChildren(self, new_parent):
+ """Move all of this tag's children into another tag."""
+ element = self.element
+ new_parent_element = new_parent.element
+ # Determine what this tag's next_element will be once all the children
+ # are removed.
+ final_next_element = element.next_sibling
+
+ new_parents_last_descendant = new_parent_element._last_descendant(False, False)
+ if len(new_parent_element.contents) > 0:
+ # The new parent already contains children. We will be
+ # appending this tag's children to the end.
+ new_parents_last_child = new_parent_element.contents[-1]
+ new_parents_last_descendant_next_element = new_parents_last_descendant.next_element
+ else:
+ # The new parent contains no children.
+ new_parents_last_child = None
+ new_parents_last_descendant_next_element = new_parent_element.next_element
+
+ to_append = element.contents
+ append_after = new_parent.element.contents
+ if len(to_append) > 0:
+ # Set the first child's previous_element and previous_sibling
+ # to elements within the new parent
+ first_child = to_append[0]
+ first_child.previous_element = new_parents_last_descendant
+ first_child.previous_sibling = new_parents_last_child
+
+ # Fix the last child's next_element and next_sibling
+ last_child = to_append[-1]
+ last_child.next_element = new_parents_last_descendant_next_element
+ last_child.next_sibling = None
+
+ for child in to_append:
+ child.parent = new_parent_element
+ new_parent_element.contents.append(child)
+
+ # Now that this element has no children, change its .next_element.
+ element.contents = []
+ element.next_element = final_next_element
+
+ def cloneNode(self):
+ tag = self.soup.new_tag(self.element.name, self.namespace)
+ node = Element(tag, self.soup, self.namespace)
+ for key,value in self.attributes:
+ node.attributes[key] = value
+ return node
+
+ def hasContent(self):
+ return self.element.contents
+
+ def getNameTuple(self):
+ if self.namespace == None:
+ return namespaces["html"], self.name
+ else:
+ return self.namespace, self.name
+
+ nameTuple = property(getNameTuple)
+
+class TextNode(Element):
+ def __init__(self, element, soup):
+ html5lib.treebuilders._base.Node.__init__(self, None)
+ self.element = element
+ self.soup = soup
+
+ def cloneNode(self):
+ raise NotImplementedError
diff --git a/bitbake/lib/bs4/builder/_htmlparser.py b/bitbake/lib/bs4/builder/_htmlparser.py
new file mode 100644
index 0000000000..ca8d8b892b
--- /dev/null
+++ b/bitbake/lib/bs4/builder/_htmlparser.py
@@ -0,0 +1,258 @@
+"""Use the HTMLParser library to parse HTML files that aren't too bad."""
+
+__all__ = [
+ 'HTMLParserTreeBuilder',
+ ]
+
+from HTMLParser import (
+ HTMLParser,
+ HTMLParseError,
+ )
+import sys
+import warnings
+
+# Starting in Python 3.2, the HTMLParser constructor takes a 'strict'
+# argument, which we'd like to set to False. Unfortunately,
+# http://bugs.python.org/issue13273 makes strict=True a better bet
+# before Python 3.2.3.
+#
+# At the end of this file, we monkeypatch HTMLParser so that
+# strict=True works well on Python 3.2.2.
+major, minor, release = sys.version_info[:3]
+CONSTRUCTOR_TAKES_STRICT = (
+ major > 3
+ or (major == 3 and minor > 2)
+ or (major == 3 and minor == 2 and release >= 3))
+
+from bs4.element import (
+ CData,
+ Comment,
+ Declaration,
+ Doctype,
+ ProcessingInstruction,
+ )
+from bs4.dammit import EntitySubstitution, UnicodeDammit
+
+from bs4.builder import (
+ HTML,
+ HTMLTreeBuilder,
+ STRICT,
+ )
+
+
+HTMLPARSER = 'html.parser'
+
+class BeautifulSoupHTMLParser(HTMLParser):
+ def handle_starttag(self, name, attrs):
+ # XXX namespace
+ attr_dict = {}
+ for key, value in attrs:
+ # Change None attribute values to the empty string
+ # for consistency with the other tree builders.
+ if value is None:
+ value = ''
+ attr_dict[key] = value
+ attrvalue = '""'
+ self.soup.handle_starttag(name, None, None, attr_dict)
+
+ def handle_endtag(self, name):
+ self.soup.handle_endtag(name)
+
+ def handle_data(self, data):
+ self.soup.handle_data(data)
+
+ def handle_charref(self, name):
+ # XXX workaround for a bug in HTMLParser. Remove this once
+ # it's fixed.
+ if name.startswith('x'):
+ real_name = int(name.lstrip('x'), 16)
+ elif name.startswith('X'):
+ real_name = int(name.lstrip('X'), 16)
+ else:
+ real_name = int(name)
+
+ try:
+ data = unichr(real_name)
+ except (ValueError, OverflowError), e:
+ data = u"\N{REPLACEMENT CHARACTER}"
+
+ self.handle_data(data)
+
+ def handle_entityref(self, name):
+ character = EntitySubstitution.HTML_ENTITY_TO_CHARACTER.get(name)
+ if character is not None:
+ data = character
+ else:
+ data = "&%s;" % name
+ self.handle_data(data)
+
+ def handle_comment(self, data):
+ self.soup.endData()
+ self.soup.handle_data(data)
+ self.soup.endData(Comment)
+
+ def handle_decl(self, data):
+ self.soup.endData()
+ if data.startswith("DOCTYPE "):
+ data = data[len("DOCTYPE "):]
+ elif data == 'DOCTYPE':
+ # i.e. "<!DOCTYPE>"
+ data = ''
+ self.soup.handle_data(data)
+ self.soup.endData(Doctype)
+
+ def unknown_decl(self, data):
+ if data.upper().startswith('CDATA['):
+ cls = CData
+ data = data[len('CDATA['):]
+ else:
+ cls = Declaration
+ self.soup.endData()
+ self.soup.handle_data(data)
+ self.soup.endData(cls)
+
+ def handle_pi(self, data):
+ self.soup.endData()
+ if data.endswith("?") and data.lower().startswith("xml"):
+ # "An XHTML processing instruction using the trailing '?'
+ # will cause the '?' to be included in data." - HTMLParser
+ # docs.
+ #
+ # Strip the question mark so we don't end up with two
+ # question marks.
+ data = data[:-1]
+ self.soup.handle_data(data)
+ self.soup.endData(ProcessingInstruction)
+
+
+class HTMLParserTreeBuilder(HTMLTreeBuilder):
+
+ is_xml = False
+ features = [HTML, STRICT, HTMLPARSER]
+
+ def __init__(self, *args, **kwargs):
+ if CONSTRUCTOR_TAKES_STRICT:
+ kwargs['strict'] = False
+ self.parser_args = (args, kwargs)
+
+ def prepare_markup(self, markup, user_specified_encoding=None,
+ document_declared_encoding=None):
+ """
+ :return: A 4-tuple (markup, original encoding, encoding
+ declared within markup, whether any characters had to be
+ replaced with REPLACEMENT CHARACTER).
+ """
+ if isinstance(markup, unicode):
+ yield (markup, None, None, False)
+ return
+
+ try_encodings = [user_specified_encoding, document_declared_encoding]
+ dammit = UnicodeDammit(markup, try_encodings, is_html=True)
+ yield (dammit.markup, dammit.original_encoding,
+ dammit.declared_html_encoding,
+ dammit.contains_replacement_characters)
+
+ def feed(self, markup):
+ args, kwargs = self.parser_args
+ parser = BeautifulSoupHTMLParser(*args, **kwargs)
+ parser.soup = self.soup
+ try:
+ parser.feed(markup)
+ except HTMLParseError, e:
+ warnings.warn(RuntimeWarning(
+ "Python's built-in HTMLParser cannot parse the given document. This is not a bug in Beautiful Soup. The best solution is to install an external parser (lxml or html5lib), and use Beautiful Soup with that parser. See http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser for help."))
+ raise e
+
+# Patch 3.2 versions of HTMLParser earlier than 3.2.3 to use some
+# 3.2.3 code. This ensures they don't treat markup like <p></p> as a
+# string.
+#
+# XXX This code can be removed once most Python 3 users are on 3.2.3.
+if major == 3 and minor == 2 and not CONSTRUCTOR_TAKES_STRICT:
+ import re
+ attrfind_tolerant = re.compile(
+ r'\s*((?<=[\'"\s])[^\s/>][^\s/=>]*)(\s*=+\s*'
+ r'(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?')
+ HTMLParserTreeBuilder.attrfind_tolerant = attrfind_tolerant
+
+ locatestarttagend = re.compile(r"""
+ <[a-zA-Z][-.a-zA-Z0-9:_]* # tag name
+ (?:\s+ # whitespace before attribute name
+ (?:[a-zA-Z_][-.:a-zA-Z0-9_]* # attribute name
+ (?:\s*=\s* # value indicator
+ (?:'[^']*' # LITA-enclosed value
+ |\"[^\"]*\" # LIT-enclosed value
+ |[^'\">\s]+ # bare value
+ )
+ )?
+ )
+ )*
+ \s* # trailing whitespace
+""", re.VERBOSE)
+ BeautifulSoupHTMLParser.locatestarttagend = locatestarttagend
+
+ from html.parser import tagfind, attrfind
+
+ def parse_starttag(self, i):
+ self.__starttag_text = None
+ endpos = self.check_for_whole_start_tag(i)
+ if endpos < 0:
+ return endpos
+ rawdata = self.rawdata
+ self.__starttag_text = rawdata[i:endpos]
+
+ # Now parse the data between i+1 and j into a tag and attrs
+ attrs = []
+ match = tagfind.match(rawdata, i+1)
+ assert match, 'unexpected call to parse_starttag()'
+ k = match.end()
+ self.lasttag = tag = rawdata[i+1:k].lower()
+ while k < endpos:
+ if self.strict:
+ m = attrfind.match(rawdata, k)
+ else:
+ m = attrfind_tolerant.match(rawdata, k)
+ if not m:
+ break
+ attrname, rest, attrvalue = m.group(1, 2, 3)
+ if not rest:
+ attrvalue = None
+ elif attrvalue[:1] == '\'' == attrvalue[-1:] or \
+ attrvalue[:1] == '"' == attrvalue[-1:]:
+ attrvalue = attrvalue[1:-1]
+ if attrvalue:
+ attrvalue = self.unescape(attrvalue)
+ attrs.append((attrname.lower(), attrvalue))
+ k = m.end()
+
+ end = rawdata[k:endpos].strip()
+ if end not in (">", "/>"):
+ lineno, offset = self.getpos()
+ if "\n" in self.__starttag_text:
+ lineno = lineno + self.__starttag_text.count("\n")
+ offset = len(self.__starttag_text) \
+ - self.__starttag_text.rfind("\n")
+ else:
+ offset = offset + len(self.__starttag_text)
+ if self.strict:
+ self.error("junk characters in start tag: %r"
+ % (rawdata[k:endpos][:20],))
+ self.handle_data(rawdata[i:endpos])
+ return endpos
+ if end.endswith('/>'):
+ # XHTML-style empty tag: <span attr="value" />
+ self.handle_startendtag(tag, attrs)
+ else:
+ self.handle_starttag(tag, attrs)
+ if tag in self.CDATA_CONTENT_ELEMENTS:
+ self.set_cdata_mode(tag)
+ return endpos
+
+ def set_cdata_mode(self, elem):
+ self.cdata_elem = elem.lower()
+ self.interesting = re.compile(r'</\s*%s\s*>' % self.cdata_elem, re.I)
+
+ BeautifulSoupHTMLParser.parse_starttag = parse_starttag
+ BeautifulSoupHTMLParser.set_cdata_mode = set_cdata_mode
+
+ CONSTRUCTOR_TAKES_STRICT = True
diff --git a/bitbake/lib/bs4/builder/_lxml.py b/bitbake/lib/bs4/builder/_lxml.py
new file mode 100644
index 0000000000..fa5d49875e
--- /dev/null
+++ b/bitbake/lib/bs4/builder/_lxml.py
@@ -0,0 +1,233 @@
+__all__ = [
+ 'LXMLTreeBuilderForXML',
+ 'LXMLTreeBuilder',
+ ]
+
+from io import BytesIO
+from StringIO import StringIO
+import collections
+from lxml import etree
+from bs4.element import Comment, Doctype, NamespacedAttribute
+from bs4.builder import (
+ FAST,
+ HTML,
+ HTMLTreeBuilder,
+ PERMISSIVE,
+ ParserRejectedMarkup,
+ TreeBuilder,
+ XML)
+from bs4.dammit import EncodingDetector
+
+LXML = 'lxml'
+
+class LXMLTreeBuilderForXML(TreeBuilder):
+ DEFAULT_PARSER_CLASS = etree.XMLParser
+
+ is_xml = True
+
+ # Well, it's permissive by XML parser standards.
+ features = [LXML, XML, FAST, PERMISSIVE]
+
+ CHUNK_SIZE = 512
+
+ # This namespace mapping is specified in the XML Namespace
+ # standard.
+ DEFAULT_NSMAPS = {'http://www.w3.org/XML/1998/namespace' : "xml"}
+
+ def default_parser(self, encoding):
+ # This can either return a parser object or a class, which
+ # will be instantiated with default arguments.
+ if self._default_parser is not None:
+ return self._default_parser
+ return etree.XMLParser(
+ target=self, strip_cdata=False, recover=True, encoding=encoding)
+
+ def parser_for(self, encoding):
+ # Use the default parser.
+ parser = self.default_parser(encoding)
+
+ if isinstance(parser, collections.Callable):
+ # Instantiate the parser with default arguments
+ parser = parser(target=self, strip_cdata=False, encoding=encoding)
+ return parser
+
+ def __init__(self, parser=None, empty_element_tags=None):
+ # TODO: Issue a warning if parser is present but not a
+ # callable, since that means there's no way to create new
+ # parsers for different encodings.
+ self._default_parser = parser
+ if empty_element_tags is not None:
+ self.empty_element_tags = set(empty_element_tags)
+ self.soup = None
+ self.nsmaps = [self.DEFAULT_NSMAPS]
+
+ def _getNsTag(self, tag):
+ # Split the namespace URL out of a fully-qualified lxml tag
+ # name. Copied from lxml's src/lxml/sax.py.
+ if tag[0] == '{':
+ return tuple(tag[1:].split('}', 1))
+ else:
+ return (None, tag)
+
+ def prepare_markup(self, markup, user_specified_encoding=None,
+ document_declared_encoding=None):
+ """
+ :yield: A series of 4-tuples.
+ (markup, encoding, declared encoding,
+ has undergone character replacement)
+
+ Each 4-tuple represents a strategy for parsing the document.
+ """
+ if isinstance(markup, unicode):
+ # We were given Unicode. Maybe lxml can parse Unicode on
+ # this system?
+ yield markup, None, document_declared_encoding, False
+
+ if isinstance(markup, unicode):
+ # No, apparently not. Convert the Unicode to UTF-8 and
+ # tell lxml to parse it as UTF-8.
+ yield (markup.encode("utf8"), "utf8",
+ document_declared_encoding, False)
+
+ # Instead of using UnicodeDammit to convert the bytestring to
+ # Unicode using different encodings, use EncodingDetector to
+ # iterate over the encodings, and tell lxml to try to parse
+ # the document as each one in turn.
+ is_html = not self.is_xml
+ try_encodings = [user_specified_encoding, document_declared_encoding]
+ detector = EncodingDetector(markup, try_encodings, is_html)
+ for encoding in detector.encodings:
+ yield (detector.markup, encoding, document_declared_encoding, False)
+
+ def feed(self, markup):
+ if isinstance(markup, bytes):
+ markup = BytesIO(markup)
+ elif isinstance(markup, unicode):
+ markup = StringIO(markup)
+
+ # Call feed() at least once, even if the markup is empty,
+ # or the parser won't be initialized.
+ data = markup.read(self.CHUNK_SIZE)
+ try:
+ self.parser = self.parser_for(self.soup.original_encoding)
+ self.parser.feed(data)
+ while len(data) != 0:
+ # Now call feed() on the rest of the data, chunk by chunk.
+ data = markup.read(self.CHUNK_SIZE)
+ if len(data) != 0:
+ self.parser.feed(data)
+ self.parser.close()
+ except (UnicodeDecodeError, LookupError, etree.ParserError), e:
+ raise ParserRejectedMarkup(str(e))
+
+ def close(self):
+ self.nsmaps = [self.DEFAULT_NSMAPS]
+
+ def start(self, name, attrs, nsmap={}):
+ # Make sure attrs is a mutable dict--lxml may send an immutable dictproxy.
+ attrs = dict(attrs)
+ nsprefix = None
+ # Invert each namespace map as it comes in.
+ if len(self.nsmaps) > 1:
+ # There are no new namespaces for this tag, but
+ # non-default namespaces are in play, so we need a
+ # separate tag stack to know when they end.
+ self.nsmaps.append(None)
+ elif len(nsmap) > 0:
+ # A new namespace mapping has come into play.
+ inverted_nsmap = dict((value, key) for key, value in nsmap.items())
+ self.nsmaps.append(inverted_nsmap)
+ # Also treat the namespace mapping as a set of attributes on the
+ # tag, so we can recreate it later.
+ attrs = attrs.copy()
+ for prefix, namespace in nsmap.items():
+ attribute = NamespacedAttribute(
+ "xmlns", prefix, "http://www.w3.org/2000/xmlns/")
+ attrs[attribute] = namespace
+
+ # Namespaces are in play. Find any attributes that came in
+ # from lxml with namespaces attached to their names, and
+ # turn then into NamespacedAttribute objects.
+ new_attrs = {}
+ for attr, value in attrs.items():
+ namespace, attr = self._getNsTag(attr)
+ if namespace is None:
+ new_attrs[attr] = value
+ else:
+ nsprefix = self._prefix_for_namespace(namespace)
+ attr = NamespacedAttribute(nsprefix, attr, namespace)
+ new_attrs[attr] = value
+ attrs = new_attrs
+
+ namespace, name = self._getNsTag(name)
+ nsprefix = self._prefix_for_namespace(namespace)
+ self.soup.handle_starttag(name, namespace, nsprefix, attrs)
+
+ def _prefix_for_namespace(self, namespace):
+ """Find the currently active prefix for the given namespace."""
+ if namespace is None:
+ return None
+ for inverted_nsmap in reversed(self.nsmaps):
+ if inverted_nsmap is not None and namespace in inverted_nsmap:
+ return inverted_nsmap[namespace]
+ return None
+
+ def end(self, name):
+ self.soup.endData()
+ completed_tag = self.soup.tagStack[-1]
+ namespace, name = self._getNsTag(name)
+ nsprefix = None
+ if namespace is not None:
+ for inverted_nsmap in reversed(self.nsmaps):
+ if inverted_nsmap is not None and namespace in inverted_nsmap:
+ nsprefix = inverted_nsmap[namespace]
+ break
+ self.soup.handle_endtag(name, nsprefix)
+ if len(self.nsmaps) > 1:
+ # This tag, or one of its parents, introduced a namespace
+ # mapping, so pop it off the stack.
+ self.nsmaps.pop()
+
+ def pi(self, target, data):
+ pass
+
+ def data(self, content):
+ self.soup.handle_data(content)
+
+ def doctype(self, name, pubid, system):
+ self.soup.endData()
+ doctype = Doctype.for_name_and_ids(name, pubid, system)
+ self.soup.object_was_parsed(doctype)
+
+ def comment(self, content):
+ "Handle comments as Comment objects."
+ self.soup.endData()
+ self.soup.handle_data(content)
+ self.soup.endData(Comment)
+
+ def test_fragment_to_document(self, fragment):
+ """See `TreeBuilder`."""
+ return u'<?xml version="1.0" encoding="utf-8"?>\n%s' % fragment
+
+
+class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilderForXML):
+
+ features = [LXML, HTML, FAST, PERMISSIVE]
+ is_xml = False
+
+ def default_parser(self, encoding):
+ return etree.HTMLParser
+
+ def feed(self, markup):
+ encoding = self.soup.original_encoding
+ try:
+ self.parser = self.parser_for(encoding)
+ self.parser.feed(markup)
+ self.parser.close()
+ except (UnicodeDecodeError, LookupError, etree.ParserError), e:
+ raise ParserRejectedMarkup(str(e))
+
+
+ def test_fragment_to_document(self, fragment):
+ """See `TreeBuilder`."""
+ return u'<html><body>%s</body></html>' % fragment
diff --git a/bitbake/lib/bs4/dammit.py b/bitbake/lib/bs4/dammit.py
new file mode 100644
index 0000000000..59640b7ce3
--- /dev/null
+++ b/bitbake/lib/bs4/dammit.py
@@ -0,0 +1,829 @@
+# -*- coding: utf-8 -*-
+"""Beautiful Soup bonus library: Unicode, Dammit
+
+This library converts a bytestream to Unicode through any means
+necessary. It is heavily based on code from Mark Pilgrim's Universal
+Feed Parser. It works best on XML and XML, but it does not rewrite the
+XML or HTML to reflect a new encoding; that's the tree builder's job.
+"""
+
+import codecs
+from htmlentitydefs import codepoint2name
+import re
+import logging
+import string
+
+# Import a library to autodetect character encodings.
+chardet_type = None
+try:
+ # First try the fast C implementation.
+ # PyPI package: cchardet
+ import cchardet
+ def chardet_dammit(s):
+ return cchardet.detect(s)['encoding']
+except ImportError:
+ try:
+ # Fall back to the pure Python implementation
+ # Debian package: python-chardet
+ # PyPI package: chardet
+ import chardet
+ def chardet_dammit(s):
+ return chardet.detect(s)['encoding']
+ #import chardet.constants
+ #chardet.constants._debug = 1
+ except ImportError:
+ # No chardet available.
+ def chardet_dammit(s):
+ return None
+
+# Available from http://cjkpython.i18n.org/.
+try:
+ import iconv_codec
+except ImportError:
+ pass
+
+xml_encoding_re = re.compile(
+ '^<\?.*encoding=[\'"](.*?)[\'"].*\?>'.encode(), re.I)
+html_meta_re = re.compile(
+ '<\s*meta[^>]+charset\s*=\s*["\']?([^>]*?)[ /;\'">]'.encode(), re.I)
+
+class EntitySubstitution(object):
+
+ """Substitute XML or HTML entities for the corresponding characters."""
+
+ def _populate_class_variables():
+ lookup = {}
+ reverse_lookup = {}
+ characters_for_re = []
+ for codepoint, name in list(codepoint2name.items()):
+ character = unichr(codepoint)
+ if codepoint != 34:
+ # There's no point in turning the quotation mark into
+ # &quot;, unless it happens within an attribute value, which
+ # is handled elsewhere.
+ characters_for_re.append(character)
+ lookup[character] = name
+ # But we do want to turn &quot; into the quotation mark.
+ reverse_lookup[name] = character
+ re_definition = "[%s]" % "".join(characters_for_re)
+ return lookup, reverse_lookup, re.compile(re_definition)
+ (CHARACTER_TO_HTML_ENTITY, HTML_ENTITY_TO_CHARACTER,
+ CHARACTER_TO_HTML_ENTITY_RE) = _populate_class_variables()
+
+ CHARACTER_TO_XML_ENTITY = {
+ "'": "apos",
+ '"': "quot",
+ "&": "amp",
+ "<": "lt",
+ ">": "gt",
+ }
+
+ BARE_AMPERSAND_OR_BRACKET = re.compile("([<>]|"
+ "&(?!#\d+;|#x[0-9a-fA-F]+;|\w+;)"
+ ")")
+
+ AMPERSAND_OR_BRACKET = re.compile("([<>&])")
+
+ @classmethod
+ def _substitute_html_entity(cls, matchobj):
+ entity = cls.CHARACTER_TO_HTML_ENTITY.get(matchobj.group(0))
+ return "&%s;" % entity
+
+ @classmethod
+ def _substitute_xml_entity(cls, matchobj):
+ """Used with a regular expression to substitute the
+ appropriate XML entity for an XML special character."""
+ entity = cls.CHARACTER_TO_XML_ENTITY[matchobj.group(0)]
+ return "&%s;" % entity
+
+ @classmethod
+ def quoted_attribute_value(self, value):
+ """Make a value into a quoted XML attribute, possibly escaping it.
+
+ Most strings will be quoted using double quotes.
+
+ Bob's Bar -> "Bob's Bar"
+
+ If a string contains double quotes, it will be quoted using
+ single quotes.
+
+ Welcome to "my bar" -> 'Welcome to "my bar"'
+
+ If a string contains both single and double quotes, the
+ double quotes will be escaped, and the string will be quoted
+ using double quotes.
+
+ Welcome to "Bob's Bar" -> "Welcome to &quot;Bob's bar&quot;
+ """
+ quote_with = '"'
+ if '"' in value:
+ if "'" in value:
+ # The string contains both single and double
+ # quotes. Turn the double quotes into
+ # entities. We quote the double quotes rather than
+ # the single quotes because the entity name is
+ # "&quot;" whether this is HTML or XML. If we
+ # quoted the single quotes, we'd have to decide
+ # between &apos; and &squot;.
+ replace_with = "&quot;"
+ value = value.replace('"', replace_with)
+ else:
+ # There are double quotes but no single quotes.
+ # We can use single quotes to quote the attribute.
+ quote_with = "'"
+ return quote_with + value + quote_with
+
+ @classmethod
+ def substitute_xml(cls, value, make_quoted_attribute=False):
+ """Substitute XML entities for special XML characters.
+
+ :param value: A string to be substituted. The less-than sign
+ will become &lt;, the greater-than sign will become &gt;,
+ and any ampersands will become &amp;. If you want ampersands
+ that appear to be part of an entity definition to be left
+ alone, use substitute_xml_containing_entities() instead.
+
+ :param make_quoted_attribute: If True, then the string will be
+ quoted, as befits an attribute value.
+ """
+ # Escape angle brackets and ampersands.
+ value = cls.AMPERSAND_OR_BRACKET.sub(
+ cls._substitute_xml_entity, value)
+
+ if make_quoted_attribute:
+ value = cls.quoted_attribute_value(value)
+ return value
+
+ @classmethod
+ def substitute_xml_containing_entities(
+ cls, value, make_quoted_attribute=False):
+ """Substitute XML entities for special XML characters.
+
+ :param value: A string to be substituted. The less-than sign will
+ become &lt;, the greater-than sign will become &gt;, and any
+ ampersands that are not part of an entity defition will
+ become &amp;.
+
+ :param make_quoted_attribute: If True, then the string will be
+ quoted, as befits an attribute value.
+ """
+ # Escape angle brackets, and ampersands that aren't part of
+ # entities.
+ value = cls.BARE_AMPERSAND_OR_BRACKET.sub(
+ cls._substitute_xml_entity, value)
+
+ if make_quoted_attribute:
+ value = cls.quoted_attribute_value(value)
+ return value
+
+ @classmethod
+ def substitute_html(cls, s):
+ """Replace certain Unicode characters with named HTML entities.
+
+ This differs from data.encode(encoding, 'xmlcharrefreplace')
+ in that the goal is to make the result more readable (to those
+ with ASCII displays) rather than to recover from
+ errors. There's absolutely nothing wrong with a UTF-8 string
+ containg a LATIN SMALL LETTER E WITH ACUTE, but replacing that
+ character with "&eacute;" will make it more readable to some
+ people.
+ """
+ return cls.CHARACTER_TO_HTML_ENTITY_RE.sub(
+ cls._substitute_html_entity, s)
+
+
+class EncodingDetector:
+ """Suggests a number of possible encodings for a bytestring.
+
+ Order of precedence:
+
+ 1. Encodings you specifically tell EncodingDetector to try first
+ (the override_encodings argument to the constructor).
+
+ 2. An encoding declared within the bytestring itself, either in an
+ XML declaration (if the bytestring is to be interpreted as an XML
+ document), or in a <meta> tag (if the bytestring is to be
+ interpreted as an HTML document.)
+
+ 3. An encoding detected through textual analysis by chardet,
+ cchardet, or a similar external library.
+
+ 4. UTF-8.
+
+ 5. Windows-1252.
+ """
+ def __init__(self, markup, override_encodings=None, is_html=False):
+ self.override_encodings = override_encodings or []
+ self.chardet_encoding = None
+ self.is_html = is_html
+ self.declared_encoding = None
+
+ # First order of business: strip a byte-order mark.
+ self.markup, self.sniffed_encoding = self.strip_byte_order_mark(markup)
+
+ def _usable(self, encoding, tried):
+ if encoding is not None:
+ encoding = encoding.lower()
+ if encoding not in tried:
+ tried.add(encoding)
+ return True
+ return False
+
+ @property
+ def encodings(self):
+ """Yield a number of encodings that might work for this markup."""
+ tried = set()
+ for e in self.override_encodings:
+ if self._usable(e, tried):
+ yield e
+
+ # Did the document originally start with a byte-order mark
+ # that indicated its encoding?
+ if self._usable(self.sniffed_encoding, tried):
+ yield self.sniffed_encoding
+
+ # Look within the document for an XML or HTML encoding
+ # declaration.
+ if self.declared_encoding is None:
+ self.declared_encoding = self.find_declared_encoding(
+ self.markup, self.is_html)
+ if self._usable(self.declared_encoding, tried):
+ yield self.declared_encoding
+
+ # Use third-party character set detection to guess at the
+ # encoding.
+ if self.chardet_encoding is None:
+ self.chardet_encoding = chardet_dammit(self.markup)
+ if self._usable(self.chardet_encoding, tried):
+ yield self.chardet_encoding
+
+ # As a last-ditch effort, try utf-8 and windows-1252.
+ for e in ('utf-8', 'windows-1252'):
+ if self._usable(e, tried):
+ yield e
+
+ @classmethod
+ def strip_byte_order_mark(cls, data):
+ """If a byte-order mark is present, strip it and return the encoding it implies."""
+ encoding = None
+ if (len(data) >= 4) and (data[:2] == b'\xfe\xff') \
+ and (data[2:4] != '\x00\x00'):
+ encoding = 'utf-16be'
+ data = data[2:]
+ elif (len(data) >= 4) and (data[:2] == b'\xff\xfe') \
+ and (data[2:4] != '\x00\x00'):
+ encoding = 'utf-16le'
+ data = data[2:]
+ elif data[:3] == b'\xef\xbb\xbf':
+ encoding = 'utf-8'
+ data = data[3:]
+ elif data[:4] == b'\x00\x00\xfe\xff':
+ encoding = 'utf-32be'
+ data = data[4:]
+ elif data[:4] == b'\xff\xfe\x00\x00':
+ encoding = 'utf-32le'
+ data = data[4:]
+ return data, encoding
+
+ @classmethod
+ def find_declared_encoding(cls, markup, is_html=False, search_entire_document=False):
+ """Given a document, tries to find its declared encoding.
+
+ An XML encoding is declared at the beginning of the document.
+
+ An HTML encoding is declared in a <meta> tag, hopefully near the
+ beginning of the document.
+ """
+ if search_entire_document:
+ xml_endpos = html_endpos = len(markup)
+ else:
+ xml_endpos = 1024
+ html_endpos = max(2048, int(len(markup) * 0.05))
+
+ declared_encoding = None
+ declared_encoding_match = xml_encoding_re.search(markup, endpos=xml_endpos)
+ if not declared_encoding_match and is_html:
+ declared_encoding_match = html_meta_re.search(markup, endpos=html_endpos)
+ if declared_encoding_match is not None:
+ declared_encoding = declared_encoding_match.groups()[0].decode(
+ 'ascii')
+ if declared_encoding:
+ return declared_encoding.lower()
+ return None
+
+class UnicodeDammit:
+ """A class for detecting the encoding of a *ML document and
+ converting it to a Unicode string. If the source encoding is
+ windows-1252, can replace MS smart quotes with their HTML or XML
+ equivalents."""
+
+ # This dictionary maps commonly seen values for "charset" in HTML
+ # meta tags to the corresponding Python codec names. It only covers
+ # values that aren't in Python's aliases and can't be determined
+ # by the heuristics in find_codec.
+ CHARSET_ALIASES = {"macintosh": "mac-roman",
+ "x-sjis": "shift-jis"}
+
+ ENCODINGS_WITH_SMART_QUOTES = [
+ "windows-1252",
+ "iso-8859-1",
+ "iso-8859-2",
+ ]
+
+ def __init__(self, markup, override_encodings=[],
+ smart_quotes_to=None, is_html=False):
+ self.smart_quotes_to = smart_quotes_to
+ self.tried_encodings = []
+ self.contains_replacement_characters = False
+ self.is_html = is_html
+
+ self.detector = EncodingDetector(markup, override_encodings, is_html)
+
+ # Short-circuit if the data is in Unicode to begin with.
+ if isinstance(markup, unicode) or markup == '':
+ self.markup = markup
+ self.unicode_markup = unicode(markup)
+ self.original_encoding = None
+ return
+
+ # The encoding detector may have stripped a byte-order mark.
+ # Use the stripped markup from this point on.
+ self.markup = self.detector.markup
+
+ u = None
+ for encoding in self.detector.encodings:
+ markup = self.detector.markup
+ u = self._convert_from(encoding)
+ if u is not None:
+ break
+
+ if not u:
+ # None of the encodings worked. As an absolute last resort,
+ # try them again with character replacement.
+
+ for encoding in self.detector.encodings:
+ if encoding != "ascii":
+ u = self._convert_from(encoding, "replace")
+ if u is not None:
+ logging.warning(
+ "Some characters could not be decoded, and were "
+ "replaced with REPLACEMENT CHARACTER.")
+ self.contains_replacement_characters = True
+ break
+
+ # If none of that worked, we could at this point force it to
+ # ASCII, but that would destroy so much data that I think
+ # giving up is better.
+ self.unicode_markup = u
+ if not u:
+ self.original_encoding = None
+
+ def _sub_ms_char(self, match):
+ """Changes a MS smart quote character to an XML or HTML
+ entity, or an ASCII character."""
+ orig = match.group(1)
+ if self.smart_quotes_to == 'ascii':
+ sub = self.MS_CHARS_TO_ASCII.get(orig).encode()
+ else:
+ sub = self.MS_CHARS.get(orig)
+ if type(sub) == tuple:
+ if self.smart_quotes_to == 'xml':
+ sub = '&#x'.encode() + sub[1].encode() + ';'.encode()
+ else:
+ sub = '&'.encode() + sub[0].encode() + ';'.encode()
+ else:
+ sub = sub.encode()
+ return sub
+
+ def _convert_from(self, proposed, errors="strict"):
+ proposed = self.find_codec(proposed)
+ if not proposed or (proposed, errors) in self.tried_encodings:
+ return None
+ self.tried_encodings.append((proposed, errors))
+ markup = self.markup
+ # Convert smart quotes to HTML if coming from an encoding
+ # that might have them.
+ if (self.smart_quotes_to is not None
+ and proposed in self.ENCODINGS_WITH_SMART_QUOTES):
+ smart_quotes_re = b"([\x80-\x9f])"
+ smart_quotes_compiled = re.compile(smart_quotes_re)
+ markup = smart_quotes_compiled.sub(self._sub_ms_char, markup)
+
+ try:
+ #print "Trying to convert document to %s (errors=%s)" % (
+ # proposed, errors)
+ u = self._to_unicode(markup, proposed, errors)
+ self.markup = u
+ self.original_encoding = proposed
+ except Exception as e:
+ #print "That didn't work!"
+ #print e
+ return None
+ #print "Correct encoding: %s" % proposed
+ return self.markup
+
+ def _to_unicode(self, data, encoding, errors="strict"):
+ '''Given a string and its encoding, decodes the string into Unicode.
+ %encoding is a string recognized by encodings.aliases'''
+ return unicode(data, encoding, errors)
+
+ @property
+ def declared_html_encoding(self):
+ if not self.is_html:
+ return None
+ return self.detector.declared_encoding
+
+ def find_codec(self, charset):
+ value = (self._codec(self.CHARSET_ALIASES.get(charset, charset))
+ or (charset and self._codec(charset.replace("-", "")))
+ or (charset and self._codec(charset.replace("-", "_")))
+ or (charset and charset.lower())
+ or charset
+ )
+ if value:
+ return value.lower()
+ return None
+
+ def _codec(self, charset):
+ if not charset:
+ return charset
+ codec = None
+ try:
+ codecs.lookup(charset)
+ codec = charset
+ except (LookupError, ValueError):
+ pass
+ return codec
+
+
+ # A partial mapping of ISO-Latin-1 to HTML entities/XML numeric entities.
+ MS_CHARS = {b'\x80': ('euro', '20AC'),
+ b'\x81': ' ',
+ b'\x82': ('sbquo', '201A'),
+ b'\x83': ('fnof', '192'),
+ b'\x84': ('bdquo', '201E'),
+ b'\x85': ('hellip', '2026'),
+ b'\x86': ('dagger', '2020'),
+ b'\x87': ('Dagger', '2021'),
+ b'\x88': ('circ', '2C6'),
+ b'\x89': ('permil', '2030'),
+ b'\x8A': ('Scaron', '160'),
+ b'\x8B': ('lsaquo', '2039'),
+ b'\x8C': ('OElig', '152'),
+ b'\x8D': '?',
+ b'\x8E': ('#x17D', '17D'),
+ b'\x8F': '?',
+ b'\x90': '?',
+ b'\x91': ('lsquo', '2018'),
+ b'\x92': ('rsquo', '2019'),
+ b'\x93': ('ldquo', '201C'),
+ b'\x94': ('rdquo', '201D'),
+ b'\x95': ('bull', '2022'),
+ b'\x96': ('ndash', '2013'),
+ b'\x97': ('mdash', '2014'),
+ b'\x98': ('tilde', '2DC'),
+ b'\x99': ('trade', '2122'),
+ b'\x9a': ('scaron', '161'),
+ b'\x9b': ('rsaquo', '203A'),
+ b'\x9c': ('oelig', '153'),
+ b'\x9d': '?',
+ b'\x9e': ('#x17E', '17E'),
+ b'\x9f': ('Yuml', ''),}
+
+ # A parochial partial mapping of ISO-Latin-1 to ASCII. Contains
+ # horrors like stripping diacritical marks to turn á into a, but also
+ # contains non-horrors like turning “ into ".
+ MS_CHARS_TO_ASCII = {
+ b'\x80' : 'EUR',
+ b'\x81' : ' ',
+ b'\x82' : ',',
+ b'\x83' : 'f',
+ b'\x84' : ',,',
+ b'\x85' : '...',
+ b'\x86' : '+',
+ b'\x87' : '++',
+ b'\x88' : '^',
+ b'\x89' : '%',
+ b'\x8a' : 'S',
+ b'\x8b' : '<',
+ b'\x8c' : 'OE',
+ b'\x8d' : '?',
+ b'\x8e' : 'Z',
+ b'\x8f' : '?',
+ b'\x90' : '?',
+ b'\x91' : "'",
+ b'\x92' : "'",
+ b'\x93' : '"',
+ b'\x94' : '"',
+ b'\x95' : '*',
+ b'\x96' : '-',
+ b'\x97' : '--',
+ b'\x98' : '~',
+ b'\x99' : '(TM)',
+ b'\x9a' : 's',
+ b'\x9b' : '>',
+ b'\x9c' : 'oe',
+ b'\x9d' : '?',
+ b'\x9e' : 'z',
+ b'\x9f' : 'Y',
+ b'\xa0' : ' ',
+ b'\xa1' : '!',
+ b'\xa2' : 'c',
+ b'\xa3' : 'GBP',
+ b'\xa4' : '$', #This approximation is especially parochial--this is the
+ #generic currency symbol.
+ b'\xa5' : 'YEN',
+ b'\xa6' : '|',
+ b'\xa7' : 'S',
+ b'\xa8' : '..',
+ b'\xa9' : '',
+ b'\xaa' : '(th)',
+ b'\xab' : '<<',
+ b'\xac' : '!',
+ b'\xad' : ' ',
+ b'\xae' : '(R)',
+ b'\xaf' : '-',
+ b'\xb0' : 'o',
+ b'\xb1' : '+-',
+ b'\xb2' : '2',
+ b'\xb3' : '3',
+ b'\xb4' : ("'", 'acute'),
+ b'\xb5' : 'u',
+ b'\xb6' : 'P',
+ b'\xb7' : '*',
+ b'\xb8' : ',',
+ b'\xb9' : '1',
+ b'\xba' : '(th)',
+ b'\xbb' : '>>',
+ b'\xbc' : '1/4',
+ b'\xbd' : '1/2',
+ b'\xbe' : '3/4',
+ b'\xbf' : '?',
+ b'\xc0' : 'A',
+ b'\xc1' : 'A',
+ b'\xc2' : 'A',
+ b'\xc3' : 'A',
+ b'\xc4' : 'A',
+ b'\xc5' : 'A',
+ b'\xc6' : 'AE',
+ b'\xc7' : 'C',
+ b'\xc8' : 'E',
+ b'\xc9' : 'E',
+ b'\xca' : 'E',
+ b'\xcb' : 'E',
+ b'\xcc' : 'I',
+ b'\xcd' : 'I',
+ b'\xce' : 'I',
+ b'\xcf' : 'I',
+ b'\xd0' : 'D',
+ b'\xd1' : 'N',
+ b'\xd2' : 'O',
+ b'\xd3' : 'O',
+ b'\xd4' : 'O',
+ b'\xd5' : 'O',
+ b'\xd6' : 'O',
+ b'\xd7' : '*',
+ b'\xd8' : 'O',
+ b'\xd9' : 'U',
+ b'\xda' : 'U',
+ b'\xdb' : 'U',
+ b'\xdc' : 'U',
+ b'\xdd' : 'Y',
+ b'\xde' : 'b',
+ b'\xdf' : 'B',
+ b'\xe0' : 'a',
+ b'\xe1' : 'a',
+ b'\xe2' : 'a',
+ b'\xe3' : 'a',
+ b'\xe4' : 'a',
+ b'\xe5' : 'a',
+ b'\xe6' : 'ae',
+ b'\xe7' : 'c',
+ b'\xe8' : 'e',
+ b'\xe9' : 'e',
+ b'\xea' : 'e',
+ b'\xeb' : 'e',
+ b'\xec' : 'i',
+ b'\xed' : 'i',
+ b'\xee' : 'i',
+ b'\xef' : 'i',
+ b'\xf0' : 'o',
+ b'\xf1' : 'n',
+ b'\xf2' : 'o',
+ b'\xf3' : 'o',
+ b'\xf4' : 'o',
+ b'\xf5' : 'o',
+ b'\xf6' : 'o',
+ b'\xf7' : '/',
+ b'\xf8' : 'o',
+ b'\xf9' : 'u',
+ b'\xfa' : 'u',
+ b'\xfb' : 'u',
+ b'\xfc' : 'u',
+ b'\xfd' : 'y',
+ b'\xfe' : 'b',
+ b'\xff' : 'y',
+ }
+
+ # A map used when removing rogue Windows-1252/ISO-8859-1
+ # characters in otherwise UTF-8 documents.
+ #
+ # Note that \x81, \x8d, \x8f, \x90, and \x9d are undefined in
+ # Windows-1252.
+ WINDOWS_1252_TO_UTF8 = {
+ 0x80 : b'\xe2\x82\xac', # €
+ 0x82 : b'\xe2\x80\x9a', # ‚
+ 0x83 : b'\xc6\x92', # Æ’
+ 0x84 : b'\xe2\x80\x9e', # „
+ 0x85 : b'\xe2\x80\xa6', # …
+ 0x86 : b'\xe2\x80\xa0', # †
+ 0x87 : b'\xe2\x80\xa1', # ‡
+ 0x88 : b'\xcb\x86', # ˆ
+ 0x89 : b'\xe2\x80\xb0', # ‰
+ 0x8a : b'\xc5\xa0', # Å 
+ 0x8b : b'\xe2\x80\xb9', # ‹
+ 0x8c : b'\xc5\x92', # Å’
+ 0x8e : b'\xc5\xbd', # Ž
+ 0x91 : b'\xe2\x80\x98', # ‘
+ 0x92 : b'\xe2\x80\x99', # ’
+ 0x93 : b'\xe2\x80\x9c', # “
+ 0x94 : b'\xe2\x80\x9d', # â€
+ 0x95 : b'\xe2\x80\xa2', # •
+ 0x96 : b'\xe2\x80\x93', # –
+ 0x97 : b'\xe2\x80\x94', # —
+ 0x98 : b'\xcb\x9c', # ˜
+ 0x99 : b'\xe2\x84\xa2', # â„¢
+ 0x9a : b'\xc5\xa1', # Å¡
+ 0x9b : b'\xe2\x80\xba', # ›
+ 0x9c : b'\xc5\x93', # Å“
+ 0x9e : b'\xc5\xbe', # ž
+ 0x9f : b'\xc5\xb8', # Ÿ
+ 0xa0 : b'\xc2\xa0', #  
+ 0xa1 : b'\xc2\xa1', # ¡
+ 0xa2 : b'\xc2\xa2', # ¢
+ 0xa3 : b'\xc2\xa3', # £
+ 0xa4 : b'\xc2\xa4', # ¤
+ 0xa5 : b'\xc2\xa5', # ¥
+ 0xa6 : b'\xc2\xa6', # ¦
+ 0xa7 : b'\xc2\xa7', # §
+ 0xa8 : b'\xc2\xa8', # ¨
+ 0xa9 : b'\xc2\xa9', # ©
+ 0xaa : b'\xc2\xaa', # ª
+ 0xab : b'\xc2\xab', # «
+ 0xac : b'\xc2\xac', # ¬
+ 0xad : b'\xc2\xad', # ­
+ 0xae : b'\xc2\xae', # ®
+ 0xaf : b'\xc2\xaf', # ¯
+ 0xb0 : b'\xc2\xb0', # °
+ 0xb1 : b'\xc2\xb1', # ±
+ 0xb2 : b'\xc2\xb2', # ²
+ 0xb3 : b'\xc2\xb3', # ³
+ 0xb4 : b'\xc2\xb4', # ´
+ 0xb5 : b'\xc2\xb5', # µ
+ 0xb6 : b'\xc2\xb6', # ¶
+ 0xb7 : b'\xc2\xb7', # ·
+ 0xb8 : b'\xc2\xb8', # ¸
+ 0xb9 : b'\xc2\xb9', # ¹
+ 0xba : b'\xc2\xba', # º
+ 0xbb : b'\xc2\xbb', # »
+ 0xbc : b'\xc2\xbc', # ¼
+ 0xbd : b'\xc2\xbd', # ½
+ 0xbe : b'\xc2\xbe', # ¾
+ 0xbf : b'\xc2\xbf', # ¿
+ 0xc0 : b'\xc3\x80', # À
+ 0xc1 : b'\xc3\x81', # Ã
+ 0xc2 : b'\xc3\x82', # Â
+ 0xc3 : b'\xc3\x83', # Ã
+ 0xc4 : b'\xc3\x84', # Ä
+ 0xc5 : b'\xc3\x85', # Ã…
+ 0xc6 : b'\xc3\x86', # Æ
+ 0xc7 : b'\xc3\x87', # Ç
+ 0xc8 : b'\xc3\x88', # È
+ 0xc9 : b'\xc3\x89', # É
+ 0xca : b'\xc3\x8a', # Ê
+ 0xcb : b'\xc3\x8b', # Ë
+ 0xcc : b'\xc3\x8c', # Ì
+ 0xcd : b'\xc3\x8d', # Ã
+ 0xce : b'\xc3\x8e', # ÃŽ
+ 0xcf : b'\xc3\x8f', # Ã
+ 0xd0 : b'\xc3\x90', # Ã
+ 0xd1 : b'\xc3\x91', # Ñ
+ 0xd2 : b'\xc3\x92', # Ã’
+ 0xd3 : b'\xc3\x93', # Ó
+ 0xd4 : b'\xc3\x94', # Ô
+ 0xd5 : b'\xc3\x95', # Õ
+ 0xd6 : b'\xc3\x96', # Ö
+ 0xd7 : b'\xc3\x97', # ×
+ 0xd8 : b'\xc3\x98', # Ø
+ 0xd9 : b'\xc3\x99', # Ù
+ 0xda : b'\xc3\x9a', # Ú
+ 0xdb : b'\xc3\x9b', # Û
+ 0xdc : b'\xc3\x9c', # Ü
+ 0xdd : b'\xc3\x9d', # Ã
+ 0xde : b'\xc3\x9e', # Þ
+ 0xdf : b'\xc3\x9f', # ß
+ 0xe0 : b'\xc3\xa0', # à
+ 0xe1 : b'\xa1', # á
+ 0xe2 : b'\xc3\xa2', # â
+ 0xe3 : b'\xc3\xa3', # ã
+ 0xe4 : b'\xc3\xa4', # ä
+ 0xe5 : b'\xc3\xa5', # å
+ 0xe6 : b'\xc3\xa6', # æ
+ 0xe7 : b'\xc3\xa7', # ç
+ 0xe8 : b'\xc3\xa8', # è
+ 0xe9 : b'\xc3\xa9', # é
+ 0xea : b'\xc3\xaa', # ê
+ 0xeb : b'\xc3\xab', # ë
+ 0xec : b'\xc3\xac', # ì
+ 0xed : b'\xc3\xad', # í
+ 0xee : b'\xc3\xae', # î
+ 0xef : b'\xc3\xaf', # ï
+ 0xf0 : b'\xc3\xb0', # ð
+ 0xf1 : b'\xc3\xb1', # ñ
+ 0xf2 : b'\xc3\xb2', # ò
+ 0xf3 : b'\xc3\xb3', # ó
+ 0xf4 : b'\xc3\xb4', # ô
+ 0xf5 : b'\xc3\xb5', # õ
+ 0xf6 : b'\xc3\xb6', # ö
+ 0xf7 : b'\xc3\xb7', # ÷
+ 0xf8 : b'\xc3\xb8', # ø
+ 0xf9 : b'\xc3\xb9', # ù
+ 0xfa : b'\xc3\xba', # ú
+ 0xfb : b'\xc3\xbb', # û
+ 0xfc : b'\xc3\xbc', # ü
+ 0xfd : b'\xc3\xbd', # ý
+ 0xfe : b'\xc3\xbe', # þ
+ }
+
+ MULTIBYTE_MARKERS_AND_SIZES = [
+ (0xc2, 0xdf, 2), # 2-byte characters start with a byte C2-DF
+ (0xe0, 0xef, 3), # 3-byte characters start with E0-EF
+ (0xf0, 0xf4, 4), # 4-byte characters start with F0-F4
+ ]
+
+ FIRST_MULTIBYTE_MARKER = MULTIBYTE_MARKERS_AND_SIZES[0][0]
+ LAST_MULTIBYTE_MARKER = MULTIBYTE_MARKERS_AND_SIZES[-1][1]
+
+ @classmethod
+ def detwingle(cls, in_bytes, main_encoding="utf8",
+ embedded_encoding="windows-1252"):
+ """Fix characters from one encoding embedded in some other encoding.
+
+ Currently the only situation supported is Windows-1252 (or its
+ subset ISO-8859-1), embedded in UTF-8.
+
+ The input must be a bytestring. If you've already converted
+ the document to Unicode, you're too late.
+
+ The output is a bytestring in which `embedded_encoding`
+ characters have been converted to their `main_encoding`
+ equivalents.
+ """
+ if embedded_encoding.replace('_', '-').lower() not in (
+ 'windows-1252', 'windows_1252'):
+ raise NotImplementedError(
+ "Windows-1252 and ISO-8859-1 are the only currently supported "
+ "embedded encodings.")
+
+ if main_encoding.lower() not in ('utf8', 'utf-8'):
+ raise NotImplementedError(
+ "UTF-8 is the only currently supported main encoding.")
+
+ byte_chunks = []
+
+ chunk_start = 0
+ pos = 0
+ while pos < len(in_bytes):
+ byte = in_bytes[pos]
+ if not isinstance(byte, int):
+ # Python 2.x
+ byte = ord(byte)
+ if (byte >= cls.FIRST_MULTIBYTE_MARKER
+ and byte <= cls.LAST_MULTIBYTE_MARKER):
+ # This is the start of a UTF-8 multibyte character. Skip
+ # to the end.
+ for start, end, size in cls.MULTIBYTE_MARKERS_AND_SIZES:
+ if byte >= start and byte <= end:
+ pos += size
+ break
+ elif byte >= 0x80 and byte in cls.WINDOWS_1252_TO_UTF8:
+ # We found a Windows-1252 character!
+ # Save the string up to this point as a chunk.
+ byte_chunks.append(in_bytes[chunk_start:pos])
+
+ # Now translate the Windows-1252 character into UTF-8
+ # and add it as another, one-byte chunk.
+ byte_chunks.append(cls.WINDOWS_1252_TO_UTF8[byte])
+ pos += 1
+ chunk_start = pos
+ else:
+ # Go on to the next character.
+ pos += 1
+ if chunk_start == 0:
+ # The string is unchanged.
+ return in_bytes
+ else:
+ # Store the final chunk.
+ byte_chunks.append(in_bytes[chunk_start:])
+ return b''.join(byte_chunks)
+
diff --git a/bitbake/lib/bs4/diagnose.py b/bitbake/lib/bs4/diagnose.py
new file mode 100644
index 0000000000..4d0b00afad
--- /dev/null
+++ b/bitbake/lib/bs4/diagnose.py
@@ -0,0 +1,204 @@
+"""Diagnostic functions, mainly for use when doing tech support."""
+import cProfile
+from StringIO import StringIO
+from HTMLParser import HTMLParser
+import bs4
+from bs4 import BeautifulSoup, __version__
+from bs4.builder import builder_registry
+
+import os
+import pstats
+import random
+import tempfile
+import time
+import traceback
+import sys
+import cProfile
+
+def diagnose(data):
+ """Diagnostic suite for isolating common problems."""
+ print "Diagnostic running on Beautiful Soup %s" % __version__
+ print "Python version %s" % sys.version
+
+ basic_parsers = ["html.parser", "html5lib", "lxml"]
+ for name in basic_parsers:
+ for builder in builder_registry.builders:
+ if name in builder.features:
+ break
+ else:
+ basic_parsers.remove(name)
+ print (
+ "I noticed that %s is not installed. Installing it may help." %
+ name)
+
+ if 'lxml' in basic_parsers:
+ basic_parsers.append(["lxml", "xml"])
+ from lxml import etree
+ print "Found lxml version %s" % ".".join(map(str,etree.LXML_VERSION))
+
+ if 'html5lib' in basic_parsers:
+ import html5lib
+ print "Found html5lib version %s" % html5lib.__version__
+
+ if hasattr(data, 'read'):
+ data = data.read()
+ elif os.path.exists(data):
+ print '"%s" looks like a filename. Reading data from the file.' % data
+ data = open(data).read()
+ elif data.startswith("http:") or data.startswith("https:"):
+ print '"%s" looks like a URL. Beautiful Soup is not an HTTP client.' % data
+ print "You need to use some other library to get the document behind the URL, and feed that document to Beautiful Soup."
+ return
+ print
+
+ for parser in basic_parsers:
+ print "Trying to parse your markup with %s" % parser
+ success = False
+ try:
+ soup = BeautifulSoup(data, parser)
+ success = True
+ except Exception, e:
+ print "%s could not parse the markup." % parser
+ traceback.print_exc()
+ if success:
+ print "Here's what %s did with the markup:" % parser
+ print soup.prettify()
+
+ print "-" * 80
+
+def lxml_trace(data, html=True, **kwargs):
+ """Print out the lxml events that occur during parsing.
+
+ This lets you see how lxml parses a document when no Beautiful
+ Soup code is running.
+ """
+ from lxml import etree
+ for event, element in etree.iterparse(StringIO(data), html=html, **kwargs):
+ print("%s, %4s, %s" % (event, element.tag, element.text))
+
+class AnnouncingParser(HTMLParser):
+ """Announces HTMLParser parse events, without doing anything else."""
+
+ def _p(self, s):
+ print(s)
+
+ def handle_starttag(self, name, attrs):
+ self._p("%s START" % name)
+
+ def handle_endtag(self, name):
+ self._p("%s END" % name)
+
+ def handle_data(self, data):
+ self._p("%s DATA" % data)
+
+ def handle_charref(self, name):
+ self._p("%s CHARREF" % name)
+
+ def handle_entityref(self, name):
+ self._p("%s ENTITYREF" % name)
+
+ def handle_comment(self, data):
+ self._p("%s COMMENT" % data)
+
+ def handle_decl(self, data):
+ self._p("%s DECL" % data)
+
+ def unknown_decl(self, data):
+ self._p("%s UNKNOWN-DECL" % data)
+
+ def handle_pi(self, data):
+ self._p("%s PI" % data)
+
+def htmlparser_trace(data):
+ """Print out the HTMLParser events that occur during parsing.
+
+ This lets you see how HTMLParser parses a document when no
+ Beautiful Soup code is running.
+ """
+ parser = AnnouncingParser()
+ parser.feed(data)
+
+_vowels = "aeiou"
+_consonants = "bcdfghjklmnpqrstvwxyz"
+
+def rword(length=5):
+ "Generate a random word-like string."
+ s = ''
+ for i in range(length):
+ if i % 2 == 0:
+ t = _consonants
+ else:
+ t = _vowels
+ s += random.choice(t)
+ return s
+
+def rsentence(length=4):
+ "Generate a random sentence-like string."
+ return " ".join(rword(random.randint(4,9)) for i in range(length))
+
+def rdoc(num_elements=1000):
+ """Randomly generate an invalid HTML document."""
+ tag_names = ['p', 'div', 'span', 'i', 'b', 'script', 'table']
+ elements = []
+ for i in range(num_elements):
+ choice = random.randint(0,3)
+ if choice == 0:
+ # New tag.
+ tag_name = random.choice(tag_names)
+ elements.append("<%s>" % tag_name)
+ elif choice == 1:
+ elements.append(rsentence(random.randint(1,4)))
+ elif choice == 2:
+ # Close a tag.
+ tag_name = random.choice(tag_names)
+ elements.append("</%s>" % tag_name)
+ return "<html>" + "\n".join(elements) + "</html>"
+
+def benchmark_parsers(num_elements=100000):
+ """Very basic head-to-head performance benchmark."""
+ print "Comparative parser benchmark on Beautiful Soup %s" % __version__
+ data = rdoc(num_elements)
+ print "Generated a large invalid HTML document (%d bytes)." % len(data)
+
+ for parser in ["lxml", ["lxml", "html"], "html5lib", "html.parser"]:
+ success = False
+ try:
+ a = time.time()
+ soup = BeautifulSoup(data, parser)
+ b = time.time()
+ success = True
+ except Exception, e:
+ print "%s could not parse the markup." % parser
+ traceback.print_exc()
+ if success:
+ print "BS4+%s parsed the markup in %.2fs." % (parser, b-a)
+
+ from lxml import etree
+ a = time.time()
+ etree.HTML(data)
+ b = time.time()
+ print "Raw lxml parsed the markup in %.2fs." % (b-a)
+
+ import html5lib
+ parser = html5lib.HTMLParser()
+ a = time.time()
+ parser.parse(data)
+ b = time.time()
+ print "Raw html5lib parsed the markup in %.2fs." % (b-a)
+
+def profile(num_elements=100000, parser="lxml"):
+
+ filehandle = tempfile.NamedTemporaryFile()
+ filename = filehandle.name
+
+ data = rdoc(num_elements)
+ vars = dict(bs4=bs4, data=data, parser=parser)
+ cProfile.runctx('bs4.BeautifulSoup(data, parser)' , vars, vars, filename)
+
+ stats = pstats.Stats(filename)
+ # stats.strip_dirs()
+ stats.sort_stats("cumulative")
+ stats.print_stats('_html5lib|bs4', 50)
+
+if __name__ == '__main__':
+ diagnose(sys.stdin.read())
diff --git a/bitbake/lib/bs4/element.py b/bitbake/lib/bs4/element.py
new file mode 100644
index 0000000000..da9afdf48e
--- /dev/null
+++ b/bitbake/lib/bs4/element.py
@@ -0,0 +1,1611 @@
+import collections
+import re
+import sys
+import warnings
+from bs4.dammit import EntitySubstitution
+
+DEFAULT_OUTPUT_ENCODING = "utf-8"
+PY3K = (sys.version_info[0] > 2)
+
+whitespace_re = re.compile("\s+")
+
+def _alias(attr):
+ """Alias one attribute name to another for backward compatibility"""
+ @property
+ def alias(self):
+ return getattr(self, attr)
+
+ @alias.setter
+ def alias(self):
+ return setattr(self, attr)
+ return alias
+
+
+class NamespacedAttribute(unicode):
+
+ def __new__(cls, prefix, name, namespace=None):
+ if name is None:
+ obj = unicode.__new__(cls, prefix)
+ elif prefix is None:
+ # Not really namespaced.
+ obj = unicode.__new__(cls, name)
+ else:
+ obj = unicode.__new__(cls, prefix + ":" + name)
+ obj.prefix = prefix
+ obj.name = name
+ obj.namespace = namespace
+ return obj
+
+class AttributeValueWithCharsetSubstitution(unicode):
+ """A stand-in object for a character encoding specified in HTML."""
+
+class CharsetMetaAttributeValue(AttributeValueWithCharsetSubstitution):
+ """A generic stand-in for the value of a meta tag's 'charset' attribute.
+
+ When Beautiful Soup parses the markup '<meta charset="utf8">', the
+ value of the 'charset' attribute will be one of these objects.
+ """
+
+ def __new__(cls, original_value):
+ obj = unicode.__new__(cls, original_value)
+ obj.original_value = original_value
+ return obj
+
+ def encode(self, encoding):
+ return encoding
+
+
+class ContentMetaAttributeValue(AttributeValueWithCharsetSubstitution):
+ """A generic stand-in for the value of a meta tag's 'content' attribute.
+
+ When Beautiful Soup parses the markup:
+ <meta http-equiv="content-type" content="text/html; charset=utf8">
+
+ The value of the 'content' attribute will be one of these objects.
+ """
+
+ CHARSET_RE = re.compile("((^|;)\s*charset=)([^;]*)", re.M)
+
+ def __new__(cls, original_value):
+ match = cls.CHARSET_RE.search(original_value)
+ if match is None:
+ # No substitution necessary.
+ return unicode.__new__(unicode, original_value)
+
+ obj = unicode.__new__(cls, original_value)
+ obj.original_value = original_value
+ return obj
+
+ def encode(self, encoding):
+ def rewrite(match):
+ return match.group(1) + encoding
+ return self.CHARSET_RE.sub(rewrite, self.original_value)
+
+class HTMLAwareEntitySubstitution(EntitySubstitution):
+
+ """Entity substitution rules that are aware of some HTML quirks.
+
+ Specifically, the contents of <script> and <style> tags should not
+ undergo entity substitution.
+
+ Incoming NavigableString objects are checked to see if they're the
+ direct children of a <script> or <style> tag.
+ """
+
+ cdata_containing_tags = set(["script", "style"])
+
+ preformatted_tags = set(["pre"])
+
+ @classmethod
+ def _substitute_if_appropriate(cls, ns, f):
+ if (isinstance(ns, NavigableString)
+ and ns.parent is not None
+ and ns.parent.name in cls.cdata_containing_tags):
+ # Do nothing.
+ return ns
+ # Substitute.
+ return f(ns)
+
+ @classmethod
+ def substitute_html(cls, ns):
+ return cls._substitute_if_appropriate(
+ ns, EntitySubstitution.substitute_html)
+
+ @classmethod
+ def substitute_xml(cls, ns):
+ return cls._substitute_if_appropriate(
+ ns, EntitySubstitution.substitute_xml)
+
+class PageElement(object):
+ """Contains the navigational information for some part of the page
+ (either a tag or a piece of text)"""
+
+ # There are five possible values for the "formatter" argument passed in
+ # to methods like encode() and prettify():
+ #
+ # "html" - All Unicode characters with corresponding HTML entities
+ # are converted to those entities on output.
+ # "minimal" - Bare ampersands and angle brackets are converted to
+ # XML entities: &amp; &lt; &gt;
+ # None - The null formatter. Unicode characters are never
+ # converted to entities. This is not recommended, but it's
+ # faster than "minimal".
+ # A function - This function will be called on every string that
+ # needs to undergo entity substitution.
+ #
+
+ # In an HTML document, the default "html" and "minimal" functions
+ # will leave the contents of <script> and <style> tags alone. For
+ # an XML document, all tags will be given the same treatment.
+
+ HTML_FORMATTERS = {
+ "html" : HTMLAwareEntitySubstitution.substitute_html,
+ "minimal" : HTMLAwareEntitySubstitution.substitute_xml,
+ None : None
+ }
+
+ XML_FORMATTERS = {
+ "html" : EntitySubstitution.substitute_html,
+ "minimal" : EntitySubstitution.substitute_xml,
+ None : None
+ }
+
+ def format_string(self, s, formatter='minimal'):
+ """Format the given string using the given formatter."""
+ if not callable(formatter):
+ formatter = self._formatter_for_name(formatter)
+ if formatter is None:
+ output = s
+ else:
+ output = formatter(s)
+ return output
+
+ @property
+ def _is_xml(self):
+ """Is this element part of an XML tree or an HTML tree?
+
+ This is used when mapping a formatter name ("minimal") to an
+ appropriate function (one that performs entity-substitution on
+ the contents of <script> and <style> tags, or not). It's
+ inefficient, but it should be called very rarely.
+ """
+ if self.parent is None:
+ # This is the top-level object. It should have .is_xml set
+ # from tree creation. If not, take a guess--BS is usually
+ # used on HTML markup.
+ return getattr(self, 'is_xml', False)
+ return self.parent._is_xml
+
+ def _formatter_for_name(self, name):
+ "Look up a formatter function based on its name and the tree."
+ if self._is_xml:
+ return self.XML_FORMATTERS.get(
+ name, EntitySubstitution.substitute_xml)
+ else:
+ return self.HTML_FORMATTERS.get(
+ name, HTMLAwareEntitySubstitution.substitute_xml)
+
+ def setup(self, parent=None, previous_element=None):
+ """Sets up the initial relations between this element and
+ other elements."""
+ self.parent = parent
+ self.previous_element = previous_element
+ if previous_element is not None:
+ self.previous_element.next_element = self
+ self.next_element = None
+ self.previous_sibling = None
+ self.next_sibling = None
+ if self.parent is not None and self.parent.contents:
+ self.previous_sibling = self.parent.contents[-1]
+ self.previous_sibling.next_sibling = self
+
+ nextSibling = _alias("next_sibling") # BS3
+ previousSibling = _alias("previous_sibling") # BS3
+
+ def replace_with(self, replace_with):
+ if replace_with is self:
+ return
+ if replace_with is self.parent:
+ raise ValueError("Cannot replace a Tag with its parent.")
+ old_parent = self.parent
+ my_index = self.parent.index(self)
+ self.extract()
+ old_parent.insert(my_index, replace_with)
+ return self
+ replaceWith = replace_with # BS3
+
+ def unwrap(self):
+ my_parent = self.parent
+ my_index = self.parent.index(self)
+ self.extract()
+ for child in reversed(self.contents[:]):
+ my_parent.insert(my_index, child)
+ return self
+ replace_with_children = unwrap
+ replaceWithChildren = unwrap # BS3
+
+ def wrap(self, wrap_inside):
+ me = self.replace_with(wrap_inside)
+ wrap_inside.append(me)
+ return wrap_inside
+
+ def extract(self):
+ """Destructively rips this element out of the tree."""
+ if self.parent is not None:
+ del self.parent.contents[self.parent.index(self)]
+
+ #Find the two elements that would be next to each other if
+ #this element (and any children) hadn't been parsed. Connect
+ #the two.
+ last_child = self._last_descendant()
+ next_element = last_child.next_element
+
+ if self.previous_element is not None:
+ self.previous_element.next_element = next_element
+ if next_element is not None:
+ next_element.previous_element = self.previous_element
+ self.previous_element = None
+ last_child.next_element = None
+
+ self.parent = None
+ if self.previous_sibling is not None:
+ self.previous_sibling.next_sibling = self.next_sibling
+ if self.next_sibling is not None:
+ self.next_sibling.previous_sibling = self.previous_sibling
+ self.previous_sibling = self.next_sibling = None
+ return self
+
+ def _last_descendant(self, is_initialized=True, accept_self=True):
+ "Finds the last element beneath this object to be parsed."
+ if is_initialized and self.next_sibling:
+ last_child = self.next_sibling.previous_element
+ else:
+ last_child = self
+ while isinstance(last_child, Tag) and last_child.contents:
+ last_child = last_child.contents[-1]
+ if not accept_self and last_child == self:
+ last_child = None
+ return last_child
+ # BS3: Not part of the API!
+ _lastRecursiveChild = _last_descendant
+
+ def insert(self, position, new_child):
+ if new_child is self:
+ raise ValueError("Cannot insert a tag into itself.")
+ if (isinstance(new_child, basestring)
+ and not isinstance(new_child, NavigableString)):
+ new_child = NavigableString(new_child)
+
+ position = min(position, len(self.contents))
+ if hasattr(new_child, 'parent') and new_child.parent is not None:
+ # We're 'inserting' an element that's already one
+ # of this object's children.
+ if new_child.parent is self:
+ current_index = self.index(new_child)
+ if current_index < position:
+ # We're moving this element further down the list
+ # of this object's children. That means that when
+ # we extract this element, our target index will
+ # jump down one.
+ position -= 1
+ new_child.extract()
+
+ new_child.parent = self
+ previous_child = None
+ if position == 0:
+ new_child.previous_sibling = None
+ new_child.previous_element = self
+ else:
+ previous_child = self.contents[position - 1]
+ new_child.previous_sibling = previous_child
+ new_child.previous_sibling.next_sibling = new_child
+ new_child.previous_element = previous_child._last_descendant(False)
+ if new_child.previous_element is not None:
+ new_child.previous_element.next_element = new_child
+
+ new_childs_last_element = new_child._last_descendant(False)
+
+ if position >= len(self.contents):
+ new_child.next_sibling = None
+
+ parent = self
+ parents_next_sibling = None
+ while parents_next_sibling is None and parent is not None:
+ parents_next_sibling = parent.next_sibling
+ parent = parent.parent
+ if parents_next_sibling is not None:
+ # We found the element that comes next in the document.
+ break
+ if parents_next_sibling is not None:
+ new_childs_last_element.next_element = parents_next_sibling
+ else:
+ # The last element of this tag is the last element in
+ # the document.
+ new_childs_last_element.next_element = None
+ else:
+ next_child = self.contents[position]
+ new_child.next_sibling = next_child
+ if new_child.next_sibling is not None:
+ new_child.next_sibling.previous_sibling = new_child
+ new_childs_last_element.next_element = next_child
+
+ if new_childs_last_element.next_element is not None:
+ new_childs_last_element.next_element.previous_element = new_childs_last_element
+ self.contents.insert(position, new_child)
+
+ def append(self, tag):
+ """Appends the given tag to the contents of this tag."""
+ self.insert(len(self.contents), tag)
+
+ def insert_before(self, predecessor):
+ """Makes the given element the immediate predecessor of this one.
+
+ The two elements will have the same parent, and the given element
+ will be immediately before this one.
+ """
+ if self is predecessor:
+ raise ValueError("Can't insert an element before itself.")
+ parent = self.parent
+ if parent is None:
+ raise ValueError(
+ "Element has no parent, so 'before' has no meaning.")
+ # Extract first so that the index won't be screwed up if they
+ # are siblings.
+ if isinstance(predecessor, PageElement):
+ predecessor.extract()
+ index = parent.index(self)
+ parent.insert(index, predecessor)
+
+ def insert_after(self, successor):
+ """Makes the given element the immediate successor of this one.
+
+ The two elements will have the same parent, and the given element
+ will be immediately after this one.
+ """
+ if self is successor:
+ raise ValueError("Can't insert an element after itself.")
+ parent = self.parent
+ if parent is None:
+ raise ValueError(
+ "Element has no parent, so 'after' has no meaning.")
+ # Extract first so that the index won't be screwed up if they
+ # are siblings.
+ if isinstance(successor, PageElement):
+ successor.extract()
+ index = parent.index(self)
+ parent.insert(index+1, successor)
+
+ def find_next(self, name=None, attrs={}, text=None, **kwargs):
+ """Returns the first item that matches the given criteria and
+ appears after this Tag in the document."""
+ return self._find_one(self.find_all_next, name, attrs, text, **kwargs)
+ findNext = find_next # BS3
+
+ def find_all_next(self, name=None, attrs={}, text=None, limit=None,
+ **kwargs):
+ """Returns all items that match the given criteria and appear
+ after this Tag in the document."""
+ return self._find_all(name, attrs, text, limit, self.next_elements,
+ **kwargs)
+ findAllNext = find_all_next # BS3
+
+ def find_next_sibling(self, name=None, attrs={}, text=None, **kwargs):
+ """Returns the closest sibling to this Tag that matches the
+ given criteria and appears after this Tag in the document."""
+ return self._find_one(self.find_next_siblings, name, attrs, text,
+ **kwargs)
+ findNextSibling = find_next_sibling # BS3
+
+ def find_next_siblings(self, name=None, attrs={}, text=None, limit=None,
+ **kwargs):
+ """Returns the siblings of this Tag that match the given
+ criteria and appear after this Tag in the document."""
+ return self._find_all(name, attrs, text, limit,
+ self.next_siblings, **kwargs)
+ findNextSiblings = find_next_siblings # BS3
+ fetchNextSiblings = find_next_siblings # BS2
+
+ def find_previous(self, name=None, attrs={}, text=None, **kwargs):
+ """Returns the first item that matches the given criteria and
+ appears before this Tag in the document."""
+ return self._find_one(
+ self.find_all_previous, name, attrs, text, **kwargs)
+ findPrevious = find_previous # BS3
+
+ def find_all_previous(self, name=None, attrs={}, text=None, limit=None,
+ **kwargs):
+ """Returns all items that match the given criteria and appear
+ before this Tag in the document."""
+ return self._find_all(name, attrs, text, limit, self.previous_elements,
+ **kwargs)
+ findAllPrevious = find_all_previous # BS3
+ fetchPrevious = find_all_previous # BS2
+
+ def find_previous_sibling(self, name=None, attrs={}, text=None, **kwargs):
+ """Returns the closest sibling to this Tag that matches the
+ given criteria and appears before this Tag in the document."""
+ return self._find_one(self.find_previous_siblings, name, attrs, text,
+ **kwargs)
+ findPreviousSibling = find_previous_sibling # BS3
+
+ def find_previous_siblings(self, name=None, attrs={}, text=None,
+ limit=None, **kwargs):
+ """Returns the siblings of this Tag that match the given
+ criteria and appear before this Tag in the document."""
+ return self._find_all(name, attrs, text, limit,
+ self.previous_siblings, **kwargs)
+ findPreviousSiblings = find_previous_siblings # BS3
+ fetchPreviousSiblings = find_previous_siblings # BS2
+
+ def find_parent(self, name=None, attrs={}, **kwargs):
+ """Returns the closest parent of this Tag that matches the given
+ criteria."""
+ # NOTE: We can't use _find_one because findParents takes a different
+ # set of arguments.
+ r = None
+ l = self.find_parents(name, attrs, 1, **kwargs)
+ if l:
+ r = l[0]
+ return r
+ findParent = find_parent # BS3
+
+ def find_parents(self, name=None, attrs={}, limit=None, **kwargs):
+ """Returns the parents of this Tag that match the given
+ criteria."""
+
+ return self._find_all(name, attrs, None, limit, self.parents,
+ **kwargs)
+ findParents = find_parents # BS3
+ fetchParents = find_parents # BS2
+
+ @property
+ def next(self):
+ return self.next_element
+
+ @property
+ def previous(self):
+ return self.previous_element
+
+ #These methods do the real heavy lifting.
+
+ def _find_one(self, method, name, attrs, text, **kwargs):
+ r = None
+ l = method(name, attrs, text, 1, **kwargs)
+ if l:
+ r = l[0]
+ return r
+
+ def _find_all(self, name, attrs, text, limit, generator, **kwargs):
+ "Iterates over a generator looking for things that match."
+
+ if isinstance(name, SoupStrainer):
+ strainer = name
+ else:
+ strainer = SoupStrainer(name, attrs, text, **kwargs)
+
+ if text is None and not limit and not attrs and not kwargs:
+ if name is True or name is None:
+ # Optimization to find all tags.
+ result = (element for element in generator
+ if isinstance(element, Tag))
+ return ResultSet(strainer, result)
+ elif isinstance(name, basestring):
+ # Optimization to find all tags with a given name.
+ result = (element for element in generator
+ if isinstance(element, Tag)
+ and element.name == name)
+ return ResultSet(strainer, result)
+ results = ResultSet(strainer)
+ while True:
+ try:
+ i = next(generator)
+ except StopIteration:
+ break
+ if i:
+ found = strainer.search(i)
+ if found:
+ results.append(found)
+ if limit and len(results) >= limit:
+ break
+ return results
+
+ #These generators can be used to navigate starting from both
+ #NavigableStrings and Tags.
+ @property
+ def next_elements(self):
+ i = self.next_element
+ while i is not None:
+ yield i
+ i = i.next_element
+
+ @property
+ def next_siblings(self):
+ i = self.next_sibling
+ while i is not None:
+ yield i
+ i = i.next_sibling
+
+ @property
+ def previous_elements(self):
+ i = self.previous_element
+ while i is not None:
+ yield i
+ i = i.previous_element
+
+ @property
+ def previous_siblings(self):
+ i = self.previous_sibling
+ while i is not None:
+ yield i
+ i = i.previous_sibling
+
+ @property
+ def parents(self):
+ i = self.parent
+ while i is not None:
+ yield i
+ i = i.parent
+
+ # Methods for supporting CSS selectors.
+
+ tag_name_re = re.compile('^[a-z0-9]+$')
+
+ # /^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/
+ # \---/ \---/\-------------/ \-------/
+ # | | | |
+ # | | | The value
+ # | | ~,|,^,$,* or =
+ # | Attribute
+ # Tag
+ attribselect_re = re.compile(
+ r'^(?P<tag>\w+)?\[(?P<attribute>\w+)(?P<operator>[=~\|\^\$\*]?)' +
+ r'=?"?(?P<value>[^\]"]*)"?\]$'
+ )
+
+ def _attr_value_as_string(self, value, default=None):
+ """Force an attribute value into a string representation.
+
+ A multi-valued attribute will be converted into a
+ space-separated stirng.
+ """
+ value = self.get(value, default)
+ if isinstance(value, list) or isinstance(value, tuple):
+ value =" ".join(value)
+ return value
+
+ def _tag_name_matches_and(self, function, tag_name):
+ if not tag_name:
+ return function
+ else:
+ def _match(tag):
+ return tag.name == tag_name and function(tag)
+ return _match
+
+ def _attribute_checker(self, operator, attribute, value=''):
+ """Create a function that performs a CSS selector operation.
+
+ Takes an operator, attribute and optional value. Returns a
+ function that will return True for elements that match that
+ combination.
+ """
+ if operator == '=':
+ # string representation of `attribute` is equal to `value`
+ return lambda el: el._attr_value_as_string(attribute) == value
+ elif operator == '~':
+ # space-separated list representation of `attribute`
+ # contains `value`
+ def _includes_value(element):
+ attribute_value = element.get(attribute, [])
+ if not isinstance(attribute_value, list):
+ attribute_value = attribute_value.split()
+ return value in attribute_value
+ return _includes_value
+ elif operator == '^':
+ # string representation of `attribute` starts with `value`
+ return lambda el: el._attr_value_as_string(
+ attribute, '').startswith(value)
+ elif operator == '$':
+ # string represenation of `attribute` ends with `value`
+ return lambda el: el._attr_value_as_string(
+ attribute, '').endswith(value)
+ elif operator == '*':
+ # string representation of `attribute` contains `value`
+ return lambda el: value in el._attr_value_as_string(attribute, '')
+ elif operator == '|':
+ # string representation of `attribute` is either exactly
+ # `value` or starts with `value` and then a dash.
+ def _is_or_starts_with_dash(element):
+ attribute_value = element._attr_value_as_string(attribute, '')
+ return (attribute_value == value or attribute_value.startswith(
+ value + '-'))
+ return _is_or_starts_with_dash
+ else:
+ return lambda el: el.has_attr(attribute)
+
+ # Old non-property versions of the generators, for backwards
+ # compatibility with BS3.
+ def nextGenerator(self):
+ return self.next_elements
+
+ def nextSiblingGenerator(self):
+ return self.next_siblings
+
+ def previousGenerator(self):
+ return self.previous_elements
+
+ def previousSiblingGenerator(self):
+ return self.previous_siblings
+
+ def parentGenerator(self):
+ return self.parents
+
+
+class NavigableString(unicode, PageElement):
+
+ PREFIX = ''
+ SUFFIX = ''
+
+ def __new__(cls, value):
+ """Create a new NavigableString.
+
+ When unpickling a NavigableString, this method is called with
+ the string in DEFAULT_OUTPUT_ENCODING. That encoding needs to be
+ passed in to the superclass's __new__ or the superclass won't know
+ how to handle non-ASCII characters.
+ """
+ if isinstance(value, unicode):
+ return unicode.__new__(cls, value)
+ return unicode.__new__(cls, value, DEFAULT_OUTPUT_ENCODING)
+
+ def __copy__(self):
+ return self
+
+ def __getnewargs__(self):
+ return (unicode(self),)
+
+ def __getattr__(self, attr):
+ """text.string gives you text. This is for backwards
+ compatibility for Navigable*String, but for CData* it lets you
+ get the string without the CData wrapper."""
+ if attr == 'string':
+ return self
+ else:
+ raise AttributeError(
+ "'%s' object has no attribute '%s'" % (
+ self.__class__.__name__, attr))
+
+ def output_ready(self, formatter="minimal"):
+ output = self.format_string(self, formatter)
+ return self.PREFIX + output + self.SUFFIX
+
+ @property
+ def name(self):
+ return None
+
+ @name.setter
+ def name(self, name):
+ raise AttributeError("A NavigableString cannot be given a name.")
+
+class PreformattedString(NavigableString):
+ """A NavigableString not subject to the normal formatting rules.
+
+ The string will be passed into the formatter (to trigger side effects),
+ but the return value will be ignored.
+ """
+
+ def output_ready(self, formatter="minimal"):
+ """CData strings are passed into the formatter.
+ But the return value is ignored."""
+ self.format_string(self, formatter)
+ return self.PREFIX + self + self.SUFFIX
+
+class CData(PreformattedString):
+
+ PREFIX = u'<![CDATA['
+ SUFFIX = u']]>'
+
+class ProcessingInstruction(PreformattedString):
+
+ PREFIX = u'<?'
+ SUFFIX = u'?>'
+
+class Comment(PreformattedString):
+
+ PREFIX = u'<!--'
+ SUFFIX = u'-->'
+
+
+class Declaration(PreformattedString):
+ PREFIX = u'<!'
+ SUFFIX = u'!>'
+
+
+class Doctype(PreformattedString):
+
+ @classmethod
+ def for_name_and_ids(cls, name, pub_id, system_id):
+ value = name or ''
+ if pub_id is not None:
+ value += ' PUBLIC "%s"' % pub_id
+ if system_id is not None:
+ value += ' "%s"' % system_id
+ elif system_id is not None:
+ value += ' SYSTEM "%s"' % system_id
+
+ return Doctype(value)
+
+ PREFIX = u'<!DOCTYPE '
+ SUFFIX = u'>\n'
+
+
+class Tag(PageElement):
+
+ """Represents a found HTML tag with its attributes and contents."""
+
+ def __init__(self, parser=None, builder=None, name=None, namespace=None,
+ prefix=None, attrs=None, parent=None, previous=None):
+ "Basic constructor."
+
+ if parser is None:
+ self.parser_class = None
+ else:
+ # We don't actually store the parser object: that lets extracted
+ # chunks be garbage-collected.
+ self.parser_class = parser.__class__
+ if name is None:
+ raise ValueError("No value provided for new tag's name.")
+ self.name = name
+ self.namespace = namespace
+ self.prefix = prefix
+ if attrs is None:
+ attrs = {}
+ elif attrs and builder.cdata_list_attributes:
+ attrs = builder._replace_cdata_list_attribute_values(
+ self.name, attrs)
+ else:
+ attrs = dict(attrs)
+ self.attrs = attrs
+ self.contents = []
+ self.setup(parent, previous)
+ self.hidden = False
+
+ # Set up any substitutions, such as the charset in a META tag.
+ if builder is not None:
+ builder.set_up_substitutions(self)
+ self.can_be_empty_element = builder.can_be_empty_element(name)
+ else:
+ self.can_be_empty_element = False
+
+ parserClass = _alias("parser_class") # BS3
+
+ @property
+ def is_empty_element(self):
+ """Is this tag an empty-element tag? (aka a self-closing tag)
+
+ A tag that has contents is never an empty-element tag.
+
+ A tag that has no contents may or may not be an empty-element
+ tag. It depends on the builder used to create the tag. If the
+ builder has a designated list of empty-element tags, then only
+ a tag whose name shows up in that list is considered an
+ empty-element tag.
+
+ If the builder has no designated list of empty-element tags,
+ then any tag with no contents is an empty-element tag.
+ """
+ return len(self.contents) == 0 and self.can_be_empty_element
+ isSelfClosing = is_empty_element # BS3
+
+ @property
+ def string(self):
+ """Convenience property to get the single string within this tag.
+
+ :Return: If this tag has a single string child, return value
+ is that string. If this tag has no children, or more than one
+ child, return value is None. If this tag has one child tag,
+ return value is the 'string' attribute of the child tag,
+ recursively.
+ """
+ if len(self.contents) != 1:
+ return None
+ child = self.contents[0]
+ if isinstance(child, NavigableString):
+ return child
+ return child.string
+
+ @string.setter
+ def string(self, string):
+ self.clear()
+ self.append(string.__class__(string))
+
+ def _all_strings(self, strip=False, types=(NavigableString, CData)):
+ """Yield all strings of certain classes, possibly stripping them.
+
+ By default, yields only NavigableString and CData objects. So
+ no comments, processing instructions, etc.
+ """
+ for descendant in self.descendants:
+ if (
+ (types is None and not isinstance(descendant, NavigableString))
+ or
+ (types is not None and type(descendant) not in types)):
+ continue
+ if strip:
+ descendant = descendant.strip()
+ if len(descendant) == 0:
+ continue
+ yield descendant
+
+ strings = property(_all_strings)
+
+ @property
+ def stripped_strings(self):
+ for string in self._all_strings(True):
+ yield string
+
+ def get_text(self, separator=u"", strip=False,
+ types=(NavigableString, CData)):
+ """
+ Get all child strings, concatenated using the given separator.
+ """
+ return separator.join([s for s in self._all_strings(
+ strip, types=types)])
+ getText = get_text
+ text = property(get_text)
+
+ def decompose(self):
+ """Recursively destroys the contents of this tree."""
+ self.extract()
+ i = self
+ while i is not None:
+ next = i.next_element
+ i.__dict__.clear()
+ i.contents = []
+ i = next
+
+ def clear(self, decompose=False):
+ """
+ Extract all children. If decompose is True, decompose instead.
+ """
+ if decompose:
+ for element in self.contents[:]:
+ if isinstance(element, Tag):
+ element.decompose()
+ else:
+ element.extract()
+ else:
+ for element in self.contents[:]:
+ element.extract()
+
+ def index(self, element):
+ """
+ Find the index of a child by identity, not value. Avoids issues with
+ tag.contents.index(element) getting the index of equal elements.
+ """
+ for i, child in enumerate(self.contents):
+ if child is element:
+ return i
+ raise ValueError("Tag.index: element not in tag")
+
+ def get(self, key, default=None):
+ """Returns the value of the 'key' attribute for the tag, or
+ the value given for 'default' if it doesn't have that
+ attribute."""
+ return self.attrs.get(key, default)
+
+ def has_attr(self, key):
+ return key in self.attrs
+
+ def __hash__(self):
+ return str(self).__hash__()
+
+ def __getitem__(self, key):
+ """tag[key] returns the value of the 'key' attribute for the tag,
+ and throws an exception if it's not there."""
+ return self.attrs[key]
+
+ def __iter__(self):
+ "Iterating over a tag iterates over its contents."
+ return iter(self.contents)
+
+ def __len__(self):
+ "The length of a tag is the length of its list of contents."
+ return len(self.contents)
+
+ def __contains__(self, x):
+ return x in self.contents
+
+ def __nonzero__(self):
+ "A tag is non-None even if it has no contents."
+ return True
+
+ def __setitem__(self, key, value):
+ """Setting tag[key] sets the value of the 'key' attribute for the
+ tag."""
+ self.attrs[key] = value
+
+ def __delitem__(self, key):
+ "Deleting tag[key] deletes all 'key' attributes for the tag."
+ self.attrs.pop(key, None)
+
+ def __call__(self, *args, **kwargs):
+ """Calling a tag like a function is the same as calling its
+ find_all() method. Eg. tag('a') returns a list of all the A tags
+ found within this tag."""
+ return self.find_all(*args, **kwargs)
+
+ def __getattr__(self, tag):
+ #print "Getattr %s.%s" % (self.__class__, tag)
+ if len(tag) > 3 and tag.endswith('Tag'):
+ # BS3: soup.aTag -> "soup.find("a")
+ tag_name = tag[:-3]
+ warnings.warn(
+ '.%sTag is deprecated, use .find("%s") instead.' % (
+ tag_name, tag_name))
+ return self.find(tag_name)
+ # We special case contents to avoid recursion.
+ elif not tag.startswith("__") and not tag=="contents":
+ return self.find(tag)
+ raise AttributeError(
+ "'%s' object has no attribute '%s'" % (self.__class__, tag))
+
+ def __eq__(self, other):
+ """Returns true iff this tag has the same name, the same attributes,
+ and the same contents (recursively) as the given tag."""
+ if self is other:
+ return True
+ if (not hasattr(other, 'name') or
+ not hasattr(other, 'attrs') or
+ not hasattr(other, 'contents') or
+ self.name != other.name or
+ self.attrs != other.attrs or
+ len(self) != len(other)):
+ return False
+ for i, my_child in enumerate(self.contents):
+ if my_child != other.contents[i]:
+ return False
+ return True
+
+ def __ne__(self, other):
+ """Returns true iff this tag is not identical to the other tag,
+ as defined in __eq__."""
+ return not self == other
+
+ def __repr__(self, encoding=DEFAULT_OUTPUT_ENCODING):
+ """Renders this tag as a string."""
+ return self.encode(encoding)
+
+ def __unicode__(self):
+ return self.decode()
+
+ def __str__(self):
+ return self.encode()
+
+ if PY3K:
+ __str__ = __repr__ = __unicode__
+
+ def encode(self, encoding=DEFAULT_OUTPUT_ENCODING,
+ indent_level=None, formatter="minimal",
+ errors="xmlcharrefreplace"):
+ # Turn the data structure into Unicode, then encode the
+ # Unicode.
+ u = self.decode(indent_level, encoding, formatter)
+ return u.encode(encoding, errors)
+
+ def _should_pretty_print(self, indent_level):
+ """Should this tag be pretty-printed?"""
+ return (
+ indent_level is not None and
+ (self.name not in HTMLAwareEntitySubstitution.preformatted_tags
+ or self._is_xml))
+
+ def decode(self, indent_level=None,
+ eventual_encoding=DEFAULT_OUTPUT_ENCODING,
+ formatter="minimal"):
+ """Returns a Unicode representation of this tag and its contents.
+
+ :param eventual_encoding: The tag is destined to be
+ encoded into this encoding. This method is _not_
+ responsible for performing that encoding. This information
+ is passed in so that it can be substituted in if the
+ document contains a <META> tag that mentions the document's
+ encoding.
+ """
+
+ # First off, turn a string formatter into a function. This
+ # will stop the lookup from happening over and over again.
+ if not callable(formatter):
+ formatter = self._formatter_for_name(formatter)
+
+ attrs = []
+ if self.attrs:
+ for key, val in sorted(self.attrs.items()):
+ if val is None:
+ decoded = key
+ else:
+ if isinstance(val, list) or isinstance(val, tuple):
+ val = ' '.join(val)
+ elif not isinstance(val, basestring):
+ val = unicode(val)
+ elif (
+ isinstance(val, AttributeValueWithCharsetSubstitution)
+ and eventual_encoding is not None):
+ val = val.encode(eventual_encoding)
+
+ text = self.format_string(val, formatter)
+ decoded = (
+ unicode(key) + '='
+ + EntitySubstitution.quoted_attribute_value(text))
+ attrs.append(decoded)
+ close = ''
+ closeTag = ''
+
+ prefix = ''
+ if self.prefix:
+ prefix = self.prefix + ":"
+
+ if self.is_empty_element:
+ close = '/'
+ else:
+ closeTag = '</%s%s>' % (prefix, self.name)
+
+ pretty_print = self._should_pretty_print(indent_level)
+ space = ''
+ indent_space = ''
+ if indent_level is not None:
+ indent_space = (' ' * (indent_level - 1))
+ if pretty_print:
+ space = indent_space
+ indent_contents = indent_level + 1
+ else:
+ indent_contents = None
+ contents = self.decode_contents(
+ indent_contents, eventual_encoding, formatter)
+
+ if self.hidden:
+ # This is the 'document root' object.
+ s = contents
+ else:
+ s = []
+ attribute_string = ''
+ if attrs:
+ attribute_string = ' ' + ' '.join(attrs)
+ if indent_level is not None:
+ # Even if this particular tag is not pretty-printed,
+ # we should indent up to the start of the tag.
+ s.append(indent_space)
+ s.append('<%s%s%s%s>' % (
+ prefix, self.name, attribute_string, close))
+ if pretty_print:
+ s.append("\n")
+ s.append(contents)
+ if pretty_print and contents and contents[-1] != "\n":
+ s.append("\n")
+ if pretty_print and closeTag:
+ s.append(space)
+ s.append(closeTag)
+ if indent_level is not None and closeTag and self.next_sibling:
+ # Even if this particular tag is not pretty-printed,
+ # we're now done with the tag, and we should add a
+ # newline if appropriate.
+ s.append("\n")
+ s = ''.join(s)
+ return s
+
+ def prettify(self, encoding=None, formatter="minimal"):
+ if encoding is None:
+ return self.decode(True, formatter=formatter)
+ else:
+ return self.encode(encoding, True, formatter=formatter)
+
+ def decode_contents(self, indent_level=None,
+ eventual_encoding=DEFAULT_OUTPUT_ENCODING,
+ formatter="minimal"):
+ """Renders the contents of this tag as a Unicode string.
+
+ :param eventual_encoding: The tag is destined to be
+ encoded into this encoding. This method is _not_
+ responsible for performing that encoding. This information
+ is passed in so that it can be substituted in if the
+ document contains a <META> tag that mentions the document's
+ encoding.
+ """
+ # First off, turn a string formatter into a function. This
+ # will stop the lookup from happening over and over again.
+ if not callable(formatter):
+ formatter = self._formatter_for_name(formatter)
+
+ pretty_print = (indent_level is not None)
+ s = []
+ for c in self:
+ text = None
+ if isinstance(c, NavigableString):
+ text = c.output_ready(formatter)
+ elif isinstance(c, Tag):
+ s.append(c.decode(indent_level, eventual_encoding,
+ formatter))
+ if text and indent_level and not self.name == 'pre':
+ text = text.strip()
+ if text:
+ if pretty_print and not self.name == 'pre':
+ s.append(" " * (indent_level - 1))
+ s.append(text)
+ if pretty_print and not self.name == 'pre':
+ s.append("\n")
+ return ''.join(s)
+
+ def encode_contents(
+ self, indent_level=None, encoding=DEFAULT_OUTPUT_ENCODING,
+ formatter="minimal"):
+ """Renders the contents of this tag as a bytestring."""
+ contents = self.decode_contents(indent_level, encoding, formatter)
+ return contents.encode(encoding)
+
+ # Old method for BS3 compatibility
+ def renderContents(self, encoding=DEFAULT_OUTPUT_ENCODING,
+ prettyPrint=False, indentLevel=0):
+ if not prettyPrint:
+ indentLevel = None
+ return self.encode_contents(
+ indent_level=indentLevel, encoding=encoding)
+
+ #Soup methods
+
+ def find(self, name=None, attrs={}, recursive=True, text=None,
+ **kwargs):
+ """Return only the first child of this Tag matching the given
+ criteria."""
+ r = None
+ l = self.find_all(name, attrs, recursive, text, 1, **kwargs)
+ if l:
+ r = l[0]
+ return r
+ findChild = find
+
+ def find_all(self, name=None, attrs={}, recursive=True, text=None,
+ limit=None, **kwargs):
+ """Extracts a list of Tag objects that match the given
+ criteria. You can specify the name of the Tag and any
+ attributes you want the Tag to have.
+
+ The value of a key-value pair in the 'attrs' map can be a
+ string, a list of strings, a regular expression object, or a
+ callable that takes a string and returns whether or not the
+ string matches for some custom definition of 'matches'. The
+ same is true of the tag name."""
+
+ generator = self.descendants
+ if not recursive:
+ generator = self.children
+ return self._find_all(name, attrs, text, limit, generator, **kwargs)
+ findAll = find_all # BS3
+ findChildren = find_all # BS2
+
+ #Generator methods
+ @property
+ def children(self):
+ # return iter() to make the purpose of the method clear
+ return iter(self.contents) # XXX This seems to be untested.
+
+ @property
+ def descendants(self):
+ if not len(self.contents):
+ return
+ stopNode = self._last_descendant().next_element
+ current = self.contents[0]
+ while current is not stopNode:
+ yield current
+ current = current.next_element
+
+ # CSS selector code
+
+ _selector_combinators = ['>', '+', '~']
+ _select_debug = False
+ def select(self, selector, _candidate_generator=None):
+ """Perform a CSS selection operation on the current element."""
+ tokens = selector.split()
+ current_context = [self]
+
+ if tokens[-1] in self._selector_combinators:
+ raise ValueError(
+ 'Final combinator "%s" is missing an argument.' % tokens[-1])
+ if self._select_debug:
+ print 'Running CSS selector "%s"' % selector
+ for index, token in enumerate(tokens):
+ if self._select_debug:
+ print ' Considering token "%s"' % token
+ recursive_candidate_generator = None
+ tag_name = None
+ if tokens[index-1] in self._selector_combinators:
+ # This token was consumed by the previous combinator. Skip it.
+ if self._select_debug:
+ print ' Token was consumed by the previous combinator.'
+ continue
+ # Each operation corresponds to a checker function, a rule
+ # for determining whether a candidate matches the
+ # selector. Candidates are generated by the active
+ # iterator.
+ checker = None
+
+ m = self.attribselect_re.match(token)
+ if m is not None:
+ # Attribute selector
+ tag_name, attribute, operator, value = m.groups()
+ checker = self._attribute_checker(operator, attribute, value)
+
+ elif '#' in token:
+ # ID selector
+ tag_name, tag_id = token.split('#', 1)
+ def id_matches(tag):
+ return tag.get('id', None) == tag_id
+ checker = id_matches
+
+ elif '.' in token:
+ # Class selector
+ tag_name, klass = token.split('.', 1)
+ classes = set(klass.split('.'))
+ def classes_match(candidate):
+ return classes.issubset(candidate.get('class', []))
+ checker = classes_match
+
+ elif ':' in token:
+ # Pseudo-class
+ tag_name, pseudo = token.split(':', 1)
+ if tag_name == '':
+ raise ValueError(
+ "A pseudo-class must be prefixed with a tag name.")
+ pseudo_attributes = re.match('([a-zA-Z\d-]+)\(([a-zA-Z\d]+)\)', pseudo)
+ found = []
+ if pseudo_attributes is not None:
+ pseudo_type, pseudo_value = pseudo_attributes.groups()
+ if pseudo_type == 'nth-of-type':
+ try:
+ pseudo_value = int(pseudo_value)
+ except:
+ raise NotImplementedError(
+ 'Only numeric values are currently supported for the nth-of-type pseudo-class.')
+ if pseudo_value < 1:
+ raise ValueError(
+ 'nth-of-type pseudo-class value must be at least 1.')
+ class Counter(object):
+ def __init__(self, destination):
+ self.count = 0
+ self.destination = destination
+
+ def nth_child_of_type(self, tag):
+ self.count += 1
+ if self.count == self.destination:
+ return True
+ if self.count > self.destination:
+ # Stop the generator that's sending us
+ # these things.
+ raise StopIteration()
+ return False
+ checker = Counter(pseudo_value).nth_child_of_type
+ else:
+ raise NotImplementedError(
+ 'Only the following pseudo-classes are implemented: nth-of-type.')
+
+ elif token == '*':
+ # Star selector -- matches everything
+ pass
+ elif token == '>':
+ # Run the next token as a CSS selector against the
+ # direct children of each tag in the current context.
+ recursive_candidate_generator = lambda tag: tag.children
+ elif token == '~':
+ # Run the next token as a CSS selector against the
+ # siblings of each tag in the current context.
+ recursive_candidate_generator = lambda tag: tag.next_siblings
+ elif token == '+':
+ # For each tag in the current context, run the next
+ # token as a CSS selector against the tag's next
+ # sibling that's a tag.
+ def next_tag_sibling(tag):
+ yield tag.find_next_sibling(True)
+ recursive_candidate_generator = next_tag_sibling
+
+ elif self.tag_name_re.match(token):
+ # Just a tag name.
+ tag_name = token
+ else:
+ raise ValueError(
+ 'Unsupported or invalid CSS selector: "%s"' % token)
+
+ if recursive_candidate_generator:
+ # This happens when the selector looks like "> foo".
+ #
+ # The generator calls select() recursively on every
+ # member of the current context, passing in a different
+ # candidate generator and a different selector.
+ #
+ # In the case of "> foo", the candidate generator is
+ # one that yields a tag's direct children (">"), and
+ # the selector is "foo".
+ next_token = tokens[index+1]
+ def recursive_select(tag):
+ if self._select_debug:
+ print ' Calling select("%s") recursively on %s %s' % (next_token, tag.name, tag.attrs)
+ print '-' * 40
+ for i in tag.select(next_token, recursive_candidate_generator):
+ if self._select_debug:
+ print '(Recursive select picked up candidate %s %s)' % (i.name, i.attrs)
+ yield i
+ if self._select_debug:
+ print '-' * 40
+ _use_candidate_generator = recursive_select
+ elif _candidate_generator is None:
+ # By default, a tag's candidates are all of its
+ # children. If tag_name is defined, only yield tags
+ # with that name.
+ if self._select_debug:
+ if tag_name:
+ check = "[any]"
+ else:
+ check = tag_name
+ print ' Default candidate generator, tag name="%s"' % check
+ if self._select_debug:
+ # This is redundant with later code, but it stops
+ # a bunch of bogus tags from cluttering up the
+ # debug log.
+ def default_candidate_generator(tag):
+ for child in tag.descendants:
+ if not isinstance(child, Tag):
+ continue
+ if tag_name and not child.name == tag_name:
+ continue
+ yield child
+ _use_candidate_generator = default_candidate_generator
+ else:
+ _use_candidate_generator = lambda tag: tag.descendants
+ else:
+ _use_candidate_generator = _candidate_generator
+
+ new_context = []
+ new_context_ids = set([])
+ for tag in current_context:
+ if self._select_debug:
+ print " Running candidate generator on %s %s" % (
+ tag.name, repr(tag.attrs))
+ for candidate in _use_candidate_generator(tag):
+ if not isinstance(candidate, Tag):
+ continue
+ if tag_name and candidate.name != tag_name:
+ continue
+ if checker is not None:
+ try:
+ result = checker(candidate)
+ except StopIteration:
+ # The checker has decided we should no longer
+ # run the generator.
+ break
+ if checker is None or result:
+ if self._select_debug:
+ print " SUCCESS %s %s" % (candidate.name, repr(candidate.attrs))
+ if id(candidate) not in new_context_ids:
+ # If a tag matches a selector more than once,
+ # don't include it in the context more than once.
+ new_context.append(candidate)
+ new_context_ids.add(id(candidate))
+ elif self._select_debug:
+ print " FAILURE %s %s" % (candidate.name, repr(candidate.attrs))
+
+ current_context = new_context
+
+ if self._select_debug:
+ print "Final verdict:"
+ for i in current_context:
+ print " %s %s" % (i.name, i.attrs)
+ return current_context
+
+ # Old names for backwards compatibility
+ def childGenerator(self):
+ return self.children
+
+ def recursiveChildGenerator(self):
+ return self.descendants
+
+ def has_key(self, key):
+ """This was kind of misleading because has_key() (attributes)
+ was different from __in__ (contents). has_key() is gone in
+ Python 3, anyway."""
+ warnings.warn('has_key is deprecated. Use has_attr("%s") instead.' % (
+ key))
+ return self.has_attr(key)
+
+# Next, a couple classes to represent queries and their results.
+class SoupStrainer(object):
+ """Encapsulates a number of ways of matching a markup element (tag or
+ text)."""
+
+ def __init__(self, name=None, attrs={}, text=None, **kwargs):
+ self.name = self._normalize_search_value(name)
+ if not isinstance(attrs, dict):
+ # Treat a non-dict value for attrs as a search for the 'class'
+ # attribute.
+ kwargs['class'] = attrs
+ attrs = None
+
+ if 'class_' in kwargs:
+ # Treat class_="foo" as a search for the 'class'
+ # attribute, overriding any non-dict value for attrs.
+ kwargs['class'] = kwargs['class_']
+ del kwargs['class_']
+
+ if kwargs:
+ if attrs:
+ attrs = attrs.copy()
+ attrs.update(kwargs)
+ else:
+ attrs = kwargs
+ normalized_attrs = {}
+ for key, value in attrs.items():
+ normalized_attrs[key] = self._normalize_search_value(value)
+
+ self.attrs = normalized_attrs
+ self.text = self._normalize_search_value(text)
+
+ def _normalize_search_value(self, value):
+ # Leave it alone if it's a Unicode string, a callable, a
+ # regular expression, a boolean, or None.
+ if (isinstance(value, unicode) or callable(value) or hasattr(value, 'match')
+ or isinstance(value, bool) or value is None):
+ return value
+
+ # If it's a bytestring, convert it to Unicode, treating it as UTF-8.
+ if isinstance(value, bytes):
+ return value.decode("utf8")
+
+ # If it's listlike, convert it into a list of strings.
+ if hasattr(value, '__iter__'):
+ new_value = []
+ for v in value:
+ if (hasattr(v, '__iter__') and not isinstance(v, bytes)
+ and not isinstance(v, unicode)):
+ # This is almost certainly the user's mistake. In the
+ # interests of avoiding infinite loops, we'll let
+ # it through as-is rather than doing a recursive call.
+ new_value.append(v)
+ else:
+ new_value.append(self._normalize_search_value(v))
+ return new_value
+
+ # Otherwise, convert it into a Unicode string.
+ # The unicode(str()) thing is so this will do the same thing on Python 2
+ # and Python 3.
+ return unicode(str(value))
+
+ def __str__(self):
+ if self.text:
+ return self.text
+ else:
+ return "%s|%s" % (self.name, self.attrs)
+
+ def search_tag(self, markup_name=None, markup_attrs={}):
+ found = None
+ markup = None
+ if isinstance(markup_name, Tag):
+ markup = markup_name
+ markup_attrs = markup
+ call_function_with_tag_data = (
+ isinstance(self.name, collections.Callable)
+ and not isinstance(markup_name, Tag))
+
+ if ((not self.name)
+ or call_function_with_tag_data
+ or (markup and self._matches(markup, self.name))
+ or (not markup and self._matches(markup_name, self.name))):
+ if call_function_with_tag_data:
+ match = self.name(markup_name, markup_attrs)
+ else:
+ match = True
+ markup_attr_map = None
+ for attr, match_against in list(self.attrs.items()):
+ if not markup_attr_map:
+ if hasattr(markup_attrs, 'get'):
+ markup_attr_map = markup_attrs
+ else:
+ markup_attr_map = {}
+ for k, v in markup_attrs:
+ markup_attr_map[k] = v
+ attr_value = markup_attr_map.get(attr)
+ if not self._matches(attr_value, match_against):
+ match = False
+ break
+ if match:
+ if markup:
+ found = markup
+ else:
+ found = markup_name
+ if found and self.text and not self._matches(found.string, self.text):
+ found = None
+ return found
+ searchTag = search_tag
+
+ def search(self, markup):
+ # print 'looking for %s in %s' % (self, markup)
+ found = None
+ # If given a list of items, scan it for a text element that
+ # matches.
+ if hasattr(markup, '__iter__') and not isinstance(markup, (Tag, basestring)):
+ for element in markup:
+ if isinstance(element, NavigableString) \
+ and self.search(element):
+ found = element
+ break
+ # If it's a Tag, make sure its name or attributes match.
+ # Don't bother with Tags if we're searching for text.
+ elif isinstance(markup, Tag):
+ if not self.text or self.name or self.attrs:
+ found = self.search_tag(markup)
+ # If it's text, make sure the text matches.
+ elif isinstance(markup, NavigableString) or \
+ isinstance(markup, basestring):
+ if not self.name and not self.attrs and self._matches(markup, self.text):
+ found = markup
+ else:
+ raise Exception(
+ "I don't know how to match against a %s" % markup.__class__)
+ return found
+
+ def _matches(self, markup, match_against):
+ # print u"Matching %s against %s" % (markup, match_against)
+ result = False
+ if isinstance(markup, list) or isinstance(markup, tuple):
+ # This should only happen when searching a multi-valued attribute
+ # like 'class'.
+ if (isinstance(match_against, unicode)
+ and ' ' in match_against):
+ # A bit of a special case. If they try to match "foo
+ # bar" on a multivalue attribute's value, only accept
+ # the literal value "foo bar"
+ #
+ # XXX This is going to be pretty slow because we keep
+ # splitting match_against. But it shouldn't come up
+ # too often.
+ return (whitespace_re.split(match_against) == markup)
+ else:
+ for item in markup:
+ if self._matches(item, match_against):
+ return True
+ return False
+
+ if match_against is True:
+ # True matches any non-None value.
+ return markup is not None
+
+ if isinstance(match_against, collections.Callable):
+ return match_against(markup)
+
+ # Custom callables take the tag as an argument, but all
+ # other ways of matching match the tag name as a string.
+ if isinstance(markup, Tag):
+ markup = markup.name
+
+ # Ensure that `markup` is either a Unicode string, or None.
+ markup = self._normalize_search_value(markup)
+
+ if markup is None:
+ # None matches None, False, an empty string, an empty list, and so on.
+ return not match_against
+
+ if isinstance(match_against, unicode):
+ # Exact string match
+ return markup == match_against
+
+ if hasattr(match_against, 'match'):
+ # Regexp match
+ return match_against.search(markup)
+
+ if hasattr(match_against, '__iter__'):
+ # The markup must be an exact match against something
+ # in the iterable.
+ return markup in match_against
+
+
+class ResultSet(list):
+ """A ResultSet is just a list that keeps track of the SoupStrainer
+ that created it."""
+ def __init__(self, source, result=()):
+ super(ResultSet, self).__init__(result)
+ self.source = source
diff --git a/bitbake/lib/bs4/testing.py b/bitbake/lib/bs4/testing.py
new file mode 100644
index 0000000000..fd4495ac58
--- /dev/null
+++ b/bitbake/lib/bs4/testing.py
@@ -0,0 +1,592 @@
+"""Helper classes for tests."""
+
+import copy
+import functools
+import unittest
+from unittest import TestCase
+from bs4 import BeautifulSoup
+from bs4.element import (
+ CharsetMetaAttributeValue,
+ Comment,
+ ContentMetaAttributeValue,
+ Doctype,
+ SoupStrainer,
+)
+
+from bs4.builder import HTMLParserTreeBuilder
+default_builder = HTMLParserTreeBuilder
+
+
+class SoupTest(unittest.TestCase):
+
+ @property
+ def default_builder(self):
+ return default_builder()
+
+ def soup(self, markup, **kwargs):
+ """Build a Beautiful Soup object from markup."""
+ builder = kwargs.pop('builder', self.default_builder)
+ return BeautifulSoup(markup, builder=builder, **kwargs)
+
+ def document_for(self, markup):
+ """Turn an HTML fragment into a document.
+
+ The details depend on the builder.
+ """
+ return self.default_builder.test_fragment_to_document(markup)
+
+ def assertSoupEquals(self, to_parse, compare_parsed_to=None):
+ builder = self.default_builder
+ obj = BeautifulSoup(to_parse, builder=builder)
+ if compare_parsed_to is None:
+ compare_parsed_to = to_parse
+
+ self.assertEqual(obj.decode(), self.document_for(compare_parsed_to))
+
+
+class HTMLTreeBuilderSmokeTest(object):
+
+ """A basic test of a treebuilder's competence.
+
+ Any HTML treebuilder, present or future, should be able to pass
+ these tests. With invalid markup, there's room for interpretation,
+ and different parsers can handle it differently. But with the
+ markup in these tests, there's not much room for interpretation.
+ """
+
+ def assertDoctypeHandled(self, doctype_fragment):
+ """Assert that a given doctype string is handled correctly."""
+ doctype_str, soup = self._document_with_doctype(doctype_fragment)
+
+ # Make sure a Doctype object was created.
+ doctype = soup.contents[0]
+ self.assertEqual(doctype.__class__, Doctype)
+ self.assertEqual(doctype, doctype_fragment)
+ self.assertEqual(str(soup)[:len(doctype_str)], doctype_str)
+
+ # Make sure that the doctype was correctly associated with the
+ # parse tree and that the rest of the document parsed.
+ self.assertEqual(soup.p.contents[0], 'foo')
+
+ def _document_with_doctype(self, doctype_fragment):
+ """Generate and parse a document with the given doctype."""
+ doctype = '<!DOCTYPE %s>' % doctype_fragment
+ markup = doctype + '\n<p>foo</p>'
+ soup = self.soup(markup)
+ return doctype, soup
+
+ def test_normal_doctypes(self):
+ """Make sure normal, everyday HTML doctypes are handled correctly."""
+ self.assertDoctypeHandled("html")
+ self.assertDoctypeHandled(
+ 'html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"')
+
+ def test_empty_doctype(self):
+ soup = self.soup("<!DOCTYPE>")
+ doctype = soup.contents[0]
+ self.assertEqual("", doctype.strip())
+
+ def test_public_doctype_with_url(self):
+ doctype = 'html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"'
+ self.assertDoctypeHandled(doctype)
+
+ def test_system_doctype(self):
+ self.assertDoctypeHandled('foo SYSTEM "http://www.example.com/"')
+
+ def test_namespaced_system_doctype(self):
+ # We can handle a namespaced doctype with a system ID.
+ self.assertDoctypeHandled('xsl:stylesheet SYSTEM "htmlent.dtd"')
+
+ def test_namespaced_public_doctype(self):
+ # Test a namespaced doctype with a public id.
+ self.assertDoctypeHandled('xsl:stylesheet PUBLIC "htmlent.dtd"')
+
+ def test_real_xhtml_document(self):
+ """A real XHTML document should come out more or less the same as it went in."""
+ markup = b"""<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>Hello.</title></head>
+<body>Goodbye.</body>
+</html>"""
+ soup = self.soup(markup)
+ self.assertEqual(
+ soup.encode("utf-8").replace(b"\n", b""),
+ markup.replace(b"\n", b""))
+
+ def test_deepcopy(self):
+ """Make sure you can copy the tree builder.
+
+ This is important because the builder is part of a
+ BeautifulSoup object, and we want to be able to copy that.
+ """
+ copy.deepcopy(self.default_builder)
+
+ def test_p_tag_is_never_empty_element(self):
+ """A <p> tag is never designated as an empty-element tag.
+
+ Even if the markup shows it as an empty-element tag, it
+ shouldn't be presented that way.
+ """
+ soup = self.soup("<p/>")
+ self.assertFalse(soup.p.is_empty_element)
+ self.assertEqual(str(soup.p), "<p></p>")
+
+ def test_unclosed_tags_get_closed(self):
+ """A tag that's not closed by the end of the document should be closed.
+
+ This applies to all tags except empty-element tags.
+ """
+ self.assertSoupEquals("<p>", "<p></p>")
+ self.assertSoupEquals("<b>", "<b></b>")
+
+ self.assertSoupEquals("<br>", "<br/>")
+
+ def test_br_is_always_empty_element_tag(self):
+ """A <br> tag is designated as an empty-element tag.
+
+ Some parsers treat <br></br> as one <br/> tag, some parsers as
+ two tags, but it should always be an empty-element tag.
+ """
+ soup = self.soup("<br></br>")
+ self.assertTrue(soup.br.is_empty_element)
+ self.assertEqual(str(soup.br), "<br/>")
+
+ def test_nested_formatting_elements(self):
+ self.assertSoupEquals("<em><em></em></em>")
+
+ def test_comment(self):
+ # Comments are represented as Comment objects.
+ markup = "<p>foo<!--foobar-->baz</p>"
+ self.assertSoupEquals(markup)
+
+ soup = self.soup(markup)
+ comment = soup.find(text="foobar")
+ self.assertEqual(comment.__class__, Comment)
+
+ # The comment is properly integrated into the tree.
+ foo = soup.find(text="foo")
+ self.assertEqual(comment, foo.next_element)
+ baz = soup.find(text="baz")
+ self.assertEqual(comment, baz.previous_element)
+
+ def test_preserved_whitespace_in_pre_and_textarea(self):
+ """Whitespace must be preserved in <pre> and <textarea> tags."""
+ self.assertSoupEquals("<pre> </pre>")
+ self.assertSoupEquals("<textarea> woo </textarea>")
+
+ def test_nested_inline_elements(self):
+ """Inline elements can be nested indefinitely."""
+ b_tag = "<b>Inside a B tag</b>"
+ self.assertSoupEquals(b_tag)
+
+ nested_b_tag = "<p>A <i>nested <b>tag</b></i></p>"
+ self.assertSoupEquals(nested_b_tag)
+
+ double_nested_b_tag = "<p>A <a>doubly <i>nested <b>tag</b></i></a></p>"
+ self.assertSoupEquals(nested_b_tag)
+
+ def test_nested_block_level_elements(self):
+ """Block elements can be nested."""
+ soup = self.soup('<blockquote><p><b>Foo</b></p></blockquote>')
+ blockquote = soup.blockquote
+ self.assertEqual(blockquote.p.b.string, 'Foo')
+ self.assertEqual(blockquote.b.string, 'Foo')
+
+ def test_correctly_nested_tables(self):
+ """One table can go inside another one."""
+ markup = ('<table id="1">'
+ '<tr>'
+ "<td>Here's another table:"
+ '<table id="2">'
+ '<tr><td>foo</td></tr>'
+ '</table></td>')
+
+ self.assertSoupEquals(
+ markup,
+ '<table id="1"><tr><td>Here\'s another table:'
+ '<table id="2"><tr><td>foo</td></tr></table>'
+ '</td></tr></table>')
+
+ self.assertSoupEquals(
+ "<table><thead><tr><td>Foo</td></tr></thead>"
+ "<tbody><tr><td>Bar</td></tr></tbody>"
+ "<tfoot><tr><td>Baz</td></tr></tfoot></table>")
+
+ def test_deeply_nested_multivalued_attribute(self):
+ # html5lib can set the attributes of the same tag many times
+ # as it rearranges the tree. This has caused problems with
+ # multivalued attributes.
+ markup = '<table><div><div class="css"></div></div></table>'
+ soup = self.soup(markup)
+ self.assertEqual(["css"], soup.div.div['class'])
+
+ def test_angle_brackets_in_attribute_values_are_escaped(self):
+ self.assertSoupEquals('<a b="<a>"></a>', '<a b="&lt;a&gt;"></a>')
+
+ def test_entities_in_attributes_converted_to_unicode(self):
+ expect = u'<p id="pi\N{LATIN SMALL LETTER N WITH TILDE}ata"></p>'
+ self.assertSoupEquals('<p id="pi&#241;ata"></p>', expect)
+ self.assertSoupEquals('<p id="pi&#xf1;ata"></p>', expect)
+ self.assertSoupEquals('<p id="pi&#Xf1;ata"></p>', expect)
+ self.assertSoupEquals('<p id="pi&ntilde;ata"></p>', expect)
+
+ def test_entities_in_text_converted_to_unicode(self):
+ expect = u'<p>pi\N{LATIN SMALL LETTER N WITH TILDE}ata</p>'
+ self.assertSoupEquals("<p>pi&#241;ata</p>", expect)
+ self.assertSoupEquals("<p>pi&#xf1;ata</p>", expect)
+ self.assertSoupEquals("<p>pi&#Xf1;ata</p>", expect)
+ self.assertSoupEquals("<p>pi&ntilde;ata</p>", expect)
+
+ def test_quot_entity_converted_to_quotation_mark(self):
+ self.assertSoupEquals("<p>I said &quot;good day!&quot;</p>",
+ '<p>I said "good day!"</p>')
+
+ def test_out_of_range_entity(self):
+ expect = u"\N{REPLACEMENT CHARACTER}"
+ self.assertSoupEquals("&#10000000000000;", expect)
+ self.assertSoupEquals("&#x10000000000000;", expect)
+ self.assertSoupEquals("&#1000000000;", expect)
+
+ def test_multipart_strings(self):
+ "Mostly to prevent a recurrence of a bug in the html5lib treebuilder."
+ soup = self.soup("<html><h2>\nfoo</h2><p></p></html>")
+ self.assertEqual("p", soup.h2.string.next_element.name)
+ self.assertEqual("p", soup.p.name)
+
+ def test_basic_namespaces(self):
+ """Parsers don't need to *understand* namespaces, but at the
+ very least they should not choke on namespaces or lose
+ data."""
+
+ markup = b'<html xmlns="http://www.w3.org/1999/xhtml" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg"><head></head><body><mathml:msqrt>4</mathml:msqrt><b svg:fill="red"></b></body></html>'
+ soup = self.soup(markup)
+ self.assertEqual(markup, soup.encode())
+ html = soup.html
+ self.assertEqual('http://www.w3.org/1999/xhtml', soup.html['xmlns'])
+ self.assertEqual(
+ 'http://www.w3.org/1998/Math/MathML', soup.html['xmlns:mathml'])
+ self.assertEqual(
+ 'http://www.w3.org/2000/svg', soup.html['xmlns:svg'])
+
+ def test_multivalued_attribute_value_becomes_list(self):
+ markup = b'<a class="foo bar">'
+ soup = self.soup(markup)
+ self.assertEqual(['foo', 'bar'], soup.a['class'])
+
+ #
+ # Generally speaking, tests below this point are more tests of
+ # Beautiful Soup than tests of the tree builders. But parsers are
+ # weird, so we run these tests separately for every tree builder
+ # to detect any differences between them.
+ #
+
+ def test_can_parse_unicode_document(self):
+ # A seemingly innocuous document... but it's in Unicode! And
+ # it contains characters that can't be represented in the
+ # encoding found in the declaration! The horror!
+ markup = u'<html><head><meta encoding="euc-jp"></head><body>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</body>'
+ soup = self.soup(markup)
+ self.assertEqual(u'Sacr\xe9 bleu!', soup.body.string)
+
+ def test_soupstrainer(self):
+ """Parsers should be able to work with SoupStrainers."""
+ strainer = SoupStrainer("b")
+ soup = self.soup("A <b>bold</b> <meta/> <i>statement</i>",
+ parse_only=strainer)
+ self.assertEqual(soup.decode(), "<b>bold</b>")
+
+ def test_single_quote_attribute_values_become_double_quotes(self):
+ self.assertSoupEquals("<foo attr='bar'></foo>",
+ '<foo attr="bar"></foo>')
+
+ def test_attribute_values_with_nested_quotes_are_left_alone(self):
+ text = """<foo attr='bar "brawls" happen'>a</foo>"""
+ self.assertSoupEquals(text)
+
+ def test_attribute_values_with_double_nested_quotes_get_quoted(self):
+ text = """<foo attr='bar "brawls" happen'>a</foo>"""
+ soup = self.soup(text)
+ soup.foo['attr'] = 'Brawls happen at "Bob\'s Bar"'
+ self.assertSoupEquals(
+ soup.foo.decode(),
+ """<foo attr="Brawls happen at &quot;Bob\'s Bar&quot;">a</foo>""")
+
+ def test_ampersand_in_attribute_value_gets_escaped(self):
+ self.assertSoupEquals('<this is="really messed up & stuff"></this>',
+ '<this is="really messed up &amp; stuff"></this>')
+
+ self.assertSoupEquals(
+ '<a href="http://example.org?a=1&b=2;3">foo</a>',
+ '<a href="http://example.org?a=1&amp;b=2;3">foo</a>')
+
+ def test_escaped_ampersand_in_attribute_value_is_left_alone(self):
+ self.assertSoupEquals('<a href="http://example.org?a=1&amp;b=2;3"></a>')
+
+ def test_entities_in_strings_converted_during_parsing(self):
+ # Both XML and HTML entities are converted to Unicode characters
+ # during parsing.
+ text = "<p>&lt;&lt;sacr&eacute;&#32;bleu!&gt;&gt;</p>"
+ expected = u"<p>&lt;&lt;sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</p>"
+ self.assertSoupEquals(text, expected)
+
+ def test_smart_quotes_converted_on_the_way_in(self):
+ # Microsoft smart quotes are converted to Unicode characters during
+ # parsing.
+ quote = b"<p>\x91Foo\x92</p>"
+ soup = self.soup(quote)
+ self.assertEqual(
+ soup.p.string,
+ u"\N{LEFT SINGLE QUOTATION MARK}Foo\N{RIGHT SINGLE QUOTATION MARK}")
+
+ def test_non_breaking_spaces_converted_on_the_way_in(self):
+ soup = self.soup("<a>&nbsp;&nbsp;</a>")
+ self.assertEqual(soup.a.string, u"\N{NO-BREAK SPACE}" * 2)
+
+ def test_entities_converted_on_the_way_out(self):
+ text = "<p>&lt;&lt;sacr&eacute;&#32;bleu!&gt;&gt;</p>"
+ expected = u"<p>&lt;&lt;sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</p>".encode("utf-8")
+ soup = self.soup(text)
+ self.assertEqual(soup.p.encode("utf-8"), expected)
+
+ def test_real_iso_latin_document(self):
+ # Smoke test of interrelated functionality, using an
+ # easy-to-understand document.
+
+ # Here it is in Unicode. Note that it claims to be in ISO-Latin-1.
+ unicode_html = u'<html><head><meta content="text/html; charset=ISO-Latin-1" http-equiv="Content-type"/></head><body><p>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</p></body></html>'
+
+ # That's because we're going to encode it into ISO-Latin-1, and use
+ # that to test.
+ iso_latin_html = unicode_html.encode("iso-8859-1")
+
+ # Parse the ISO-Latin-1 HTML.
+ soup = self.soup(iso_latin_html)
+ # Encode it to UTF-8.
+ result = soup.encode("utf-8")
+
+ # What do we expect the result to look like? Well, it would
+ # look like unicode_html, except that the META tag would say
+ # UTF-8 instead of ISO-Latin-1.
+ expected = unicode_html.replace("ISO-Latin-1", "utf-8")
+
+ # And, of course, it would be in UTF-8, not Unicode.
+ expected = expected.encode("utf-8")
+
+ # Ta-da!
+ self.assertEqual(result, expected)
+
+ def test_real_shift_jis_document(self):
+ # Smoke test to make sure the parser can handle a document in
+ # Shift-JIS encoding, without choking.
+ shift_jis_html = (
+ b'<html><head></head><body><pre>'
+ b'\x82\xb1\x82\xea\x82\xcdShift-JIS\x82\xc5\x83R\x81[\x83f'
+ b'\x83B\x83\x93\x83O\x82\xb3\x82\xea\x82\xbd\x93\xfa\x96{\x8c'
+ b'\xea\x82\xcc\x83t\x83@\x83C\x83\x8b\x82\xc5\x82\xb7\x81B'
+ b'</pre></body></html>')
+ unicode_html = shift_jis_html.decode("shift-jis")
+ soup = self.soup(unicode_html)
+
+ # Make sure the parse tree is correctly encoded to various
+ # encodings.
+ self.assertEqual(soup.encode("utf-8"), unicode_html.encode("utf-8"))
+ self.assertEqual(soup.encode("euc_jp"), unicode_html.encode("euc_jp"))
+
+ def test_real_hebrew_document(self):
+ # A real-world test to make sure we can convert ISO-8859-9 (a
+ # Hebrew encoding) to UTF-8.
+ hebrew_document = b'<html><head><title>Hebrew (ISO 8859-8) in Visual Directionality</title></head><body><h1>Hebrew (ISO 8859-8) in Visual Directionality</h1>\xed\xe5\xec\xf9</body></html>'
+ soup = self.soup(
+ hebrew_document, from_encoding="iso8859-8")
+ self.assertEqual(soup.original_encoding, 'iso8859-8')
+ self.assertEqual(
+ soup.encode('utf-8'),
+ hebrew_document.decode("iso8859-8").encode("utf-8"))
+
+ def test_meta_tag_reflects_current_encoding(self):
+ # Here's the <meta> tag saying that a document is
+ # encoded in Shift-JIS.
+ meta_tag = ('<meta content="text/html; charset=x-sjis" '
+ 'http-equiv="Content-type"/>')
+
+ # Here's a document incorporating that meta tag.
+ shift_jis_html = (
+ '<html><head>\n%s\n'
+ '<meta http-equiv="Content-language" content="ja"/>'
+ '</head><body>Shift-JIS markup goes here.') % meta_tag
+ soup = self.soup(shift_jis_html)
+
+ # Parse the document, and the charset is seemingly unaffected.
+ parsed_meta = soup.find('meta', {'http-equiv': 'Content-type'})
+ content = parsed_meta['content']
+ self.assertEqual('text/html; charset=x-sjis', content)
+
+ # But that value is actually a ContentMetaAttributeValue object.
+ self.assertTrue(isinstance(content, ContentMetaAttributeValue))
+
+ # And it will take on a value that reflects its current
+ # encoding.
+ self.assertEqual('text/html; charset=utf8', content.encode("utf8"))
+
+ # For the rest of the story, see TestSubstitutions in
+ # test_tree.py.
+
+ def test_html5_style_meta_tag_reflects_current_encoding(self):
+ # Here's the <meta> tag saying that a document is
+ # encoded in Shift-JIS.
+ meta_tag = ('<meta id="encoding" charset="x-sjis" />')
+
+ # Here's a document incorporating that meta tag.
+ shift_jis_html = (
+ '<html><head>\n%s\n'
+ '<meta http-equiv="Content-language" content="ja"/>'
+ '</head><body>Shift-JIS markup goes here.') % meta_tag
+ soup = self.soup(shift_jis_html)
+
+ # Parse the document, and the charset is seemingly unaffected.
+ parsed_meta = soup.find('meta', id="encoding")
+ charset = parsed_meta['charset']
+ self.assertEqual('x-sjis', charset)
+
+ # But that value is actually a CharsetMetaAttributeValue object.
+ self.assertTrue(isinstance(charset, CharsetMetaAttributeValue))
+
+ # And it will take on a value that reflects its current
+ # encoding.
+ self.assertEqual('utf8', charset.encode("utf8"))
+
+ def test_tag_with_no_attributes_can_have_attributes_added(self):
+ data = self.soup("<a>text</a>")
+ data.a['foo'] = 'bar'
+ self.assertEqual('<a foo="bar">text</a>', data.a.decode())
+
+class XMLTreeBuilderSmokeTest(object):
+
+ def test_docstring_generated(self):
+ soup = self.soup("<root/>")
+ self.assertEqual(
+ soup.encode(), b'<?xml version="1.0" encoding="utf-8"?>\n<root/>')
+
+ def test_real_xhtml_document(self):
+ """A real XHTML document should come out *exactly* the same as it went in."""
+ markup = b"""<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>Hello.</title></head>
+<body>Goodbye.</body>
+</html>"""
+ soup = self.soup(markup)
+ self.assertEqual(
+ soup.encode("utf-8"), markup)
+
+ def test_formatter_processes_script_tag_for_xml_documents(self):
+ doc = """
+ <script type="text/javascript">
+ </script>
+"""
+ soup = BeautifulSoup(doc, "xml")
+ # lxml would have stripped this while parsing, but we can add
+ # it later.
+ soup.script.string = 'console.log("< < hey > > ");'
+ encoded = soup.encode()
+ self.assertTrue(b"&lt; &lt; hey &gt; &gt;" in encoded)
+
+ def test_can_parse_unicode_document(self):
+ markup = u'<?xml version="1.0" encoding="euc-jp"><root>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</root>'
+ soup = self.soup(markup)
+ self.assertEqual(u'Sacr\xe9 bleu!', soup.root.string)
+
+ def test_popping_namespaced_tag(self):
+ markup = '<rss xmlns:dc="foo"><dc:creator>b</dc:creator><dc:date>2012-07-02T20:33:42Z</dc:date><dc:rights>c</dc:rights><image>d</image></rss>'
+ soup = self.soup(markup)
+ self.assertEqual(
+ unicode(soup.rss), markup)
+
+ def test_docstring_includes_correct_encoding(self):
+ soup = self.soup("<root/>")
+ self.assertEqual(
+ soup.encode("latin1"),
+ b'<?xml version="1.0" encoding="latin1"?>\n<root/>')
+
+ def test_large_xml_document(self):
+ """A large XML document should come out the same as it went in."""
+ markup = (b'<?xml version="1.0" encoding="utf-8"?>\n<root>'
+ + b'0' * (2**12)
+ + b'</root>')
+ soup = self.soup(markup)
+ self.assertEqual(soup.encode("utf-8"), markup)
+
+
+ def test_tags_are_empty_element_if_and_only_if_they_are_empty(self):
+ self.assertSoupEquals("<p>", "<p/>")
+ self.assertSoupEquals("<p>foo</p>")
+
+ def test_namespaces_are_preserved(self):
+ markup = '<root xmlns:a="http://example.com/" xmlns:b="http://example.net/"><a:foo>This tag is in the a namespace</a:foo><b:foo>This tag is in the b namespace</b:foo></root>'
+ soup = self.soup(markup)
+ root = soup.root
+ self.assertEqual("http://example.com/", root['xmlns:a'])
+ self.assertEqual("http://example.net/", root['xmlns:b'])
+
+ def test_closing_namespaced_tag(self):
+ markup = '<p xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>20010504</dc:date></p>'
+ soup = self.soup(markup)
+ self.assertEqual(unicode(soup.p), markup)
+
+ def test_namespaced_attributes(self):
+ markup = '<foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><bar xsi:schemaLocation="http://www.example.com"/></foo>'
+ soup = self.soup(markup)
+ self.assertEqual(unicode(soup.foo), markup)
+
+ def test_namespaced_attributes_xml_namespace(self):
+ markup = '<foo xml:lang="fr">bar</foo>'
+ soup = self.soup(markup)
+ self.assertEqual(unicode(soup.foo), markup)
+
+class HTML5TreeBuilderSmokeTest(HTMLTreeBuilderSmokeTest):
+ """Smoke test for a tree builder that supports HTML5."""
+
+ def test_real_xhtml_document(self):
+ # Since XHTML is not HTML5, HTML5 parsers are not tested to handle
+ # XHTML documents in any particular way.
+ pass
+
+ def test_html_tags_have_namespace(self):
+ markup = "<a>"
+ soup = self.soup(markup)
+ self.assertEqual("http://www.w3.org/1999/xhtml", soup.a.namespace)
+
+ def test_svg_tags_have_namespace(self):
+ markup = '<svg><circle/></svg>'
+ soup = self.soup(markup)
+ namespace = "http://www.w3.org/2000/svg"
+ self.assertEqual(namespace, soup.svg.namespace)
+ self.assertEqual(namespace, soup.circle.namespace)
+
+
+ def test_mathml_tags_have_namespace(self):
+ markup = '<math><msqrt>5</msqrt></math>'
+ soup = self.soup(markup)
+ namespace = 'http://www.w3.org/1998/Math/MathML'
+ self.assertEqual(namespace, soup.math.namespace)
+ self.assertEqual(namespace, soup.msqrt.namespace)
+
+ def test_xml_declaration_becomes_comment(self):
+ markup = '<?xml version="1.0" encoding="utf-8"?><html></html>'
+ soup = self.soup(markup)
+ self.assertTrue(isinstance(soup.contents[0], Comment))
+ self.assertEqual(soup.contents[0], '?xml version="1.0" encoding="utf-8"?')
+ self.assertEqual("html", soup.contents[0].next_element.name)
+
+def skipIf(condition, reason):
+ def nothing(test, *args, **kwargs):
+ return None
+
+ def decorator(test_item):
+ if condition:
+ return nothing
+ else:
+ return test_item
+
+ return decorator
diff --git a/bitbake/lib/bs4/tests/__init__.py b/bitbake/lib/bs4/tests/__init__.py
new file mode 100644
index 0000000000..142c8cc3f1
--- /dev/null
+++ b/bitbake/lib/bs4/tests/__init__.py
@@ -0,0 +1 @@
+"The beautifulsoup tests."
diff --git a/bitbake/lib/bs4/tests/test_builder_registry.py b/bitbake/lib/bs4/tests/test_builder_registry.py
new file mode 100644
index 0000000000..92ad10fb04
--- /dev/null
+++ b/bitbake/lib/bs4/tests/test_builder_registry.py
@@ -0,0 +1,141 @@
+"""Tests of the builder registry."""
+
+import unittest
+
+from bs4 import BeautifulSoup
+from bs4.builder import (
+ builder_registry as registry,
+ HTMLParserTreeBuilder,
+ TreeBuilderRegistry,
+)
+
+try:
+ from bs4.builder import HTML5TreeBuilder
+ HTML5LIB_PRESENT = True
+except ImportError:
+ HTML5LIB_PRESENT = False
+
+try:
+ from bs4.builder import (
+ LXMLTreeBuilderForXML,
+ LXMLTreeBuilder,
+ )
+ LXML_PRESENT = True
+except ImportError:
+ LXML_PRESENT = False
+
+
+class BuiltInRegistryTest(unittest.TestCase):
+ """Test the built-in registry with the default builders registered."""
+
+ def test_combination(self):
+ if LXML_PRESENT:
+ self.assertEqual(registry.lookup('fast', 'html'),
+ LXMLTreeBuilder)
+
+ if LXML_PRESENT:
+ self.assertEqual(registry.lookup('permissive', 'xml'),
+ LXMLTreeBuilderForXML)
+ self.assertEqual(registry.lookup('strict', 'html'),
+ HTMLParserTreeBuilder)
+ if HTML5LIB_PRESENT:
+ self.assertEqual(registry.lookup('html5lib', 'html'),
+ HTML5TreeBuilder)
+
+ def test_lookup_by_markup_type(self):
+ if LXML_PRESENT:
+ self.assertEqual(registry.lookup('html'), LXMLTreeBuilder)
+ self.assertEqual(registry.lookup('xml'), LXMLTreeBuilderForXML)
+ else:
+ self.assertEqual(registry.lookup('xml'), None)
+ if HTML5LIB_PRESENT:
+ self.assertEqual(registry.lookup('html'), HTML5TreeBuilder)
+ else:
+ self.assertEqual(registry.lookup('html'), HTMLParserTreeBuilder)
+
+ def test_named_library(self):
+ if LXML_PRESENT:
+ self.assertEqual(registry.lookup('lxml', 'xml'),
+ LXMLTreeBuilderForXML)
+ self.assertEqual(registry.lookup('lxml', 'html'),
+ LXMLTreeBuilder)
+ if HTML5LIB_PRESENT:
+ self.assertEqual(registry.lookup('html5lib'),
+ HTML5TreeBuilder)
+
+ self.assertEqual(registry.lookup('html.parser'),
+ HTMLParserTreeBuilder)
+
+ def test_beautifulsoup_constructor_does_lookup(self):
+ # You can pass in a string.
+ BeautifulSoup("", features="html")
+ # Or a list of strings.
+ BeautifulSoup("", features=["html", "fast"])
+
+ # You'll get an exception if BS can't find an appropriate
+ # builder.
+ self.assertRaises(ValueError, BeautifulSoup,
+ "", features="no-such-feature")
+
+class RegistryTest(unittest.TestCase):
+ """Test the TreeBuilderRegistry class in general."""
+
+ def setUp(self):
+ self.registry = TreeBuilderRegistry()
+
+ def builder_for_features(self, *feature_list):
+ cls = type('Builder_' + '_'.join(feature_list),
+ (object,), {'features' : feature_list})
+
+ self.registry.register(cls)
+ return cls
+
+ def test_register_with_no_features(self):
+ builder = self.builder_for_features()
+
+ # Since the builder advertises no features, you can't find it
+ # by looking up features.
+ self.assertEqual(self.registry.lookup('foo'), None)
+
+ # But you can find it by doing a lookup with no features, if
+ # this happens to be the only registered builder.
+ self.assertEqual(self.registry.lookup(), builder)
+
+ def test_register_with_features_makes_lookup_succeed(self):
+ builder = self.builder_for_features('foo', 'bar')
+ self.assertEqual(self.registry.lookup('foo'), builder)
+ self.assertEqual(self.registry.lookup('bar'), builder)
+
+ def test_lookup_fails_when_no_builder_implements_feature(self):
+ builder = self.builder_for_features('foo', 'bar')
+ self.assertEqual(self.registry.lookup('baz'), None)
+
+ def test_lookup_gets_most_recent_registration_when_no_feature_specified(self):
+ builder1 = self.builder_for_features('foo')
+ builder2 = self.builder_for_features('bar')
+ self.assertEqual(self.registry.lookup(), builder2)
+
+ def test_lookup_fails_when_no_tree_builders_registered(self):
+ self.assertEqual(self.registry.lookup(), None)
+
+ def test_lookup_gets_most_recent_builder_supporting_all_features(self):
+ has_one = self.builder_for_features('foo')
+ has_the_other = self.builder_for_features('bar')
+ has_both_early = self.builder_for_features('foo', 'bar', 'baz')
+ has_both_late = self.builder_for_features('foo', 'bar', 'quux')
+ lacks_one = self.builder_for_features('bar')
+ has_the_other = self.builder_for_features('foo')
+
+ # There are two builders featuring 'foo' and 'bar', but
+ # the one that also features 'quux' was registered later.
+ self.assertEqual(self.registry.lookup('foo', 'bar'),
+ has_both_late)
+
+ # There is only one builder featuring 'foo', 'bar', and 'baz'.
+ self.assertEqual(self.registry.lookup('foo', 'bar', 'baz'),
+ has_both_early)
+
+ def test_lookup_fails_when_cannot_reconcile_requested_features(self):
+ builder1 = self.builder_for_features('foo', 'bar')
+ builder2 = self.builder_for_features('foo', 'baz')
+ self.assertEqual(self.registry.lookup('bar', 'baz'), None)
diff --git a/bitbake/lib/bs4/tests/test_docs.py b/bitbake/lib/bs4/tests/test_docs.py
new file mode 100644
index 0000000000..5b9f677093
--- /dev/null
+++ b/bitbake/lib/bs4/tests/test_docs.py
@@ -0,0 +1,36 @@
+"Test harness for doctests."
+
+# pylint: disable-msg=E0611,W0142
+
+__metaclass__ = type
+__all__ = [
+ 'additional_tests',
+ ]
+
+import atexit
+import doctest
+import os
+#from pkg_resources import (
+# resource_filename, resource_exists, resource_listdir, cleanup_resources)
+import unittest
+
+DOCTEST_FLAGS = (
+ doctest.ELLIPSIS |
+ doctest.NORMALIZE_WHITESPACE |
+ doctest.REPORT_NDIFF)
+
+
+# def additional_tests():
+# "Run the doc tests (README.txt and docs/*, if any exist)"
+# doctest_files = [
+# os.path.abspath(resource_filename('bs4', 'README.txt'))]
+# if resource_exists('bs4', 'docs'):
+# for name in resource_listdir('bs4', 'docs'):
+# if name.endswith('.txt'):
+# doctest_files.append(
+# os.path.abspath(
+# resource_filename('bs4', 'docs/%s' % name)))
+# kwargs = dict(module_relative=False, optionflags=DOCTEST_FLAGS)
+# atexit.register(cleanup_resources)
+# return unittest.TestSuite((
+# doctest.DocFileSuite(*doctest_files, **kwargs)))
diff --git a/bitbake/lib/bs4/tests/test_html5lib.py b/bitbake/lib/bs4/tests/test_html5lib.py
new file mode 100644
index 0000000000..594c3e1f26
--- /dev/null
+++ b/bitbake/lib/bs4/tests/test_html5lib.py
@@ -0,0 +1,85 @@
+"""Tests to ensure that the html5lib tree builder generates good trees."""
+
+import warnings
+
+try:
+ from bs4.builder import HTML5TreeBuilder
+ HTML5LIB_PRESENT = True
+except ImportError, e:
+ HTML5LIB_PRESENT = False
+from bs4.element import SoupStrainer
+from bs4.testing import (
+ HTML5TreeBuilderSmokeTest,
+ SoupTest,
+ skipIf,
+)
+
+@skipIf(
+ not HTML5LIB_PRESENT,
+ "html5lib seems not to be present, not testing its tree builder.")
+class HTML5LibBuilderSmokeTest(SoupTest, HTML5TreeBuilderSmokeTest):
+ """See ``HTML5TreeBuilderSmokeTest``."""
+
+ @property
+ def default_builder(self):
+ return HTML5TreeBuilder()
+
+ def test_soupstrainer(self):
+ # The html5lib tree builder does not support SoupStrainers.
+ strainer = SoupStrainer("b")
+ markup = "<p>A <b>bold</b> statement.</p>"
+ with warnings.catch_warnings(record=True) as w:
+ soup = self.soup(markup, parse_only=strainer)
+ self.assertEqual(
+ soup.decode(), self.document_for(markup))
+
+ self.assertTrue(
+ "the html5lib tree builder doesn't support parse_only" in
+ str(w[0].message))
+
+ def test_correctly_nested_tables(self):
+ """html5lib inserts <tbody> tags where other parsers don't."""
+ markup = ('<table id="1">'
+ '<tr>'
+ "<td>Here's another table:"
+ '<table id="2">'
+ '<tr><td>foo</td></tr>'
+ '</table></td>')
+
+ self.assertSoupEquals(
+ markup,
+ '<table id="1"><tbody><tr><td>Here\'s another table:'
+ '<table id="2"><tbody><tr><td>foo</td></tr></tbody></table>'
+ '</td></tr></tbody></table>')
+
+ self.assertSoupEquals(
+ "<table><thead><tr><td>Foo</td></tr></thead>"
+ "<tbody><tr><td>Bar</td></tr></tbody>"
+ "<tfoot><tr><td>Baz</td></tr></tfoot></table>")
+
+ def test_xml_declaration_followed_by_doctype(self):
+ markup = '''<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html>
+<html>
+ <head>
+ </head>
+ <body>
+ <p>foo</p>
+ </body>
+</html>'''
+ soup = self.soup(markup)
+ # Verify that we can reach the <p> tag; this means the tree is connected.
+ self.assertEqual(b"<p>foo</p>", soup.p.encode())
+
+ def test_reparented_markup(self):
+ markup = '<p><em>foo</p>\n<p>bar<a></a></em></p>'
+ soup = self.soup(markup)
+ self.assertEqual(u"<body><p><em>foo</em></p><em>\n</em><p><em>bar<a></a></em></p></body>", soup.body.decode())
+ self.assertEqual(2, len(soup.find_all('p')))
+
+
+ def test_reparented_markup_ends_with_whitespace(self):
+ markup = '<p><em>foo</p>\n<p>bar<a></a></em></p>\n'
+ soup = self.soup(markup)
+ self.assertEqual(u"<body><p><em>foo</em></p><em>\n</em><p><em>bar<a></a></em></p>\n</body>", soup.body.decode())
+ self.assertEqual(2, len(soup.find_all('p')))
diff --git a/bitbake/lib/bs4/tests/test_htmlparser.py b/bitbake/lib/bs4/tests/test_htmlparser.py
new file mode 100644
index 0000000000..bcb5ed232f
--- /dev/null
+++ b/bitbake/lib/bs4/tests/test_htmlparser.py
@@ -0,0 +1,19 @@
+"""Tests to ensure that the html.parser tree builder generates good
+trees."""
+
+from bs4.testing import SoupTest, HTMLTreeBuilderSmokeTest
+from bs4.builder import HTMLParserTreeBuilder
+
+class HTMLParserTreeBuilderSmokeTest(SoupTest, HTMLTreeBuilderSmokeTest):
+
+ @property
+ def default_builder(self):
+ return HTMLParserTreeBuilder()
+
+ def test_namespaced_system_doctype(self):
+ # html.parser can't handle namespaced doctypes, so skip this one.
+ pass
+
+ def test_namespaced_public_doctype(self):
+ # html.parser can't handle namespaced doctypes, so skip this one.
+ pass
diff --git a/bitbake/lib/bs4/tests/test_lxml.py b/bitbake/lib/bs4/tests/test_lxml.py
new file mode 100644
index 0000000000..2b2e9b7e78
--- /dev/null
+++ b/bitbake/lib/bs4/tests/test_lxml.py
@@ -0,0 +1,91 @@
+"""Tests to ensure that the lxml tree builder generates good trees."""
+
+import re
+import warnings
+
+try:
+ import lxml.etree
+ LXML_PRESENT = True
+ LXML_VERSION = lxml.etree.LXML_VERSION
+except ImportError, e:
+ LXML_PRESENT = False
+ LXML_VERSION = (0,)
+
+if LXML_PRESENT:
+ from bs4.builder import LXMLTreeBuilder, LXMLTreeBuilderForXML
+
+from bs4 import (
+ BeautifulSoup,
+ BeautifulStoneSoup,
+ )
+from bs4.element import Comment, Doctype, SoupStrainer
+from bs4.testing import skipIf
+from bs4.tests import test_htmlparser
+from bs4.testing import (
+ HTMLTreeBuilderSmokeTest,
+ XMLTreeBuilderSmokeTest,
+ SoupTest,
+ skipIf,
+)
+
+@skipIf(
+ not LXML_PRESENT,
+ "lxml seems not to be present, not testing its tree builder.")
+class LXMLTreeBuilderSmokeTest(SoupTest, HTMLTreeBuilderSmokeTest):
+ """See ``HTMLTreeBuilderSmokeTest``."""
+
+ @property
+ def default_builder(self):
+ return LXMLTreeBuilder()
+
+ def test_out_of_range_entity(self):
+ self.assertSoupEquals(
+ "<p>foo&#10000000000000;bar</p>", "<p>foobar</p>")
+ self.assertSoupEquals(
+ "<p>foo&#x10000000000000;bar</p>", "<p>foobar</p>")
+ self.assertSoupEquals(
+ "<p>foo&#1000000000;bar</p>", "<p>foobar</p>")
+
+ # In lxml < 2.3.5, an empty doctype causes a segfault. Skip this
+ # test if an old version of lxml is installed.
+
+ @skipIf(
+ not LXML_PRESENT or LXML_VERSION < (2,3,5,0),
+ "Skipping doctype test for old version of lxml to avoid segfault.")
+ def test_empty_doctype(self):
+ soup = self.soup("<!DOCTYPE>")
+ doctype = soup.contents[0]
+ self.assertEqual("", doctype.strip())
+
+ def test_beautifulstonesoup_is_xml_parser(self):
+ # Make sure that the deprecated BSS class uses an xml builder
+ # if one is installed.
+ with warnings.catch_warnings(record=True) as w:
+ soup = BeautifulStoneSoup("<b />")
+ self.assertEqual(u"<b/>", unicode(soup.b))
+ self.assertTrue("BeautifulStoneSoup class is deprecated" in str(w[0].message))
+
+ def test_real_xhtml_document(self):
+ """lxml strips the XML definition from an XHTML doc, which is fine."""
+ markup = b"""<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>Hello.</title></head>
+<body>Goodbye.</body>
+</html>"""
+ soup = self.soup(markup)
+ self.assertEqual(
+ soup.encode("utf-8").replace(b"\n", b''),
+ markup.replace(b'\n', b'').replace(
+ b'<?xml version="1.0" encoding="utf-8"?>', b''))
+
+
+@skipIf(
+ not LXML_PRESENT,
+ "lxml seems not to be present, not testing its XML tree builder.")
+class LXMLXMLTreeBuilderSmokeTest(SoupTest, XMLTreeBuilderSmokeTest):
+ """See ``HTMLTreeBuilderSmokeTest``."""
+
+ @property
+ def default_builder(self):
+ return LXMLTreeBuilderForXML()
diff --git a/bitbake/lib/bs4/tests/test_soup.py b/bitbake/lib/bs4/tests/test_soup.py
new file mode 100644
index 0000000000..47ac245f99
--- /dev/null
+++ b/bitbake/lib/bs4/tests/test_soup.py
@@ -0,0 +1,434 @@
+# -*- coding: utf-8 -*-
+"""Tests of Beautiful Soup as a whole."""
+
+import logging
+import unittest
+import sys
+import tempfile
+
+from bs4 import (
+ BeautifulSoup,
+ BeautifulStoneSoup,
+)
+from bs4.element import (
+ CharsetMetaAttributeValue,
+ ContentMetaAttributeValue,
+ SoupStrainer,
+ NamespacedAttribute,
+ )
+import bs4.dammit
+from bs4.dammit import (
+ EntitySubstitution,
+ UnicodeDammit,
+)
+from bs4.testing import (
+ SoupTest,
+ skipIf,
+)
+import warnings
+
+try:
+ from bs4.builder import LXMLTreeBuilder, LXMLTreeBuilderForXML
+ LXML_PRESENT = True
+except ImportError, e:
+ LXML_PRESENT = False
+
+PYTHON_2_PRE_2_7 = (sys.version_info < (2,7))
+PYTHON_3_PRE_3_2 = (sys.version_info[0] == 3 and sys.version_info < (3,2))
+
+class TestConstructor(SoupTest):
+
+ def test_short_unicode_input(self):
+ data = u"<h1>éé</h1>"
+ soup = self.soup(data)
+ self.assertEqual(u"éé", soup.h1.string)
+
+ def test_embedded_null(self):
+ data = u"<h1>foo\0bar</h1>"
+ soup = self.soup(data)
+ self.assertEqual(u"foo\0bar", soup.h1.string)
+
+
+class TestDeprecatedConstructorArguments(SoupTest):
+
+ def test_parseOnlyThese_renamed_to_parse_only(self):
+ with warnings.catch_warnings(record=True) as w:
+ soup = self.soup("<a><b></b></a>", parseOnlyThese=SoupStrainer("b"))
+ msg = str(w[0].message)
+ self.assertTrue("parseOnlyThese" in msg)
+ self.assertTrue("parse_only" in msg)
+ self.assertEqual(b"<b></b>", soup.encode())
+
+ def test_fromEncoding_renamed_to_from_encoding(self):
+ with warnings.catch_warnings(record=True) as w:
+ utf8 = b"\xc3\xa9"
+ soup = self.soup(utf8, fromEncoding="utf8")
+ msg = str(w[0].message)
+ self.assertTrue("fromEncoding" in msg)
+ self.assertTrue("from_encoding" in msg)
+ self.assertEqual("utf8", soup.original_encoding)
+
+ def test_unrecognized_keyword_argument(self):
+ self.assertRaises(
+ TypeError, self.soup, "<a>", no_such_argument=True)
+
+class TestWarnings(SoupTest):
+
+ def test_disk_file_warning(self):
+ filehandle = tempfile.NamedTemporaryFile()
+ filename = filehandle.name
+ try:
+ with warnings.catch_warnings(record=True) as w:
+ soup = self.soup(filename)
+ msg = str(w[0].message)
+ self.assertTrue("looks like a filename" in msg)
+ finally:
+ filehandle.close()
+
+ # The file no longer exists, so Beautiful Soup will no longer issue the warning.
+ with warnings.catch_warnings(record=True) as w:
+ soup = self.soup(filename)
+ self.assertEqual(0, len(w))
+
+ def test_url_warning(self):
+ with warnings.catch_warnings(record=True) as w:
+ soup = self.soup("http://www.crummy.com/")
+ msg = str(w[0].message)
+ self.assertTrue("looks like a URL" in msg)
+
+ with warnings.catch_warnings(record=True) as w:
+ soup = self.soup("http://www.crummy.com/ is great")
+ self.assertEqual(0, len(w))
+
+class TestSelectiveParsing(SoupTest):
+
+ def test_parse_with_soupstrainer(self):
+ markup = "No<b>Yes</b><a>No<b>Yes <c>Yes</c></b>"
+ strainer = SoupStrainer("b")
+ soup = self.soup(markup, parse_only=strainer)
+ self.assertEqual(soup.encode(), b"<b>Yes</b><b>Yes <c>Yes</c></b>")
+
+
+class TestEntitySubstitution(unittest.TestCase):
+ """Standalone tests of the EntitySubstitution class."""
+ def setUp(self):
+ self.sub = EntitySubstitution
+
+ def test_simple_html_substitution(self):
+ # Unicode characters corresponding to named HTML entites
+ # are substituted, and no others.
+ s = u"foo\u2200\N{SNOWMAN}\u00f5bar"
+ self.assertEqual(self.sub.substitute_html(s),
+ u"foo&forall;\N{SNOWMAN}&otilde;bar")
+
+ def test_smart_quote_substitution(self):
+ # MS smart quotes are a common source of frustration, so we
+ # give them a special test.
+ quotes = b"\x91\x92foo\x93\x94"
+ dammit = UnicodeDammit(quotes)
+ self.assertEqual(self.sub.substitute_html(dammit.markup),
+ "&lsquo;&rsquo;foo&ldquo;&rdquo;")
+
+ def test_xml_converstion_includes_no_quotes_if_make_quoted_attribute_is_false(self):
+ s = 'Welcome to "my bar"'
+ self.assertEqual(self.sub.substitute_xml(s, False), s)
+
+ def test_xml_attribute_quoting_normally_uses_double_quotes(self):
+ self.assertEqual(self.sub.substitute_xml("Welcome", True),
+ '"Welcome"')
+ self.assertEqual(self.sub.substitute_xml("Bob's Bar", True),
+ '"Bob\'s Bar"')
+
+ def test_xml_attribute_quoting_uses_single_quotes_when_value_contains_double_quotes(self):
+ s = 'Welcome to "my bar"'
+ self.assertEqual(self.sub.substitute_xml(s, True),
+ "'Welcome to \"my bar\"'")
+
+ def test_xml_attribute_quoting_escapes_single_quotes_when_value_contains_both_single_and_double_quotes(self):
+ s = 'Welcome to "Bob\'s Bar"'
+ self.assertEqual(
+ self.sub.substitute_xml(s, True),
+ '"Welcome to &quot;Bob\'s Bar&quot;"')
+
+ def test_xml_quotes_arent_escaped_when_value_is_not_being_quoted(self):
+ quoted = 'Welcome to "Bob\'s Bar"'
+ self.assertEqual(self.sub.substitute_xml(quoted), quoted)
+
+ def test_xml_quoting_handles_angle_brackets(self):
+ self.assertEqual(
+ self.sub.substitute_xml("foo<bar>"),
+ "foo&lt;bar&gt;")
+
+ def test_xml_quoting_handles_ampersands(self):
+ self.assertEqual(self.sub.substitute_xml("AT&T"), "AT&amp;T")
+
+ def test_xml_quoting_including_ampersands_when_they_are_part_of_an_entity(self):
+ self.assertEqual(
+ self.sub.substitute_xml("&Aacute;T&T"),
+ "&amp;Aacute;T&amp;T")
+
+ def test_xml_quoting_ignoring_ampersands_when_they_are_part_of_an_entity(self):
+ self.assertEqual(
+ self.sub.substitute_xml_containing_entities("&Aacute;T&T"),
+ "&Aacute;T&amp;T")
+
+ def test_quotes_not_html_substituted(self):
+ """There's no need to do this except inside attribute values."""
+ text = 'Bob\'s "bar"'
+ self.assertEqual(self.sub.substitute_html(text), text)
+
+
+class TestEncodingConversion(SoupTest):
+ # Test Beautiful Soup's ability to decode and encode from various
+ # encodings.
+
+ def setUp(self):
+ super(TestEncodingConversion, self).setUp()
+ self.unicode_data = u'<html><head><meta charset="utf-8"/></head><body><foo>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</foo></body></html>'
+ self.utf8_data = self.unicode_data.encode("utf-8")
+ # Just so you know what it looks like.
+ self.assertEqual(
+ self.utf8_data,
+ b'<html><head><meta charset="utf-8"/></head><body><foo>Sacr\xc3\xa9 bleu!</foo></body></html>')
+
+ def test_ascii_in_unicode_out(self):
+ # ASCII input is converted to Unicode. The original_encoding
+ # attribute is set to 'utf-8', a superset of ASCII.
+ chardet = bs4.dammit.chardet_dammit
+ logging.disable(logging.WARNING)
+ try:
+ def noop(str):
+ return None
+ # Disable chardet, which will realize that the ASCII is ASCII.
+ bs4.dammit.chardet_dammit = noop
+ ascii = b"<foo>a</foo>"
+ soup_from_ascii = self.soup(ascii)
+ unicode_output = soup_from_ascii.decode()
+ self.assertTrue(isinstance(unicode_output, unicode))
+ self.assertEqual(unicode_output, self.document_for(ascii.decode()))
+ self.assertEqual(soup_from_ascii.original_encoding.lower(), "utf-8")
+ finally:
+ logging.disable(logging.NOTSET)
+ bs4.dammit.chardet_dammit = chardet
+
+ def test_unicode_in_unicode_out(self):
+ # Unicode input is left alone. The original_encoding attribute
+ # is not set.
+ soup_from_unicode = self.soup(self.unicode_data)
+ self.assertEqual(soup_from_unicode.decode(), self.unicode_data)
+ self.assertEqual(soup_from_unicode.foo.string, u'Sacr\xe9 bleu!')
+ self.assertEqual(soup_from_unicode.original_encoding, None)
+
+ def test_utf8_in_unicode_out(self):
+ # UTF-8 input is converted to Unicode. The original_encoding
+ # attribute is set.
+ soup_from_utf8 = self.soup(self.utf8_data)
+ self.assertEqual(soup_from_utf8.decode(), self.unicode_data)
+ self.assertEqual(soup_from_utf8.foo.string, u'Sacr\xe9 bleu!')
+
+ def test_utf8_out(self):
+ # The internal data structures can be encoded as UTF-8.
+ soup_from_unicode = self.soup(self.unicode_data)
+ self.assertEqual(soup_from_unicode.encode('utf-8'), self.utf8_data)
+
+ @skipIf(
+ PYTHON_2_PRE_2_7 or PYTHON_3_PRE_3_2,
+ "Bad HTMLParser detected; skipping test of non-ASCII characters in attribute name.")
+ def test_attribute_name_containing_unicode_characters(self):
+ markup = u'<div><a \N{SNOWMAN}="snowman"></a></div>'
+ self.assertEqual(self.soup(markup).div.encode("utf8"), markup.encode("utf8"))
+
+class TestUnicodeDammit(unittest.TestCase):
+ """Standalone tests of UnicodeDammit."""
+
+ def test_unicode_input(self):
+ markup = u"I'm already Unicode! \N{SNOWMAN}"
+ dammit = UnicodeDammit(markup)
+ self.assertEqual(dammit.unicode_markup, markup)
+
+ def test_smart_quotes_to_unicode(self):
+ markup = b"<foo>\x91\x92\x93\x94</foo>"
+ dammit = UnicodeDammit(markup)
+ self.assertEqual(
+ dammit.unicode_markup, u"<foo>\u2018\u2019\u201c\u201d</foo>")
+
+ def test_smart_quotes_to_xml_entities(self):
+ markup = b"<foo>\x91\x92\x93\x94</foo>"
+ dammit = UnicodeDammit(markup, smart_quotes_to="xml")
+ self.assertEqual(
+ dammit.unicode_markup, "<foo>&#x2018;&#x2019;&#x201C;&#x201D;</foo>")
+
+ def test_smart_quotes_to_html_entities(self):
+ markup = b"<foo>\x91\x92\x93\x94</foo>"
+ dammit = UnicodeDammit(markup, smart_quotes_to="html")
+ self.assertEqual(
+ dammit.unicode_markup, "<foo>&lsquo;&rsquo;&ldquo;&rdquo;</foo>")
+
+ def test_smart_quotes_to_ascii(self):
+ markup = b"<foo>\x91\x92\x93\x94</foo>"
+ dammit = UnicodeDammit(markup, smart_quotes_to="ascii")
+ self.assertEqual(
+ dammit.unicode_markup, """<foo>''""</foo>""")
+
+ def test_detect_utf8(self):
+ utf8 = b"\xc3\xa9"
+ dammit = UnicodeDammit(utf8)
+ self.assertEqual(dammit.unicode_markup, u'\xe9')
+ self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
+
+ def test_convert_hebrew(self):
+ hebrew = b"\xed\xe5\xec\xf9"
+ dammit = UnicodeDammit(hebrew, ["iso-8859-8"])
+ self.assertEqual(dammit.original_encoding.lower(), 'iso-8859-8')
+ self.assertEqual(dammit.unicode_markup, u'\u05dd\u05d5\u05dc\u05e9')
+
+ def test_dont_see_smart_quotes_where_there_are_none(self):
+ utf_8 = b"\343\202\261\343\203\274\343\202\277\343\202\244 Watch"
+ dammit = UnicodeDammit(utf_8)
+ self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
+ self.assertEqual(dammit.unicode_markup.encode("utf-8"), utf_8)
+
+ def test_ignore_inappropriate_codecs(self):
+ utf8_data = u"Räksmörgås".encode("utf-8")
+ dammit = UnicodeDammit(utf8_data, ["iso-8859-8"])
+ self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
+
+ def test_ignore_invalid_codecs(self):
+ utf8_data = u"Räksmörgås".encode("utf-8")
+ for bad_encoding in ['.utf8', '...', 'utF---16.!']:
+ dammit = UnicodeDammit(utf8_data, [bad_encoding])
+ self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
+
+ def test_detect_html5_style_meta_tag(self):
+
+ for data in (
+ b'<html><meta charset="euc-jp" /></html>',
+ b"<html><meta charset='euc-jp' /></html>",
+ b"<html><meta charset=euc-jp /></html>",
+ b"<html><meta charset=euc-jp/></html>"):
+ dammit = UnicodeDammit(data, is_html=True)
+ self.assertEqual(
+ "euc-jp", dammit.original_encoding)
+
+ def test_last_ditch_entity_replacement(self):
+ # This is a UTF-8 document that contains bytestrings
+ # completely incompatible with UTF-8 (ie. encoded with some other
+ # encoding).
+ #
+ # Since there is no consistent encoding for the document,
+ # Unicode, Dammit will eventually encode the document as UTF-8
+ # and encode the incompatible characters as REPLACEMENT
+ # CHARACTER.
+ #
+ # If chardet is installed, it will detect that the document
+ # can be converted into ISO-8859-1 without errors. This happens
+ # to be the wrong encoding, but it is a consistent encoding, so the
+ # code we're testing here won't run.
+ #
+ # So we temporarily disable chardet if it's present.
+ doc = b"""\357\273\277<?xml version="1.0" encoding="UTF-8"?>
+<html><b>\330\250\330\252\330\261</b>
+<i>\310\322\321\220\312\321\355\344</i></html>"""
+ chardet = bs4.dammit.chardet_dammit
+ logging.disable(logging.WARNING)
+ try:
+ def noop(str):
+ return None
+ bs4.dammit.chardet_dammit = noop
+ dammit = UnicodeDammit(doc)
+ self.assertEqual(True, dammit.contains_replacement_characters)
+ self.assertTrue(u"\ufffd" in dammit.unicode_markup)
+
+ soup = BeautifulSoup(doc, "html.parser")
+ self.assertTrue(soup.contains_replacement_characters)
+ finally:
+ logging.disable(logging.NOTSET)
+ bs4.dammit.chardet_dammit = chardet
+
+ def test_byte_order_mark_removed(self):
+ # A document written in UTF-16LE will have its byte order marker stripped.
+ data = b'\xff\xfe<\x00a\x00>\x00\xe1\x00\xe9\x00<\x00/\x00a\x00>\x00'
+ dammit = UnicodeDammit(data)
+ self.assertEqual(u"<a>áé</a>", dammit.unicode_markup)
+ self.assertEqual("utf-16le", dammit.original_encoding)
+
+ def test_detwingle(self):
+ # Here's a UTF8 document.
+ utf8 = (u"\N{SNOWMAN}" * 3).encode("utf8")
+
+ # Here's a Windows-1252 document.
+ windows_1252 = (
+ u"\N{LEFT DOUBLE QUOTATION MARK}Hi, I like Windows!"
+ u"\N{RIGHT DOUBLE QUOTATION MARK}").encode("windows_1252")
+
+ # Through some unholy alchemy, they've been stuck together.
+ doc = utf8 + windows_1252 + utf8
+
+ # The document can't be turned into UTF-8:
+ self.assertRaises(UnicodeDecodeError, doc.decode, "utf8")
+
+ # Unicode, Dammit thinks the whole document is Windows-1252,
+ # and decodes it into "☃☃☃“Hi, I like Windows!â€Ã¢ËœÆ’☃☃"
+
+ # But if we run it through fix_embedded_windows_1252, it's fixed:
+
+ fixed = UnicodeDammit.detwingle(doc)
+ self.assertEqual(
+ u"☃☃☃“Hi, I like Windows!â€â˜ƒâ˜ƒâ˜ƒ", fixed.decode("utf8"))
+
+ def test_detwingle_ignores_multibyte_characters(self):
+ # Each of these characters has a UTF-8 representation ending
+ # in \x93. \x93 is a smart quote if interpreted as
+ # Windows-1252. But our code knows to skip over multibyte
+ # UTF-8 characters, so they'll survive the process unscathed.
+ for tricky_unicode_char in (
+ u"\N{LATIN SMALL LIGATURE OE}", # 2-byte char '\xc5\x93'
+ u"\N{LATIN SUBSCRIPT SMALL LETTER X}", # 3-byte char '\xe2\x82\x93'
+ u"\xf0\x90\x90\x93", # This is a CJK character, not sure which one.
+ ):
+ input = tricky_unicode_char.encode("utf8")
+ self.assertTrue(input.endswith(b'\x93'))
+ output = UnicodeDammit.detwingle(input)
+ self.assertEqual(output, input)
+
+class TestNamedspacedAttribute(SoupTest):
+
+ def test_name_may_be_none(self):
+ a = NamespacedAttribute("xmlns", None)
+ self.assertEqual(a, "xmlns")
+
+ def test_attribute_is_equivalent_to_colon_separated_string(self):
+ a = NamespacedAttribute("a", "b")
+ self.assertEqual("a:b", a)
+
+ def test_attributes_are_equivalent_if_prefix_and_name_identical(self):
+ a = NamespacedAttribute("a", "b", "c")
+ b = NamespacedAttribute("a", "b", "c")
+ self.assertEqual(a, b)
+
+ # The actual namespace is not considered.
+ c = NamespacedAttribute("a", "b", None)
+ self.assertEqual(a, c)
+
+ # But name and prefix are important.
+ d = NamespacedAttribute("a", "z", "c")
+ self.assertNotEqual(a, d)
+
+ e = NamespacedAttribute("z", "b", "c")
+ self.assertNotEqual(a, e)
+
+
+class TestAttributeValueWithCharsetSubstitution(unittest.TestCase):
+
+ def test_content_meta_attribute_value(self):
+ value = CharsetMetaAttributeValue("euc-jp")
+ self.assertEqual("euc-jp", value)
+ self.assertEqual("euc-jp", value.original_value)
+ self.assertEqual("utf8", value.encode("utf8"))
+
+
+ def test_content_meta_attribute_value(self):
+ value = ContentMetaAttributeValue("text/html; charset=euc-jp")
+ self.assertEqual("text/html; charset=euc-jp", value)
+ self.assertEqual("text/html; charset=euc-jp", value.original_value)
+ self.assertEqual("text/html; charset=utf8", value.encode("utf8"))
diff --git a/bitbake/lib/bs4/tests/test_tree.py b/bitbake/lib/bs4/tests/test_tree.py
new file mode 100644
index 0000000000..f8515c0ea1
--- /dev/null
+++ b/bitbake/lib/bs4/tests/test_tree.py
@@ -0,0 +1,1829 @@
+# -*- coding: utf-8 -*-
+"""Tests for Beautiful Soup's tree traversal methods.
+
+The tree traversal methods are the main advantage of using Beautiful
+Soup over just using a parser.
+
+Different parsers will build different Beautiful Soup trees given the
+same markup, but all Beautiful Soup trees can be traversed with the
+methods tested here.
+"""
+
+import copy
+import pickle
+import re
+import warnings
+from bs4 import BeautifulSoup
+from bs4.builder import (
+ builder_registry,
+ HTMLParserTreeBuilder,
+)
+from bs4.element import (
+ CData,
+ Comment,
+ Doctype,
+ NavigableString,
+ SoupStrainer,
+ Tag,
+)
+from bs4.testing import (
+ SoupTest,
+ skipIf,
+)
+
+XML_BUILDER_PRESENT = (builder_registry.lookup("xml") is not None)
+LXML_PRESENT = (builder_registry.lookup("lxml") is not None)
+
+class TreeTest(SoupTest):
+
+ def assertSelects(self, tags, should_match):
+ """Make sure that the given tags have the correct text.
+
+ This is used in tests that define a bunch of tags, each
+ containing a single string, and then select certain strings by
+ some mechanism.
+ """
+ self.assertEqual([tag.string for tag in tags], should_match)
+
+ def assertSelectsIDs(self, tags, should_match):
+ """Make sure that the given tags have the correct IDs.
+
+ This is used in tests that define a bunch of tags, each
+ containing a single string, and then select certain strings by
+ some mechanism.
+ """
+ self.assertEqual([tag['id'] for tag in tags], should_match)
+
+
+class TestFind(TreeTest):
+ """Basic tests of the find() method.
+
+ find() just calls find_all() with limit=1, so it's not tested all
+ that thouroughly here.
+ """
+
+ def test_find_tag(self):
+ soup = self.soup("<a>1</a><b>2</b><a>3</a><b>4</b>")
+ self.assertEqual(soup.find("b").string, "2")
+
+ def test_unicode_text_find(self):
+ soup = self.soup(u'<h1>Räksmörgås</h1>')
+ self.assertEqual(soup.find(text=u'Räksmörgås'), u'Räksmörgås')
+
+ def test_find_everything(self):
+ """Test an optimization that finds all tags."""
+ soup = self.soup("<a>foo</a><b>bar</b>")
+ self.assertEqual(2, len(soup.find_all()))
+
+ def test_find_everything_with_name(self):
+ """Test an optimization that finds all tags with a given name."""
+ soup = self.soup("<a>foo</a><b>bar</b><a>baz</a>")
+ self.assertEqual(2, len(soup.find_all('a')))
+
+class TestFindAll(TreeTest):
+ """Basic tests of the find_all() method."""
+
+ def test_find_all_text_nodes(self):
+ """You can search the tree for text nodes."""
+ soup = self.soup("<html>Foo<b>bar</b>\xbb</html>")
+ # Exact match.
+ self.assertEqual(soup.find_all(text="bar"), [u"bar"])
+ # Match any of a number of strings.
+ self.assertEqual(
+ soup.find_all(text=["Foo", "bar"]), [u"Foo", u"bar"])
+ # Match a regular expression.
+ self.assertEqual(soup.find_all(text=re.compile('.*')),
+ [u"Foo", u"bar", u'\xbb'])
+ # Match anything.
+ self.assertEqual(soup.find_all(text=True),
+ [u"Foo", u"bar", u'\xbb'])
+
+ def test_find_all_limit(self):
+ """You can limit the number of items returned by find_all."""
+ soup = self.soup("<a>1</a><a>2</a><a>3</a><a>4</a><a>5</a>")
+ self.assertSelects(soup.find_all('a', limit=3), ["1", "2", "3"])
+ self.assertSelects(soup.find_all('a', limit=1), ["1"])
+ self.assertSelects(
+ soup.find_all('a', limit=10), ["1", "2", "3", "4", "5"])
+
+ # A limit of 0 means no limit.
+ self.assertSelects(
+ soup.find_all('a', limit=0), ["1", "2", "3", "4", "5"])
+
+ def test_calling_a_tag_is_calling_findall(self):
+ soup = self.soup("<a>1</a><b>2<a id='foo'>3</a></b>")
+ self.assertSelects(soup('a', limit=1), ["1"])
+ self.assertSelects(soup.b(id="foo"), ["3"])
+
+ def test_find_all_with_self_referential_data_structure_does_not_cause_infinite_recursion(self):
+ soup = self.soup("<a></a>")
+ # Create a self-referential list.
+ l = []
+ l.append(l)
+
+ # Without special code in _normalize_search_value, this would cause infinite
+ # recursion.
+ self.assertEqual([], soup.find_all(l))
+
+ def test_find_all_resultset(self):
+ """All find_all calls return a ResultSet"""
+ soup = self.soup("<a></a>")
+ result = soup.find_all("a")
+ self.assertTrue(hasattr(result, "source"))
+
+ result = soup.find_all(True)
+ self.assertTrue(hasattr(result, "source"))
+
+ result = soup.find_all(text="foo")
+ self.assertTrue(hasattr(result, "source"))
+
+
+class TestFindAllBasicNamespaces(TreeTest):
+
+ def test_find_by_namespaced_name(self):
+ soup = self.soup('<mathml:msqrt>4</mathml:msqrt><a svg:fill="red">')
+ self.assertEqual("4", soup.find("mathml:msqrt").string)
+ self.assertEqual("a", soup.find(attrs= { "svg:fill" : "red" }).name)
+
+
+class TestFindAllByName(TreeTest):
+ """Test ways of finding tags by tag name."""
+
+ def setUp(self):
+ super(TreeTest, self).setUp()
+ self.tree = self.soup("""<a>First tag.</a>
+ <b>Second tag.</b>
+ <c>Third <a>Nested tag.</a> tag.</c>""")
+
+ def test_find_all_by_tag_name(self):
+ # Find all the <a> tags.
+ self.assertSelects(
+ self.tree.find_all('a'), ['First tag.', 'Nested tag.'])
+
+ def test_find_all_by_name_and_text(self):
+ self.assertSelects(
+ self.tree.find_all('a', text='First tag.'), ['First tag.'])
+
+ self.assertSelects(
+ self.tree.find_all('a', text=True), ['First tag.', 'Nested tag.'])
+
+ self.assertSelects(
+ self.tree.find_all('a', text=re.compile("tag")),
+ ['First tag.', 'Nested tag.'])
+
+
+ def test_find_all_on_non_root_element(self):
+ # You can call find_all on any node, not just the root.
+ self.assertSelects(self.tree.c.find_all('a'), ['Nested tag.'])
+
+ def test_calling_element_invokes_find_all(self):
+ self.assertSelects(self.tree('a'), ['First tag.', 'Nested tag.'])
+
+ def test_find_all_by_tag_strainer(self):
+ self.assertSelects(
+ self.tree.find_all(SoupStrainer('a')),
+ ['First tag.', 'Nested tag.'])
+
+ def test_find_all_by_tag_names(self):
+ self.assertSelects(
+ self.tree.find_all(['a', 'b']),
+ ['First tag.', 'Second tag.', 'Nested tag.'])
+
+ def test_find_all_by_tag_dict(self):
+ self.assertSelects(
+ self.tree.find_all({'a' : True, 'b' : True}),
+ ['First tag.', 'Second tag.', 'Nested tag.'])
+
+ def test_find_all_by_tag_re(self):
+ self.assertSelects(
+ self.tree.find_all(re.compile('^[ab]$')),
+ ['First tag.', 'Second tag.', 'Nested tag.'])
+
+ def test_find_all_with_tags_matching_method(self):
+ # You can define an oracle method that determines whether
+ # a tag matches the search.
+ def id_matches_name(tag):
+ return tag.name == tag.get('id')
+
+ tree = self.soup("""<a id="a">Match 1.</a>
+ <a id="1">Does not match.</a>
+ <b id="b">Match 2.</a>""")
+
+ self.assertSelects(
+ tree.find_all(id_matches_name), ["Match 1.", "Match 2."])
+
+
+class TestFindAllByAttribute(TreeTest):
+
+ def test_find_all_by_attribute_name(self):
+ # You can pass in keyword arguments to find_all to search by
+ # attribute.
+ tree = self.soup("""
+ <a id="first">Matching a.</a>
+ <a id="second">
+ Non-matching <b id="first">Matching b.</b>a.
+ </a>""")
+ self.assertSelects(tree.find_all(id='first'),
+ ["Matching a.", "Matching b."])
+
+ def test_find_all_by_utf8_attribute_value(self):
+ peace = u"×ולש".encode("utf8")
+ data = u'<a title="×ולש"></a>'.encode("utf8")
+ soup = self.soup(data)
+ self.assertEqual([soup.a], soup.find_all(title=peace))
+ self.assertEqual([soup.a], soup.find_all(title=peace.decode("utf8")))
+ self.assertEqual([soup.a], soup.find_all(title=[peace, "something else"]))
+
+ def test_find_all_by_attribute_dict(self):
+ # You can pass in a dictionary as the argument 'attrs'. This
+ # lets you search for attributes like 'name' (a fixed argument
+ # to find_all) and 'class' (a reserved word in Python.)
+ tree = self.soup("""
+ <a name="name1" class="class1">Name match.</a>
+ <a name="name2" class="class2">Class match.</a>
+ <a name="name3" class="class3">Non-match.</a>
+ <name1>A tag called 'name1'.</name1>
+ """)
+
+ # This doesn't do what you want.
+ self.assertSelects(tree.find_all(name='name1'),
+ ["A tag called 'name1'."])
+ # This does what you want.
+ self.assertSelects(tree.find_all(attrs={'name' : 'name1'}),
+ ["Name match."])
+
+ self.assertSelects(tree.find_all(attrs={'class' : 'class2'}),
+ ["Class match."])
+
+ def test_find_all_by_class(self):
+ tree = self.soup("""
+ <a class="1">Class 1.</a>
+ <a class="2">Class 2.</a>
+ <b class="1">Class 1.</b>
+ <c class="3 4">Class 3 and 4.</c>
+ """)
+
+ # Passing in the class_ keyword argument will search against
+ # the 'class' attribute.
+ self.assertSelects(tree.find_all('a', class_='1'), ['Class 1.'])
+ self.assertSelects(tree.find_all('c', class_='3'), ['Class 3 and 4.'])
+ self.assertSelects(tree.find_all('c', class_='4'), ['Class 3 and 4.'])
+
+ # Passing in a string to 'attrs' will also search the CSS class.
+ self.assertSelects(tree.find_all('a', '1'), ['Class 1.'])
+ self.assertSelects(tree.find_all(attrs='1'), ['Class 1.', 'Class 1.'])
+ self.assertSelects(tree.find_all('c', '3'), ['Class 3 and 4.'])
+ self.assertSelects(tree.find_all('c', '4'), ['Class 3 and 4.'])
+
+ def test_find_by_class_when_multiple_classes_present(self):
+ tree = self.soup("<gar class='foo bar'>Found it</gar>")
+
+ f = tree.find_all("gar", class_=re.compile("o"))
+ self.assertSelects(f, ["Found it"])
+
+ f = tree.find_all("gar", class_=re.compile("a"))
+ self.assertSelects(f, ["Found it"])
+
+ # Since the class is not the string "foo bar", but the two
+ # strings "foo" and "bar", this will not find anything.
+ f = tree.find_all("gar", class_=re.compile("o b"))
+ self.assertSelects(f, [])
+
+ def test_find_all_with_non_dictionary_for_attrs_finds_by_class(self):
+ soup = self.soup("<a class='bar'>Found it</a>")
+
+ self.assertSelects(soup.find_all("a", re.compile("ba")), ["Found it"])
+
+ def big_attribute_value(value):
+ return len(value) > 3
+
+ self.assertSelects(soup.find_all("a", big_attribute_value), [])
+
+ def small_attribute_value(value):
+ return len(value) <= 3
+
+ self.assertSelects(
+ soup.find_all("a", small_attribute_value), ["Found it"])
+
+ def test_find_all_with_string_for_attrs_finds_multiple_classes(self):
+ soup = self.soup('<a class="foo bar"></a><a class="foo"></a>')
+ a, a2 = soup.find_all("a")
+ self.assertEqual([a, a2], soup.find_all("a", "foo"))
+ self.assertEqual([a], soup.find_all("a", "bar"))
+
+ # If you specify the class as a string that contains a
+ # space, only that specific value will be found.
+ self.assertEqual([a], soup.find_all("a", class_="foo bar"))
+ self.assertEqual([a], soup.find_all("a", "foo bar"))
+ self.assertEqual([], soup.find_all("a", "bar foo"))
+
+ def test_find_all_by_attribute_soupstrainer(self):
+ tree = self.soup("""
+ <a id="first">Match.</a>
+ <a id="second">Non-match.</a>""")
+
+ strainer = SoupStrainer(attrs={'id' : 'first'})
+ self.assertSelects(tree.find_all(strainer), ['Match.'])
+
+ def test_find_all_with_missing_atribute(self):
+ # You can pass in None as the value of an attribute to find_all.
+ # This will match tags that do not have that attribute set.
+ tree = self.soup("""<a id="1">ID present.</a>
+ <a>No ID present.</a>
+ <a id="">ID is empty.</a>""")
+ self.assertSelects(tree.find_all('a', id=None), ["No ID present."])
+
+ def test_find_all_with_defined_attribute(self):
+ # You can pass in None as the value of an attribute to find_all.
+ # This will match tags that have that attribute set to any value.
+ tree = self.soup("""<a id="1">ID present.</a>
+ <a>No ID present.</a>
+ <a id="">ID is empty.</a>""")
+ self.assertSelects(
+ tree.find_all(id=True), ["ID present.", "ID is empty."])
+
+ def test_find_all_with_numeric_attribute(self):
+ # If you search for a number, it's treated as a string.
+ tree = self.soup("""<a id=1>Unquoted attribute.</a>
+ <a id="1">Quoted attribute.</a>""")
+
+ expected = ["Unquoted attribute.", "Quoted attribute."]
+ self.assertSelects(tree.find_all(id=1), expected)
+ self.assertSelects(tree.find_all(id="1"), expected)
+
+ def test_find_all_with_list_attribute_values(self):
+ # You can pass a list of attribute values instead of just one,
+ # and you'll get tags that match any of the values.
+ tree = self.soup("""<a id="1">1</a>
+ <a id="2">2</a>
+ <a id="3">3</a>
+ <a>No ID.</a>""")
+ self.assertSelects(tree.find_all(id=["1", "3", "4"]),
+ ["1", "3"])
+
+ def test_find_all_with_regular_expression_attribute_value(self):
+ # You can pass a regular expression as an attribute value, and
+ # you'll get tags whose values for that attribute match the
+ # regular expression.
+ tree = self.soup("""<a id="a">One a.</a>
+ <a id="aa">Two as.</a>
+ <a id="ab">Mixed as and bs.</a>
+ <a id="b">One b.</a>
+ <a>No ID.</a>""")
+
+ self.assertSelects(tree.find_all(id=re.compile("^a+$")),
+ ["One a.", "Two as."])
+
+ def test_find_by_name_and_containing_string(self):
+ soup = self.soup("<b>foo</b><b>bar</b><a>foo</a>")
+ a = soup.a
+
+ self.assertEqual([a], soup.find_all("a", text="foo"))
+ self.assertEqual([], soup.find_all("a", text="bar"))
+ self.assertEqual([], soup.find_all("a", text="bar"))
+
+ def test_find_by_name_and_containing_string_when_string_is_buried(self):
+ soup = self.soup("<a>foo</a><a><b><c>foo</c></b></a>")
+ self.assertEqual(soup.find_all("a"), soup.find_all("a", text="foo"))
+
+ def test_find_by_attribute_and_containing_string(self):
+ soup = self.soup('<b id="1">foo</b><a id="2">foo</a>')
+ a = soup.a
+
+ self.assertEqual([a], soup.find_all(id=2, text="foo"))
+ self.assertEqual([], soup.find_all(id=1, text="bar"))
+
+
+
+
+class TestIndex(TreeTest):
+ """Test Tag.index"""
+ def test_index(self):
+ tree = self.soup("""<div>
+ <a>Identical</a>
+ <b>Not identical</b>
+ <a>Identical</a>
+
+ <c><d>Identical with child</d></c>
+ <b>Also not identical</b>
+ <c><d>Identical with child</d></c>
+ </div>""")
+ div = tree.div
+ for i, element in enumerate(div.contents):
+ self.assertEqual(i, div.index(element))
+ self.assertRaises(ValueError, tree.index, 1)
+
+
+class TestParentOperations(TreeTest):
+ """Test navigation and searching through an element's parents."""
+
+ def setUp(self):
+ super(TestParentOperations, self).setUp()
+ self.tree = self.soup('''<ul id="empty"></ul>
+ <ul id="top">
+ <ul id="middle">
+ <ul id="bottom">
+ <b>Start here</b>
+ </ul>
+ </ul>''')
+ self.start = self.tree.b
+
+
+ def test_parent(self):
+ self.assertEqual(self.start.parent['id'], 'bottom')
+ self.assertEqual(self.start.parent.parent['id'], 'middle')
+ self.assertEqual(self.start.parent.parent.parent['id'], 'top')
+
+ def test_parent_of_top_tag_is_soup_object(self):
+ top_tag = self.tree.contents[0]
+ self.assertEqual(top_tag.parent, self.tree)
+
+ def test_soup_object_has_no_parent(self):
+ self.assertEqual(None, self.tree.parent)
+
+ def test_find_parents(self):
+ self.assertSelectsIDs(
+ self.start.find_parents('ul'), ['bottom', 'middle', 'top'])
+ self.assertSelectsIDs(
+ self.start.find_parents('ul', id="middle"), ['middle'])
+
+ def test_find_parent(self):
+ self.assertEqual(self.start.find_parent('ul')['id'], 'bottom')
+ self.assertEqual(self.start.find_parent('ul', id='top')['id'], 'top')
+
+ def test_parent_of_text_element(self):
+ text = self.tree.find(text="Start here")
+ self.assertEqual(text.parent.name, 'b')
+
+ def test_text_element_find_parent(self):
+ text = self.tree.find(text="Start here")
+ self.assertEqual(text.find_parent('ul')['id'], 'bottom')
+
+ def test_parent_generator(self):
+ parents = [parent['id'] for parent in self.start.parents
+ if parent is not None and 'id' in parent.attrs]
+ self.assertEqual(parents, ['bottom', 'middle', 'top'])
+
+
+class ProximityTest(TreeTest):
+
+ def setUp(self):
+ super(TreeTest, self).setUp()
+ self.tree = self.soup(
+ '<html id="start"><head></head><body><b id="1">One</b><b id="2">Two</b><b id="3">Three</b></body></html>')
+
+
+class TestNextOperations(ProximityTest):
+
+ def setUp(self):
+ super(TestNextOperations, self).setUp()
+ self.start = self.tree.b
+
+ def test_next(self):
+ self.assertEqual(self.start.next_element, "One")
+ self.assertEqual(self.start.next_element.next_element['id'], "2")
+
+ def test_next_of_last_item_is_none(self):
+ last = self.tree.find(text="Three")
+ self.assertEqual(last.next_element, None)
+
+ def test_next_of_root_is_none(self):
+ # The document root is outside the next/previous chain.
+ self.assertEqual(self.tree.next_element, None)
+
+ def test_find_all_next(self):
+ self.assertSelects(self.start.find_all_next('b'), ["Two", "Three"])
+ self.start.find_all_next(id=3)
+ self.assertSelects(self.start.find_all_next(id=3), ["Three"])
+
+ def test_find_next(self):
+ self.assertEqual(self.start.find_next('b')['id'], '2')
+ self.assertEqual(self.start.find_next(text="Three"), "Three")
+
+ def test_find_next_for_text_element(self):
+ text = self.tree.find(text="One")
+ self.assertEqual(text.find_next("b").string, "Two")
+ self.assertSelects(text.find_all_next("b"), ["Two", "Three"])
+
+ def test_next_generator(self):
+ start = self.tree.find(text="Two")
+ successors = [node for node in start.next_elements]
+ # There are two successors: the final <b> tag and its text contents.
+ tag, contents = successors
+ self.assertEqual(tag['id'], '3')
+ self.assertEqual(contents, "Three")
+
+class TestPreviousOperations(ProximityTest):
+
+ def setUp(self):
+ super(TestPreviousOperations, self).setUp()
+ self.end = self.tree.find(text="Three")
+
+ def test_previous(self):
+ self.assertEqual(self.end.previous_element['id'], "3")
+ self.assertEqual(self.end.previous_element.previous_element, "Two")
+
+ def test_previous_of_first_item_is_none(self):
+ first = self.tree.find('html')
+ self.assertEqual(first.previous_element, None)
+
+ def test_previous_of_root_is_none(self):
+ # The document root is outside the next/previous chain.
+ # XXX This is broken!
+ #self.assertEqual(self.tree.previous_element, None)
+ pass
+
+ def test_find_all_previous(self):
+ # The <b> tag containing the "Three" node is the predecessor
+ # of the "Three" node itself, which is why "Three" shows up
+ # here.
+ self.assertSelects(
+ self.end.find_all_previous('b'), ["Three", "Two", "One"])
+ self.assertSelects(self.end.find_all_previous(id=1), ["One"])
+
+ def test_find_previous(self):
+ self.assertEqual(self.end.find_previous('b')['id'], '3')
+ self.assertEqual(self.end.find_previous(text="One"), "One")
+
+ def test_find_previous_for_text_element(self):
+ text = self.tree.find(text="Three")
+ self.assertEqual(text.find_previous("b").string, "Three")
+ self.assertSelects(
+ text.find_all_previous("b"), ["Three", "Two", "One"])
+
+ def test_previous_generator(self):
+ start = self.tree.find(text="One")
+ predecessors = [node for node in start.previous_elements]
+
+ # There are four predecessors: the <b> tag containing "One"
+ # the <body> tag, the <head> tag, and the <html> tag.
+ b, body, head, html = predecessors
+ self.assertEqual(b['id'], '1')
+ self.assertEqual(body.name, "body")
+ self.assertEqual(head.name, "head")
+ self.assertEqual(html.name, "html")
+
+
+class SiblingTest(TreeTest):
+
+ def setUp(self):
+ super(SiblingTest, self).setUp()
+ markup = '''<html>
+ <span id="1">
+ <span id="1.1"></span>
+ </span>
+ <span id="2">
+ <span id="2.1"></span>
+ </span>
+ <span id="3">
+ <span id="3.1"></span>
+ </span>
+ <span id="4"></span>
+ </html>'''
+ # All that whitespace looks good but makes the tests more
+ # difficult. Get rid of it.
+ markup = re.compile("\n\s*").sub("", markup)
+ self.tree = self.soup(markup)
+
+
+class TestNextSibling(SiblingTest):
+
+ def setUp(self):
+ super(TestNextSibling, self).setUp()
+ self.start = self.tree.find(id="1")
+
+ def test_next_sibling_of_root_is_none(self):
+ self.assertEqual(self.tree.next_sibling, None)
+
+ def test_next_sibling(self):
+ self.assertEqual(self.start.next_sibling['id'], '2')
+ self.assertEqual(self.start.next_sibling.next_sibling['id'], '3')
+
+ # Note the difference between next_sibling and next_element.
+ self.assertEqual(self.start.next_element['id'], '1.1')
+
+ def test_next_sibling_may_not_exist(self):
+ self.assertEqual(self.tree.html.next_sibling, None)
+
+ nested_span = self.tree.find(id="1.1")
+ self.assertEqual(nested_span.next_sibling, None)
+
+ last_span = self.tree.find(id="4")
+ self.assertEqual(last_span.next_sibling, None)
+
+ def test_find_next_sibling(self):
+ self.assertEqual(self.start.find_next_sibling('span')['id'], '2')
+
+ def test_next_siblings(self):
+ self.assertSelectsIDs(self.start.find_next_siblings("span"),
+ ['2', '3', '4'])
+
+ self.assertSelectsIDs(self.start.find_next_siblings(id='3'), ['3'])
+
+ def test_next_sibling_for_text_element(self):
+ soup = self.soup("Foo<b>bar</b>baz")
+ start = soup.find(text="Foo")
+ self.assertEqual(start.next_sibling.name, 'b')
+ self.assertEqual(start.next_sibling.next_sibling, 'baz')
+
+ self.assertSelects(start.find_next_siblings('b'), ['bar'])
+ self.assertEqual(start.find_next_sibling(text="baz"), "baz")
+ self.assertEqual(start.find_next_sibling(text="nonesuch"), None)
+
+
+class TestPreviousSibling(SiblingTest):
+
+ def setUp(self):
+ super(TestPreviousSibling, self).setUp()
+ self.end = self.tree.find(id="4")
+
+ def test_previous_sibling_of_root_is_none(self):
+ self.assertEqual(self.tree.previous_sibling, None)
+
+ def test_previous_sibling(self):
+ self.assertEqual(self.end.previous_sibling['id'], '3')
+ self.assertEqual(self.end.previous_sibling.previous_sibling['id'], '2')
+
+ # Note the difference between previous_sibling and previous_element.
+ self.assertEqual(self.end.previous_element['id'], '3.1')
+
+ def test_previous_sibling_may_not_exist(self):
+ self.assertEqual(self.tree.html.previous_sibling, None)
+
+ nested_span = self.tree.find(id="1.1")
+ self.assertEqual(nested_span.previous_sibling, None)
+
+ first_span = self.tree.find(id="1")
+ self.assertEqual(first_span.previous_sibling, None)
+
+ def test_find_previous_sibling(self):
+ self.assertEqual(self.end.find_previous_sibling('span')['id'], '3')
+
+ def test_previous_siblings(self):
+ self.assertSelectsIDs(self.end.find_previous_siblings("span"),
+ ['3', '2', '1'])
+
+ self.assertSelectsIDs(self.end.find_previous_siblings(id='1'), ['1'])
+
+ def test_previous_sibling_for_text_element(self):
+ soup = self.soup("Foo<b>bar</b>baz")
+ start = soup.find(text="baz")
+ self.assertEqual(start.previous_sibling.name, 'b')
+ self.assertEqual(start.previous_sibling.previous_sibling, 'Foo')
+
+ self.assertSelects(start.find_previous_siblings('b'), ['bar'])
+ self.assertEqual(start.find_previous_sibling(text="Foo"), "Foo")
+ self.assertEqual(start.find_previous_sibling(text="nonesuch"), None)
+
+
+class TestTagCreation(SoupTest):
+ """Test the ability to create new tags."""
+ def test_new_tag(self):
+ soup = self.soup("")
+ new_tag = soup.new_tag("foo", bar="baz")
+ self.assertTrue(isinstance(new_tag, Tag))
+ self.assertEqual("foo", new_tag.name)
+ self.assertEqual(dict(bar="baz"), new_tag.attrs)
+ self.assertEqual(None, new_tag.parent)
+
+ def test_tag_inherits_self_closing_rules_from_builder(self):
+ if XML_BUILDER_PRESENT:
+ xml_soup = BeautifulSoup("", "xml")
+ xml_br = xml_soup.new_tag("br")
+ xml_p = xml_soup.new_tag("p")
+
+ # Both the <br> and <p> tag are empty-element, just because
+ # they have no contents.
+ self.assertEqual(b"<br/>", xml_br.encode())
+ self.assertEqual(b"<p/>", xml_p.encode())
+
+ html_soup = BeautifulSoup("", "html")
+ html_br = html_soup.new_tag("br")
+ html_p = html_soup.new_tag("p")
+
+ # The HTML builder users HTML's rules about which tags are
+ # empty-element tags, and the new tags reflect these rules.
+ self.assertEqual(b"<br/>", html_br.encode())
+ self.assertEqual(b"<p></p>", html_p.encode())
+
+ def test_new_string_creates_navigablestring(self):
+ soup = self.soup("")
+ s = soup.new_string("foo")
+ self.assertEqual("foo", s)
+ self.assertTrue(isinstance(s, NavigableString))
+
+ def test_new_string_can_create_navigablestring_subclass(self):
+ soup = self.soup("")
+ s = soup.new_string("foo", Comment)
+ self.assertEqual("foo", s)
+ self.assertTrue(isinstance(s, Comment))
+
+class TestTreeModification(SoupTest):
+
+ def test_attribute_modification(self):
+ soup = self.soup('<a id="1"></a>')
+ soup.a['id'] = 2
+ self.assertEqual(soup.decode(), self.document_for('<a id="2"></a>'))
+ del(soup.a['id'])
+ self.assertEqual(soup.decode(), self.document_for('<a></a>'))
+ soup.a['id2'] = 'foo'
+ self.assertEqual(soup.decode(), self.document_for('<a id2="foo"></a>'))
+
+ def test_new_tag_creation(self):
+ builder = builder_registry.lookup('html')()
+ soup = self.soup("<body></body>", builder=builder)
+ a = Tag(soup, builder, 'a')
+ ol = Tag(soup, builder, 'ol')
+ a['href'] = 'http://foo.com/'
+ soup.body.insert(0, a)
+ soup.body.insert(1, ol)
+ self.assertEqual(
+ soup.body.encode(),
+ b'<body><a href="http://foo.com/"></a><ol></ol></body>')
+
+ def test_append_to_contents_moves_tag(self):
+ doc = """<p id="1">Don't leave me <b>here</b>.</p>
+ <p id="2">Don\'t leave!</p>"""
+ soup = self.soup(doc)
+ second_para = soup.find(id='2')
+ bold = soup.b
+
+ # Move the <b> tag to the end of the second paragraph.
+ soup.find(id='2').append(soup.b)
+
+ # The <b> tag is now a child of the second paragraph.
+ self.assertEqual(bold.parent, second_para)
+
+ self.assertEqual(
+ soup.decode(), self.document_for(
+ '<p id="1">Don\'t leave me .</p>\n'
+ '<p id="2">Don\'t leave!<b>here</b></p>'))
+
+ def test_replace_with_returns_thing_that_was_replaced(self):
+ text = "<a></a><b><c></c></b>"
+ soup = self.soup(text)
+ a = soup.a
+ new_a = a.replace_with(soup.c)
+ self.assertEqual(a, new_a)
+
+ def test_unwrap_returns_thing_that_was_replaced(self):
+ text = "<a><b></b><c></c></a>"
+ soup = self.soup(text)
+ a = soup.a
+ new_a = a.unwrap()
+ self.assertEqual(a, new_a)
+
+ def test_replace_tag_with_itself(self):
+ text = "<a><b></b><c>Foo<d></d></c></a><a><e></e></a>"
+ soup = self.soup(text)
+ c = soup.c
+ soup.c.replace_with(c)
+ self.assertEqual(soup.decode(), self.document_for(text))
+
+ def test_replace_tag_with_its_parent_raises_exception(self):
+ text = "<a><b></b></a>"
+ soup = self.soup(text)
+ self.assertRaises(ValueError, soup.b.replace_with, soup.a)
+
+ def test_insert_tag_into_itself_raises_exception(self):
+ text = "<a><b></b></a>"
+ soup = self.soup(text)
+ self.assertRaises(ValueError, soup.a.insert, 0, soup.a)
+
+ def test_replace_with_maintains_next_element_throughout(self):
+ soup = self.soup('<p><a>one</a><b>three</b></p>')
+ a = soup.a
+ b = a.contents[0]
+ # Make it so the <a> tag has two text children.
+ a.insert(1, "two")
+
+ # Now replace each one with the empty string.
+ left, right = a.contents
+ left.replaceWith('')
+ right.replaceWith('')
+
+ # The <b> tag is still connected to the tree.
+ self.assertEqual("three", soup.b.string)
+
+ def test_replace_final_node(self):
+ soup = self.soup("<b>Argh!</b>")
+ soup.find(text="Argh!").replace_with("Hooray!")
+ new_text = soup.find(text="Hooray!")
+ b = soup.b
+ self.assertEqual(new_text.previous_element, b)
+ self.assertEqual(new_text.parent, b)
+ self.assertEqual(new_text.previous_element.next_element, new_text)
+ self.assertEqual(new_text.next_element, None)
+
+ def test_consecutive_text_nodes(self):
+ # A builder should never create two consecutive text nodes,
+ # but if you insert one next to another, Beautiful Soup will
+ # handle it correctly.
+ soup = self.soup("<a><b>Argh!</b><c></c></a>")
+ soup.b.insert(1, "Hooray!")
+
+ self.assertEqual(
+ soup.decode(), self.document_for(
+ "<a><b>Argh!Hooray!</b><c></c></a>"))
+
+ new_text = soup.find(text="Hooray!")
+ self.assertEqual(new_text.previous_element, "Argh!")
+ self.assertEqual(new_text.previous_element.next_element, new_text)
+
+ self.assertEqual(new_text.previous_sibling, "Argh!")
+ self.assertEqual(new_text.previous_sibling.next_sibling, new_text)
+
+ self.assertEqual(new_text.next_sibling, None)
+ self.assertEqual(new_text.next_element, soup.c)
+
+ def test_insert_string(self):
+ soup = self.soup("<a></a>")
+ soup.a.insert(0, "bar")
+ soup.a.insert(0, "foo")
+ # The string were added to the tag.
+ self.assertEqual(["foo", "bar"], soup.a.contents)
+ # And they were converted to NavigableStrings.
+ self.assertEqual(soup.a.contents[0].next_element, "bar")
+
+ def test_insert_tag(self):
+ builder = self.default_builder
+ soup = self.soup(
+ "<a><b>Find</b><c>lady!</c><d></d></a>", builder=builder)
+ magic_tag = Tag(soup, builder, 'magictag')
+ magic_tag.insert(0, "the")
+ soup.a.insert(1, magic_tag)
+
+ self.assertEqual(
+ soup.decode(), self.document_for(
+ "<a><b>Find</b><magictag>the</magictag><c>lady!</c><d></d></a>"))
+
+ # Make sure all the relationships are hooked up correctly.
+ b_tag = soup.b
+ self.assertEqual(b_tag.next_sibling, magic_tag)
+ self.assertEqual(magic_tag.previous_sibling, b_tag)
+
+ find = b_tag.find(text="Find")
+ self.assertEqual(find.next_element, magic_tag)
+ self.assertEqual(magic_tag.previous_element, find)
+
+ c_tag = soup.c
+ self.assertEqual(magic_tag.next_sibling, c_tag)
+ self.assertEqual(c_tag.previous_sibling, magic_tag)
+
+ the = magic_tag.find(text="the")
+ self.assertEqual(the.parent, magic_tag)
+ self.assertEqual(the.next_element, c_tag)
+ self.assertEqual(c_tag.previous_element, the)
+
+ def test_append_child_thats_already_at_the_end(self):
+ data = "<a><b></b></a>"
+ soup = self.soup(data)
+ soup.a.append(soup.b)
+ self.assertEqual(data, soup.decode())
+
+ def test_move_tag_to_beginning_of_parent(self):
+ data = "<a><b></b><c></c><d></d></a>"
+ soup = self.soup(data)
+ soup.a.insert(0, soup.d)
+ self.assertEqual("<a><d></d><b></b><c></c></a>", soup.decode())
+
+ def test_insert_works_on_empty_element_tag(self):
+ # This is a little strange, since most HTML parsers don't allow
+ # markup like this to come through. But in general, we don't
+ # know what the parser would or wouldn't have allowed, so
+ # I'm letting this succeed for now.
+ soup = self.soup("<br/>")
+ soup.br.insert(1, "Contents")
+ self.assertEqual(str(soup.br), "<br>Contents</br>")
+
+ def test_insert_before(self):
+ soup = self.soup("<a>foo</a><b>bar</b>")
+ soup.b.insert_before("BAZ")
+ soup.a.insert_before("QUUX")
+ self.assertEqual(
+ soup.decode(), self.document_for("QUUX<a>foo</a>BAZ<b>bar</b>"))
+
+ soup.a.insert_before(soup.b)
+ self.assertEqual(
+ soup.decode(), self.document_for("QUUX<b>bar</b><a>foo</a>BAZ"))
+
+ def test_insert_after(self):
+ soup = self.soup("<a>foo</a><b>bar</b>")
+ soup.b.insert_after("BAZ")
+ soup.a.insert_after("QUUX")
+ self.assertEqual(
+ soup.decode(), self.document_for("<a>foo</a>QUUX<b>bar</b>BAZ"))
+ soup.b.insert_after(soup.a)
+ self.assertEqual(
+ soup.decode(), self.document_for("QUUX<b>bar</b><a>foo</a>BAZ"))
+
+ def test_insert_after_raises_exception_if_after_has_no_meaning(self):
+ soup = self.soup("")
+ tag = soup.new_tag("a")
+ string = soup.new_string("")
+ self.assertRaises(ValueError, string.insert_after, tag)
+ self.assertRaises(NotImplementedError, soup.insert_after, tag)
+ self.assertRaises(ValueError, tag.insert_after, tag)
+
+ def test_insert_before_raises_notimplementederror_if_before_has_no_meaning(self):
+ soup = self.soup("")
+ tag = soup.new_tag("a")
+ string = soup.new_string("")
+ self.assertRaises(ValueError, string.insert_before, tag)
+ self.assertRaises(NotImplementedError, soup.insert_before, tag)
+ self.assertRaises(ValueError, tag.insert_before, tag)
+
+ def test_replace_with(self):
+ soup = self.soup(
+ "<p>There's <b>no</b> business like <b>show</b> business</p>")
+ no, show = soup.find_all('b')
+ show.replace_with(no)
+ self.assertEqual(
+ soup.decode(),
+ self.document_for(
+ "<p>There's business like <b>no</b> business</p>"))
+
+ self.assertEqual(show.parent, None)
+ self.assertEqual(no.parent, soup.p)
+ self.assertEqual(no.next_element, "no")
+ self.assertEqual(no.next_sibling, " business")
+
+ def test_replace_first_child(self):
+ data = "<a><b></b><c></c></a>"
+ soup = self.soup(data)
+ soup.b.replace_with(soup.c)
+ self.assertEqual("<a><c></c></a>", soup.decode())
+
+ def test_replace_last_child(self):
+ data = "<a><b></b><c></c></a>"
+ soup = self.soup(data)
+ soup.c.replace_with(soup.b)
+ self.assertEqual("<a><b></b></a>", soup.decode())
+
+ def test_nested_tag_replace_with(self):
+ soup = self.soup(
+ """<a>We<b>reserve<c>the</c><d>right</d></b></a><e>to<f>refuse</f><g>service</g></e>""")
+
+ # Replace the entire <b> tag and its contents ("reserve the
+ # right") with the <f> tag ("refuse").
+ remove_tag = soup.b
+ move_tag = soup.f
+ remove_tag.replace_with(move_tag)
+
+ self.assertEqual(
+ soup.decode(), self.document_for(
+ "<a>We<f>refuse</f></a><e>to<g>service</g></e>"))
+
+ # The <b> tag is now an orphan.
+ self.assertEqual(remove_tag.parent, None)
+ self.assertEqual(remove_tag.find(text="right").next_element, None)
+ self.assertEqual(remove_tag.previous_element, None)
+ self.assertEqual(remove_tag.next_sibling, None)
+ self.assertEqual(remove_tag.previous_sibling, None)
+
+ # The <f> tag is now connected to the <a> tag.
+ self.assertEqual(move_tag.parent, soup.a)
+ self.assertEqual(move_tag.previous_element, "We")
+ self.assertEqual(move_tag.next_element.next_element, soup.e)
+ self.assertEqual(move_tag.next_sibling, None)
+
+ # The gap where the <f> tag used to be has been mended, and
+ # the word "to" is now connected to the <g> tag.
+ to_text = soup.find(text="to")
+ g_tag = soup.g
+ self.assertEqual(to_text.next_element, g_tag)
+ self.assertEqual(to_text.next_sibling, g_tag)
+ self.assertEqual(g_tag.previous_element, to_text)
+ self.assertEqual(g_tag.previous_sibling, to_text)
+
+ def test_unwrap(self):
+ tree = self.soup("""
+ <p>Unneeded <em>formatting</em> is unneeded</p>
+ """)
+ tree.em.unwrap()
+ self.assertEqual(tree.em, None)
+ self.assertEqual(tree.p.text, "Unneeded formatting is unneeded")
+
+ def test_wrap(self):
+ soup = self.soup("I wish I was bold.")
+ value = soup.string.wrap(soup.new_tag("b"))
+ self.assertEqual(value.decode(), "<b>I wish I was bold.</b>")
+ self.assertEqual(
+ soup.decode(), self.document_for("<b>I wish I was bold.</b>"))
+
+ def test_wrap_extracts_tag_from_elsewhere(self):
+ soup = self.soup("<b></b>I wish I was bold.")
+ soup.b.next_sibling.wrap(soup.b)
+ self.assertEqual(
+ soup.decode(), self.document_for("<b>I wish I was bold.</b>"))
+
+ def test_wrap_puts_new_contents_at_the_end(self):
+ soup = self.soup("<b>I like being bold.</b>I wish I was bold.")
+ soup.b.next_sibling.wrap(soup.b)
+ self.assertEqual(2, len(soup.b.contents))
+ self.assertEqual(
+ soup.decode(), self.document_for(
+ "<b>I like being bold.I wish I was bold.</b>"))
+
+ def test_extract(self):
+ soup = self.soup(
+ '<html><body>Some content. <div id="nav">Nav crap</div> More content.</body></html>')
+
+ self.assertEqual(len(soup.body.contents), 3)
+ extracted = soup.find(id="nav").extract()
+
+ self.assertEqual(
+ soup.decode(), "<html><body>Some content. More content.</body></html>")
+ self.assertEqual(extracted.decode(), '<div id="nav">Nav crap</div>')
+
+ # The extracted tag is now an orphan.
+ self.assertEqual(len(soup.body.contents), 2)
+ self.assertEqual(extracted.parent, None)
+ self.assertEqual(extracted.previous_element, None)
+ self.assertEqual(extracted.next_element.next_element, None)
+
+ # The gap where the extracted tag used to be has been mended.
+ content_1 = soup.find(text="Some content. ")
+ content_2 = soup.find(text=" More content.")
+ self.assertEqual(content_1.next_element, content_2)
+ self.assertEqual(content_1.next_sibling, content_2)
+ self.assertEqual(content_2.previous_element, content_1)
+ self.assertEqual(content_2.previous_sibling, content_1)
+
+ def test_extract_distinguishes_between_identical_strings(self):
+ soup = self.soup("<a>foo</a><b>bar</b>")
+ foo_1 = soup.a.string
+ bar_1 = soup.b.string
+ foo_2 = soup.new_string("foo")
+ bar_2 = soup.new_string("bar")
+ soup.a.append(foo_2)
+ soup.b.append(bar_2)
+
+ # Now there are two identical strings in the <a> tag, and two
+ # in the <b> tag. Let's remove the first "foo" and the second
+ # "bar".
+ foo_1.extract()
+ bar_2.extract()
+ self.assertEqual(foo_2, soup.a.string)
+ self.assertEqual(bar_2, soup.b.string)
+
+ def test_clear(self):
+ """Tag.clear()"""
+ soup = self.soup("<p><a>String <em>Italicized</em></a> and another</p>")
+ # clear using extract()
+ a = soup.a
+ soup.p.clear()
+ self.assertEqual(len(soup.p.contents), 0)
+ self.assertTrue(hasattr(a, "contents"))
+
+ # clear using decompose()
+ em = a.em
+ a.clear(decompose=True)
+ self.assertEqual(0, len(em.contents))
+
+ def test_string_set(self):
+ """Tag.string = 'string'"""
+ soup = self.soup("<a></a> <b><c></c></b>")
+ soup.a.string = "foo"
+ self.assertEqual(soup.a.contents, ["foo"])
+ soup.b.string = "bar"
+ self.assertEqual(soup.b.contents, ["bar"])
+
+ def test_string_set_does_not_affect_original_string(self):
+ soup = self.soup("<a><b>foo</b><c>bar</c>")
+ soup.b.string = soup.c.string
+ self.assertEqual(soup.a.encode(), b"<a><b>bar</b><c>bar</c></a>")
+
+ def test_set_string_preserves_class_of_string(self):
+ soup = self.soup("<a></a>")
+ cdata = CData("foo")
+ soup.a.string = cdata
+ self.assertTrue(isinstance(soup.a.string, CData))
+
+class TestElementObjects(SoupTest):
+ """Test various features of element objects."""
+
+ def test_len(self):
+ """The length of an element is its number of children."""
+ soup = self.soup("<top>1<b>2</b>3</top>")
+
+ # The BeautifulSoup object itself contains one element: the
+ # <top> tag.
+ self.assertEqual(len(soup.contents), 1)
+ self.assertEqual(len(soup), 1)
+
+ # The <top> tag contains three elements: the text node "1", the
+ # <b> tag, and the text node "3".
+ self.assertEqual(len(soup.top), 3)
+ self.assertEqual(len(soup.top.contents), 3)
+
+ def test_member_access_invokes_find(self):
+ """Accessing a Python member .foo invokes find('foo')"""
+ soup = self.soup('<b><i></i></b>')
+ self.assertEqual(soup.b, soup.find('b'))
+ self.assertEqual(soup.b.i, soup.find('b').find('i'))
+ self.assertEqual(soup.a, None)
+
+ def test_deprecated_member_access(self):
+ soup = self.soup('<b><i></i></b>')
+ with warnings.catch_warnings(record=True) as w:
+ tag = soup.bTag
+ self.assertEqual(soup.b, tag)
+ self.assertEqual(
+ '.bTag is deprecated, use .find("b") instead.',
+ str(w[0].message))
+
+ def test_has_attr(self):
+ """has_attr() checks for the presence of an attribute.
+
+ Please note note: has_attr() is different from
+ __in__. has_attr() checks the tag's attributes and __in__
+ checks the tag's chidlren.
+ """
+ soup = self.soup("<foo attr='bar'>")
+ self.assertTrue(soup.foo.has_attr('attr'))
+ self.assertFalse(soup.foo.has_attr('attr2'))
+
+
+ def test_attributes_come_out_in_alphabetical_order(self):
+ markup = '<b a="1" z="5" m="3" f="2" y="4"></b>'
+ self.assertSoupEquals(markup, '<b a="1" f="2" m="3" y="4" z="5"></b>')
+
+ def test_string(self):
+ # A tag that contains only a text node makes that node
+ # available as .string.
+ soup = self.soup("<b>foo</b>")
+ self.assertEqual(soup.b.string, 'foo')
+
+ def test_empty_tag_has_no_string(self):
+ # A tag with no children has no .stirng.
+ soup = self.soup("<b></b>")
+ self.assertEqual(soup.b.string, None)
+
+ def test_tag_with_multiple_children_has_no_string(self):
+ # A tag with no children has no .string.
+ soup = self.soup("<a>foo<b></b><b></b></b>")
+ self.assertEqual(soup.b.string, None)
+
+ soup = self.soup("<a>foo<b></b>bar</b>")
+ self.assertEqual(soup.b.string, None)
+
+ # Even if all the children are strings, due to trickery,
+ # it won't work--but this would be a good optimization.
+ soup = self.soup("<a>foo</b>")
+ soup.a.insert(1, "bar")
+ self.assertEqual(soup.a.string, None)
+
+ def test_tag_with_recursive_string_has_string(self):
+ # A tag with a single child which has a .string inherits that
+ # .string.
+ soup = self.soup("<a><b>foo</b></a>")
+ self.assertEqual(soup.a.string, "foo")
+ self.assertEqual(soup.string, "foo")
+
+ def test_lack_of_string(self):
+ """Only a tag containing a single text node has a .string."""
+ soup = self.soup("<b>f<i>e</i>o</b>")
+ self.assertFalse(soup.b.string)
+
+ soup = self.soup("<b></b>")
+ self.assertFalse(soup.b.string)
+
+ def test_all_text(self):
+ """Tag.text and Tag.get_text(sep=u"") -> all child text, concatenated"""
+ soup = self.soup("<a>a<b>r</b> <r> t </r></a>")
+ self.assertEqual(soup.a.text, "ar t ")
+ self.assertEqual(soup.a.get_text(strip=True), "art")
+ self.assertEqual(soup.a.get_text(","), "a,r, , t ")
+ self.assertEqual(soup.a.get_text(",", strip=True), "a,r,t")
+
+ def test_get_text_ignores_comments(self):
+ soup = self.soup("foo<!--IGNORE-->bar")
+ self.assertEqual(soup.get_text(), "foobar")
+
+ self.assertEqual(
+ soup.get_text(types=(NavigableString, Comment)), "fooIGNOREbar")
+ self.assertEqual(
+ soup.get_text(types=None), "fooIGNOREbar")
+
+ def test_all_strings_ignores_comments(self):
+ soup = self.soup("foo<!--IGNORE-->bar")
+ self.assertEqual(['foo', 'bar'], list(soup.strings))
+
+class TestCDAtaListAttributes(SoupTest):
+
+ """Testing cdata-list attributes like 'class'.
+ """
+ def test_single_value_becomes_list(self):
+ soup = self.soup("<a class='foo'>")
+ self.assertEqual(["foo"],soup.a['class'])
+
+ def test_multiple_values_becomes_list(self):
+ soup = self.soup("<a class='foo bar'>")
+ self.assertEqual(["foo", "bar"], soup.a['class'])
+
+ def test_multiple_values_separated_by_weird_whitespace(self):
+ soup = self.soup("<a class='foo\tbar\nbaz'>")
+ self.assertEqual(["foo", "bar", "baz"],soup.a['class'])
+
+ def test_attributes_joined_into_string_on_output(self):
+ soup = self.soup("<a class='foo\tbar'>")
+ self.assertEqual(b'<a class="foo bar"></a>', soup.a.encode())
+
+ def test_accept_charset(self):
+ soup = self.soup('<form accept-charset="ISO-8859-1 UTF-8">')
+ self.assertEqual(['ISO-8859-1', 'UTF-8'], soup.form['accept-charset'])
+
+ def test_cdata_attribute_applying_only_to_one_tag(self):
+ data = '<a accept-charset="ISO-8859-1 UTF-8"></a>'
+ soup = self.soup(data)
+ # We saw in another test that accept-charset is a cdata-list
+ # attribute for the <form> tag. But it's not a cdata-list
+ # attribute for any other tag.
+ self.assertEqual('ISO-8859-1 UTF-8', soup.a['accept-charset'])
+
+ def test_string_has_immutable_name_property(self):
+ string = self.soup("s").string
+ self.assertEqual(None, string.name)
+ def t():
+ string.name = 'foo'
+ self.assertRaises(AttributeError, t)
+
+class TestPersistence(SoupTest):
+ "Testing features like pickle and deepcopy."
+
+ def setUp(self):
+ super(TestPersistence, self).setUp()
+ self.page = """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+"http://www.w3.org/TR/REC-html40/transitional.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Beautiful Soup: We called him Tortoise because he taught us.</title>
+<link rev="made" href="mailto:leonardr@segfault.org">
+<meta name="Description" content="Beautiful Soup: an HTML parser optimized for screen-scraping.">
+<meta name="generator" content="Markov Approximation 1.4 (module: leonardr)">
+<meta name="author" content="Leonard Richardson">
+</head>
+<body>
+<a href="foo">foo</a>
+<a href="foo"><b>bar</b></a>
+</body>
+</html>"""
+ self.tree = self.soup(self.page)
+
+ def test_pickle_and_unpickle_identity(self):
+ # Pickling a tree, then unpickling it, yields a tree identical
+ # to the original.
+ dumped = pickle.dumps(self.tree, 2)
+ loaded = pickle.loads(dumped)
+ self.assertEqual(loaded.__class__, BeautifulSoup)
+ self.assertEqual(loaded.decode(), self.tree.decode())
+
+ def test_deepcopy_identity(self):
+ # Making a deepcopy of a tree yields an identical tree.
+ copied = copy.deepcopy(self.tree)
+ self.assertEqual(copied.decode(), self.tree.decode())
+
+ def test_unicode_pickle(self):
+ # A tree containing Unicode characters can be pickled.
+ html = u"<b>\N{SNOWMAN}</b>"
+ soup = self.soup(html)
+ dumped = pickle.dumps(soup, pickle.HIGHEST_PROTOCOL)
+ loaded = pickle.loads(dumped)
+ self.assertEqual(loaded.decode(), soup.decode())
+
+
+class TestSubstitutions(SoupTest):
+
+ def test_default_formatter_is_minimal(self):
+ markup = u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
+ soup = self.soup(markup)
+ decoded = soup.decode(formatter="minimal")
+ # The < is converted back into &lt; but the e-with-acute is left alone.
+ self.assertEqual(
+ decoded,
+ self.document_for(
+ u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"))
+
+ def test_formatter_html(self):
+ markup = u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
+ soup = self.soup(markup)
+ decoded = soup.decode(formatter="html")
+ self.assertEqual(
+ decoded,
+ self.document_for("<b>&lt;&lt;Sacr&eacute; bleu!&gt;&gt;</b>"))
+
+ def test_formatter_minimal(self):
+ markup = u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
+ soup = self.soup(markup)
+ decoded = soup.decode(formatter="minimal")
+ # The < is converted back into &lt; but the e-with-acute is left alone.
+ self.assertEqual(
+ decoded,
+ self.document_for(
+ u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"))
+
+ def test_formatter_null(self):
+ markup = u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
+ soup = self.soup(markup)
+ decoded = soup.decode(formatter=None)
+ # Neither the angle brackets nor the e-with-acute are converted.
+ # This is not valid HTML, but it's what the user wanted.
+ self.assertEqual(decoded,
+ self.document_for(u"<b><<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>></b>"))
+
+ def test_formatter_custom(self):
+ markup = u"<b>&lt;foo&gt;</b><b>bar</b>"
+ soup = self.soup(markup)
+ decoded = soup.decode(formatter = lambda x: x.upper())
+ # Instead of normal entity conversion code, the custom
+ # callable is called on every string.
+ self.assertEqual(
+ decoded,
+ self.document_for(u"<b><FOO></b><b>BAR</b>"))
+
+ def test_formatter_is_run_on_attribute_values(self):
+ markup = u'<a href="http://a.com?a=b&c=é">e</a>'
+ soup = self.soup(markup)
+ a = soup.a
+
+ expect_minimal = u'<a href="http://a.com?a=b&amp;c=é">e</a>'
+
+ self.assertEqual(expect_minimal, a.decode())
+ self.assertEqual(expect_minimal, a.decode(formatter="minimal"))
+
+ expect_html = u'<a href="http://a.com?a=b&amp;c=&eacute;">e</a>'
+ self.assertEqual(expect_html, a.decode(formatter="html"))
+
+ self.assertEqual(markup, a.decode(formatter=None))
+ expect_upper = u'<a href="HTTP://A.COM?A=B&C=É">E</a>'
+ self.assertEqual(expect_upper, a.decode(formatter=lambda x: x.upper()))
+
+ def test_formatter_skips_script_tag_for_html_documents(self):
+ doc = """
+ <script type="text/javascript">
+ console.log("< < hey > > ");
+ </script>
+"""
+ encoded = BeautifulSoup(doc).encode()
+ self.assertTrue(b"< < hey > >" in encoded)
+
+ def test_formatter_skips_style_tag_for_html_documents(self):
+ doc = """
+ <style type="text/css">
+ console.log("< < hey > > ");
+ </style>
+"""
+ encoded = BeautifulSoup(doc).encode()
+ self.assertTrue(b"< < hey > >" in encoded)
+
+ def test_prettify_leaves_preformatted_text_alone(self):
+ soup = self.soup("<div> foo <pre> \tbar\n \n </pre> baz ")
+ # Everything outside the <pre> tag is reformatted, but everything
+ # inside is left alone.
+ self.assertEqual(
+ u'<div>\n foo\n <pre> \tbar\n \n </pre>\n baz\n</div>',
+ soup.div.prettify())
+
+ def test_prettify_accepts_formatter(self):
+ soup = BeautifulSoup("<html><body>foo</body></html>")
+ pretty = soup.prettify(formatter = lambda x: x.upper())
+ self.assertTrue("FOO" in pretty)
+
+ def test_prettify_outputs_unicode_by_default(self):
+ soup = self.soup("<a></a>")
+ self.assertEqual(unicode, type(soup.prettify()))
+
+ def test_prettify_can_encode_data(self):
+ soup = self.soup("<a></a>")
+ self.assertEqual(bytes, type(soup.prettify("utf-8")))
+
+ def test_html_entity_substitution_off_by_default(self):
+ markup = u"<b>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</b>"
+ soup = self.soup(markup)
+ encoded = soup.b.encode("utf-8")
+ self.assertEqual(encoded, markup.encode('utf-8'))
+
+ def test_encoding_substitution(self):
+ # Here's the <meta> tag saying that a document is
+ # encoded in Shift-JIS.
+ meta_tag = ('<meta content="text/html; charset=x-sjis" '
+ 'http-equiv="Content-type"/>')
+ soup = self.soup(meta_tag)
+
+ # Parse the document, and the charset apprears unchanged.
+ self.assertEqual(soup.meta['content'], 'text/html; charset=x-sjis')
+
+ # Encode the document into some encoding, and the encoding is
+ # substituted into the meta tag.
+ utf_8 = soup.encode("utf-8")
+ self.assertTrue(b"charset=utf-8" in utf_8)
+
+ euc_jp = soup.encode("euc_jp")
+ self.assertTrue(b"charset=euc_jp" in euc_jp)
+
+ shift_jis = soup.encode("shift-jis")
+ self.assertTrue(b"charset=shift-jis" in shift_jis)
+
+ utf_16_u = soup.encode("utf-16").decode("utf-16")
+ self.assertTrue("charset=utf-16" in utf_16_u)
+
+ def test_encoding_substitution_doesnt_happen_if_tag_is_strained(self):
+ markup = ('<head><meta content="text/html; charset=x-sjis" '
+ 'http-equiv="Content-type"/></head><pre>foo</pre>')
+
+ # Beautiful Soup used to try to rewrite the meta tag even if the
+ # meta tag got filtered out by the strainer. This test makes
+ # sure that doesn't happen.
+ strainer = SoupStrainer('pre')
+ soup = self.soup(markup, parse_only=strainer)
+ self.assertEqual(soup.contents[0].name, 'pre')
+
+class TestEncoding(SoupTest):
+ """Test the ability to encode objects into strings."""
+
+ def test_unicode_string_can_be_encoded(self):
+ html = u"<b>\N{SNOWMAN}</b>"
+ soup = self.soup(html)
+ self.assertEqual(soup.b.string.encode("utf-8"),
+ u"\N{SNOWMAN}".encode("utf-8"))
+
+ def test_tag_containing_unicode_string_can_be_encoded(self):
+ html = u"<b>\N{SNOWMAN}</b>"
+ soup = self.soup(html)
+ self.assertEqual(
+ soup.b.encode("utf-8"), html.encode("utf-8"))
+
+ def test_encoding_substitutes_unrecognized_characters_by_default(self):
+ html = u"<b>\N{SNOWMAN}</b>"
+ soup = self.soup(html)
+ self.assertEqual(soup.b.encode("ascii"), b"<b>&#9731;</b>")
+
+ def test_encoding_can_be_made_strict(self):
+ html = u"<b>\N{SNOWMAN}</b>"
+ soup = self.soup(html)
+ self.assertRaises(
+ UnicodeEncodeError, soup.encode, "ascii", errors="strict")
+
+ def test_decode_contents(self):
+ html = u"<b>\N{SNOWMAN}</b>"
+ soup = self.soup(html)
+ self.assertEqual(u"\N{SNOWMAN}", soup.b.decode_contents())
+
+ def test_encode_contents(self):
+ html = u"<b>\N{SNOWMAN}</b>"
+ soup = self.soup(html)
+ self.assertEqual(
+ u"\N{SNOWMAN}".encode("utf8"), soup.b.encode_contents(
+ encoding="utf8"))
+
+ def test_deprecated_renderContents(self):
+ html = u"<b>\N{SNOWMAN}</b>"
+ soup = self.soup(html)
+ self.assertEqual(
+ u"\N{SNOWMAN}".encode("utf8"), soup.b.renderContents())
+
+class TestNavigableStringSubclasses(SoupTest):
+
+ def test_cdata(self):
+ # None of the current builders turn CDATA sections into CData
+ # objects, but you can create them manually.
+ soup = self.soup("")
+ cdata = CData("foo")
+ soup.insert(1, cdata)
+ self.assertEqual(str(soup), "<![CDATA[foo]]>")
+ self.assertEqual(soup.find(text="foo"), "foo")
+ self.assertEqual(soup.contents[0], "foo")
+
+ def test_cdata_is_never_formatted(self):
+ """Text inside a CData object is passed into the formatter.
+
+ But the return value is ignored.
+ """
+
+ self.count = 0
+ def increment(*args):
+ self.count += 1
+ return "BITTER FAILURE"
+
+ soup = self.soup("")
+ cdata = CData("<><><>")
+ soup.insert(1, cdata)
+ self.assertEqual(
+ b"<![CDATA[<><><>]]>", soup.encode(formatter=increment))
+ self.assertEqual(1, self.count)
+
+ def test_doctype_ends_in_newline(self):
+ # Unlike other NavigableString subclasses, a DOCTYPE always ends
+ # in a newline.
+ doctype = Doctype("foo")
+ soup = self.soup("")
+ soup.insert(1, doctype)
+ self.assertEqual(soup.encode(), b"<!DOCTYPE foo>\n")
+
+
+class TestSoupSelector(TreeTest):
+
+ HTML = """
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>The title</title>
+<link rel="stylesheet" href="blah.css" type="text/css" id="l1">
+</head>
+<body>
+
+<div id="main" class="fancy">
+<div id="inner">
+<h1 id="header1">An H1</h1>
+<p>Some text</p>
+<p class="onep" id="p1">Some more text</p>
+<h2 id="header2">An H2</h2>
+<p class="class1 class2 class3" id="pmulti">Another</p>
+<a href="http://bob.example.org/" rel="friend met" id="bob">Bob</a>
+<h2 id="header3">Another H2</h2>
+<a id="me" href="http://simonwillison.net/" rel="me">me</a>
+<span class="s1">
+<a href="#" id="s1a1">span1a1</a>
+<a href="#" id="s1a2">span1a2 <span id="s1a2s1">test</span></a>
+<span class="span2">
+<a href="#" id="s2a1">span2a1</a>
+</span>
+<span class="span3"></span>
+</span>
+</div>
+<p lang="en" id="lang-en">English</p>
+<p lang="en-gb" id="lang-en-gb">English UK</p>
+<p lang="en-us" id="lang-en-us">English US</p>
+<p lang="fr" id="lang-fr">French</p>
+</div>
+
+<div id="footer">
+</div>
+"""
+
+ def setUp(self):
+ self.soup = BeautifulSoup(self.HTML)
+
+ def assertSelects(self, selector, expected_ids):
+ el_ids = [el['id'] for el in self.soup.select(selector)]
+ el_ids.sort()
+ expected_ids.sort()
+ self.assertEqual(expected_ids, el_ids,
+ "Selector %s, expected [%s], got [%s]" % (
+ selector, ', '.join(expected_ids), ', '.join(el_ids)
+ )
+ )
+
+ assertSelect = assertSelects
+
+ def assertSelectMultiple(self, *tests):
+ for selector, expected_ids in tests:
+ self.assertSelect(selector, expected_ids)
+
+ def test_one_tag_one(self):
+ els = self.soup.select('title')
+ self.assertEqual(len(els), 1)
+ self.assertEqual(els[0].name, 'title')
+ self.assertEqual(els[0].contents, [u'The title'])
+
+ def test_one_tag_many(self):
+ els = self.soup.select('div')
+ self.assertEqual(len(els), 3)
+ for div in els:
+ self.assertEqual(div.name, 'div')
+
+ def test_tag_in_tag_one(self):
+ els = self.soup.select('div div')
+ self.assertSelects('div div', ['inner'])
+
+ def test_tag_in_tag_many(self):
+ for selector in ('html div', 'html body div', 'body div'):
+ self.assertSelects(selector, ['main', 'inner', 'footer'])
+
+ def test_tag_no_match(self):
+ self.assertEqual(len(self.soup.select('del')), 0)
+
+ def test_invalid_tag(self):
+ self.assertRaises(ValueError, self.soup.select, 'tag%t')
+
+ def test_header_tags(self):
+ self.assertSelectMultiple(
+ ('h1', ['header1']),
+ ('h2', ['header2', 'header3']),
+ )
+
+ def test_class_one(self):
+ for selector in ('.onep', 'p.onep', 'html p.onep'):
+ els = self.soup.select(selector)
+ self.assertEqual(len(els), 1)
+ self.assertEqual(els[0].name, 'p')
+ self.assertEqual(els[0]['class'], ['onep'])
+
+ def test_class_mismatched_tag(self):
+ els = self.soup.select('div.onep')
+ self.assertEqual(len(els), 0)
+
+ def test_one_id(self):
+ for selector in ('div#inner', '#inner', 'div div#inner'):
+ self.assertSelects(selector, ['inner'])
+
+ def test_bad_id(self):
+ els = self.soup.select('#doesnotexist')
+ self.assertEqual(len(els), 0)
+
+ def test_items_in_id(self):
+ els = self.soup.select('div#inner p')
+ self.assertEqual(len(els), 3)
+ for el in els:
+ self.assertEqual(el.name, 'p')
+ self.assertEqual(els[1]['class'], ['onep'])
+ self.assertFalse(els[0].has_attr('class'))
+
+ def test_a_bunch_of_emptys(self):
+ for selector in ('div#main del', 'div#main div.oops', 'div div#main'):
+ self.assertEqual(len(self.soup.select(selector)), 0)
+
+ def test_multi_class_support(self):
+ for selector in ('.class1', 'p.class1', '.class2', 'p.class2',
+ '.class3', 'p.class3', 'html p.class2', 'div#inner .class2'):
+ self.assertSelects(selector, ['pmulti'])
+
+ def test_multi_class_selection(self):
+ for selector in ('.class1.class3', '.class3.class2',
+ '.class1.class2.class3'):
+ self.assertSelects(selector, ['pmulti'])
+
+ def test_child_selector(self):
+ self.assertSelects('.s1 > a', ['s1a1', 's1a2'])
+ self.assertSelects('.s1 > a span', ['s1a2s1'])
+
+ def test_child_selector_id(self):
+ self.assertSelects('.s1 > a#s1a2 span', ['s1a2s1'])
+
+ def test_attribute_equals(self):
+ self.assertSelectMultiple(
+ ('p[class="onep"]', ['p1']),
+ ('p[id="p1"]', ['p1']),
+ ('[class="onep"]', ['p1']),
+ ('[id="p1"]', ['p1']),
+ ('link[rel="stylesheet"]', ['l1']),
+ ('link[type="text/css"]', ['l1']),
+ ('link[href="blah.css"]', ['l1']),
+ ('link[href="no-blah.css"]', []),
+ ('[rel="stylesheet"]', ['l1']),
+ ('[type="text/css"]', ['l1']),
+ ('[href="blah.css"]', ['l1']),
+ ('[href="no-blah.css"]', []),
+ ('p[href="no-blah.css"]', []),
+ ('[href="no-blah.css"]', []),
+ )
+
+ def test_attribute_tilde(self):
+ self.assertSelectMultiple(
+ ('p[class~="class1"]', ['pmulti']),
+ ('p[class~="class2"]', ['pmulti']),
+ ('p[class~="class3"]', ['pmulti']),
+ ('[class~="class1"]', ['pmulti']),
+ ('[class~="class2"]', ['pmulti']),
+ ('[class~="class3"]', ['pmulti']),
+ ('a[rel~="friend"]', ['bob']),
+ ('a[rel~="met"]', ['bob']),
+ ('[rel~="friend"]', ['bob']),
+ ('[rel~="met"]', ['bob']),
+ )
+
+ def test_attribute_startswith(self):
+ self.assertSelectMultiple(
+ ('[rel^="style"]', ['l1']),
+ ('link[rel^="style"]', ['l1']),
+ ('notlink[rel^="notstyle"]', []),
+ ('[rel^="notstyle"]', []),
+ ('link[rel^="notstyle"]', []),
+ ('link[href^="bla"]', ['l1']),
+ ('a[href^="http://"]', ['bob', 'me']),
+ ('[href^="http://"]', ['bob', 'me']),
+ ('[id^="p"]', ['pmulti', 'p1']),
+ ('[id^="m"]', ['me', 'main']),
+ ('div[id^="m"]', ['main']),
+ ('a[id^="m"]', ['me']),
+ )
+
+ def test_attribute_endswith(self):
+ self.assertSelectMultiple(
+ ('[href$=".css"]', ['l1']),
+ ('link[href$=".css"]', ['l1']),
+ ('link[id$="1"]', ['l1']),
+ ('[id$="1"]', ['l1', 'p1', 'header1', 's1a1', 's2a1', 's1a2s1']),
+ ('div[id$="1"]', []),
+ ('[id$="noending"]', []),
+ )
+
+ def test_attribute_contains(self):
+ self.assertSelectMultiple(
+ # From test_attribute_startswith
+ ('[rel*="style"]', ['l1']),
+ ('link[rel*="style"]', ['l1']),
+ ('notlink[rel*="notstyle"]', []),
+ ('[rel*="notstyle"]', []),
+ ('link[rel*="notstyle"]', []),
+ ('link[href*="bla"]', ['l1']),
+ ('a[href*="http://"]', ['bob', 'me']),
+ ('[href*="http://"]', ['bob', 'me']),
+ ('[id*="p"]', ['pmulti', 'p1']),
+ ('div[id*="m"]', ['main']),
+ ('a[id*="m"]', ['me']),
+ # From test_attribute_endswith
+ ('[href*=".css"]', ['l1']),
+ ('link[href*=".css"]', ['l1']),
+ ('link[id*="1"]', ['l1']),
+ ('[id*="1"]', ['l1', 'p1', 'header1', 's1a1', 's1a2', 's2a1', 's1a2s1']),
+ ('div[id*="1"]', []),
+ ('[id*="noending"]', []),
+ # New for this test
+ ('[href*="."]', ['bob', 'me', 'l1']),
+ ('a[href*="."]', ['bob', 'me']),
+ ('link[href*="."]', ['l1']),
+ ('div[id*="n"]', ['main', 'inner']),
+ ('div[id*="nn"]', ['inner']),
+ )
+
+ def test_attribute_exact_or_hypen(self):
+ self.assertSelectMultiple(
+ ('p[lang|="en"]', ['lang-en', 'lang-en-gb', 'lang-en-us']),
+ ('[lang|="en"]', ['lang-en', 'lang-en-gb', 'lang-en-us']),
+ ('p[lang|="fr"]', ['lang-fr']),
+ ('p[lang|="gb"]', []),
+ )
+
+ def test_attribute_exists(self):
+ self.assertSelectMultiple(
+ ('[rel]', ['l1', 'bob', 'me']),
+ ('link[rel]', ['l1']),
+ ('a[rel]', ['bob', 'me']),
+ ('[lang]', ['lang-en', 'lang-en-gb', 'lang-en-us', 'lang-fr']),
+ ('p[class]', ['p1', 'pmulti']),
+ ('[blah]', []),
+ ('p[blah]', []),
+ )
+
+ def test_nth_of_type(self):
+ # Try to select first paragraph
+ els = self.soup.select('div#inner p:nth-of-type(1)')
+ self.assertEqual(len(els), 1)
+ self.assertEqual(els[0].string, u'Some text')
+
+ # Try to select third paragraph
+ els = self.soup.select('div#inner p:nth-of-type(3)')
+ self.assertEqual(len(els), 1)
+ self.assertEqual(els[0].string, u'Another')
+
+ # Try to select (non-existent!) fourth paragraph
+ els = self.soup.select('div#inner p:nth-of-type(4)')
+ self.assertEqual(len(els), 0)
+
+ # Pass in an invalid value.
+ self.assertRaises(
+ ValueError, self.soup.select, 'div p:nth-of-type(0)')
+
+ def test_nth_of_type_direct_descendant(self):
+ els = self.soup.select('div#inner > p:nth-of-type(1)')
+ self.assertEqual(len(els), 1)
+ self.assertEqual(els[0].string, u'Some text')
+
+ def test_id_child_selector_nth_of_type(self):
+ self.assertSelects('#inner > p:nth-of-type(2)', ['p1'])
+
+ def test_select_on_element(self):
+ # Other tests operate on the tree; this operates on an element
+ # within the tree.
+ inner = self.soup.find("div", id="main")
+ selected = inner.select("div")
+ # The <div id="inner"> tag was selected. The <div id="footer">
+ # tag was not.
+ self.assertSelectsIDs(selected, ['inner'])
+
+ def test_overspecified_child_id(self):
+ self.assertSelects(".fancy #inner", ['inner'])
+ self.assertSelects(".normal #inner", [])
+
+ def test_adjacent_sibling_selector(self):
+ self.assertSelects('#p1 + h2', ['header2'])
+ self.assertSelects('#p1 + h2 + p', ['pmulti'])
+ self.assertSelects('#p1 + #header2 + .class1', ['pmulti'])
+ self.assertEqual([], self.soup.select('#p1 + p'))
+
+ def test_general_sibling_selector(self):
+ self.assertSelects('#p1 ~ h2', ['header2', 'header3'])
+ self.assertSelects('#p1 ~ #header2', ['header2'])
+ self.assertSelects('#p1 ~ h2 + a', ['me'])
+ self.assertSelects('#p1 ~ h2 + [rel="me"]', ['me'])
+ self.assertEqual([], self.soup.select('#inner ~ h2'))
+
+ def test_dangling_combinator(self):
+ self.assertRaises(ValueError, self.soup.select, 'h1 >')
+
+ def test_sibling_combinator_wont_select_same_tag_twice(self):
+ self.assertSelects('p[lang] ~ p', ['lang-en-gb', 'lang-en-us', 'lang-fr'])
diff --git a/bitbake/lib/prserv/serv.py b/bitbake/lib/prserv/serv.py
index 25eb46a410..a7639c8c2d 100644
--- a/bitbake/lib/prserv/serv.py
+++ b/bitbake/lib/prserv/serv.py
@@ -77,12 +77,15 @@ class PRServer(SimpleXMLRPCServer):
"""
iter_count = 1
- # With 60 iterations between syncs and a 0.5 second timeout between
- # iterations, this will sync if dirty every ~30 seconds.
+ # 60 iterations between syncs or sync if dirty every ~30 seconds
iterations_between_sync = 60
- while True:
- (request, client_address) = self.requestqueue.get()
+ while not self.quit:
+ try:
+ (request, client_address) = self.requestqueue.get(True, 30)
+ except Queue.Empty:
+ self.table.sync_if_dirty()
+ continue
try:
self.finish_request(request, client_address)
self.shutdown_request(request)
@@ -93,6 +96,7 @@ class PRServer(SimpleXMLRPCServer):
self.handle_error(request, client_address)
self.shutdown_request(request)
self.table.sync()
+ self.table.sync_if_dirty()
def process_request(self, request, client_address):
self.requestqueue.put((request, client_address))
@@ -137,7 +141,7 @@ class PRServer(SimpleXMLRPCServer):
self.handlerthread.start()
while not self.quit:
self.handle_request()
-
+ self.handlerthread.join()
self.table.sync()
logger.info("PRServer: stopping...")
self.server_close()
diff --git a/bitbake/lib/pyinotify.py b/bitbake/lib/pyinotify.py
new file mode 100644
index 0000000000..2dae002118
--- /dev/null
+++ b/bitbake/lib/pyinotify.py
@@ -0,0 +1,2416 @@
+#!/usr/bin/env python
+
+# pyinotify.py - python interface to inotify
+# Copyright (c) 2005-2015 Sebastien Martini <seb@dbzteam.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+"""
+pyinotify
+
+@author: Sebastien Martini
+@license: MIT License
+@contact: seb@dbzteam.org
+"""
+
+class PyinotifyError(Exception):
+ """Indicates exceptions raised by a Pyinotify class."""
+ pass
+
+
+class UnsupportedPythonVersionError(PyinotifyError):
+ """
+ Raised on unsupported Python versions.
+ """
+ def __init__(self, version):
+ """
+ @param version: Current Python version
+ @type version: string
+ """
+ err = 'Python %s is unsupported, requires at least Python 2.4'
+ PyinotifyError.__init__(self, err % version)
+
+
+# Check Python version
+import sys
+if sys.version_info < (2, 4):
+ raise UnsupportedPythonVersionError(sys.version)
+
+
+# Import directives
+import threading
+import os
+import select
+import struct
+import fcntl
+import errno
+import termios
+import array
+import logging
+import atexit
+from collections import deque
+from datetime import datetime, timedelta
+import time
+import re
+import asyncore
+import subprocess
+
+try:
+ from functools import reduce
+except ImportError:
+ pass # Will fail on Python 2.4 which has reduce() builtin anyway.
+
+try:
+ from glob import iglob as glob
+except ImportError:
+ # Python 2.4 does not have glob.iglob().
+ from glob import glob as glob
+
+try:
+ import ctypes
+ import ctypes.util
+except ImportError:
+ ctypes = None
+
+try:
+ import inotify_syscalls
+except ImportError:
+ inotify_syscalls = None
+
+
+__author__ = "seb@dbzteam.org (Sebastien Martini)"
+
+__version__ = "0.9.5"
+
+__metaclass__ = type # Use new-style classes by default
+
+
+# Compatibity mode: set to True to improve compatibility with
+# Pyinotify 0.7.1. Do not set this variable yourself, call the
+# function compatibility_mode() instead.
+COMPATIBILITY_MODE = False
+
+
+class InotifyBindingNotFoundError(PyinotifyError):
+ """
+ Raised when no inotify support couldn't be found.
+ """
+ def __init__(self):
+ err = "Couldn't find any inotify binding"
+ PyinotifyError.__init__(self, err)
+
+
+class INotifyWrapper:
+ """
+ Abstract class wrapping access to inotify's functions. This is an
+ internal class.
+ """
+ @staticmethod
+ def create():
+ # First, try to use ctypes.
+ if ctypes:
+ inotify = _CtypesLibcINotifyWrapper()
+ if inotify.init():
+ return inotify
+ # Second, see if C extension is compiled.
+ if inotify_syscalls:
+ inotify = _INotifySyscallsWrapper()
+ if inotify.init():
+ return inotify
+
+ def get_errno(self):
+ """
+ Return None is no errno code is available.
+ """
+ return self._get_errno()
+
+ def str_errno(self):
+ code = self.get_errno()
+ if code is None:
+ return 'Errno: no errno support'
+ return 'Errno=%s (%s)' % (os.strerror(code), errno.errorcode[code])
+
+ def inotify_init(self):
+ return self._inotify_init()
+
+ def inotify_add_watch(self, fd, pathname, mask):
+ # Unicode strings must be encoded to string prior to calling this
+ # method.
+ assert isinstance(pathname, str)
+ return self._inotify_add_watch(fd, pathname, mask)
+
+ def inotify_rm_watch(self, fd, wd):
+ return self._inotify_rm_watch(fd, wd)
+
+
+class _INotifySyscallsWrapper(INotifyWrapper):
+ def __init__(self):
+ # Stores the last errno value.
+ self._last_errno = None
+
+ def init(self):
+ assert inotify_syscalls
+ return True
+
+ def _get_errno(self):
+ return self._last_errno
+
+ def _inotify_init(self):
+ try:
+ fd = inotify_syscalls.inotify_init()
+ except IOError, err:
+ self._last_errno = err.errno
+ return -1
+ return fd
+
+ def _inotify_add_watch(self, fd, pathname, mask):
+ try:
+ wd = inotify_syscalls.inotify_add_watch(fd, pathname, mask)
+ except IOError, err:
+ self._last_errno = err.errno
+ return -1
+ return wd
+
+ def _inotify_rm_watch(self, fd, wd):
+ try:
+ ret = inotify_syscalls.inotify_rm_watch(fd, wd)
+ except IOError, err:
+ self._last_errno = err.errno
+ return -1
+ return ret
+
+
+class _CtypesLibcINotifyWrapper(INotifyWrapper):
+ def __init__(self):
+ self._libc = None
+ self._get_errno_func = None
+
+ def init(self):
+ assert ctypes
+
+ try_libc_name = 'c'
+ if sys.platform.startswith('freebsd'):
+ try_libc_name = 'inotify'
+
+ libc_name = None
+ try:
+ libc_name = ctypes.util.find_library(try_libc_name)
+ except (OSError, IOError):
+ pass # Will attemp to load it with None anyway.
+
+ if sys.version_info >= (2, 6):
+ self._libc = ctypes.CDLL(libc_name, use_errno=True)
+ self._get_errno_func = ctypes.get_errno
+ else:
+ self._libc = ctypes.CDLL(libc_name)
+ try:
+ location = self._libc.__errno_location
+ location.restype = ctypes.POINTER(ctypes.c_int)
+ self._get_errno_func = lambda: location().contents.value
+ except AttributeError:
+ pass
+
+ # Eventually check that libc has needed inotify bindings.
+ if (not hasattr(self._libc, 'inotify_init') or
+ not hasattr(self._libc, 'inotify_add_watch') or
+ not hasattr(self._libc, 'inotify_rm_watch')):
+ return False
+
+ self._libc.inotify_init.argtypes = []
+ self._libc.inotify_init.restype = ctypes.c_int
+ self._libc.inotify_add_watch.argtypes = [ctypes.c_int, ctypes.c_char_p,
+ ctypes.c_uint32]
+ self._libc.inotify_add_watch.restype = ctypes.c_int
+ self._libc.inotify_rm_watch.argtypes = [ctypes.c_int, ctypes.c_int]
+ self._libc.inotify_rm_watch.restype = ctypes.c_int
+ return True
+
+ def _get_errno(self):
+ if self._get_errno_func is not None:
+ return self._get_errno_func()
+ return None
+
+ def _inotify_init(self):
+ assert self._libc is not None
+ return self._libc.inotify_init()
+
+ def _inotify_add_watch(self, fd, pathname, mask):
+ assert self._libc is not None
+ pathname = ctypes.create_string_buffer(pathname)
+ return self._libc.inotify_add_watch(fd, pathname, mask)
+
+ def _inotify_rm_watch(self, fd, wd):
+ assert self._libc is not None
+ return self._libc.inotify_rm_watch(fd, wd)
+
+ def _sysctl(self, *args):
+ assert self._libc is not None
+ return self._libc.sysctl(*args)
+
+
+# Logging
+def logger_init():
+ """Initialize logger instance."""
+ log = logging.getLogger("pyinotify")
+ console_handler = logging.StreamHandler()
+ console_handler.setFormatter(
+ logging.Formatter("[%(asctime)s %(name)s %(levelname)s] %(message)s"))
+ log.addHandler(console_handler)
+ log.setLevel(20)
+ return log
+
+log = logger_init()
+
+
+# inotify's variables
+class SysCtlINotify:
+ """
+ Access (read, write) inotify's variables through sysctl. Usually it
+ requires administrator rights to update them.
+
+ Examples:
+ - Read max_queued_events attribute: myvar = max_queued_events.value
+ - Update max_queued_events attribute: max_queued_events.value = 42
+ """
+
+ inotify_attrs = {'max_user_instances': 1,
+ 'max_user_watches': 2,
+ 'max_queued_events': 3}
+
+ def __init__(self, attrname, inotify_wrapper):
+ # FIXME: right now only supporting ctypes
+ assert ctypes
+ self._attrname = attrname
+ self._inotify_wrapper = inotify_wrapper
+ sino = ctypes.c_int * 3
+ self._attr = sino(5, 20, SysCtlINotify.inotify_attrs[attrname])
+
+ @staticmethod
+ def create(attrname):
+ """
+ Factory method instanciating and returning the right wrapper.
+ """
+ # FIXME: right now only supporting ctypes
+ if ctypes is None:
+ return None
+ inotify_wrapper = _CtypesLibcINotifyWrapper()
+ if not inotify_wrapper.init():
+ return None
+ return SysCtlINotify(attrname, inotify_wrapper)
+
+ def get_val(self):
+ """
+ Gets attribute's value. Raises OSError if the operation failed.
+
+ @return: stored value.
+ @rtype: int
+ """
+ oldv = ctypes.c_int(0)
+ size = ctypes.c_int(ctypes.sizeof(oldv))
+ sysctl = self._inotify_wrapper._sysctl
+ res = sysctl(self._attr, 3,
+ ctypes.c_voidp(ctypes.addressof(oldv)),
+ ctypes.addressof(size),
+ None, 0)
+ if res == -1:
+ raise OSError(self._inotify_wrapper.get_errno(),
+ self._inotify_wrapper.str_errno())
+ return oldv.value
+
+ def set_val(self, nval):
+ """
+ Sets new attribute's value. Raises OSError if the operation failed.
+
+ @param nval: replaces current value by nval.
+ @type nval: int
+ """
+ oldv = ctypes.c_int(0)
+ sizeo = ctypes.c_int(ctypes.sizeof(oldv))
+ newv = ctypes.c_int(nval)
+ sizen = ctypes.c_int(ctypes.sizeof(newv))
+ sysctl = self._inotify_wrapper._sysctl
+ res = sysctl(self._attr, 3,
+ ctypes.c_voidp(ctypes.addressof(oldv)),
+ ctypes.addressof(sizeo),
+ ctypes.c_voidp(ctypes.addressof(newv)),
+ sizen)
+ if res == -1:
+ raise OSError(self._inotify_wrapper.get_errno(),
+ self._inotify_wrapper.str_errno())
+
+ value = property(get_val, set_val)
+
+ def __repr__(self):
+ return '<%s=%d>' % (self._attrname, self.get_val())
+
+
+# Inotify's variables
+#
+# FIXME: currently these variables are only accessible when ctypes is used,
+# otherwise there are set to None.
+#
+# read: myvar = max_queued_events.value
+# update: max_queued_events.value = 42
+#
+for attrname in ('max_queued_events', 'max_user_instances', 'max_user_watches'):
+ globals()[attrname] = SysCtlINotify.create(attrname)
+
+
+class EventsCodes:
+ """
+ Set of codes corresponding to each kind of events.
+ Some of these flags are used to communicate with inotify, whereas
+ the others are sent to userspace by inotify notifying some events.
+
+ @cvar IN_ACCESS: File was accessed.
+ @type IN_ACCESS: int
+ @cvar IN_MODIFY: File was modified.
+ @type IN_MODIFY: int
+ @cvar IN_ATTRIB: Metadata changed.
+ @type IN_ATTRIB: int
+ @cvar IN_CLOSE_WRITE: Writtable file was closed.
+ @type IN_CLOSE_WRITE: int
+ @cvar IN_CLOSE_NOWRITE: Unwrittable file closed.
+ @type IN_CLOSE_NOWRITE: int
+ @cvar IN_OPEN: File was opened.
+ @type IN_OPEN: int
+ @cvar IN_MOVED_FROM: File was moved from X.
+ @type IN_MOVED_FROM: int
+ @cvar IN_MOVED_TO: File was moved to Y.
+ @type IN_MOVED_TO: int
+ @cvar IN_CREATE: Subfile was created.
+ @type IN_CREATE: int
+ @cvar IN_DELETE: Subfile was deleted.
+ @type IN_DELETE: int
+ @cvar IN_DELETE_SELF: Self (watched item itself) was deleted.
+ @type IN_DELETE_SELF: int
+ @cvar IN_MOVE_SELF: Self (watched item itself) was moved.
+ @type IN_MOVE_SELF: int
+ @cvar IN_UNMOUNT: Backing fs was unmounted.
+ @type IN_UNMOUNT: int
+ @cvar IN_Q_OVERFLOW: Event queued overflowed.
+ @type IN_Q_OVERFLOW: int
+ @cvar IN_IGNORED: File was ignored.
+ @type IN_IGNORED: int
+ @cvar IN_ONLYDIR: only watch the path if it is a directory (new
+ in kernel 2.6.15).
+ @type IN_ONLYDIR: int
+ @cvar IN_DONT_FOLLOW: don't follow a symlink (new in kernel 2.6.15).
+ IN_ONLYDIR we can make sure that we don't watch
+ the target of symlinks.
+ @type IN_DONT_FOLLOW: int
+ @cvar IN_EXCL_UNLINK: Events are not generated for children after they
+ have been unlinked from the watched directory.
+ (new in kernel 2.6.36).
+ @type IN_EXCL_UNLINK: int
+ @cvar IN_MASK_ADD: add to the mask of an already existing watch (new
+ in kernel 2.6.14).
+ @type IN_MASK_ADD: int
+ @cvar IN_ISDIR: Event occurred against dir.
+ @type IN_ISDIR: int
+ @cvar IN_ONESHOT: Only send event once.
+ @type IN_ONESHOT: int
+ @cvar ALL_EVENTS: Alias for considering all of the events.
+ @type ALL_EVENTS: int
+ """
+
+ # The idea here is 'configuration-as-code' - this way, we get our nice class
+ # constants, but we also get nice human-friendly text mappings to do lookups
+ # against as well, for free:
+ FLAG_COLLECTIONS = {'OP_FLAGS': {
+ 'IN_ACCESS' : 0x00000001, # File was accessed
+ 'IN_MODIFY' : 0x00000002, # File was modified
+ 'IN_ATTRIB' : 0x00000004, # Metadata changed
+ 'IN_CLOSE_WRITE' : 0x00000008, # Writable file was closed
+ 'IN_CLOSE_NOWRITE' : 0x00000010, # Unwritable file closed
+ 'IN_OPEN' : 0x00000020, # File was opened
+ 'IN_MOVED_FROM' : 0x00000040, # File was moved from X
+ 'IN_MOVED_TO' : 0x00000080, # File was moved to Y
+ 'IN_CREATE' : 0x00000100, # Subfile was created
+ 'IN_DELETE' : 0x00000200, # Subfile was deleted
+ 'IN_DELETE_SELF' : 0x00000400, # Self (watched item itself)
+ # was deleted
+ 'IN_MOVE_SELF' : 0x00000800, # Self (watched item itself) was moved
+ },
+ 'EVENT_FLAGS': {
+ 'IN_UNMOUNT' : 0x00002000, # Backing fs was unmounted
+ 'IN_Q_OVERFLOW' : 0x00004000, # Event queued overflowed
+ 'IN_IGNORED' : 0x00008000, # File was ignored
+ },
+ 'SPECIAL_FLAGS': {
+ 'IN_ONLYDIR' : 0x01000000, # only watch the path if it is a
+ # directory
+ 'IN_DONT_FOLLOW' : 0x02000000, # don't follow a symlink
+ 'IN_EXCL_UNLINK' : 0x04000000, # exclude events on unlinked objects
+ 'IN_MASK_ADD' : 0x20000000, # add to the mask of an already
+ # existing watch
+ 'IN_ISDIR' : 0x40000000, # event occurred against dir
+ 'IN_ONESHOT' : 0x80000000, # only send event once
+ },
+ }
+
+ def maskname(mask):
+ """
+ Returns the event name associated to mask. IN_ISDIR is appended to
+ the result when appropriate. Note: only one event is returned, because
+ only one event can be raised at a given time.
+
+ @param mask: mask.
+ @type mask: int
+ @return: event name.
+ @rtype: str
+ """
+ ms = mask
+ name = '%s'
+ if mask & IN_ISDIR:
+ ms = mask - IN_ISDIR
+ name = '%s|IN_ISDIR'
+ return name % EventsCodes.ALL_VALUES[ms]
+
+ maskname = staticmethod(maskname)
+
+
+# So let's now turn the configuration into code
+EventsCodes.ALL_FLAGS = {}
+EventsCodes.ALL_VALUES = {}
+for flagc, valc in EventsCodes.FLAG_COLLECTIONS.items():
+ # Make the collections' members directly accessible through the
+ # class dictionary
+ setattr(EventsCodes, flagc, valc)
+
+ # Collect all the flags under a common umbrella
+ EventsCodes.ALL_FLAGS.update(valc)
+
+ # Make the individual masks accessible as 'constants' at globals() scope
+ # and masknames accessible by values.
+ for name, val in valc.items():
+ globals()[name] = val
+ EventsCodes.ALL_VALUES[val] = name
+
+
+# all 'normal' events
+ALL_EVENTS = reduce(lambda x, y: x | y, EventsCodes.OP_FLAGS.values())
+EventsCodes.ALL_FLAGS['ALL_EVENTS'] = ALL_EVENTS
+EventsCodes.ALL_VALUES[ALL_EVENTS] = 'ALL_EVENTS'
+
+
+class _Event:
+ """
+ Event structure, represent events raised by the system. This
+ is the base class and should be subclassed.
+
+ """
+ def __init__(self, dict_):
+ """
+ Attach attributes (contained in dict_) to self.
+
+ @param dict_: Set of attributes.
+ @type dict_: dictionary
+ """
+ for tpl in dict_.items():
+ setattr(self, *tpl)
+
+ def __repr__(self):
+ """
+ @return: Generic event string representation.
+ @rtype: str
+ """
+ s = ''
+ for attr, value in sorted(self.__dict__.items(), key=lambda x: x[0]):
+ if attr.startswith('_'):
+ continue
+ if attr == 'mask':
+ value = hex(getattr(self, attr))
+ elif isinstance(value, basestring) and not value:
+ value = "''"
+ s += ' %s%s%s' % (output_format.field_name(attr),
+ output_format.punctuation('='),
+ output_format.field_value(value))
+
+ s = '%s%s%s %s' % (output_format.punctuation('<'),
+ output_format.class_name(self.__class__.__name__),
+ s,
+ output_format.punctuation('>'))
+ return s
+
+ def __str__(self):
+ return repr(self)
+
+
+class _RawEvent(_Event):
+ """
+ Raw event, it contains only the informations provided by the system.
+ It doesn't infer anything.
+ """
+ def __init__(self, wd, mask, cookie, name):
+ """
+ @param wd: Watch Descriptor.
+ @type wd: int
+ @param mask: Bitmask of events.
+ @type mask: int
+ @param cookie: Cookie.
+ @type cookie: int
+ @param name: Basename of the file or directory against which the
+ event was raised in case where the watched directory
+ is the parent directory. None if the event was raised
+ on the watched item itself.
+ @type name: string or None
+ """
+ # Use this variable to cache the result of str(self), this object
+ # is immutable.
+ self._str = None
+ # name: remove trailing '\0'
+ d = {'wd': wd,
+ 'mask': mask,
+ 'cookie': cookie,
+ 'name': name.rstrip('\0')}
+ _Event.__init__(self, d)
+ log.debug(str(self))
+
+ def __str__(self):
+ if self._str is None:
+ self._str = _Event.__str__(self)
+ return self._str
+
+
+class Event(_Event):
+ """
+ This class contains all the useful informations about the observed
+ event. However, the presence of each field is not guaranteed and
+ depends on the type of event. In effect, some fields are irrelevant
+ for some kind of event (for example 'cookie' is meaningless for
+ IN_CREATE whereas it is mandatory for IN_MOVE_TO).
+
+ The possible fields are:
+ - wd (int): Watch Descriptor.
+ - mask (int): Mask.
+ - maskname (str): Readable event name.
+ - path (str): path of the file or directory being watched.
+ - name (str): Basename of the file or directory against which the
+ event was raised in case where the watched directory
+ is the parent directory. None if the event was raised
+ on the watched item itself. This field is always provided
+ even if the string is ''.
+ - pathname (str): Concatenation of 'path' and 'name'.
+ - src_pathname (str): Only present for IN_MOVED_TO events and only in
+ the case where IN_MOVED_FROM events are watched too. Holds the
+ source pathname from where pathname was moved from.
+ - cookie (int): Cookie.
+ - dir (bool): True if the event was raised against a directory.
+
+ """
+ def __init__(self, raw):
+ """
+ Concretely, this is the raw event plus inferred infos.
+ """
+ _Event.__init__(self, raw)
+ self.maskname = EventsCodes.maskname(self.mask)
+ if COMPATIBILITY_MODE:
+ self.event_name = self.maskname
+ try:
+ if self.name:
+ self.pathname = os.path.abspath(os.path.join(self.path,
+ self.name))
+ else:
+ self.pathname = os.path.abspath(self.path)
+ except AttributeError, err:
+ # Usually it is not an error some events are perfectly valids
+ # despite the lack of these attributes.
+ log.debug(err)
+
+
+class ProcessEventError(PyinotifyError):
+ """
+ ProcessEventError Exception. Raised on ProcessEvent error.
+ """
+ def __init__(self, err):
+ """
+ @param err: Exception error description.
+ @type err: string
+ """
+ PyinotifyError.__init__(self, err)
+
+
+class _ProcessEvent:
+ """
+ Abstract processing event class.
+ """
+ def __call__(self, event):
+ """
+ To behave like a functor the object must be callable.
+ This method is a dispatch method. Its lookup order is:
+ 1. process_MASKNAME method
+ 2. process_FAMILY_NAME method
+ 3. otherwise calls process_default
+
+ @param event: Event to be processed.
+ @type event: Event object
+ @return: By convention when used from the ProcessEvent class:
+ - Returning False or None (default value) means keep on
+ executing next chained functors (see chain.py example).
+ - Returning True instead means do not execute next
+ processing functions.
+ @rtype: bool
+ @raise ProcessEventError: Event object undispatchable,
+ unknown event.
+ """
+ stripped_mask = event.mask - (event.mask & IN_ISDIR)
+ maskname = EventsCodes.ALL_VALUES.get(stripped_mask)
+ if maskname is None:
+ raise ProcessEventError("Unknown mask 0x%08x" % stripped_mask)
+
+ # 1- look for process_MASKNAME
+ meth = getattr(self, 'process_' + maskname, None)
+ if meth is not None:
+ return meth(event)
+ # 2- look for process_FAMILY_NAME
+ meth = getattr(self, 'process_IN_' + maskname.split('_')[1], None)
+ if meth is not None:
+ return meth(event)
+ # 3- default call method process_default
+ return self.process_default(event)
+
+ def __repr__(self):
+ return '<%s>' % self.__class__.__name__
+
+
+class _SysProcessEvent(_ProcessEvent):
+ """
+ There is three kind of processing according to each event:
+
+ 1. special handling (deletion from internal container, bug, ...).
+ 2. default treatment: which is applied to the majority of events.
+ 3. IN_ISDIR is never sent alone, he is piggybacked with a standard
+ event, he is not processed as the others events, instead, its
+ value is captured and appropriately aggregated to dst event.
+ """
+ def __init__(self, wm, notifier):
+ """
+
+ @param wm: Watch Manager.
+ @type wm: WatchManager instance
+ @param notifier: Notifier.
+ @type notifier: Notifier instance
+ """
+ self._watch_manager = wm # watch manager
+ self._notifier = notifier # notifier
+ self._mv_cookie = {} # {cookie(int): (src_path(str), date), ...}
+ self._mv = {} # {src_path(str): (dst_path(str), date), ...}
+
+ def cleanup(self):
+ """
+ Cleanup (delete) old (>1mn) records contained in self._mv_cookie
+ and self._mv.
+ """
+ date_cur_ = datetime.now()
+ for seq in [self._mv_cookie, self._mv]:
+ for k in seq.keys():
+ if (date_cur_ - seq[k][1]) > timedelta(minutes=1):
+ log.debug('Cleanup: deleting entry %s', seq[k][0])
+ del seq[k]
+
+ def process_IN_CREATE(self, raw_event):
+ """
+ If the event affects a directory and the auto_add flag of the
+ targetted watch is set to True, a new watch is added on this
+ new directory, with the same attribute values than those of
+ this watch.
+ """
+ if raw_event.mask & IN_ISDIR:
+ watch_ = self._watch_manager.get_watch(raw_event.wd)
+ created_dir = os.path.join(watch_.path, raw_event.name)
+ if watch_.auto_add and not watch_.exclude_filter(created_dir):
+ addw = self._watch_manager.add_watch
+ # The newly monitored directory inherits attributes from its
+ # parent directory.
+ addw_ret = addw(created_dir, watch_.mask,
+ proc_fun=watch_.proc_fun,
+ rec=False, auto_add=watch_.auto_add,
+ exclude_filter=watch_.exclude_filter)
+
+ # Trick to handle mkdir -p /d1/d2/t3 where d1 is watched and
+ # d2 and t3 (directory or file) are created.
+ # Since the directory d2 is new, then everything inside it must
+ # also be new.
+ created_dir_wd = addw_ret.get(created_dir)
+ if ((created_dir_wd is not None) and (created_dir_wd > 0) and
+ os.path.isdir(created_dir)):
+ try:
+ for name in os.listdir(created_dir):
+ inner = os.path.join(created_dir, name)
+ if self._watch_manager.get_wd(inner) is not None:
+ continue
+ # Generate (simulate) creation events for sub-
+ # directories and files.
+ if os.path.isfile(inner):
+ # symlinks are handled as files.
+ flags = IN_CREATE
+ elif os.path.isdir(inner):
+ flags = IN_CREATE | IN_ISDIR
+ else:
+ # This path should not be taken.
+ continue
+ rawevent = _RawEvent(created_dir_wd, flags, 0, name)
+ self._notifier.append_event(rawevent)
+ except OSError, err:
+ msg = "process_IN_CREATE, invalid directory %s: %s"
+ log.debug(msg % (created_dir, str(err)))
+ return self.process_default(raw_event)
+
+ def process_IN_MOVED_FROM(self, raw_event):
+ """
+ Map the cookie with the source path (+ date for cleaning).
+ """
+ watch_ = self._watch_manager.get_watch(raw_event.wd)
+ path_ = watch_.path
+ src_path = os.path.normpath(os.path.join(path_, raw_event.name))
+ self._mv_cookie[raw_event.cookie] = (src_path, datetime.now())
+ return self.process_default(raw_event, {'cookie': raw_event.cookie})
+
+ def process_IN_MOVED_TO(self, raw_event):
+ """
+ Map the source path with the destination path (+ date for
+ cleaning).
+ """
+ watch_ = self._watch_manager.get_watch(raw_event.wd)
+ path_ = watch_.path
+ dst_path = os.path.normpath(os.path.join(path_, raw_event.name))
+ mv_ = self._mv_cookie.get(raw_event.cookie)
+ to_append = {'cookie': raw_event.cookie}
+ if mv_ is not None:
+ self._mv[mv_[0]] = (dst_path, datetime.now())
+ # Let's assume that IN_MOVED_FROM event is always queued before
+ # that its associated (they share a common cookie) IN_MOVED_TO
+ # event is queued itself. It is then possible in that scenario
+ # to provide as additional information to the IN_MOVED_TO event
+ # the original pathname of the moved file/directory.
+ to_append['src_pathname'] = mv_[0]
+ elif (raw_event.mask & IN_ISDIR and watch_.auto_add and
+ not watch_.exclude_filter(dst_path)):
+ # We got a diretory that's "moved in" from an unknown source and
+ # auto_add is enabled. Manually add watches to the inner subtrees.
+ # The newly monitored directory inherits attributes from its
+ # parent directory.
+ self._watch_manager.add_watch(dst_path, watch_.mask,
+ proc_fun=watch_.proc_fun,
+ rec=True, auto_add=True,
+ exclude_filter=watch_.exclude_filter)
+ return self.process_default(raw_event, to_append)
+
+ def process_IN_MOVE_SELF(self, raw_event):
+ """
+ STATUS: the following bug has been fixed in recent kernels (FIXME:
+ which version ?). Now it raises IN_DELETE_SELF instead.
+
+ Old kernels were bugged, this event raised when the watched item
+ were moved, so we had to update its path, but under some circumstances
+ it was impossible: if its parent directory and its destination
+ directory wasn't watched. The kernel (see include/linux/fsnotify.h)
+ doesn't bring us enough informations like the destination path of
+ moved items.
+ """
+ watch_ = self._watch_manager.get_watch(raw_event.wd)
+ src_path = watch_.path
+ mv_ = self._mv.get(src_path)
+ if mv_:
+ dest_path = mv_[0]
+ watch_.path = dest_path
+ # add the separator to the source path to avoid overlapping
+ # path issue when testing with startswith()
+ src_path += os.path.sep
+ src_path_len = len(src_path)
+ # The next loop renames all watches with src_path as base path.
+ # It seems that IN_MOVE_SELF does not provide IN_ISDIR information
+ # therefore the next loop is iterated even if raw_event is a file.
+ for w in self._watch_manager.watches.values():
+ if w.path.startswith(src_path):
+ # Note that dest_path is a normalized path.
+ w.path = os.path.join(dest_path, w.path[src_path_len:])
+ else:
+ log.error("The pathname '%s' of this watch %s has probably changed "
+ "and couldn't be updated, so it cannot be trusted "
+ "anymore. To fix this error move directories/files only "
+ "between watched parents directories, in this case e.g. "
+ "put a watch on '%s'.",
+ watch_.path, watch_,
+ os.path.normpath(os.path.join(watch_.path,
+ os.path.pardir)))
+ if not watch_.path.endswith('-unknown-path'):
+ watch_.path += '-unknown-path'
+ return self.process_default(raw_event)
+
+ def process_IN_Q_OVERFLOW(self, raw_event):
+ """
+ Only signal an overflow, most of the common flags are irrelevant
+ for this event (path, wd, name).
+ """
+ return Event({'mask': raw_event.mask})
+
+ def process_IN_IGNORED(self, raw_event):
+ """
+ The watch descriptor raised by this event is now ignored (forever),
+ it can be safely deleted from the watch manager dictionary.
+ After this event we can be sure that neither the event queue nor
+ the system will raise an event associated to this wd again.
+ """
+ event_ = self.process_default(raw_event)
+ self._watch_manager.del_watch(raw_event.wd)
+ return event_
+
+ def process_default(self, raw_event, to_append=None):
+ """
+ Commons handling for the followings events:
+
+ IN_ACCESS, IN_MODIFY, IN_ATTRIB, IN_CLOSE_WRITE, IN_CLOSE_NOWRITE,
+ IN_OPEN, IN_DELETE, IN_DELETE_SELF, IN_UNMOUNT.
+ """
+ watch_ = self._watch_manager.get_watch(raw_event.wd)
+ if raw_event.mask & (IN_DELETE_SELF | IN_MOVE_SELF):
+ # Unfornulately this information is not provided by the kernel
+ dir_ = watch_.dir
+ else:
+ dir_ = bool(raw_event.mask & IN_ISDIR)
+ dict_ = {'wd': raw_event.wd,
+ 'mask': raw_event.mask,
+ 'path': watch_.path,
+ 'name': raw_event.name,
+ 'dir': dir_}
+ if COMPATIBILITY_MODE:
+ dict_['is_dir'] = dir_
+ if to_append is not None:
+ dict_.update(to_append)
+ return Event(dict_)
+
+
+class ProcessEvent(_ProcessEvent):
+ """
+ Process events objects, can be specialized via subclassing, thus its
+ behavior can be overriden:
+
+ Note: you should not override __init__ in your subclass instead define
+ a my_init() method, this method will be called automatically from the
+ constructor of this class with its optionals parameters.
+
+ 1. Provide specialized individual methods, e.g. process_IN_DELETE for
+ processing a precise type of event (e.g. IN_DELETE in this case).
+ 2. Or/and provide methods for processing events by 'family', e.g.
+ process_IN_CLOSE method will process both IN_CLOSE_WRITE and
+ IN_CLOSE_NOWRITE events (if process_IN_CLOSE_WRITE and
+ process_IN_CLOSE_NOWRITE aren't defined though).
+ 3. Or/and override process_default for catching and processing all
+ the remaining types of events.
+ """
+ pevent = None
+
+ def __init__(self, pevent=None, **kargs):
+ """
+ Enable chaining of ProcessEvent instances.
+
+ @param pevent: Optional callable object, will be called on event
+ processing (before self).
+ @type pevent: callable
+ @param kargs: This constructor is implemented as a template method
+ delegating its optionals keyworded arguments to the
+ method my_init().
+ @type kargs: dict
+ """
+ self.pevent = pevent
+ self.my_init(**kargs)
+
+ def my_init(self, **kargs):
+ """
+ This method is called from ProcessEvent.__init__(). This method is
+ empty here and must be redefined to be useful. In effect, if you
+ need to specifically initialize your subclass' instance then you
+ just have to override this method in your subclass. Then all the
+ keyworded arguments passed to ProcessEvent.__init__() will be
+ transmitted as parameters to this method. Beware you MUST pass
+ keyword arguments though.
+
+ @param kargs: optional delegated arguments from __init__().
+ @type kargs: dict
+ """
+ pass
+
+ def __call__(self, event):
+ stop_chaining = False
+ if self.pevent is not None:
+ # By default methods return None so we set as guideline
+ # that methods asking for stop chaining must explicitely
+ # return non None or non False values, otherwise the default
+ # behavior will be to accept chain call to the corresponding
+ # local method.
+ stop_chaining = self.pevent(event)
+ if not stop_chaining:
+ return _ProcessEvent.__call__(self, event)
+
+ def nested_pevent(self):
+ return self.pevent
+
+ def process_IN_Q_OVERFLOW(self, event):
+ """
+ By default this method only reports warning messages, you can overredide
+ it by subclassing ProcessEvent and implement your own
+ process_IN_Q_OVERFLOW method. The actions you can take on receiving this
+ event is either to update the variable max_queued_events in order to
+ handle more simultaneous events or to modify your code in order to
+ accomplish a better filtering diminishing the number of raised events.
+ Because this method is defined, IN_Q_OVERFLOW will never get
+ transmitted as arguments to process_default calls.
+
+ @param event: IN_Q_OVERFLOW event.
+ @type event: dict
+ """
+ log.warning('Event queue overflowed.')
+
+ def process_default(self, event):
+ """
+ Default processing event method. By default does nothing. Subclass
+ ProcessEvent and redefine this method in order to modify its behavior.
+
+ @param event: Event to be processed. Can be of any type of events but
+ IN_Q_OVERFLOW events (see method process_IN_Q_OVERFLOW).
+ @type event: Event instance
+ """
+ pass
+
+
+class PrintAllEvents(ProcessEvent):
+ """
+ Dummy class used to print events strings representations. For instance this
+ class is used from command line to print all received events to stdout.
+ """
+ def my_init(self, out=None):
+ """
+ @param out: Where events will be written.
+ @type out: Object providing a valid file object interface.
+ """
+ if out is None:
+ out = sys.stdout
+ self._out = out
+
+ def process_default(self, event):
+ """
+ Writes event string representation to file object provided to
+ my_init().
+
+ @param event: Event to be processed. Can be of any type of events but
+ IN_Q_OVERFLOW events (see method process_IN_Q_OVERFLOW).
+ @type event: Event instance
+ """
+ self._out.write(str(event))
+ self._out.write('\n')
+ self._out.flush()
+
+
+class ChainIfTrue(ProcessEvent):
+ """
+ Makes conditional chaining depending on the result of the nested
+ processing instance.
+ """
+ def my_init(self, func):
+ """
+ Method automatically called from base class constructor.
+ """
+ self._func = func
+
+ def process_default(self, event):
+ return not self._func(event)
+
+
+class Stats(ProcessEvent):
+ """
+ Compute and display trivial statistics about processed events.
+ """
+ def my_init(self):
+ """
+ Method automatically called from base class constructor.
+ """
+ self._start_time = time.time()
+ self._stats = {}
+ self._stats_lock = threading.Lock()
+
+ def process_default(self, event):
+ """
+ Processes |event|.
+ """
+ self._stats_lock.acquire()
+ try:
+ events = event.maskname.split('|')
+ for event_name in events:
+ count = self._stats.get(event_name, 0)
+ self._stats[event_name] = count + 1
+ finally:
+ self._stats_lock.release()
+
+ def _stats_copy(self):
+ self._stats_lock.acquire()
+ try:
+ return self._stats.copy()
+ finally:
+ self._stats_lock.release()
+
+ def __repr__(self):
+ stats = self._stats_copy()
+
+ elapsed = int(time.time() - self._start_time)
+ elapsed_str = ''
+ if elapsed < 60:
+ elapsed_str = str(elapsed) + 'sec'
+ elif 60 <= elapsed < 3600:
+ elapsed_str = '%dmn%dsec' % (elapsed / 60, elapsed % 60)
+ elif 3600 <= elapsed < 86400:
+ elapsed_str = '%dh%dmn' % (elapsed / 3600, (elapsed % 3600) / 60)
+ elif elapsed >= 86400:
+ elapsed_str = '%dd%dh' % (elapsed / 86400, (elapsed % 86400) / 3600)
+ stats['ElapsedTime'] = elapsed_str
+
+ l = []
+ for ev, value in sorted(stats.items(), key=lambda x: x[0]):
+ l.append(' %s=%s' % (output_format.field_name(ev),
+ output_format.field_value(value)))
+ s = '<%s%s >' % (output_format.class_name(self.__class__.__name__),
+ ''.join(l))
+ return s
+
+ def dump(self, filename):
+ """
+ Dumps statistics.
+
+ @param filename: filename where stats will be dumped, filename is
+ created and must not exist prior to this call.
+ @type filename: string
+ """
+ flags = os.O_WRONLY|os.O_CREAT|os.O_NOFOLLOW|os.O_EXCL
+ fd = os.open(filename, flags, 0600)
+ os.write(fd, str(self))
+ os.close(fd)
+
+ def __str__(self, scale=45):
+ stats = self._stats_copy()
+ if not stats:
+ return ''
+
+ m = max(stats.values())
+ unity = float(scale) / m
+ fmt = '%%-26s%%-%ds%%s' % (len(output_format.field_value('@' * scale))
+ + 1)
+ def func(x):
+ return fmt % (output_format.field_name(x[0]),
+ output_format.field_value('@' * int(x[1] * unity)),
+ output_format.simple('%d' % x[1], 'yellow'))
+ s = '\n'.join(map(func, sorted(stats.items(), key=lambda x: x[0])))
+ return s
+
+
+class NotifierError(PyinotifyError):
+ """
+ Notifier Exception. Raised on Notifier error.
+
+ """
+ def __init__(self, err):
+ """
+ @param err: Exception string's description.
+ @type err: string
+ """
+ PyinotifyError.__init__(self, err)
+
+
+class Notifier:
+ """
+ Read notifications, process events.
+
+ """
+ def __init__(self, watch_manager, default_proc_fun=None, read_freq=0,
+ threshold=0, timeout=None):
+ """
+ Initialization. read_freq, threshold and timeout parameters are used
+ when looping.
+
+ @param watch_manager: Watch Manager.
+ @type watch_manager: WatchManager instance
+ @param default_proc_fun: Default processing method. If None, a new
+ instance of PrintAllEvents will be assigned.
+ @type default_proc_fun: instance of ProcessEvent
+ @param read_freq: if read_freq == 0, events are read asap,
+ if read_freq is > 0, this thread sleeps
+ max(0, read_freq - timeout) seconds. But if
+ timeout is None it may be different because
+ poll is blocking waiting for something to read.
+ @type read_freq: int
+ @param threshold: File descriptor will be read only if the accumulated
+ size to read becomes >= threshold. If != 0, you likely
+ want to use it in combination with an appropriate
+ value for read_freq because without that you would
+ keep looping without really reading anything and that
+ until the amount of events to read is >= threshold.
+ At least with read_freq set you might sleep.
+ @type threshold: int
+ @param timeout:
+ https://docs.python.org/3/library/select.html#polling-objects
+ @type timeout: int
+ """
+ # Watch Manager instance
+ self._watch_manager = watch_manager
+ # File descriptor
+ self._fd = self._watch_manager.get_fd()
+ # Poll object and registration
+ self._pollobj = select.poll()
+ self._pollobj.register(self._fd, select.POLLIN)
+ # This pipe is correctely initialized and used by ThreadedNotifier
+ self._pipe = (-1, -1)
+ # Event queue
+ self._eventq = deque()
+ # System processing functor, common to all events
+ self._sys_proc_fun = _SysProcessEvent(self._watch_manager, self)
+ # Default processing method
+ self._default_proc_fun = default_proc_fun
+ if default_proc_fun is None:
+ self._default_proc_fun = PrintAllEvents()
+ # Loop parameters
+ self._read_freq = read_freq
+ self._threshold = threshold
+ self._timeout = timeout
+ # Coalesce events option
+ self._coalesce = False
+ # set of str(raw_event), only used when coalesce option is True
+ self._eventset = set()
+
+ def append_event(self, event):
+ """
+ Append a raw event to the event queue.
+
+ @param event: An event.
+ @type event: _RawEvent instance.
+ """
+ self._eventq.append(event)
+
+ def proc_fun(self):
+ return self._default_proc_fun
+
+ def coalesce_events(self, coalesce=True):
+ """
+ Coalescing events. Events are usually processed by batchs, their size
+ depend on various factors. Thus, before processing them, events received
+ from inotify are aggregated in a fifo queue. If this coalescing
+ option is enabled events are filtered based on their unicity, only
+ unique events are enqueued, doublons are discarded. An event is unique
+ when the combination of its fields (wd, mask, cookie, name) is unique
+ among events of a same batch. After a batch of events is processed any
+ events is accepted again. By default this option is disabled, you have
+ to explictly call this function to turn it on.
+
+ @param coalesce: Optional new coalescing value. True by default.
+ @type coalesce: Bool
+ """
+ self._coalesce = coalesce
+ if not coalesce:
+ self._eventset.clear()
+
+ def check_events(self, timeout=None):
+ """
+ Check for new events available to read, blocks up to timeout
+ milliseconds.
+
+ @param timeout: If specified it overrides the corresponding instance
+ attribute _timeout.
+ @type timeout: int
+
+ @return: New events to read.
+ @rtype: bool
+ """
+ while True:
+ try:
+ # blocks up to 'timeout' milliseconds
+ if timeout is None:
+ timeout = self._timeout
+ ret = self._pollobj.poll(timeout)
+ except select.error, err:
+ if err[0] == errno.EINTR:
+ continue # interrupted, retry
+ else:
+ raise
+ else:
+ break
+
+ if not ret or (self._pipe[0] == ret[0][0]):
+ return False
+ # only one fd is polled
+ return ret[0][1] & select.POLLIN
+
+ def read_events(self):
+ """
+ Read events from device, build _RawEvents, and enqueue them.
+ """
+ buf_ = array.array('i', [0])
+ # get event queue size
+ if fcntl.ioctl(self._fd, termios.FIONREAD, buf_, 1) == -1:
+ return
+ queue_size = buf_[0]
+ if queue_size < self._threshold:
+ log.debug('(fd: %d) %d bytes available to read but threshold is '
+ 'fixed to %d bytes', self._fd, queue_size,
+ self._threshold)
+ return
+
+ try:
+ # Read content from file
+ r = os.read(self._fd, queue_size)
+ except Exception, msg:
+ raise NotifierError(msg)
+ log.debug('Event queue size: %d', queue_size)
+ rsum = 0 # counter
+ while rsum < queue_size:
+ s_size = 16
+ # Retrieve wd, mask, cookie and fname_len
+ wd, mask, cookie, fname_len = struct.unpack('iIII',
+ r[rsum:rsum+s_size])
+ # Retrieve name
+ fname, = struct.unpack('%ds' % fname_len,
+ r[rsum + s_size:rsum + s_size + fname_len])
+ rawevent = _RawEvent(wd, mask, cookie, fname)
+ if self._coalesce:
+ # Only enqueue new (unique) events.
+ raweventstr = str(rawevent)
+ if raweventstr not in self._eventset:
+ self._eventset.add(raweventstr)
+ self._eventq.append(rawevent)
+ else:
+ self._eventq.append(rawevent)
+ rsum += s_size + fname_len
+
+ def process_events(self):
+ """
+ Routine for processing events from queue by calling their
+ associated proccessing method (an instance of ProcessEvent).
+ It also does internal processings, to keep the system updated.
+ """
+ while self._eventq:
+ raw_event = self._eventq.popleft() # pop next event
+ if self._watch_manager.ignore_events:
+ log.debug("Event ignored: %s" % repr(raw_event))
+ continue
+ watch_ = self._watch_manager.get_watch(raw_event.wd)
+ if (watch_ is None) and not (raw_event.mask & IN_Q_OVERFLOW):
+ if not (raw_event.mask & IN_IGNORED):
+ # Not really sure how we ended up here, nor how we should
+ # handle these types of events and if it is appropriate to
+ # completly skip them (like we are doing here).
+ log.warning("Unable to retrieve Watch object associated to %s",
+ repr(raw_event))
+ continue
+ revent = self._sys_proc_fun(raw_event) # system processings
+ if watch_ and watch_.proc_fun:
+ watch_.proc_fun(revent) # user processings
+ else:
+ self._default_proc_fun(revent)
+ self._sys_proc_fun.cleanup() # remove olds MOVED_* events records
+ if self._coalesce:
+ self._eventset.clear()
+
+ def __daemonize(self, pid_file=None, stdin=os.devnull, stdout=os.devnull,
+ stderr=os.devnull):
+ """
+ @param pid_file: file where the pid will be written. If pid_file=None
+ the pid is written to
+ /var/run/<sys.argv[0]|pyinotify>.pid, if pid_file=False
+ no pid_file is written.
+ @param stdin:
+ @param stdout:
+ @param stderr: files associated to common streams.
+ """
+ if pid_file is None:
+ dirname = '/var/run/'
+ basename = os.path.basename(sys.argv[0]) or 'pyinotify'
+ pid_file = os.path.join(dirname, basename + '.pid')
+
+ if pid_file != False and os.path.lexists(pid_file):
+ err = 'Cannot daemonize: pid file %s already exists.' % pid_file
+ raise NotifierError(err)
+
+ def fork_daemon():
+ # Adapted from Chad J. Schroeder's recipe
+ # @see http://code.activestate.com/recipes/278731/
+ pid = os.fork()
+ if (pid == 0):
+ # parent 2
+ os.setsid()
+ pid = os.fork()
+ if (pid == 0):
+ # child
+ os.chdir('/')
+ os.umask(022)
+ else:
+ # parent 2
+ os._exit(0)
+ else:
+ # parent 1
+ os._exit(0)
+
+ fd_inp = os.open(stdin, os.O_RDONLY)
+ os.dup2(fd_inp, 0)
+ fd_out = os.open(stdout, os.O_WRONLY|os.O_CREAT, 0600)
+ os.dup2(fd_out, 1)
+ fd_err = os.open(stderr, os.O_WRONLY|os.O_CREAT, 0600)
+ os.dup2(fd_err, 2)
+
+ # Detach task
+ fork_daemon()
+
+ # Write pid
+ if pid_file != False:
+ flags = os.O_WRONLY|os.O_CREAT|os.O_NOFOLLOW|os.O_EXCL
+ fd_pid = os.open(pid_file, flags, 0600)
+ os.write(fd_pid, str(os.getpid()) + '\n')
+ os.close(fd_pid)
+ # Register unlink function
+ atexit.register(lambda : os.unlink(pid_file))
+
+ def _sleep(self, ref_time):
+ # Only consider sleeping if read_freq is > 0
+ if self._read_freq > 0:
+ cur_time = time.time()
+ sleep_amount = self._read_freq - (cur_time - ref_time)
+ if sleep_amount > 0:
+ log.debug('Now sleeping %d seconds', sleep_amount)
+ time.sleep(sleep_amount)
+
+ def loop(self, callback=None, daemonize=False, **args):
+ """
+ Events are read only one time every min(read_freq, timeout)
+ seconds at best and only if the size to read is >= threshold.
+ After this method returns it must not be called again for the same
+ instance.
+
+ @param callback: Functor called after each event processing iteration.
+ Expects to receive the notifier object (self) as first
+ parameter. If this function returns True the loop is
+ immediately terminated otherwise the loop method keeps
+ looping.
+ @type callback: callable object or function
+ @param daemonize: This thread is daemonized if set to True.
+ @type daemonize: boolean
+ @param args: Optional and relevant only if daemonize is True. Remaining
+ keyworded arguments are directly passed to daemonize see
+ __daemonize() method. If pid_file=None or is set to a
+ pathname the caller must ensure the file does not exist
+ before this method is called otherwise an exception
+ pyinotify.NotifierError will be raised. If pid_file=False
+ it is still daemonized but the pid is not written in any
+ file.
+ @type args: various
+ """
+ if daemonize:
+ self.__daemonize(**args)
+
+ # Read and process events forever
+ while 1:
+ try:
+ self.process_events()
+ if (callback is not None) and (callback(self) is True):
+ break
+ ref_time = time.time()
+ # check_events is blocking
+ if self.check_events():
+ self._sleep(ref_time)
+ self.read_events()
+ except KeyboardInterrupt:
+ # Stop monitoring if sigint is caught (Control-C).
+ log.debug('Pyinotify stops monitoring.')
+ break
+ # Close internals
+ self.stop()
+
+ def stop(self):
+ """
+ Close inotify's instance (close its file descriptor).
+ It destroys all existing watches, pending events,...
+ This method is automatically called at the end of loop().
+ """
+ self._pollobj.unregister(self._fd)
+ os.close(self._fd)
+ self._sys_proc_fun = None
+
+
+class ThreadedNotifier(threading.Thread, Notifier):
+ """
+ This notifier inherits from threading.Thread for instanciating a separate
+ thread, and also inherits from Notifier, because it is a threaded notifier.
+
+ Note that every functionality provided by this class is also provided
+ through Notifier class. Moreover Notifier should be considered first because
+ it is not threaded and could be easily daemonized.
+ """
+ def __init__(self, watch_manager, default_proc_fun=None, read_freq=0,
+ threshold=0, timeout=None):
+ """
+ Initialization, initialize base classes. read_freq, threshold and
+ timeout parameters are used when looping.
+
+ @param watch_manager: Watch Manager.
+ @type watch_manager: WatchManager instance
+ @param default_proc_fun: Default processing method. See base class.
+ @type default_proc_fun: instance of ProcessEvent
+ @param read_freq: if read_freq == 0, events are read asap,
+ if read_freq is > 0, this thread sleeps
+ max(0, read_freq - timeout) seconds.
+ @type read_freq: int
+ @param threshold: File descriptor will be read only if the accumulated
+ size to read becomes >= threshold. If != 0, you likely
+ want to use it in combination with an appropriate
+ value set for read_freq because without that you would
+ keep looping without really reading anything and that
+ until the amount of events to read is >= threshold. At
+ least with read_freq you might sleep.
+ @type threshold: int
+ @param timeout:
+ https://docs.python.org/3/library/select.html#polling-objects
+ @type timeout: int
+ """
+ # Init threading base class
+ threading.Thread.__init__(self)
+ # Stop condition
+ self._stop_event = threading.Event()
+ # Init Notifier base class
+ Notifier.__init__(self, watch_manager, default_proc_fun, read_freq,
+ threshold, timeout)
+ # Create a new pipe used for thread termination
+ self._pipe = os.pipe()
+ self._pollobj.register(self._pipe[0], select.POLLIN)
+
+ def stop(self):
+ """
+ Stop notifier's loop. Stop notification. Join the thread.
+ """
+ self._stop_event.set()
+ os.write(self._pipe[1], 'stop')
+ threading.Thread.join(self)
+ Notifier.stop(self)
+ self._pollobj.unregister(self._pipe[0])
+ os.close(self._pipe[0])
+ os.close(self._pipe[1])
+
+ def loop(self):
+ """
+ Thread's main loop. Don't meant to be called by user directly.
+ Call inherited start() method instead.
+
+ Events are read only once time every min(read_freq, timeout)
+ seconds at best and only if the size of events to read is >= threshold.
+ """
+ # When the loop must be terminated .stop() is called, 'stop'
+ # is written to pipe fd so poll() returns and .check_events()
+ # returns False which make evaluate the While's stop condition
+ # ._stop_event.isSet() wich put an end to the thread's execution.
+ while not self._stop_event.isSet():
+ self.process_events()
+ ref_time = time.time()
+ if self.check_events():
+ self._sleep(ref_time)
+ self.read_events()
+
+ def run(self):
+ """
+ Start thread's loop: read and process events until the method
+ stop() is called.
+ Never call this method directly, instead call the start() method
+ inherited from threading.Thread, which then will call run() in
+ its turn.
+ """
+ self.loop()
+
+
+class AsyncNotifier(asyncore.file_dispatcher, Notifier):
+ """
+ This notifier inherits from asyncore.file_dispatcher in order to be able to
+ use pyinotify along with the asyncore framework.
+
+ """
+ def __init__(self, watch_manager, default_proc_fun=None, read_freq=0,
+ threshold=0, timeout=None, channel_map=None):
+ """
+ Initializes the async notifier. The only additional parameter is
+ 'channel_map' which is the optional asyncore private map. See
+ Notifier class for the meaning of the others parameters.
+
+ """
+ Notifier.__init__(self, watch_manager, default_proc_fun, read_freq,
+ threshold, timeout)
+ asyncore.file_dispatcher.__init__(self, self._fd, channel_map)
+
+ def handle_read(self):
+ """
+ When asyncore tells us we can read from the fd, we proceed processing
+ events. This method can be overridden for handling a notification
+ differently.
+
+ """
+ self.read_events()
+ self.process_events()
+
+
+class TornadoAsyncNotifier(Notifier):
+ """
+ Tornado ioloop adapter.
+
+ """
+ def __init__(self, watch_manager, ioloop, callback=None,
+ default_proc_fun=None, read_freq=0, threshold=0, timeout=None,
+ channel_map=None):
+ """
+ Note that if later you must call ioloop.close() be sure to let the
+ default parameter to all_fds=False.
+
+ See example tornado_notifier.py for an example using this notifier.
+
+ @param ioloop: Tornado's IO loop.
+ @type ioloop: tornado.ioloop.IOLoop instance.
+ @param callback: Functor called at the end of each call to handle_read
+ (IOLoop's read handler). Expects to receive the
+ notifier object (self) as single parameter.
+ @type callback: callable object or function
+ """
+ self.io_loop = ioloop
+ self.handle_read_callback = callback
+ Notifier.__init__(self, watch_manager, default_proc_fun, read_freq,
+ threshold, timeout)
+ ioloop.add_handler(self._fd, self.handle_read, ioloop.READ)
+
+ def stop(self):
+ self.io_loop.remove_handler(self._fd)
+ Notifier.stop(self)
+
+ def handle_read(self, *args, **kwargs):
+ """
+ See comment in AsyncNotifier.
+
+ """
+ self.read_events()
+ self.process_events()
+ if self.handle_read_callback is not None:
+ self.handle_read_callback(self)
+
+
+class AsyncioNotifier(Notifier):
+ """
+
+ asyncio/trollius event loop adapter.
+
+ """
+ def __init__(self, watch_manager, loop, callback=None,
+ default_proc_fun=None, read_freq=0, threshold=0, timeout=None):
+ """
+
+ See examples/asyncio_notifier.py for an example usage.
+
+ @param loop: asyncio or trollius event loop instance.
+ @type loop: asyncio.BaseEventLoop or trollius.BaseEventLoop instance.
+ @param callback: Functor called at the end of each call to handle_read.
+ Expects to receive the notifier object (self) as
+ single parameter.
+ @type callback: callable object or function
+
+ """
+ self.loop = loop
+ self.handle_read_callback = callback
+ Notifier.__init__(self, watch_manager, default_proc_fun, read_freq,
+ threshold, timeout)
+ loop.add_reader(self._fd, self.handle_read)
+
+ def stop(self):
+ self.loop.remove_reader(self._fd)
+ Notifier.stop(self)
+
+ def handle_read(self, *args, **kwargs):
+ self.read_events()
+ self.process_events()
+ if self.handle_read_callback is not None:
+ self.handle_read_callback(self)
+
+
+class Watch:
+ """
+ Represent a watch, i.e. a file or directory being watched.
+
+ """
+ __slots__ = ('wd', 'path', 'mask', 'proc_fun', 'auto_add',
+ 'exclude_filter', 'dir')
+
+ def __init__(self, wd, path, mask, proc_fun, auto_add, exclude_filter):
+ """
+ Initializations.
+
+ @param wd: Watch descriptor.
+ @type wd: int
+ @param path: Path of the file or directory being watched.
+ @type path: str
+ @param mask: Mask.
+ @type mask: int
+ @param proc_fun: Processing callable object.
+ @type proc_fun:
+ @param auto_add: Automatically add watches on new directories.
+ @type auto_add: bool
+ @param exclude_filter: Boolean function, used to exclude new
+ directories from being automatically watched.
+ See WatchManager.__init__
+ @type exclude_filter: callable object
+ """
+ self.wd = wd
+ self.path = path
+ self.mask = mask
+ self.proc_fun = proc_fun
+ self.auto_add = auto_add
+ self.exclude_filter = exclude_filter
+ self.dir = os.path.isdir(self.path)
+
+ def __repr__(self):
+ """
+ @return: String representation.
+ @rtype: str
+ """
+ s = ' '.join(['%s%s%s' % (output_format.field_name(attr),
+ output_format.punctuation('='),
+ output_format.field_value(getattr(self,
+ attr))) \
+ for attr in self.__slots__ if not attr.startswith('_')])
+
+ s = '%s%s %s %s' % (output_format.punctuation('<'),
+ output_format.class_name(self.__class__.__name__),
+ s,
+ output_format.punctuation('>'))
+ return s
+
+
+class ExcludeFilter:
+ """
+ ExcludeFilter is an exclusion filter.
+
+ """
+ def __init__(self, arg_lst):
+ """
+ Examples:
+ ef1 = ExcludeFilter(["/etc/rc.*", "/etc/hostname"])
+ ef2 = ExcludeFilter("/my/path/exclude.lst")
+ Where exclude.lst contains:
+ /etc/rc.*
+ /etc/hostname
+
+ Note: it is not possible to exclude a file if its encapsulating
+ directory is itself watched. See this issue for more details
+ https://github.com/seb-m/pyinotify/issues/31
+
+ @param arg_lst: is either a list of patterns or a filename from which
+ patterns will be loaded.
+ @type arg_lst: list of str or str
+ """
+ if isinstance(arg_lst, str):
+ lst = self._load_patterns_from_file(arg_lst)
+ elif isinstance(arg_lst, list):
+ lst = arg_lst
+ else:
+ raise TypeError
+
+ self._lregex = []
+ for regex in lst:
+ self._lregex.append(re.compile(regex, re.UNICODE))
+
+ def _load_patterns_from_file(self, filename):
+ lst = []
+ file_obj = file(filename, 'r')
+ try:
+ for line in file_obj.readlines():
+ # Trim leading an trailing whitespaces
+ pattern = line.strip()
+ if not pattern or pattern.startswith('#'):
+ continue
+ lst.append(pattern)
+ finally:
+ file_obj.close()
+ return lst
+
+ def _match(self, regex, path):
+ return regex.match(path) is not None
+
+ def __call__(self, path):
+ """
+ @param path: Path to match against provided regexps.
+ @type path: str
+ @return: Return True if path has been matched and should
+ be excluded, False otherwise.
+ @rtype: bool
+ """
+ for regex in self._lregex:
+ if self._match(regex, path):
+ return True
+ return False
+
+
+class WatchManagerError(Exception):
+ """
+ WatchManager Exception. Raised on error encountered on watches
+ operations.
+
+ """
+ def __init__(self, msg, wmd):
+ """
+ @param msg: Exception string's description.
+ @type msg: string
+ @param wmd: This dictionary contains the wd assigned to paths of the
+ same call for which watches were successfully added.
+ @type wmd: dict
+ """
+ self.wmd = wmd
+ Exception.__init__(self, msg)
+
+
+class WatchManager:
+ """
+ Provide operations for watching files and directories. Its internal
+ dictionary is used to reference watched items. When used inside
+ threaded code, one must instanciate as many WatchManager instances as
+ there are ThreadedNotifier instances.
+
+ """
+ def __init__(self, exclude_filter=lambda path: False):
+ """
+ Initialization: init inotify, init watch manager dictionary.
+ Raise OSError if initialization fails, raise InotifyBindingNotFoundError
+ if no inotify binding was found (through ctypes or from direct access to
+ syscalls).
+
+ @param exclude_filter: boolean function, returns True if current
+ path must be excluded from being watched.
+ Convenient for providing a common exclusion
+ filter for every call to add_watch.
+ @type exclude_filter: callable object
+ """
+ self._ignore_events = False
+ self._exclude_filter = exclude_filter
+ self._wmd = {} # watch dict key: watch descriptor, value: watch
+
+ self._inotify_wrapper = INotifyWrapper.create()
+ if self._inotify_wrapper is None:
+ raise InotifyBindingNotFoundError()
+
+ self._fd = self._inotify_wrapper.inotify_init() # file descriptor
+ if self._fd < 0:
+ err = 'Cannot initialize new instance of inotify, %s'
+ raise OSError(err % self._inotify_wrapper.str_errno())
+
+ def close(self):
+ """
+ Close inotify's file descriptor, this action will also automatically
+ remove (i.e. stop watching) all its associated watch descriptors.
+ After a call to this method the WatchManager's instance become useless
+ and cannot be reused, a new instance must then be instanciated. It
+ makes sense to call this method in few situations for instance if
+ several independant WatchManager must be instanciated or if all watches
+ must be removed and no other watches need to be added.
+ """
+ os.close(self._fd)
+
+ def get_fd(self):
+ """
+ Return assigned inotify's file descriptor.
+
+ @return: File descriptor.
+ @rtype: int
+ """
+ return self._fd
+
+ def get_watch(self, wd):
+ """
+ Get watch from provided watch descriptor wd.
+
+ @param wd: Watch descriptor.
+ @type wd: int
+ """
+ return self._wmd.get(wd)
+
+ def del_watch(self, wd):
+ """
+ Remove watch entry associated to watch descriptor wd.
+
+ @param wd: Watch descriptor.
+ @type wd: int
+ """
+ try:
+ del self._wmd[wd]
+ except KeyError, err:
+ log.error('Cannot delete unknown watch descriptor %s' % str(err))
+
+ @property
+ def watches(self):
+ """
+ Get a reference on the internal watch manager dictionary.
+
+ @return: Internal watch manager dictionary.
+ @rtype: dict
+ """
+ return self._wmd
+
+ def __format_path(self, path):
+ """
+ Format path to its internal (stored in watch manager) representation.
+ """
+ # Unicode strings are converted back to strings, because it seems
+ # that inotify_add_watch from ctypes does not work well when
+ # it receives an ctypes.create_unicode_buffer instance as argument.
+ # Therefore even wd are indexed with bytes string and not with
+ # unicode paths.
+ if isinstance(path, unicode):
+ path = path.encode(sys.getfilesystemencoding())
+ return os.path.normpath(path)
+
+ def __add_watch(self, path, mask, proc_fun, auto_add, exclude_filter):
+ """
+ Add a watch on path, build a Watch object and insert it in the
+ watch manager dictionary. Return the wd value.
+ """
+ path = self.__format_path(path)
+ if auto_add and not mask & IN_CREATE:
+ mask |= IN_CREATE
+ wd = self._inotify_wrapper.inotify_add_watch(self._fd, path, mask)
+ if wd < 0:
+ return wd
+ watch = Watch(wd=wd, path=path, mask=mask, proc_fun=proc_fun,
+ auto_add=auto_add, exclude_filter=exclude_filter)
+ self._wmd[wd] = watch
+ log.debug('New %s', watch)
+ return wd
+
+ def __glob(self, path, do_glob):
+ if do_glob:
+ return glob(path)
+ else:
+ return [path]
+
+ def add_watch(self, path, mask, proc_fun=None, rec=False,
+ auto_add=False, do_glob=False, quiet=True,
+ exclude_filter=None):
+ """
+ Add watch(s) on the provided |path|(s) with associated |mask| flag
+ value and optionally with a processing |proc_fun| function and
+ recursive flag |rec| set to True.
+ Ideally |path| components should not be unicode objects. Note that
+ although unicode paths are accepted there are converted to byte
+ strings before a watch is put on that path. The encoding used for
+ converting the unicode object is given by sys.getfilesystemencoding().
+ If |path| si already watched it is ignored, but if it is called with
+ option rec=True a watch is put on each one of its not-watched
+ subdirectory.
+
+ @param path: Path to watch, the path can either be a file or a
+ directory. Also accepts a sequence (list) of paths.
+ @type path: string or list of strings
+ @param mask: Bitmask of events.
+ @type mask: int
+ @param proc_fun: Processing object.
+ @type proc_fun: function or ProcessEvent instance or instance of
+ one of its subclasses or callable object.
+ @param rec: Recursively add watches from path on all its
+ subdirectories, set to False by default (doesn't
+ follows symlinks in any case).
+ @type rec: bool
+ @param auto_add: Automatically add watches on newly created
+ directories in watched parent |path| directory.
+ If |auto_add| is True, IN_CREATE is ored with |mask|
+ when the watch is added.
+ @type auto_add: bool
+ @param do_glob: Do globbing on pathname (see standard globbing
+ module for more informations).
+ @type do_glob: bool
+ @param quiet: if False raises a WatchManagerError exception on
+ error. See example not_quiet.py.
+ @type quiet: bool
+ @param exclude_filter: predicate (boolean function), which returns
+ True if the current path must be excluded
+ from being watched. This argument has
+ precedence over exclude_filter passed to
+ the class' constructor.
+ @type exclude_filter: callable object
+ @return: dict of paths associated to watch descriptors. A wd value
+ is positive if the watch was added sucessfully,
+ otherwise the value is negative. If the path was invalid
+ or was already watched it is not included into this returned
+ dictionary.
+ @rtype: dict of {str: int}
+ """
+ ret_ = {} # return {path: wd, ...}
+
+ if exclude_filter is None:
+ exclude_filter = self._exclude_filter
+
+ # normalize args as list elements
+ for npath in self.__format_param(path):
+ # unix pathname pattern expansion
+ for apath in self.__glob(npath, do_glob):
+ # recursively list subdirs according to rec param
+ for rpath in self.__walk_rec(apath, rec):
+ if not exclude_filter(rpath):
+ wd = ret_[rpath] = self.__add_watch(rpath, mask,
+ proc_fun,
+ auto_add,
+ exclude_filter)
+ if wd < 0:
+ err = ('add_watch: cannot watch %s WD=%d, %s' % \
+ (rpath, wd,
+ self._inotify_wrapper.str_errno()))
+ if quiet:
+ log.error(err)
+ else:
+ raise WatchManagerError(err, ret_)
+ else:
+ # Let's say -2 means 'explicitely excluded
+ # from watching'.
+ ret_[rpath] = -2
+ return ret_
+
+ def __get_sub_rec(self, lpath):
+ """
+ Get every wd from self._wmd if its path is under the path of
+ one (at least) of those in lpath. Doesn't follow symlinks.
+
+ @param lpath: list of watch descriptor
+ @type lpath: list of int
+ @return: list of watch descriptor
+ @rtype: list of int
+ """
+ for d in lpath:
+ root = self.get_path(d)
+ if root is not None:
+ # always keep root
+ yield d
+ else:
+ # if invalid
+ continue
+
+ # nothing else to expect
+ if not os.path.isdir(root):
+ continue
+
+ # normalization
+ root = os.path.normpath(root)
+ # recursion
+ lend = len(root)
+ for iwd in self._wmd.items():
+ cur = iwd[1].path
+ pref = os.path.commonprefix([root, cur])
+ if root == os.sep or (len(pref) == lend and \
+ len(cur) > lend and \
+ cur[lend] == os.sep):
+ yield iwd[1].wd
+
+ def update_watch(self, wd, mask=None, proc_fun=None, rec=False,
+ auto_add=False, quiet=True):
+ """
+ Update existing watch descriptors |wd|. The |mask| value, the
+ processing object |proc_fun|, the recursive param |rec| and the
+ |auto_add| and |quiet| flags can all be updated.
+
+ @param wd: Watch Descriptor to update. Also accepts a list of
+ watch descriptors.
+ @type wd: int or list of int
+ @param mask: Optional new bitmask of events.
+ @type mask: int
+ @param proc_fun: Optional new processing function.
+ @type proc_fun: function or ProcessEvent instance or instance of
+ one of its subclasses or callable object.
+ @param rec: Optionally adds watches recursively on all
+ subdirectories contained into |wd| directory.
+ @type rec: bool
+ @param auto_add: Automatically adds watches on newly created
+ directories in the watch's path corresponding to |wd|.
+ If |auto_add| is True, IN_CREATE is ored with |mask|
+ when the watch is updated.
+ @type auto_add: bool
+ @param quiet: If False raises a WatchManagerError exception on
+ error. See example not_quiet.py
+ @type quiet: bool
+ @return: dict of watch descriptors associated to booleans values.
+ True if the corresponding wd has been successfully
+ updated, False otherwise.
+ @rtype: dict of {int: bool}
+ """
+ lwd = self.__format_param(wd)
+ if rec:
+ lwd = self.__get_sub_rec(lwd)
+
+ ret_ = {} # return {wd: bool, ...}
+ for awd in lwd:
+ apath = self.get_path(awd)
+ if not apath or awd < 0:
+ err = 'update_watch: invalid WD=%d' % awd
+ if quiet:
+ log.error(err)
+ continue
+ raise WatchManagerError(err, ret_)
+
+ if mask:
+ wd_ = self._inotify_wrapper.inotify_add_watch(self._fd, apath,
+ mask)
+ if wd_ < 0:
+ ret_[awd] = False
+ err = ('update_watch: cannot update %s WD=%d, %s' % \
+ (apath, wd_, self._inotify_wrapper.str_errno()))
+ if quiet:
+ log.error(err)
+ continue
+ raise WatchManagerError(err, ret_)
+
+ assert(awd == wd_)
+
+ if proc_fun or auto_add:
+ watch_ = self._wmd[awd]
+
+ if proc_fun:
+ watch_.proc_fun = proc_fun
+
+ if auto_add:
+ watch_.auto_add = auto_add
+
+ ret_[awd] = True
+ log.debug('Updated watch - %s', self._wmd[awd])
+ return ret_
+
+ def __format_param(self, param):
+ """
+ @param param: Parameter.
+ @type param: string or int
+ @return: wrap param.
+ @rtype: list of type(param)
+ """
+ if isinstance(param, list):
+ for p_ in param:
+ yield p_
+ else:
+ yield param
+
+ def get_wd(self, path):
+ """
+ Returns the watch descriptor associated to path. This method
+ presents a prohibitive cost, always prefer to keep the WD
+ returned by add_watch(). If the path is unknown it returns None.
+
+ @param path: Path.
+ @type path: str
+ @return: WD or None.
+ @rtype: int or None
+ """
+ path = self.__format_path(path)
+ for iwd in self._wmd.items():
+ if iwd[1].path == path:
+ return iwd[0]
+
+ def get_path(self, wd):
+ """
+ Returns the path associated to WD, if WD is unknown it returns None.
+
+ @param wd: Watch descriptor.
+ @type wd: int
+ @return: Path or None.
+ @rtype: string or None
+ """
+ watch_ = self._wmd.get(wd)
+ if watch_ is not None:
+ return watch_.path
+
+ def __walk_rec(self, top, rec):
+ """
+ Yields each subdirectories of top, doesn't follow symlinks.
+ If rec is false, only yield top.
+
+ @param top: root directory.
+ @type top: string
+ @param rec: recursive flag.
+ @type rec: bool
+ @return: path of one subdirectory.
+ @rtype: string
+ """
+ if not rec or os.path.islink(top) or not os.path.isdir(top):
+ yield top
+ else:
+ for root, dirs, files in os.walk(top):
+ yield root
+
+ def rm_watch(self, wd, rec=False, quiet=True):
+ """
+ Removes watch(s).
+
+ @param wd: Watch Descriptor of the file or directory to unwatch.
+ Also accepts a list of WDs.
+ @type wd: int or list of int.
+ @param rec: Recursively removes watches on every already watched
+ subdirectories and subfiles.
+ @type rec: bool
+ @param quiet: If False raises a WatchManagerError exception on
+ error. See example not_quiet.py
+ @type quiet: bool
+ @return: dict of watch descriptors associated to booleans values.
+ True if the corresponding wd has been successfully
+ removed, False otherwise.
+ @rtype: dict of {int: bool}
+ """
+ lwd = self.__format_param(wd)
+ if rec:
+ lwd = self.__get_sub_rec(lwd)
+
+ ret_ = {} # return {wd: bool, ...}
+ for awd in lwd:
+ # remove watch
+ wd_ = self._inotify_wrapper.inotify_rm_watch(self._fd, awd)
+ if wd_ < 0:
+ ret_[awd] = False
+ err = ('rm_watch: cannot remove WD=%d, %s' % \
+ (awd, self._inotify_wrapper.str_errno()))
+ if quiet:
+ log.error(err)
+ continue
+ raise WatchManagerError(err, ret_)
+
+ # Remove watch from our dictionary
+ if awd in self._wmd:
+ del self._wmd[awd]
+ ret_[awd] = True
+ log.debug('Watch WD=%d (%s) removed', awd, self.get_path(awd))
+ return ret_
+
+
+ def watch_transient_file(self, filename, mask, proc_class):
+ """
+ Watch a transient file, which will be created and deleted frequently
+ over time (e.g. pid file).
+
+ @attention: Currently under the call to this function it is not
+ possible to correctly watch the events triggered into the same
+ base directory than the directory where is located this watched
+ transient file. For instance it would be wrong to make these
+ two successive calls: wm.watch_transient_file('/var/run/foo.pid', ...)
+ and wm.add_watch('/var/run/', ...)
+
+ @param filename: Filename.
+ @type filename: string
+ @param mask: Bitmask of events, should contain IN_CREATE and IN_DELETE.
+ @type mask: int
+ @param proc_class: ProcessEvent (or of one of its subclass), beware of
+ accepting a ProcessEvent's instance as argument into
+ __init__, see transient_file.py example for more
+ details.
+ @type proc_class: ProcessEvent's instance or of one of its subclasses.
+ @return: Same as add_watch().
+ @rtype: Same as add_watch().
+ """
+ dirname = os.path.dirname(filename)
+ if dirname == '':
+ return {} # Maintains coherence with add_watch()
+ basename = os.path.basename(filename)
+ # Assuming we are watching at least for IN_CREATE and IN_DELETE
+ mask |= IN_CREATE | IN_DELETE
+
+ def cmp_name(event):
+ if getattr(event, 'name') is None:
+ return False
+ return basename == event.name
+ return self.add_watch(dirname, mask,
+ proc_fun=proc_class(ChainIfTrue(func=cmp_name)),
+ rec=False,
+ auto_add=False, do_glob=False,
+ exclude_filter=lambda path: False)
+
+ def get_ignore_events(self):
+ return self._ignore_events
+
+ def set_ignore_events(self, nval):
+ self._ignore_events = nval
+
+ ignore_events = property(get_ignore_events, set_ignore_events,
+ "Make watch manager ignoring new events.")
+
+
+
+class RawOutputFormat:
+ """
+ Format string representations.
+ """
+ def __init__(self, format=None):
+ self.format = format or {}
+
+ def simple(self, s, attribute):
+ if not isinstance(s, str):
+ s = str(s)
+ return (self.format.get(attribute, '') + s +
+ self.format.get('normal', ''))
+
+ def punctuation(self, s):
+ """Punctuation color."""
+ return self.simple(s, 'normal')
+
+ def field_value(self, s):
+ """Field value color."""
+ return self.simple(s, 'purple')
+
+ def field_name(self, s):
+ """Field name color."""
+ return self.simple(s, 'blue')
+
+ def class_name(self, s):
+ """Class name color."""
+ return self.format.get('red', '') + self.simple(s, 'bold')
+
+output_format = RawOutputFormat()
+
+class ColoredOutputFormat(RawOutputFormat):
+ """
+ Format colored string representations.
+ """
+ def __init__(self):
+ f = {'normal': '\033[0m',
+ 'black': '\033[30m',
+ 'red': '\033[31m',
+ 'green': '\033[32m',
+ 'yellow': '\033[33m',
+ 'blue': '\033[34m',
+ 'purple': '\033[35m',
+ 'cyan': '\033[36m',
+ 'bold': '\033[1m',
+ 'uline': '\033[4m',
+ 'blink': '\033[5m',
+ 'invert': '\033[7m'}
+ RawOutputFormat.__init__(self, f)
+
+
+def compatibility_mode():
+ """
+ Use this function to turn on the compatibility mode. The compatibility
+ mode is used to improve compatibility with Pyinotify 0.7.1 (or older)
+ programs. The compatibility mode provides additional variables 'is_dir',
+ 'event_name', 'EventsCodes.IN_*' and 'EventsCodes.ALL_EVENTS' as
+ Pyinotify 0.7.1 provided. Do not call this function from new programs!!
+ Especially if there are developped for Pyinotify >= 0.8.x.
+ """
+ setattr(EventsCodes, 'ALL_EVENTS', ALL_EVENTS)
+ for evname in globals():
+ if evname.startswith('IN_'):
+ setattr(EventsCodes, evname, globals()[evname])
+ global COMPATIBILITY_MODE
+ COMPATIBILITY_MODE = True
+
+
+def command_line():
+ """
+ By default the watched path is '/tmp' and all types of events are
+ monitored. Events monitoring serves forever, type c^c to stop it.
+ """
+ from optparse import OptionParser
+
+ usage = "usage: %prog [options] [path1] [path2] [pathn]"
+
+ parser = OptionParser(usage=usage)
+ parser.add_option("-v", "--verbose", action="store_true",
+ dest="verbose", help="Verbose mode")
+ parser.add_option("-r", "--recursive", action="store_true",
+ dest="recursive",
+ help="Add watches recursively on paths")
+ parser.add_option("-a", "--auto_add", action="store_true",
+ dest="auto_add",
+ help="Automatically add watches on new directories")
+ parser.add_option("-g", "--glob", action="store_true",
+ dest="glob",
+ help="Treat paths as globs")
+ parser.add_option("-e", "--events-list", metavar="EVENT[,...]",
+ dest="events_list",
+ help=("A comma-separated list of events to watch for - "
+ "see the documentation for valid options (defaults"
+ " to everything)"))
+ parser.add_option("-s", "--stats", action="store_true",
+ dest="stats",
+ help="Display dummy statistics")
+ parser.add_option("-V", "--version", action="store_true",
+ dest="version", help="Pyinotify version")
+ parser.add_option("-f", "--raw-format", action="store_true",
+ dest="raw_format",
+ help="Disable enhanced output format.")
+ parser.add_option("-c", "--command", action="store",
+ dest="command",
+ help="Shell command to run upon event")
+
+ (options, args) = parser.parse_args()
+
+ if options.verbose:
+ log.setLevel(10)
+
+ if options.version:
+ print(__version__)
+
+ if not options.raw_format:
+ global output_format
+ output_format = ColoredOutputFormat()
+
+ if len(args) < 1:
+ path = '/tmp' # default watched path
+ else:
+ path = args
+
+ # watch manager instance
+ wm = WatchManager()
+ # notifier instance and init
+ if options.stats:
+ notifier = Notifier(wm, default_proc_fun=Stats(), read_freq=5)
+ else:
+ notifier = Notifier(wm, default_proc_fun=PrintAllEvents())
+
+ # What mask to apply
+ mask = 0
+ if options.events_list:
+ events_list = options.events_list.split(',')
+ for ev in events_list:
+ evcode = EventsCodes.ALL_FLAGS.get(ev, 0)
+ if evcode:
+ mask |= evcode
+ else:
+ parser.error("The event '%s' specified with option -e"
+ " is not valid" % ev)
+ else:
+ mask = ALL_EVENTS
+
+ # stats
+ cb_fun = None
+ if options.stats:
+ def cb(s):
+ sys.stdout.write(repr(s.proc_fun()))
+ sys.stdout.write('\n')
+ sys.stdout.write(str(s.proc_fun()))
+ sys.stdout.write('\n')
+ sys.stdout.flush()
+ cb_fun = cb
+
+ # External command
+ if options.command:
+ def cb(s):
+ subprocess.Popen(options.command, shell=True)
+ cb_fun = cb
+
+ log.debug('Start monitoring %s, (press c^c to halt pyinotify)' % path)
+
+ wm.add_watch(path, mask, rec=options.recursive, auto_add=options.auto_add, do_glob=options.glob)
+ # Loop forever (until sigint signal get caught)
+ notifier.loop(callback=cb_fun)
+
+
+if __name__ == '__main__':
+ command_line()
diff --git a/bitbake/lib/toaster/bldcontrol/bbcontroller.py b/bitbake/lib/toaster/bldcontrol/bbcontroller.py
index 6812ae3e6e..42675d3fc6 100644
--- a/bitbake/lib/toaster/bldcontrol/bbcontroller.py
+++ b/bitbake/lib/toaster/bldcontrol/bbcontroller.py
@@ -81,14 +81,6 @@ def getBuildEnvironmentController(**kwargs):
raise Exception("FIXME: Implement BEC for type %s" % str(be.betype))
-def _getgitcheckoutdirectoryname(url):
- """ Utility that returns the last component of a git path as directory
- """
- import re
- components = re.split(r'[:\.\/]', url)
- return components[-2] if components[-1] == "git" else components[-1]
-
-
class BuildEnvironmentController(object):
""" BuildEnvironmentController (BEC) is the abstract class that defines the operations that MUST
or SHOULD be supported by a Build Environment. It is used to establish the framework, and must
@@ -117,19 +109,43 @@ class BuildEnvironmentController(object):
self.be = be
self.connection = None
+ @staticmethod
+ def _updateBBLayers(bblayerconf, layerlist):
+ conflines = open(bblayerconf, "r").readlines()
+
+ bblayerconffile = open(bblayerconf, "w")
+ skip = 0
+ for i in xrange(len(conflines)):
+ if skip > 0:
+ skip =- 1
+ continue
+ if conflines[i].startswith("# line added by toaster"):
+ skip = 1
+ else:
+ bblayerconffile.write(conflines[i])
+
+ bblayerconffile.write("# line added by toaster build control\nBBLAYERS = \"" + " ".join(layerlist) + "\"")
+ bblayerconffile.close()
+
+
+ def writeConfFile(self, variable_list = None, raw = None):
+ """ Writes a configuration file in the build directory. Override with buildenv-specific implementation. """
+ raise Exception("FIXME: Must override to actually write a configuration file")
+
def startBBServer(self):
""" Starts a BB server with Toaster toasterui set up to record the builds, an no controlling UI.
After this method executes, self.be bbaddress/bbport MUST point to a running and free server,
and the bbstate MUST be updated to "started".
"""
- raise Exception("Must override in order to actually start the BB server")
+ raise Exception("FIXME: Must override in order to actually start the BB server")
def stopBBServer(self):
""" Stops the currently running BB server.
The bbstate MUST be updated to "stopped".
self.connection must be none.
"""
+ raise Exception("FIXME: Must override stoBBServer")
def setLayers(self, bbs, ls):
""" Checks-out bitbake executor and layers from git repositories.
@@ -139,7 +155,7 @@ class BuildEnvironmentController(object):
a word of attention: by convention, the first layer for any build will be poky!
"""
- raise Exception("Must override setLayers")
+ raise Exception("FIXME: Must override setLayers")
def getBBController(self):
diff --git a/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py b/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
index fe7fd81fb9..1bd51437a6 100644
--- a/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
+++ b/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
@@ -30,7 +30,12 @@ import subprocess
from toastermain import settings
-from bbcontroller import BuildEnvironmentController, ShellCmdException, BuildSetupException, _getgitcheckoutdirectoryname
+from bbcontroller import BuildEnvironmentController, ShellCmdException, BuildSetupException
+
+import logging
+logger = logging.getLogger("toaster")
+
+from pprint import pprint, pformat
class LocalhostBEController(BuildEnvironmentController):
""" Implementation of the BuildEnvironmentController for the localhost;
@@ -49,15 +54,19 @@ class LocalhostBEController(BuildEnvironmentController):
if cwd is None:
cwd = self.be.sourcedir
+ #logger.debug("lbc_shellcmmd: (%s) %s" % (cwd, command))
p = subprocess.Popen(command, cwd = cwd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(out,err) = p.communicate()
+ p.wait()
if p.returncode:
if len(err) == 0:
err = "command: %s \n%s" % (command, out)
else:
err = "command: %s \n%s" % (command, err)
+ #logger.warn("localhostbecontroller: shellcmd error %s" % err)
raise ShellCmdException(err)
else:
+ #logger.debug("localhostbecontroller: shellcmd success")
return out
def _createdirpath(self, path):
@@ -73,29 +82,118 @@ class LocalhostBEController(BuildEnvironmentController):
assert self.pokydirname and os.path.exists(self.pokydirname)
self._createdirpath(self.be.builddir)
self._shellcmd("bash -c \"source %s/oe-init-build-env %s\"" % (self.pokydirname, self.be.builddir))
+ # delete the templateconf.cfg; it may come from an unsupported layer configuration
+ os.remove(os.path.join(self.be.builddir, "conf/templateconf.cfg"))
+
+
+ def writeConfFile(self, file_name, variable_list = None, raw = None):
+ filepath = os.path.join(self.be.builddir, file_name)
+ with open(filepath, "w") as conffile:
+ if variable_list is not None:
+ for i in variable_list:
+ conffile.write("%s=\"%s\"\n" % (i.name, i.value))
+ if raw is not None:
+ conffile.write(raw)
+
def startBBServer(self):
assert self.pokydirname and os.path.exists(self.pokydirname)
assert self.islayerset
- print("DEBUG: executing ", "bash -c \"source %s/oe-init-build-env %s && DATABASE_URL=%s source toaster start noweb && sleep 1\"" % (self.pokydirname, self.be.builddir, self.dburl))
- print self._shellcmd("bash -c \"source %s/oe-init-build-env %s && DATABASE_URL=%s source toaster start noweb && sleep 1\"" % (self.pokydirname, self.be.builddir, self.dburl))
- # FIXME unfortunate sleep 1 - we need to make sure that bbserver is started and the toaster ui is connected
- # but since they start async without any return, we just wait a bit
- print "Started server"
+
+ # find our own toasterui listener/bitbake
+ from toaster.bldcontrol.management.commands.loadconf import _reduce_canon_path
+
+ own_bitbake = _reduce_canon_path(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../../bin/bitbake"))
+
+ assert os.path.exists(own_bitbake) and os.path.isfile(own_bitbake)
+
+ logger.debug("localhostbecontroller: running the listener at %s" % own_bitbake)
+
+ toaster_ui_log_filepath = os.path.join(self.be.builddir, "toaster_ui.log")
+ # get the file length; we need to detect the _last_ start of the toaster UI, not the first
+ toaster_ui_log_filelength = 0
+ if os.path.exists(toaster_ui_log_filepath):
+ with open(toaster_ui_log_filepath, "r") as f:
+ f.seek(0, 2) # jump to the end
+ toaster_ui_log_filelength = f.tell()
+
+ cmd = "bash -c \"source %s/oe-init-build-env %s 2>&1 >toaster_server.log && bitbake --read conf/toaster-pre.conf --postread conf/toaster.conf --server-only -t xmlrpc -B 0.0.0.0:0 2>&1 >toaster_server.log && DATABASE_URL=%s BBSERVER=0.0.0.0:-1 daemon -d -i -D %s -o toaster_ui.log -- %s --observe-only -u toasterui &\"" % (self.pokydirname, self.be.builddir,
+ self.dburl, self.be.builddir, own_bitbake)
+ port = "-1"
+ logger.debug("localhostbecontroller: starting builder \n%s\n" % cmd)
+ cmdoutput = self._shellcmd(cmd)
+ for i in cmdoutput.split("\n"):
+ if i.startswith("Bitbake server address"):
+ port = i.split(" ")[-1]
+ logger.debug("localhostbecontroller: Found bitbake server port %s" % port)
+
+ def _toaster_ui_started(filepath, filepos = 0):
+ if not os.path.exists(filepath):
+ return False
+ with open(filepath, "r") as f:
+ f.seek(filepos)
+ for line in f:
+ if line.startswith("NOTE: ToasterUI waiting for events"):
+ return True
+ return False
+
+ retries = 0
+ started = False
+ while not started and retries < 10:
+ started = _toaster_ui_started(toaster_ui_log_filepath, toaster_ui_log_filelength)
+ import time
+ logger.debug("localhostbecontroller: Waiting bitbake server to start")
+ time.sleep(0.5)
+ retries += 1
+
+ if not started:
+ toaster_server_log = open(os.path.join(self.be.builddir, "toaster_server.log"), "r").read()
+ raise BuildSetupException("localhostbecontroller: Bitbake server did not start in 5 seconds, aborting (Error: '%s' '%s')" % (cmdoutput, toaster_server_log))
+
+ logger.debug("localhostbecontroller: Started bitbake server")
+
+ while port == "-1":
+ # the port specification is "autodetect"; read the bitbake.lock file
+ with open("%s/bitbake.lock" % self.be.builddir, "r") as f:
+ for line in f.readlines():
+ if ":" in line:
+ port = line.split(":")[1].strip()
+ logger.debug("localhostbecontroller: Autodetected bitbake port %s", port)
+ break
+
assert self.be.sourcedir and os.path.exists(self.be.builddir)
self.be.bbaddress = "localhost"
- self.be.bbport = "8200"
+ self.be.bbport = port
self.be.bbstate = BuildEnvironment.SERVER_STARTED
self.be.save()
def stopBBServer(self):
assert self.pokydirname and os.path.exists(self.pokydirname)
assert self.islayerset
- print self._shellcmd("bash -c \"source %s/oe-init-build-env %s && %s source toaster stop\"" %
+ self._shellcmd("bash -c \"source %s/oe-init-build-env %s && %s source toaster stop\"" %
(self.pokydirname, self.be.builddir, (lambda: "" if self.be.bbtoken is None else "BBTOKEN=%s" % self.be.bbtoken)()))
self.be.bbstate = BuildEnvironment.SERVER_STOPPED
self.be.save()
- print "Stopped server"
+ logger.debug("localhostbecontroller: Stopped bitbake server")
+
+ def getGitCloneDirectory(self, url, branch):
+ """ Utility that returns the last component of a git path as directory
+ """
+ import re
+ components = re.split(r'[:\.\/]', url)
+ base = components[-2] if components[-1] == "git" else components[-1]
+
+ if branch != "HEAD":
+ return "_%s_%s.toaster_cloned" % (base, branch)
+
+
+ # word of attention; this is a localhost-specific issue; only on the localhost we expect to have "HEAD" releases
+ # which _ALWAYS_ means the current poky checkout
+ from os.path import dirname as DN
+ local_checkout_path = DN(DN(DN(DN(DN(os.path.abspath(__file__))))))
+ #logger.debug("localhostbecontroller: using HEAD checkout in %s" % local_checkout_path)
+ return local_checkout_path
+
def setLayers(self, bitbakes, layers):
""" a word of attention: by convention, the first layer for any build will be poky! """
@@ -104,86 +202,109 @@ class LocalhostBEController(BuildEnvironmentController):
assert len(bitbakes) == 1
# set layers in the layersource
- # 1. get a list of repos, and map dirpaths for each layer
+ # 1. get a list of repos with branches, and map dirpaths for each layer
gitrepos = {}
- gitrepos[bitbakes[0].giturl] = []
- gitrepos[bitbakes[0].giturl].append( ("bitbake", bitbakes[0].dirpath, bitbakes[0].commit) )
-
+
+ gitrepos[(bitbakes[0].giturl, bitbakes[0].commit)] = []
+ gitrepos[(bitbakes[0].giturl, bitbakes[0].commit)].append( ("bitbake", bitbakes[0].dirpath) )
+
for layer in layers:
# we don't process local URLs
if layer.giturl.startswith("file://"):
continue
- if not layer.giturl in gitrepos:
- gitrepos[layer.giturl] = []
- gitrepos[layer.giturl].append( (layer.name, layer.dirpath, layer.commit))
- for giturl in gitrepos.keys():
- commitid = gitrepos[giturl][0][2]
- for e in gitrepos[giturl]:
- if commitid != e[2]:
- raise BuildSetupException("More than one commit per git url, unsupported configuration")
+ if not (layer.giturl, layer.commit) in gitrepos:
+ gitrepos[(layer.giturl, layer.commit)] = []
+ gitrepos[(layer.giturl, layer.commit)].append( (layer.name, layer.dirpath) )
+
+
+ logger.debug("localhostbecontroller, our git repos are %s" % pformat(gitrepos))
+
+
+ # 2. find checked-out git repos in the sourcedir directory that may help faster cloning
+ cached_layers = {}
+ for ldir in os.listdir(self.be.sourcedir):
+ fldir = os.path.join(self.be.sourcedir, ldir)
+ if os.path.isdir(fldir):
+ try:
+ for line in self._shellcmd("git remote -v", fldir).split("\n"):
+ try:
+ remote = line.split("\t")[1].split(" ")[0]
+ if remote not in cached_layers:
+ cached_layers[remote] = fldir
+ except IndexError:
+ pass
+ except ShellCmdException:
+ # ignore any errors in collecting git remotes
+ pass
layerlist = []
- # 2. checkout the repositories
- for giturl in gitrepos.keys():
- localdirname = os.path.join(self.be.sourcedir, _getgitcheckoutdirectoryname(giturl))
- print "DEBUG: giturl ", giturl ,"checking out in current directory", localdirname
+
+ # 3. checkout the repositories
+ for giturl, commit in gitrepos.keys():
+ localdirname = os.path.join(self.be.sourcedir, self.getGitCloneDirectory(giturl, commit))
+ logger.debug("localhostbecontroller: giturl %s:%s checking out in current directory %s" % (giturl, commit, localdirname))
# make sure our directory is a git repository
if os.path.exists(localdirname):
- if not giturl in self._shellcmd("git remote -v", localdirname):
- raise BuildSetupException("Existing git repository at %s, but with different remotes (not '%s'). Aborting." % (localdirname, giturl))
+ localremotes = self._shellcmd("git remote -v", localdirname)
+ if not giturl in localremotes:
+ raise BuildSetupException("Existing git repository at %s, but with different remotes ('%s', expected '%s'). Toaster will not continue out of fear of damaging something." % (localdirname, ", ".join(localremotes.split("\n")), giturl))
else:
- self._shellcmd("git clone \"%s\" \"%s\"" % (giturl, localdirname))
- # checkout the needed commit
- commit = gitrepos[giturl][0][2]
+ if giturl in cached_layers:
+ logger.debug("localhostbecontroller git-copying %s to %s" % (cached_layers[giturl], localdirname))
+ self._shellcmd("git clone \"%s\" \"%s\"" % (cached_layers[giturl], localdirname))
+ self._shellcmd("git remote remove origin", localdirname)
+ self._shellcmd("git remote add origin \"%s\"" % giturl, localdirname)
+ else:
+ logger.debug("localhostbecontroller: cloning %s:%s in %s" % (giturl, commit, localdirname))
+ self._shellcmd("git clone \"%s\" --single-branch --branch \"%s\" \"%s\"" % (giturl, commit, localdirname))
# branch magic name "HEAD" will inhibit checkout
if commit != "HEAD":
- print "DEBUG: checking out commit ", commit, "to", localdirname
- self._shellcmd("git fetch --all && git checkout \"%s\"" % commit , localdirname)
+ logger.debug("localhostbecontroller: checking out commit %s to %s " % (commit, localdirname))
+ self._shellcmd("git fetch --all && git checkout \"%s\" && git rebase \"origin/%s\"" % (commit, commit) , localdirname)
# take the localdirname as poky dir if we can find the oe-init-build-env
if self.pokydirname is None and os.path.exists(os.path.join(localdirname, "oe-init-build-env")):
- print "DEBUG: selected poky dir name", localdirname
+ logger.debug("localhostbecontroller: selected poky dir name %s" % localdirname)
self.pokydirname = localdirname
+ # make sure we have a working bitbake
+ if not os.path.exists(os.path.join(self.pokydirname, 'bitbake')):
+ logger.debug("localhostbecontroller: checking bitbake into the poky dirname %s " % self.pokydirname)
+ self._shellcmd("git clone -b \"%s\" \"%s\" \"%s\" " % (bitbakes[0].commit, bitbakes[0].giturl, os.path.join(self.pokydirname, 'bitbake')))
+
# verify our repositories
- for name, dirpath, commit in gitrepos[giturl]:
+ for name, dirpath in gitrepos[(giturl, commit)]:
localdirpath = os.path.join(localdirname, dirpath)
+ logger.debug("localhostbecontroller: localdirpath expected '%s'" % localdirpath)
if not os.path.exists(localdirpath):
raise BuildSetupException("Cannot find layer git path '%s' in checked out repository '%s:%s'. Aborting." % (localdirpath, giturl, commit))
if name != "bitbake":
- layerlist.append(localdirpath)
+ layerlist.append(localdirpath.rstrip("/"))
- print "DEBUG: current layer list ", layerlist
+ logger.debug("localhostbecontroller: current layer list %s " % pformat(layerlist))
- # 3. configure the build environment, so we have a conf/bblayers.conf
+ # 4. configure the build environment, so we have a conf/bblayers.conf
assert self.pokydirname is not None
self._setupBE()
- # 4. update the bblayers.conf
+ # 5. update the bblayers.conf
bblayerconf = os.path.join(self.be.builddir, "conf/bblayers.conf")
if not os.path.exists(bblayerconf):
raise BuildSetupException("BE is not consistent: bblayers.conf file missing at %s" % bblayerconf)
- conflines = open(bblayerconf, "r").readlines()
-
- bblayerconffile = open(bblayerconf, "w")
- for i in xrange(len(conflines)):
- if conflines[i].startswith("# line added by toaster"):
- i += 2
- else:
- bblayerconffile.write(conflines[i])
-
- bblayerconffile.write("\n# line added by toaster build control\nBBLAYERS = \"" + " ".join(layerlist) + "\"")
- bblayerconffile.close()
+ BuildEnvironmentController._updateBBLayers(bblayerconf, layerlist)
self.islayerset = True
return True
+ def readServerLogFile(self):
+ return open(os.path.join(self.be.builddir, "toaster_server.log"), "r").read()
+
def release(self):
assert self.be.sourcedir and os.path.exists(self.be.builddir)
import shutil
diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py b/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py
index 4f6a66e711..1ff5c92833 100644
--- a/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py
+++ b/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py
@@ -1,9 +1,8 @@
from django.core.management.base import NoArgsCommand, CommandError
from django.db import transaction
-from orm.models import LayerSource, ToasterSetting, Branch, Layer, Layer_Version
-from orm.models import BitbakeVersion, Release, ReleaseDefaultLayer
from bldcontrol.bbcontroller import getBuildEnvironmentController, ShellCmdException
-from bldcontrol.models import BuildRequest, BuildEnvironment
+from bldcontrol.models import BuildRequest, BuildEnvironment, BRError
+from orm.models import ToasterSetting
import os
def DN(path):
@@ -17,16 +16,6 @@ class Command(NoArgsCommand):
args = ""
help = "Verifies that the configured settings are valid and usable, or prompts the user to fix the settings."
- def _reduce_canon_path(self, path):
- components = []
- for c in path.split("/"):
- if c == "..":
- del components[-1]
- elif c == ".":
- pass
- else:
- components.append(c)
- return "/".join(components)
def _find_first_path_for_file(self, startdirectory, filename, level = 0):
if level < 0:
@@ -45,6 +34,22 @@ class Command(NoArgsCommand):
return ret
return None
+ def _recursive_list_directories(self, startdirectory, level = 0):
+ if level < 0:
+ return []
+ dirs = []
+ try:
+ for i in os.listdir(startdirectory):
+ j = os.path.join(startdirectory, i)
+ if os.path.isdir(j):
+ dirs.append(j)
+ except OSError:
+ pass
+ for j in dirs:
+ dirs = dirs + self._recursive_list_directories(j, level - 1)
+ return dirs
+
+
def _get_suggested_sourcedir(self, be):
if be.betype != BuildEnvironment.TYPE_LOCAL:
return ""
@@ -53,151 +58,140 @@ class Command(NoArgsCommand):
def _get_suggested_builddir(self, be):
if be.betype != BuildEnvironment.TYPE_LOCAL:
return ""
- return DN(self._find_first_path_for_file(self.guesspath, "bblayers.conf", 3))
-
- def _import_layer_config(self, baselayerdir):
- filepath = os.path.join(baselayerdir, "meta/conf/toasterconf.json")
- if not os.path.exists(filepath) or not os.path.isfile(filepath):
- raise Exception("Failed to find toaster config file %s ." % filepath)
-
- import json, pprint
- data = json.loads(open(filepath, "r").read())
-
- # verify config file validity before updating settings
- for i in ['bitbake', 'releases', 'defaultrelease', 'config', 'layersources']:
- assert i in data
-
- # import bitbake data
- for bvi in data['bitbake']:
- bvo, created = BitbakeVersion.objects.get_or_create(name=bvi['name'])
- bvo.giturl = bvi['giturl']
- bvo.branch = bvi['branch']
- bvo.dirpath = bvi['dirpath']
- bvo.save()
-
- # set the layer sources
- for lsi in data['layersources']:
- assert 'sourcetype' in lsi
- assert 'apiurl' in lsi
- assert 'name' in lsi
- assert 'branches' in lsi
-
- if lsi['sourcetype'] == LayerSource.TYPE_LAYERINDEX or lsi['apiurl'].startswith("/"):
- apiurl = lsi['apiurl']
- else:
- apiurl = self._reduce_canon_path(os.path.join(DN(filepath), lsi['apiurl']))
-
- try:
- ls = LayerSource.objects.get(sourcetype = lsi['sourcetype'], apiurl = apiurl)
- except LayerSource.DoesNotExist:
- ls = LayerSource.objects.create(
- name = lsi['name'],
- sourcetype = lsi['sourcetype'],
- apiurl = apiurl
- )
-
- layerbranches = []
- for branchname in lsi['branches']:
- bo, created = Branch.objects.get_or_create(layer_source = ls, name = branchname)
- layerbranches.append(bo)
-
- if 'layers' in lsi:
- for layerinfo in lsi['layers']:
- lo, created = Layer.objects.get_or_create(layer_source = ls, name = layerinfo['name'])
- if layerinfo['local_path'].startswith("/"):
- lo.local_path = layerinfo['local_path']
- else:
- lo.local_path = self._reduce_canon_path(os.path.join(DN(filepath), layerinfo['local_path']))
- lo.layer_index_url = layerinfo['layer_index_url']
- if 'vcs_url' in layerinfo:
- lo.vcs_url = layerinfo['vcs_url']
- lo.save()
-
- for branch in layerbranches:
- lvo, created = Layer_Version.objects.get_or_create(layer_source = ls,
- up_branch = branch,
- commit = branch.name,
- layer = lo)
- lvo.dirpath = layerinfo['dirpath']
- lvo.save()
- # set releases
- for ri in data['releases']:
- bvo = BitbakeVersion.objects.get(name = ri['bitbake'])
- assert bvo is not None
-
- ro, created = Release.objects.get_or_create(name = ri['name'], bitbake_version = bvo)
- ro.description = ri['description']
- ro.branch = ri['branch']
- ro.save()
-
- for dli in ri['defaultlayers']:
- lsi, layername = dli.split(":")
- layer, created = Layer.objects.get_or_create(
- layer_source = LayerSource.objects.get(name = lsi),
- name = layername
- )
- ReleaseDefaultLayer.objects.get_or_create( release = ro, layer = layer)
-
- # set default release
- if ToasterSetting.objects.filter(name = "DEFAULT_RELEASE").count() > 0:
- ToasterSetting.objects.filter(name = "DEFAULT_RELEASE").update(value = data['defaultrelease'])
- else:
- ToasterSetting.objects.create(name = "DEFAULT_RELEASE", value = data['defaultrelease'])
-
- # set default config variables
- for configname in data['config']:
- if ToasterSetting.objects.filter(name = "DEFCONF_" + configname).count() > 0:
- ToasterSetting.objects.filter(name = "DEFCONF_" + configname).update(value = data['config'][configname])
- else:
- ToasterSetting.objects.create(name = "DEFCONF_" + configname, value = data['config'][configname])
+ return DN(self._find_first_path_for_file(DN(self.guesspath), "bblayers.conf", 4))
+
def handle(self, **options):
+ # verify that we have a settings for downloading artifacts
+ while ToasterSetting.objects.filter(name="ARTIFACTS_STORAGE_DIR").count() == 0:
+ guessedpath = os.getcwd() + "/toaster_build_artifacts/"
+ print("Toaster needs to know in which directory it can download build log files and other artifacts.\n Toaster suggests \"%s\"." % guessedpath)
+ artifacts_storage_dir = raw_input(" Press Enter to select \"%s\" or type the full path to a different directory: " % guessedpath)
+ if len(artifacts_storage_dir) == 0:
+ artifacts_storage_dir = guessedpath
+ if len(artifacts_storage_dir) > 0 and artifacts_storage_dir.startswith("/"):
+ try:
+ os.makedirs(artifacts_storage_dir)
+ except OSError as ose:
+ if "File exists" in str(ose):
+ pass
+ else:
+ raise ose
+ ToasterSetting.objects.create(name="ARTIFACTS_STORAGE_DIR", value=artifacts_storage_dir)
+
self.guesspath = DN(DN(DN(DN(DN(DN(DN(__file__)))))))
+ # refuse to start if we have no build environments
+ while BuildEnvironment.objects.count() == 0:
+ print(" !! No build environments found. Toaster needs at least one build environment in order to be able to run builds.\n" +
+ "You can manually define build environments in the database table bldcontrol_buildenvironment.\n" +
+ "Or Toaster can define a simple localhost-based build environment for you.")
+
+ i = raw_input(" -- Do you want to create a basic localhost build environment ? (Y/n) ");
+ if not len(i) or i.startswith("y") or i.startswith("Y"):
+ BuildEnvironment.objects.create(pk = 1, betype = 0)
+ else:
+ raise Exception("Toaster cannot start without build environments. Aborting.")
+
# we make sure we have builddir and sourcedir for all defined build envionments
for be in BuildEnvironment.objects.all():
+ be.needs_import = False
def _verify_be():
is_changed = False
- print("Verifying the Build Environment type %s id %d." % (be.get_betype_display(), be.pk))
- if len(be.sourcedir) == 0:
+ print("Verifying the Build Environment. If the local Build Environment is not properly configured, you will be asked to configure it.")
+
+ def _update_sourcedir():
suggesteddir = self._get_suggested_sourcedir(be)
- be.sourcedir = raw_input(" -- Layer sources checkout directory may not be empty [guessed \"%s\"]:" % suggesteddir)
+ if len(suggesteddir) > 0:
+ be.sourcedir = raw_input("Toaster needs to know in which directory it should check out the layers that will be needed for your builds.\n Toaster suggests \"%s\". If you select this directory, a layer like \"meta-intel\" will end up in \"%s/meta-intel\".\n Press Enter to select \"%s\" or type the full path to a different directory (must be a parent of current checkout directory): " % (suggesteddir, suggesteddir, suggesteddir))
+ else:
+ be.sourcedir = raw_input("Toaster needs to know in which directory it should check out the layers that will be needed for your builds. Type the full path to the directory (for example: \"%s\": " % os.environ.get('HOME', '/tmp/'))
if len(be.sourcedir) == 0 and len(suggesteddir) > 0:
be.sourcedir = suggesteddir
- is_changed = True
+ return True
+
+ if len(be.sourcedir) == 0:
+ print "\n -- Validation: The checkout directory must be set."
+ is_changed = _update_sourcedir()
if not be.sourcedir.startswith("/"):
- be.sourcedir = raw_input(" -- Layer sources checkout directory must be an absolute path:")
- is_changed = True
+ print "\n -- Validation: The checkout directory must be set to an absolute path."
+ is_changed = _update_sourcedir()
- if len(be.builddir) == 0:
+ if not be.sourcedir in DN(__file__):
+ print "\n -- Validation: The checkout directory must be a parent of the current checkout."
+ is_changed = _update_sourcedir()
+
+ if is_changed:
+ if be.betype == BuildEnvironment.TYPE_LOCAL:
+ be.needs_import = True
+ return True
+
+ def _update_builddir():
suggesteddir = self._get_suggested_builddir(be)
- be.builddir = raw_input(" -- Build directory may not be empty [guessed \"%s\"]:" % suggesteddir)
+ if len(suggesteddir) > 0:
+ be.builddir = raw_input("Toaster needs to know where it your build directory is located.\n The build directory is where all the artifacts created by your builds will be stored. Toaster suggests \"%s\".\n Press Enter to select \"%s\" or type the full path to a different directory: " % (suggesteddir, suggesteddir))
+ else:
+ be.builddir = raw_input("Toaster needs to know where is your build directory.\n The build directory is where all the artifacts created by your builds will be stored. Type the full path to the directory (for example: \" %s/build\")" % os.environ.get('HOME','/tmp/'))
if len(be.builddir) == 0 and len(suggesteddir) > 0:
be.builddir = suggesteddir
- is_changed = True
+ return True
- if not be.builddir.startswith("/"):
- be.builddir = raw_input(" -- Build directory must be an absolute path:")
- is_changed = True
+ if len(be.builddir) == 0:
+ print "\n -- Validation: The build directory must be set."
+ is_changed = _update_builddir()
+ if not be.builddir.startswith("/"):
+ print "\n -- Validation: The build directory must to be set to an absolute path."
+ is_changed = _update_builddir()
if is_changed:
print "Build configuration saved"
be.save()
+ return True
+
+
+ if be.needs_import:
+ print "\nToaster can use a SINGLE predefined configuration file to set up default project settings and layer information sources.\n"
+
+ # find configuration files
+ config_files = []
+ for dirname in self._recursive_list_directories(be.sourcedir,2):
+ if os.path.exists(os.path.join(dirname, ".templateconf")):
+ import subprocess
+ conffilepath, error = subprocess.Popen('bash -c ". '+os.path.join(dirname, ".templateconf")+'; echo \"\$TEMPLATECONF\""', shell=True, stdout=subprocess.PIPE).communicate()
+ conffilepath = os.path.join(conffilepath.strip(), "toasterconf.json")
+ candidatefilepath = os.path.join(dirname, conffilepath)
+ if os.path.exists(candidatefilepath):
+ config_files.append(candidatefilepath)
+
+ if len(config_files) > 0:
+ print " Toaster will list now the configuration files that it found. Select the number to use the desired configuration file."
+ for cf in config_files:
+ print " [%d] - %s" % (config_files.index(cf) + 1, cf)
+ print "\n [0] - Exit without importing any file"
+ try:
+ i = raw_input("\n Enter your option: ")
+ if len(i) and (int(i) - 1 >= 0 and int(i) - 1 < len(config_files)):
+ print "Importing file: %s" % config_files[int(i)-1]
+ from loadconf import Command as LoadConfigCommand
+
+ LoadConfigCommand()._import_layer_config(config_files[int(i)-1])
+ # we run lsupdates after config update
+ print "Layer configuration imported. Updating information from the layer sources, please wait.\n You can re-update any time later by running bitbake/lib/toaster/manage.py lsupdates"
+ from django.core.management import call_command
+ call_command("lsupdates")
+
+ # we don't look for any other config files
+ return is_changed
+ except Exception as e:
+ print "Failure while trying to import the toaster config file: %s" % e
+ else:
+ print "\n Toaster could not find a configuration file. You need to configure Toaster manually using the web interface, or create a configuration file and use\n bitbake/lib/toaster/managepy.py loadconf [filename]\n command to load it. You can use https://wiki.yoctoproject.org/wiki/File:Toasterconf.json.txt.patch as a starting point."
+
+
- if is_changed and be.betype == BuildEnvironment.TYPE_LOCAL:
- baselayerdir = DN(DN(self._find_first_path_for_file(be.sourcedir, "toasterconf.json", 3)))
- if baselayerdir:
- i = raw_input(" -- Do you want to import basic layer configuration from \"%s\" ? (y/N):" % baselayerdir)
- if len(i) and i.upper()[0] == 'Y':
- self._import_layer_config(baselayerdir)
- # we run lsupdates after config update
- print "Updating information from the layer source, please wait."
- from django.core.management import call_command
- call_command("lsupdates")
- pass
return is_changed
@@ -209,4 +203,12 @@ class Command(NoArgsCommand):
ToasterSetting.objects.filter(name = 'DEFAULT_RELEASE').delete()
ToasterSetting.objects.get_or_create(name = 'DEFAULT_RELEASE', value = '')
+ # we are just starting up. we must not have any builds in progress, or build environments taken
+ for b in BuildRequest.objects.filter(state = BuildRequest.REQ_INPROGRESS):
+ BRError.objects.create(req = b, errtype = "toaster", errmsg = "Toaster found this build IN PROGRESS while Toaster started up. This is an inconsistent state, and the build was marked as failed")
+
+ BuildRequest.objects.filter(state = BuildRequest.REQ_INPROGRESS).update(state = BuildRequest.REQ_FAILED)
+
+ BuildEnvironment.objects.update(lock = BuildEnvironment.LOCK_FREE)
+
return 0
diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/loadconf.py b/bitbake/lib/toaster/bldcontrol/management/commands/loadconf.py
new file mode 100644
index 0000000000..9163e9bf11
--- /dev/null
+++ b/bitbake/lib/toaster/bldcontrol/management/commands/loadconf.py
@@ -0,0 +1,174 @@
+from django.core.management.base import BaseCommand, CommandError
+from orm.models import LayerSource, ToasterSetting, Branch, Layer, Layer_Version
+from orm.models import BitbakeVersion, Release, ReleaseDefaultLayer, ReleaseLayerSourcePriority
+import os
+
+from checksettings import DN
+
+def _reduce_canon_path(path):
+ components = []
+ for c in path.split("/"):
+ if c == "..":
+ del components[-1]
+ elif c == ".":
+ pass
+ else:
+ components.append(c)
+ if len(components) < 2:
+ components.append('')
+ return "/".join(components)
+
+def _get_id_for_sourcetype(s):
+ for i in LayerSource.SOURCE_TYPE:
+ if s == i[1]:
+ return i[0]
+ raise Exception("Could not find definition for sourcetype '%s'. Valid source types are %s" % (str(s), ', '.join(map(lambda x: "'%s'" % x[1], LayerSource.SOURCE_TYPE ))))
+
+class Command(BaseCommand):
+ help = "Loads a toasterconf.json file in the database"
+ args = "filepath"
+
+
+
+ def _import_layer_config(self, filepath):
+ if not os.path.exists(filepath) or not os.path.isfile(filepath):
+ raise Exception("Failed to find toaster config file %s ." % filepath)
+
+ import json, pprint
+ data = json.loads(open(filepath, "r").read())
+
+ # verify config file validity before updating settings
+ for i in ['bitbake', 'releases', 'defaultrelease', 'config', 'layersources']:
+ assert i in data
+
+ def _read_git_url_from_local_repository(address):
+ url = None
+ # we detect the remote name at runtime
+ import subprocess
+ (remote, remote_name) = address.split(":", 1)
+ cmd = subprocess.Popen("git remote -v", shell=True, cwd = os.path.dirname(filepath), stdout=subprocess.PIPE, stderr = subprocess.PIPE)
+ (out,err) = cmd.communicate()
+ if cmd.returncode != 0:
+ raise Exception("Error while importing layer vcs_url: git error: %s" % err)
+ for line in out.split("\n"):
+ try:
+ (name, path) = line.split("\t", 1)
+ if name == remote_name:
+ url = path.split(" ")[0]
+ break
+ except ValueError:
+ pass
+ if url == None:
+ raise Exception("Error while looking for remote \"%s\" in \"%s\"" % (remote_name, out))
+ return url
+
+
+ # import bitbake data
+ for bvi in data['bitbake']:
+ bvo, created = BitbakeVersion.objects.get_or_create(name=bvi['name'])
+ bvo.giturl = bvi['giturl']
+ if bvi['giturl'].startswith("remote:"):
+ bvo.giturl = _read_git_url_from_local_repository(bvi['giturl'])
+ bvo.branch = bvi['branch']
+ bvo.dirpath = bvi['dirpath']
+ bvo.save()
+
+ # set the layer sources
+ for lsi in data['layersources']:
+ assert 'sourcetype' in lsi
+ assert 'apiurl' in lsi
+ assert 'name' in lsi
+ assert 'branches' in lsi
+
+
+ if _get_id_for_sourcetype(lsi['sourcetype']) == LayerSource.TYPE_LAYERINDEX or lsi['apiurl'].startswith("/"):
+ apiurl = lsi['apiurl']
+ else:
+ apiurl = _reduce_canon_path(os.path.join(DN(os.path.abspath(filepath)), lsi['apiurl']))
+
+ assert ((_get_id_for_sourcetype(lsi['sourcetype']) == LayerSource.TYPE_LAYERINDEX) or apiurl.startswith("/")), (lsi['sourcetype'],apiurl)
+
+ try:
+ ls = LayerSource.objects.get(sourcetype = _get_id_for_sourcetype(lsi['sourcetype']), apiurl = apiurl)
+ except LayerSource.DoesNotExist:
+ ls = LayerSource.objects.create(
+ name = lsi['name'],
+ sourcetype = _get_id_for_sourcetype(lsi['sourcetype']),
+ apiurl = apiurl
+ )
+
+ layerbranches = []
+ for branchname in lsi['branches']:
+ bo, created = Branch.objects.get_or_create(layer_source = ls, name = branchname)
+ layerbranches.append(bo)
+
+ if 'layers' in lsi:
+ for layerinfo in lsi['layers']:
+ lo, created = Layer.objects.get_or_create(layer_source = ls, name = layerinfo['name'])
+ if layerinfo['local_path'].startswith("/"):
+ lo.local_path = layerinfo['local_path']
+ else:
+ lo.local_path = _reduce_canon_path(os.path.join(ls.apiurl, layerinfo['local_path']))
+
+ if not os.path.exists(lo.local_path):
+ raise Exception("Local layer path %s must exists." % lo.local_path)
+
+ lo.vcs_url = layerinfo['vcs_url']
+ if layerinfo['vcs_url'].startswith("remote:"):
+ lo.vcs_url = _read_git_url_from_local_repository(layerinfo['vcs_url'])
+ else:
+ lo.vcs_url = layerinfo['vcs_url']
+
+ if 'layer_index_url' in layerinfo:
+ lo.layer_index_url = layerinfo['layer_index_url']
+ lo.save()
+
+ for branch in layerbranches:
+ lvo, created = Layer_Version.objects.get_or_create(layer_source = ls,
+ up_branch = branch,
+ commit = branch.name,
+ layer = lo)
+ lvo.dirpath = layerinfo['dirpath']
+ lvo.save()
+ # set releases
+ for ri in data['releases']:
+ bvo = BitbakeVersion.objects.get(name = ri['bitbake'])
+ assert bvo is not None
+
+ ro, created = Release.objects.get_or_create(name = ri['name'], bitbake_version = bvo, branch_name = ri['branch'])
+ ro.description = ri['description']
+ ro.helptext = ri['helptext']
+ ro.save()
+
+ # save layer source priority for release
+ for ls_name in ri['layersourcepriority'].keys():
+ rlspo, created = ReleaseLayerSourcePriority.objects.get_or_create(release = ro, layer_source = LayerSource.objects.get(name=ls_name))
+ rlspo.priority = ri['layersourcepriority'][ls_name]
+ rlspo.save()
+
+ for dli in ri['defaultlayers']:
+ # find layers with the same name
+ ReleaseDefaultLayer.objects.get_or_create( release = ro, layer_name = dli)
+
+ # set default release
+ if ToasterSetting.objects.filter(name = "DEFAULT_RELEASE").count() > 0:
+ ToasterSetting.objects.filter(name = "DEFAULT_RELEASE").update(value = data['defaultrelease'])
+ else:
+ ToasterSetting.objects.create(name = "DEFAULT_RELEASE", value = data['defaultrelease'])
+
+ # set default config variables
+ for configname in data['config']:
+ if ToasterSetting.objects.filter(name = "DEFCONF_" + configname).count() > 0:
+ ToasterSetting.objects.filter(name = "DEFCONF_" + configname).update(value = data['config'][configname])
+ else:
+ ToasterSetting.objects.create(name = "DEFCONF_" + configname, value = data['config'][configname])
+
+
+ def handle(self, *args, **options):
+ if len(args) == 0:
+ raise CommandError("Need a path to the toasterconf.json file")
+ filepath = args[0]
+ self._import_layer_config(filepath)
+
+
+
diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
index 8efe8e62bc..808318f14f 100644
--- a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
+++ b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
@@ -1,9 +1,12 @@
from django.core.management.base import NoArgsCommand, CommandError
from django.db import transaction
-from orm.models import Build
+from orm.models import Build, ToasterSetting
from bldcontrol.bbcontroller import getBuildEnvironmentController, ShellCmdException, BuildSetupException
-from bldcontrol.models import BuildRequest, BuildEnvironment, BRError
+from bldcontrol.models import BuildRequest, BuildEnvironment, BRError, BRVariable
import os
+import logging
+
+logger = logging.getLogger("toaster")
class Command(NoArgsCommand):
args = ""
@@ -32,6 +35,7 @@ class Command(NoArgsCommand):
# select the build environment and the request to build
br = self._selectBuildRequest()
except IndexError as e:
+ # logger.debug("runbuilds: No build request")
return
try:
bec = self._selectBuildEnvironment()
@@ -39,26 +43,32 @@ class Command(NoArgsCommand):
# we could not find a BEC; postpone the BR
br.state = BuildRequest.REQ_QUEUED
br.save()
+ logger.debug("runbuilds: No build env")
return
+ logger.debug("runbuilds: starting build %s, environment %s" % (br, bec.be))
+
+ # write the build identification variable
+ BRVariable.objects.create(req = br, name="TOASTER_BRBE", value="%d:%d" % (br.pk, bec.be.pk))
+ # let the build request know where it is being executed
+ br.environment = bec.be
+ br.save()
+
# set up the buid environment with the needed layers
- print "Build %s, Environment %s" % (br, bec.be)
bec.setLayers(br.brbitbake_set.all(), br.brlayer_set.all())
+ bec.writeConfFile("conf/toaster-pre.conf", br.brvariable_set.all())
+ bec.writeConfFile("conf/toaster.conf", raw = "INHERIT+=\"toaster buildhistory\"")
- # get the bb server running
+ # get the bb server running with the build req id and build env id
bbctrl = bec.getBBController()
- # let toasterui that this is a managed build
- bbctrl.setVariable("TOASTER_BRBE", "%d:%d" % (br.pk, bec.be.pk))
-
- # set the build configuration
- for variable in br.brvariable_set.all():
- bbctrl.setVariable(variable.name, variable.value)
-
# trigger the build command
- bbctrl.build(list(map(lambda x:x.target, br.brtarget_set.all())))
+ task = reduce(lambda x, y: x if len(y)== 0 else y, map(lambda y: y.task, br.brtarget_set.all()))
+ if len(task) == 0:
+ task = None
+ bbctrl.build(list(map(lambda x:x.target, br.brtarget_set.all())), task)
- print "Build launched, exiting"
+ logger.debug("runbuilds: Build launched, exiting. Follow build logs at %s/toaster_ui.log" % bec.be.builddir)
# disconnect from the server
bbctrl.disconnect()
@@ -66,17 +76,50 @@ class Command(NoArgsCommand):
except Exception as e:
- print " EE Error executing shell command\n", e
+ logger.error("runbuilds: Error executing shell command %s" % e)
traceback.print_exc(e)
+ if "[Errno 111] Connection refused" in str(e):
+ # Connection refused, read toaster_server.out
+ errmsg = bec.readServerLogFile()
+ else:
+ errmsg = str(e)
+
BRError.objects.create(req = br,
- errtype = str(type(e)),
- errmsg = str(e),
- traceback = traceback.format_exc(e))
+ errtype = str(type(e)),
+ errmsg = errmsg,
+ traceback = traceback.format_exc(e))
br.state = BuildRequest.REQ_FAILED
br.save()
bec.be.lock = BuildEnvironment.LOCK_FREE
bec.be.save()
+ def archive(self):
+ ''' archives data from the builds '''
+ artifact_storage_dir = ToasterSetting.objects.get(name="ARTIFACTS_STORAGE_DIR").value
+ for br in BuildRequest.objects.filter(state = BuildRequest.REQ_ARCHIVE):
+ # save cooker log
+ if br.build == None:
+ br.state = BuildRequest.REQ_FAILED
+ br.save()
+ continue
+ build_artifact_storage_dir = os.path.join(artifact_storage_dir, "%d" % br.build.pk)
+ try:
+ os.makedirs(build_artifact_storage_dir)
+ except OSError as ose:
+ if "File exists" in str(ose):
+ pass
+ else:
+ raise ose
+
+ file_name = os.path.join(build_artifact_storage_dir, "cooker_log.txt")
+ try:
+ with open(file_name, "w") as f:
+ f.write(br.environment.get_artifact(br.build.cooker_log_path).read())
+ except IOError:
+ os.unlink(file_name)
+
+ br.state = BuildRequest.REQ_COMPLETED
+ br.save()
def cleanup(self):
from django.utils import timezone
@@ -87,4 +130,5 @@ class Command(NoArgsCommand):
def handle_noargs(self, **options):
self.cleanup()
+ self.archive()
self.schedule()
diff --git a/bitbake/lib/toaster/bldcontrol/migrations/0007_auto__add_field_buildrequest_environment__chg_field_buildrequest_build.py b/bitbake/lib/toaster/bldcontrol/migrations/0007_auto__add_field_buildrequest_environment__chg_field_buildrequest_build.py
new file mode 100644
index 0000000000..70677a294e
--- /dev/null
+++ b/bitbake/lib/toaster/bldcontrol/migrations/0007_auto__add_field_buildrequest_environment__chg_field_buildrequest_build.py
@@ -0,0 +1,145 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Adding field 'BuildRequest.environment'
+ db.add_column(u'bldcontrol_buildrequest', 'environment',
+ self.gf('django.db.models.fields.related.ForeignKey')(to=orm['bldcontrol.BuildEnvironment'], null=True),
+ keep_default=False)
+
+
+ # Changing field 'BuildRequest.build'
+ db.alter_column(u'bldcontrol_buildrequest', 'build_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['orm.Build'], unique=True, null=True))
+ # Adding unique constraint on 'BuildRequest', fields ['build']
+ db.create_unique(u'bldcontrol_buildrequest', ['build_id'])
+
+
+ def backwards(self, orm):
+ # Removing unique constraint on 'BuildRequest', fields ['build']
+ db.delete_unique(u'bldcontrol_buildrequest', ['build_id'])
+
+ # Deleting field 'BuildRequest.environment'
+ db.delete_column(u'bldcontrol_buildrequest', 'environment_id')
+
+
+ # Changing field 'BuildRequest.build'
+ db.alter_column(u'bldcontrol_buildrequest', 'build_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['orm.Build'], null=True))
+
+ models = {
+ u'bldcontrol.brbitbake': {
+ 'Meta': {'object_name': 'BRBitbake'},
+ 'commit': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ 'giturl': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'req': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildRequest']", 'unique': 'True'})
+ },
+ u'bldcontrol.brerror': {
+ 'Meta': {'object_name': 'BRError'},
+ 'errmsg': ('django.db.models.fields.TextField', [], {}),
+ 'errtype': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'req': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildRequest']"}),
+ 'traceback': ('django.db.models.fields.TextField', [], {})
+ },
+ u'bldcontrol.brlayer': {
+ 'Meta': {'object_name': 'BRLayer'},
+ 'commit': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ 'giturl': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'req': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildRequest']"})
+ },
+ u'bldcontrol.brtarget': {
+ 'Meta': {'object_name': 'BRTarget'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'req': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildRequest']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'task': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'})
+ },
+ u'bldcontrol.brvariable': {
+ 'Meta': {'object_name': 'BRVariable'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'req': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildRequest']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'bldcontrol.buildenvironment': {
+ 'Meta': {'object_name': 'BuildEnvironment'},
+ 'address': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ 'bbaddress': ('django.db.models.fields.CharField', [], {'max_length': '254', 'blank': 'True'}),
+ 'bbport': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
+ 'bbstate': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'bbtoken': ('django.db.models.fields.CharField', [], {'max_length': '126', 'blank': 'True'}),
+ 'betype': ('django.db.models.fields.IntegerField', [], {}),
+ 'builddir': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'lock': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'sourcedir': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
+ },
+ u'bldcontrol.buildrequest': {
+ 'Meta': {'object_name': 'BuildRequest'},
+ 'build': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['orm.Build']", 'unique': 'True', 'null': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'environment': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildEnvironment']", 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'state': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
+ },
+ u'orm.bitbakeversion': {
+ 'Meta': {'object_name': 'BitbakeVersion'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'giturl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.build': {
+ 'Meta': {'object_name': 'Build'},
+ 'bitbake_version': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'build_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'completed_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'cooker_log_path': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'distro': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'distro_version': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'errors_no': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'machine': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']", 'null': 'True'}),
+ 'started_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'timespent': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'warnings_no': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+ },
+ u'orm.project': {
+ 'Meta': {'object_name': 'Project'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'user_id': ('django.db.models.fields.IntegerField', [], {'null': 'True'})
+ },
+ u'orm.release': {
+ 'Meta': {'object_name': 'Release'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ }
+ }
+
+ complete_apps = ['bldcontrol'] \ No newline at end of file
diff --git a/bitbake/lib/toaster/bldcontrol/migrations/0008_brarchive.py b/bitbake/lib/toaster/bldcontrol/migrations/0008_brarchive.py
new file mode 100644
index 0000000000..f5469607f3
--- /dev/null
+++ b/bitbake/lib/toaster/bldcontrol/migrations/0008_brarchive.py
@@ -0,0 +1,138 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+
+class Migration(DataMigration):
+ # ids that cannot be imported from BuildRequest
+
+ def forwards(self, orm):
+ REQ_COMPLETED = 3
+ REQ_ARCHIVE = 6
+ "Write your forwards methods here."
+ # Note: Don't use "from appname.models import ModelName".
+ # Use orm.ModelName to refer to models in this application,
+ # and orm['appname.ModelName'] for models in other applications.
+ orm.BuildRequest.objects.filter(state=REQ_COMPLETED).update(state=REQ_ARCHIVE)
+
+ def backwards(self, orm):
+ REQ_COMPLETED = 3
+ REQ_ARCHIVE = 6
+ "Write your backwards methods here."
+ orm.BuildRequest.objects.filter(state=REQ_ARCHIVE).update(state=REQ_COMPLETED)
+
+ models = {
+ u'bldcontrol.brbitbake': {
+ 'Meta': {'object_name': 'BRBitbake'},
+ 'commit': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ 'giturl': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'req': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildRequest']", 'unique': 'True'})
+ },
+ u'bldcontrol.brerror': {
+ 'Meta': {'object_name': 'BRError'},
+ 'errmsg': ('django.db.models.fields.TextField', [], {}),
+ 'errtype': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'req': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildRequest']"}),
+ 'traceback': ('django.db.models.fields.TextField', [], {})
+ },
+ u'bldcontrol.brlayer': {
+ 'Meta': {'object_name': 'BRLayer'},
+ 'commit': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ 'giturl': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'req': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildRequest']"})
+ },
+ u'bldcontrol.brtarget': {
+ 'Meta': {'object_name': 'BRTarget'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'req': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildRequest']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'task': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'})
+ },
+ u'bldcontrol.brvariable': {
+ 'Meta': {'object_name': 'BRVariable'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'req': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildRequest']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'bldcontrol.buildenvironment': {
+ 'Meta': {'object_name': 'BuildEnvironment'},
+ 'address': ('django.db.models.fields.CharField', [], {'max_length': '254'}),
+ 'bbaddress': ('django.db.models.fields.CharField', [], {'max_length': '254', 'blank': 'True'}),
+ 'bbport': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
+ 'bbstate': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'bbtoken': ('django.db.models.fields.CharField', [], {'max_length': '126', 'blank': 'True'}),
+ 'betype': ('django.db.models.fields.IntegerField', [], {}),
+ 'builddir': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'lock': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'sourcedir': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
+ },
+ u'bldcontrol.buildrequest': {
+ 'Meta': {'object_name': 'BuildRequest'},
+ 'build': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['orm.Build']", 'unique': 'True', 'null': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'environment': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['bldcontrol.BuildEnvironment']", 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'state': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
+ },
+ u'orm.bitbakeversion': {
+ 'Meta': {'object_name': 'BitbakeVersion'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'giturl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.build': {
+ 'Meta': {'object_name': 'Build'},
+ 'bitbake_version': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'build_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'completed_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'cooker_log_path': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'distro': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'distro_version': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'errors_no': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'machine': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']", 'null': 'True'}),
+ 'started_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'timespent': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'warnings_no': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+ },
+ u'orm.project': {
+ 'Meta': {'object_name': 'Project'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'user_id': ('django.db.models.fields.IntegerField', [], {'null': 'True'})
+ },
+ u'orm.release': {
+ 'Meta': {'object_name': 'Release'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'branch_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'helptext': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ }
+ }
+
+ complete_apps = ['bldcontrol']
+ symmetrical = True
diff --git a/bitbake/lib/toaster/bldcontrol/models.py b/bitbake/lib/toaster/bldcontrol/models.py
index 4c54a59b1a..02cfaf7086 100644
--- a/bitbake/lib/toaster/bldcontrol/models.py
+++ b/bitbake/lib/toaster/bldcontrol/models.py
@@ -40,6 +40,50 @@ class BuildEnvironment(models.Model):
updated = models.DateTimeField(auto_now = True)
+ def get_artifact_type(self, path):
+ if self.betype == BuildEnvironment.TYPE_LOCAL:
+ try:
+ import magic
+
+ # fair warning: this is a mess; there are multiple competeing and incompatible
+ # magic modules floating around, so we try some of the most common combinations
+
+ try: # we try ubuntu's python-magic 5.4
+ m = magic.open(magic.MAGIC_MIME_TYPE)
+ m.load()
+ return m.file(path)
+ except AttributeError:
+ pass
+
+ try: # we try python-magic 0.4.6
+ m = magic.Magic(magic.MAGIC_MIME)
+ return m.from_file(path)
+ except AttributeError:
+ pass
+
+ try: # we try pip filemagic 1.6
+ m = magic.Magic(flags=magic.MAGIC_MIME_TYPE)
+ return m.id_filename(path)
+ except AttributeError:
+ pass
+
+ return "binary/octet-stream"
+ except ImportError:
+ return "binary/octet-stream"
+ raise Exception("FIXME: artifact type not implemented for build environment type %s" % be.get_betype_display())
+
+
+ def get_artifact(self, path):
+ if self.betype == BuildEnvironment.TYPE_LOCAL:
+ return open(path, "r")
+ raise Exception("FIXME: artifact download not implemented for build environment type %s" % be.get_betype_display())
+
+ def has_artifact(self, path):
+ import os
+ if self.betype == BuildRequest.TYPE_LOCAL:
+ return os.path.exists(path)
+ raise Exception("FIXME: has artifact not implemented for build environment type %s" % be.get_betype_display())
+
# a BuildRequest is a request that the scheduler will build using a BuildEnvironment
# the build request queue is the table itself, ordered by state
@@ -49,6 +93,8 @@ class BuildRequest(models.Model):
REQ_INPROGRESS = 2
REQ_COMPLETED = 3
REQ_FAILED = 4
+ REQ_DELETED = 5
+ REQ_ARCHIVE = 6
REQUEST_STATE = (
(REQ_CREATED, "created"),
@@ -56,14 +102,28 @@ class BuildRequest(models.Model):
(REQ_INPROGRESS, "in progress"),
(REQ_COMPLETED, "completed"),
(REQ_FAILED, "failed"),
+ (REQ_DELETED, "deleted"),
+ (REQ_ARCHIVE, "archive"),
)
+ search_allowed_fields = ("brtarget__target", "build__project__name")
+
project = models.ForeignKey(Project)
- build = models.ForeignKey(Build, null = True) # TODO: toasterui should set this when Build is created
+ build = models.OneToOneField(Build, null = True) # TODO: toasterui should set this when Build is created
+ environment = models.ForeignKey(BuildEnvironment, null = True)
state = models.IntegerField(choices = REQUEST_STATE, default = REQ_CREATED)
created = models.DateTimeField(auto_now_add = True)
updated = models.DateTimeField(auto_now = True)
+ def get_duration(self):
+ return (self.updated - self.created).total_seconds()
+
+ def get_sorted_target_list(self):
+ tgts = self.brtarget_set.order_by( 'target' );
+ return( tgts );
+
+ def get_machine(self):
+ return self.brvariable_set.get(name="MACHINE").value
# These tables specify the settings for running an actual build.
# They MUST be kept in sync with the tables in orm.models.Project*
diff --git a/bitbake/lib/toaster/bldcontrol/sshbecontroller.py b/bitbake/lib/toaster/bldcontrol/sshbecontroller.py
index 64674953dc..11ad08d440 100644
--- a/bitbake/lib/toaster/bldcontrol/sshbecontroller.py
+++ b/bitbake/lib/toaster/bldcontrol/sshbecontroller.py
@@ -29,7 +29,7 @@ import subprocess
from toastermain import settings
-from bbcontroller import BuildEnvironmentController, ShellCmdException, BuildSetupException, _getgitcheckoutdirectoryname
+from bbcontroller import BuildEnvironmentController, ShellCmdException, BuildSetupException
def DN(path):
return "/".join(path.split("/")[0:-1])
@@ -77,16 +77,21 @@ class SSHBEController(BuildEnvironmentController):
self._pathcreate(self.be.builddir)
self._shellcmd("bash -c \"source %s/oe-init-build-env %s\"" % (self.pokydirname, self.be.builddir))
- def startBBServer(self):
+ def startBBServer(self, brbe):
assert self.pokydirname and self._pathexists(self.pokydirname)
assert self.islayerset
- print self._shellcmd("bash -c \"source %s/oe-init-build-env %s && DATABASE_URL=%s source toaster start noweb && sleep 1\"" % (self.pokydirname, self.be.builddir, self.dburl))
- # FIXME unfortunate sleep 1 - we need to make sure that bbserver is started and the toaster ui is connected
- # but since they start async without any return, we just wait a bit
- print "Started server"
+ cmd = self._shellcmd("bash -c \"source %s/oe-init-build-env %s && DATABASE_URL=%s source toaster start noweb brbe=%s\"" % (self.pokydirname, self.be.builddir, self.dburl, brbe))
+
+ port = "-1"
+ for i in cmd.split("\n"):
+ if i.startswith("Bitbake server address"):
+ port = i.split(" ")[-1]
+ print "Found bitbake server port ", port
+
+
assert self.be.sourcedir and self._pathexists(self.be.builddir)
self.be.bbaddress = self.be.address.split("@")[-1]
- self.be.bbport = "8200"
+ self.be.bbport = port
self.be.bbstate = BuildEnvironment.SERVER_STARTED
self.be.save()
@@ -99,6 +104,19 @@ class SSHBEController(BuildEnvironmentController):
self.be.save()
print "Stopped server"
+
+ def _copyFile(self, filepath1, filepath2):
+ p = subprocess.Popen("scp '%s' '%s'" % (filepath1, filepath2), stdout=subprocess.PIPE, stderr = subprocess.PIPE, shell=True)
+ (out, err) = p.communicate()
+ if p.returncode:
+ raise ShellCmdException(err)
+
+ def pullFile(self, local_filename, remote_filename):
+ _copyFile(local_filename, "%s:%s" % (self.be.address, remote_filename))
+
+ def pushFile(self, local_filename, remote_filename):
+ _copyFile("%s:%s" % (self.be.address, remote_filename), local_filename)
+
def setLayers(self, bitbakes, layers):
""" a word of attention: by convention, the first layer for any build will be poky! """
@@ -106,62 +124,8 @@ class SSHBEController(BuildEnvironmentController):
assert len(bitbakes) == 1
# set layers in the layersource
- # 1. get a list of repos, and map dirpaths for each layer
- gitrepos = {}
- gitrepos[bitbakes[0].giturl] = []
- gitrepos[bitbakes[0].giturl].append( ("bitbake", bitbakes[0].dirpath, bitbakes[0].commit) )
-
- for layer in layers:
- # we don't process local URLs
- if layer.giturl.startswith("file://"):
- continue
- if not layer.giturl in gitrepos:
- gitrepos[layer.giturl] = []
- gitrepos[layer.giturl].append( (layer.name, layer.dirpath, layer.commit))
- for giturl in gitrepos.keys():
- commitid = gitrepos[giturl][0][2]
- for e in gitrepos[giturl]:
- if commitid != e[2]:
- raise BuildSetupException("More than one commit per git url, unsupported configuration")
-
- layerlist = []
-
- # 2. checkout the repositories
- for giturl in gitrepos.keys():
- import os
- localdirname = os.path.join(self.be.sourcedir, _getgitcheckoutdirectoryname(giturl))
- print "DEBUG: giturl ", giturl ,"checking out in current directory", localdirname
-
- # make sure our directory is a git repository
- if self._pathexists(localdirname):
- if not giturl in self._shellcmd("git remote -v", localdirname):
- raise BuildSetupException("Existing git repository at %s, but with different remotes (not '%s'). Aborting." % (localdirname, giturl))
- else:
- self._shellcmd("git clone \"%s\" \"%s\"" % (giturl, localdirname))
- # checkout the needed commit
- commit = gitrepos[giturl][0][2]
-
- # branch magic name "HEAD" will inhibit checkout
- if commit != "HEAD":
- print "DEBUG: checking out commit ", commit, "to", localdirname
- self._shellcmd("git fetch --all && git checkout \"%s\"" % commit , localdirname)
-
- # take the localdirname as poky dir if we can find the oe-init-build-env
- if self.pokydirname is None and self._pathexists(os.path.join(localdirname, "oe-init-build-env")):
- print "DEBUG: selected poky dir name", localdirname
- self.pokydirname = localdirname
-
- # verify our repositories
- for name, dirpath, commit in gitrepos[giturl]:
- localdirpath = os.path.join(localdirname, dirpath)
- if not self._pathexists(localdirpath):
- raise BuildSetupException("Cannot find layer git path '%s' in checked out repository '%s:%s'. Aborting." % (localdirpath, giturl, commit))
-
- if name != "bitbake":
- layerlist.append(localdirpath)
-
- print "DEBUG: current layer list ", layerlist
+ raise Exception("Not implemented: SSH setLayers")
# 3. configure the build environment, so we have a conf/bblayers.conf
assert self.pokydirname is not None
self._setupBE()
@@ -171,17 +135,15 @@ class SSHBEController(BuildEnvironmentController):
if not self._pathexists(bblayerconf):
raise BuildSetupException("BE is not consistent: bblayers.conf file missing at %s" % bblayerconf)
- conflines = open(bblayerconf, "r").readlines()
+ import uuid
+ local_bblayerconf = "/tmp/" + uuid.uuid4() + "-bblayer.conf"
- bblayerconffile = open(bblayerconf, "w")
- for i in xrange(len(conflines)):
- if conflines[i].startswith("# line added by toaster"):
- i += 2
- else:
- bblayerconffile.write(conflines[i])
+ self.pullFile(bblayerconf, local_bblayerconf)
+
+ BuildEnvironmentController._updateBBLayers(local_bblayerconf, layerlist)
+ self.pushFile(local_bblayerconf, bblayerconf)
- bblayerconffile.write("\n# line added by toaster build control\nBBLAYERS = \"" + " ".join(layerlist) + "\"")
- bblayerconffile.close()
+ os.unlink(local_bblayerconf)
self.islayerset = True
return True
diff --git a/bitbake/lib/toaster/bldcontrol/tests.py b/bitbake/lib/toaster/bldcontrol/tests.py
index 4577c3f03b..5a9d1df37a 100644
--- a/bitbake/lib/toaster/bldcontrol/tests.py
+++ b/bitbake/lib/toaster/bldcontrol/tests.py
@@ -44,7 +44,7 @@ class BEControllerTests(object):
# test start server and stop
self.assertTrue(socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect_ex((hostname, 8200)), "Port already occupied")
- bc.startBBServer()
+ bc.startBBServer("0:0")
self.assertFalse(socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect_ex((hostname, 8200)), "Server not answering")
bc.stopBBServer()
@@ -57,14 +57,8 @@ class BEControllerTests(object):
bc = self._getBEController(obe)
bc.setLayers(BITBAKE_LAYERS, POKY_LAYERS) # setting layers, skip any layer info
- bbc = bc.getBBController()
+ bbc = bc.getBBController("%d:%d" % (-1, obe.pk))
self.assertTrue(isinstance(bbc, BitbakeController))
- # test set variable, use no build marker -1 for BR value
- try:
- bbc.setVariable("TOASTER_BRBE", "%d:%d" % (-1, obe.pk))
- except Exception as e :
- self.fail("setVariable raised %s", e)
-
bc.stopBBServer()
self._serverForceStop(bc)
@@ -136,7 +130,7 @@ class RunBuildsCommandTests(TestCase):
def test_br_select(self):
from orm.models import Project, Release, BitbakeVersion
- p = Project.objects.create_project("test", Release.objects.get_or_create(name = "HEAD", bitbake_version = BitbakeVersion.objects.get_or_create(name="HEAD", branch="HEAD")[0])[0])
+ p = Project.objects.create_project("test", Release.objects.get_or_create(name = "HEAD", bitbake_version = BitbakeVersion.objects.get_or_create(name="HEAD", branch=Branch.objects.get_or_create(name="HEAD"))[0])[0])
obr = BuildRequest.objects.create(state = BuildRequest.REQ_QUEUED, project = p)
command = Command()
br = command._selectBuildRequest()
@@ -147,3 +141,22 @@ class RunBuildsCommandTests(TestCase):
self.assertTrue(br.state == BuildRequest.REQ_INPROGRESS, "Request is not updated")
# no more selections possible here
self.assertRaises(IndexError, command._selectBuildRequest)
+
+
+class UtilityTests(TestCase):
+ def test_reduce_path(self):
+ from bldcontrol.management.commands.loadconf import _reduce_canon_path, _get_id_for_sourcetype
+
+ self.assertTrue( _reduce_canon_path("/") == "/")
+ self.assertTrue( _reduce_canon_path("/home/..") == "/")
+ self.assertTrue( _reduce_canon_path("/home/../ana") == "/ana")
+ self.assertTrue( _reduce_canon_path("/home/../ana/..") == "/")
+ self.assertTrue( _reduce_canon_path("/home/ana/mihai/../maria") == "/home/ana/maria")
+
+ def test_get_id_for_sorucetype(self):
+ from bldcontrol.management.commands.loadconf import _reduce_canon_path, _get_id_for_sourcetype
+ self.assertTrue( _get_id_for_sourcetype("layerindex") == 1)
+ self.assertTrue( _get_id_for_sourcetype("local") == 0)
+ self.assertTrue( _get_id_for_sourcetype("imported") == 2)
+ with self.assertRaises(Exception):
+ _get_id_for_sourcetype("unknown")
diff --git a/bitbake/lib/toaster/bldviewer/tests.py b/bitbake/lib/toaster/bldviewer/tests.py
index 761165b8a4..5be0b8bb9e 100644
--- a/bitbake/lib/toaster/bldviewer/tests.py
+++ b/bitbake/lib/toaster/bldviewer/tests.py
@@ -13,7 +13,10 @@ import json, os, re, urllib, shlex
class Tests(TestCase):
- fixtures = ['orm_views_testdata.json']
+ # fixtures = ['orm_views_testdata.json']
+
+ def setUp(self):
+ raise Exception("The %s test data is not longer valid, tests disabled" % __name__)
def test_builds(self):
client = Client()
diff --git a/bitbake/lib/toaster/orm/admin.py b/bitbake/lib/toaster/orm/admin.py
index 9383630486..706e517e0e 100644
--- a/bitbake/lib/toaster/orm/admin.py
+++ b/bitbake/lib/toaster/orm/admin.py
@@ -1,17 +1,34 @@
from django.contrib import admin
from django.contrib.admin.filters import RelatedFieldListFilter
-from .models import Branch, LayerSource, ToasterSetting
+from .models import BitbakeVersion, Release, LayerSource, ToasterSetting
+from django.forms.widgets import Textarea
+from django import forms
+import django.db.models as models
+
+from django.contrib.admin import widgets, helpers
class LayerSourceAdmin(admin.ModelAdmin):
pass
-class BranchAdmin(admin.ModelAdmin):
+class BitbakeVersionAdmin(admin.ModelAdmin):
+
+ # we override the formfield for db URLField because of broken URL validation
+
+ def formfield_for_dbfield(self, db_field, **kwargs):
+ if isinstance(db_field, models.fields.URLField):
+ return forms.fields.CharField()
+ return super(BitbakeVersionAdmin, self).formfield_for_dbfield(db_field, **kwargs)
+
+
+
+class ReleaseAdmin(admin.ModelAdmin):
pass
class ToasterSettingAdmin(admin.ModelAdmin):
pass
admin.site.register(LayerSource, LayerSourceAdmin)
-admin.site.register(Branch, BranchAdmin)
+admin.site.register(BitbakeVersion, BitbakeVersionAdmin)
+admin.site.register(Release, ReleaseAdmin)
admin.site.register(ToasterSetting, ToasterSettingAdmin)
diff --git a/bitbake/lib/toaster/orm/fixtures/orm_views_testdata.json b/bitbake/lib/toaster/orm/fixtures/orm_views_testdata.json
deleted file mode 100644
index be01318ac6..0000000000
--- a/bitbake/lib/toaster/orm/fixtures/orm_views_testdata.json
+++ /dev/null
@@ -1,140835 +0,0 @@
-[
-{
- "pk": 1,
- "model": "orm.build",
- "fields": {
- "build_name": "201401141355",
- "outcome": 0,
- "completed_on": "2014-01-14T12:00:12.043Z",
- "warnings_no": 0,
- "distro_version": "1.5+snapshot-20140114",
- "started_on": "2014-01-14T11:55:12.899Z",
- "machine": "qemux86",
- "bitbake_version": "1.21.1",
- "cooker_log_path": "/home/andreea/poky/build/tmp/log/cooker/qemux86/20140114115445.log",
- "image_fstypes": "tar.bz2 ext3",
- "errors_no": 0,
- "distro": "poky"
- }
-},
-{
- "pk": 1,
- "model": "orm.target",
- "fields": {
- "file_name": "",
- "file_size": 0,
- "build": 1,
- "is_image": true,
- "target": "core-image-minimal"
- }
-},
-{
- "pk": 1,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f89a498ac8ed6f0acb6346b4a772b65c",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 813,
- "script_type": 0
- }
-},
-{
- "pk": 2,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "07ba40012fdcfbff0cfb34e70aa41334",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 812,
- "script_type": 0
- }
-},
-{
- "pk": 3,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8635b2b5ade6967db9b6c60ad1e5553d",
- "recipe": 8,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 912,
- "script_type": 0
- }
-},
-{
- "pk": 4,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f124762f73a3fe6e41901a3244aecc2c",
- "recipe": 8,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 911,
- "script_type": 0
- }
-},
-{
- "pk": 5,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1cc0a468aa544042ec549b120119e5a8",
- "recipe": 29,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004606",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2329,
- "script_type": 1
- }
-},
-{
- "pk": 6,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3cc961d7093b8d4debe7d67afb534fcf",
- "recipe": 29,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 918,
- "script_type": 0
- }
-},
-{
- "pk": 7,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fc212eff55e3ed0e1af195a62846e57d",
- "recipe": 29,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2328,
- "script_type": 0
- }
-},
-{
- "pk": 8,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9400956aef953e7b18d76f11fc82cdfe",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1794,
- "script_type": 0
- }
-},
-{
- "pk": 9,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4018b6d5b04e53c64883582a2874b4e7",
- "recipe": 42,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 953,
- "script_type": 0
- }
-},
-{
- "pk": 10,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d848607c544b2548b430d93a4be8d420",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1793,
- "script_type": 0
- }
-},
-{
- "pk": 11,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "27608f5e6da2f9a40b557266fa8bcd86",
- "recipe": 111,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1488,
- "script_type": 0
- }
-},
-{
- "pk": 12,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "47f590a8c1ab765f5613e8f185b0c0f8",
- "recipe": 111,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1487,
- "script_type": 0
- }
-},
-{
- "pk": 13,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2a76321e0e5cff6bbd93295ad789a664",
- "recipe": 113,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1863,
- "script_type": 0
- }
-},
-{
- "pk": 14,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a3d4871718b345002bec17896e397391",
- "recipe": 113,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1748,
- "script_type": 0
- }
-},
-{
- "pk": 15,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6f29cb761dc705bbc6fad967575440e4",
- "recipe": 113,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1692,
- "script_type": 0
- }
-},
-{
- "pk": 16,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "acbde08d2a6b8a13a1366bd6b6087bb5",
- "recipe": 55,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1122,
- "script_type": 0
- }
-},
-{
- "pk": 17,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "822ded6256710da139b5e4bc99710e13",
- "recipe": 80,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1945,
- "script_type": 0
- }
-},
-{
- "pk": 18,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "91f09830ce94a84f444bca517df9ed41",
- "recipe": 80,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1719,
- "script_type": 0
- }
-},
-{
- "pk": 19,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "608a2f4b376de2d83e0fe8ef5c1120c1",
- "recipe": 80,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1747,
- "script_type": 0
- }
-},
-{
- "pk": 20,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d21c80e6b4260585d0066a319b3ba5d9",
- "recipe": 119,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2269,
- "script_type": 0
- }
-},
-{
- "pk": 21,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6b07d5ad594a057211027e82b0eb05a3",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1826,
- "script_type": 0
- }
-},
-{
- "pk": 22,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "25108979bebb9e0fe2fb686fe6b678e8",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1947,
- "script_type": 0
- }
-},
-{
- "pk": 23,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62416ff7b773b45d6e47320e243236fe",
- "recipe": 26,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1024,
- "script_type": 0
- }
-},
-{
- "pk": 24,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "70e315ae93cd2ef324045e4d3c5c9cfe",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1935,
- "script_type": 0
- }
-},
-{
- "pk": 25,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "11bc31b7cdfa4e49470bb06b911e2931",
- "recipe": 88,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 888,
- "script_type": 0
- }
-},
-{
- "pk": 26,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c214ca5db7746dcd3b7180f0ce555451",
- "recipe": 39,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1019,
- "script_type": 0
- }
-},
-{
- "pk": 27,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e10e6543b0e544590f3f42fd9d7e41c",
- "recipe": 101,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 898,
- "script_type": 0
- }
-},
-{
- "pk": 28,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2e15545f830e0a03879d008b86b78663",
- "recipe": 120,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 935,
- "script_type": 0
- }
-},
-{
- "pk": 29,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "33f3be58d515eada375a57e1d2c2d74f",
- "recipe": 93,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1041,
- "script_type": 0
- }
-},
-{
- "pk": 30,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7f123670bdc268647979680f9f0feae1",
- "recipe": 82,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1077,
- "script_type": 0
- }
-},
-{
- "pk": 31,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1e20f7f197e703dfe060850670f21e22",
- "recipe": 33,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 903,
- "script_type": 0
- }
-},
-{
- "pk": 32,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a8b7f95586082225ee32fc96a40c1101",
- "recipe": 11,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 908,
- "script_type": 0
- }
-},
-{
- "pk": 33,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a2cb8fc2eba75dbc6e201f1ea3aa4ac",
- "recipe": 77,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2214,
- "script_type": 0
- }
-},
-{
- "pk": 34,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "741e4e05c29d61ae12931dc0027da058",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1431,
- "script_type": 0
- }
-},
-{
- "pk": 35,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "08e4cd83f522d44367d95c9064347a86",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1653,
- "script_type": 0
- }
-},
-{
- "pk": 36,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b62e1f50feee23522e8e4b2001e67b7c",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1617,
- "script_type": 0
- }
-},
-{
- "pk": 37,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "067e10fce7c39d88a416201023e1733a",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1652,
- "script_type": 0
- }
-},
-{
- "pk": 38,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c568a2e1bdbc69f47fbd79370855c3e",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1805,
- "script_type": 0
- }
-},
-{
- "pk": 39,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6e40ea1b1e475369b78b062faee45acc",
- "recipe": 96,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 883,
- "script_type": 0
- }
-},
-{
- "pk": 40,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f48e63a743e787d7703451b89d3c4ad7",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 834,
- "script_type": 0
- }
-},
-{
- "pk": 41,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "623c04795ede5f6402ccb13dea46b96c",
- "recipe": 6,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2413,
- "script_type": 0
- }
-},
-{
- "pk": 42,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "27a870a1dab1e5e73ecc92428a18303b",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1210,
- "script_type": 0
- }
-},
-{
- "pk": 43,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d6f19d836f6c69c6374c3ad613b34923",
- "recipe": 24,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1266,
- "script_type": 0
- }
-},
-{
- "pk": 44,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "44ff171907afae30973548e3bc3ebaf1",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1259,
- "script_type": 0
- }
-},
-{
- "pk": 45,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3726a9a7466c20ca4dd60152e2cae42d",
- "recipe": 65,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1254,
- "script_type": 0
- }
-},
-{
- "pk": 46,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bda61b9cbc0369141788b77e7b75a12e",
- "recipe": 65,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1253,
- "script_type": 0
- }
-},
-{
- "pk": 47,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f26c7b66ec711d9ee75afb29bfd6d43c",
- "recipe": 51,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 974,
- "script_type": 0
- }
-},
-{
- "pk": 48,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b05f14ac987434e31e786107e3af5254",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 973,
- "script_type": 0
- }
-},
-{
- "pk": 49,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fe66a4f33b53ea295cd1b32e5ab09d03",
- "recipe": 36,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1132,
- "script_type": 0
- }
-},
-{
- "pk": 50,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "db40ae927edd41894486807fe6a69f4f",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1498,
- "script_type": 0
- }
-},
-{
- "pk": 51,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5d13e59189d87970ac05431d9d7239af",
- "recipe": 135,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1048,
- "script_type": 0
- }
-},
-{
- "pk": 52,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5757a78b1ef939ecc7a3d1832ea5a673",
- "recipe": 126,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 966,
- "script_type": 0
- }
-},
-{
- "pk": 53,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8b1e3a09f00f4d27c8df3f59f70a6f1b",
- "recipe": 126,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 965,
- "script_type": 0
- }
-},
-{
- "pk": 54,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "18e0aa9cc981f5c2a30a2a9a40f5a908",
- "recipe": 29,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 916,
- "script_type": 0
- }
-},
-{
- "pk": 55,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dec408ae40bd8508648fbacb00707b90",
- "recipe": 29,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 915,
- "script_type": 0
- }
-},
-{
- "pk": 56,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f403383a7c27b763a298f5e7ed958eb0",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1792,
- "script_type": 0
- }
-},
-{
- "pk": 57,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "769dca759ea690036d40caee0627ae7a",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1785,
- "script_type": 0
- }
-},
-{
- "pk": 58,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5.2",
- "task_executed": true,
- "disk_io": 7072,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62613039f22da74cf3a0d4cb59160a47",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "32.016837",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.do_rootfs.12451",
- "build": 1,
- "task_name": "do_rootfs",
- "message": "recipe core-image-minimal-1.0-r0: task do_rootfs: Succeeded",
- "outcome": 0,
- "order": 2423,
- "script_type": 3
- }
-},
-{
- "pk": 59,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "382d6e1da4ac25694c7f858670b4924c",
- "recipe": 110,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1885,
- "script_type": 0
- }
-},
-{
- "pk": 60,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6a3143cec3c4c52d35ffb509b7e4fa57",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 1,
- "order": 1951,
- "script_type": 0
- }
-},
-{
- "pk": 61,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a6131a16190fba05ca8545d95a73890e",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 1,
- "order": 2066,
- "script_type": 0
- }
-},
-{
- "pk": 62,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "825d25b88dd149dbef4c829df7df86fd",
- "recipe": 130,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1982,
- "script_type": 0
- }
-},
-{
- "pk": 63,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2b1e4b8e401c5b9c5cf7a569823b6c48",
- "recipe": 50,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1540,
- "script_type": 0
- }
-},
-{
- "pk": 64,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ab683bdad8b08fdda2c265e233e4665c",
- "recipe": 50,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1833,
- "script_type": 0
- }
-},
-{
- "pk": 65,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c0bfb0b7d075e4c9f3f9042d65cf1c57",
- "recipe": 109,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1606,
- "script_type": 0
- }
-},
-{
- "pk": 66,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c795f12b141277873f867136dac00dce",
- "recipe": 109,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1855,
- "script_type": 0
- }
-},
-{
- "pk": 67,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "30fe426ee9914e4e2b6d1f69e2d3715d",
- "recipe": 39,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1175,
- "script_type": 0
- }
-},
-{
- "pk": 68,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0218e0d7e0e0ef46e8dfcac117be7a55",
- "recipe": 39,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1673,
- "script_type": 0
- }
-},
-{
- "pk": 69,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "523ab627fc8ce5460c49980b7e17aebb",
- "recipe": 4,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1984,
- "script_type": 0
- }
-},
-{
- "pk": 70,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9a0e3a673ccf4642e82b8fbb8f714205",
- "recipe": 118,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1592,
- "script_type": 0
- }
-},
-{
- "pk": 71,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3cc3b4b324c68177bc1738b5bdd72837",
- "recipe": 119,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1920,
- "script_type": 0
- }
-},
-{
- "pk": 72,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "06a41da4555e8e1cfdf64fecfef48bc7",
- "recipe": 6,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1786,
- "script_type": 0
- }
-},
-{
- "pk": 73,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "86ed3fa9f0077fab5ff0d117642d0835",
- "recipe": 79,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1579,
- "script_type": 0
- }
-},
-{
- "pk": 74,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "32d49666ec85212bd5454cd7c1f85673",
- "recipe": 117,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1294,
- "script_type": 0
- }
-},
-{
- "pk": 75,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7541dc1b017ceef5a69868875f7cc6da",
- "recipe": 117,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1752,
- "script_type": 0
- }
-},
-{
- "pk": 76,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6794ac662a6bbf842af600d01cfd712a",
- "recipe": 2,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1591,
- "script_type": 0
- }
-},
-{
- "pk": 77,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3558881d9984e38e0f25b545c5d245f2",
- "recipe": 2,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1874,
- "script_type": 0
- }
-},
-{
- "pk": 78,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3243a0293972cafbf3bcf0fe1a1c71a4",
- "recipe": 139,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1758,
- "script_type": 0
- }
-},
-{
- "pk": 79,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "78d54b50e4492970b1f55d9187b76c3e",
- "recipe": 63,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1896,
- "script_type": 0
- }
-},
-{
- "pk": 80,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3da0c2b9a934f5fd547c95512799b6fa",
- "recipe": 136,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1590,
- "script_type": 0
- }
-},
-{
- "pk": 81,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a7c5ae10dd44a72bc53eaffd4941b55b",
- "recipe": 136,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1873,
- "script_type": 0
- }
-},
-{
- "pk": 82,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b4d9b9b8e96b9074a9036c264b441d4c",
- "recipe": 114,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1772,
- "script_type": 0
- }
-},
-{
- "pk": 83,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "004eee0c60bbb1b4ea578a2881e3776d",
- "recipe": 114,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1976,
- "script_type": 0
- }
-},
-{
- "pk": 84,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "87c3964177eb20912c7e7ce185f3bf1e",
- "recipe": 32,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1589,
- "script_type": 0
- }
-},
-{
- "pk": 85,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7fc90e2ec19efd8b74479b4450d15625",
- "recipe": 32,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1872,
- "script_type": 0
- }
-},
-{
- "pk": 86,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "72576aac0f5b088eb7adcdb299bcfed4",
- "recipe": 74,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1776,
- "script_type": 0
- }
-},
-{
- "pk": 87,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cd7a15029f545ed800e644124dc51bab",
- "recipe": 74,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1958,
- "script_type": 0
- }
-},
-{
- "pk": 88,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "27a8474c59bb59914900b15a24d6b638",
- "recipe": 24,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1595,
- "script_type": 0
- }
-},
-{
- "pk": 89,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a923726b8e3e1b5f77f9f71a516a1364",
- "recipe": 24,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1832,
- "script_type": 0
- }
-},
-{
- "pk": 90,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c4b842a472a2be72302cbe653c802af",
- "recipe": 94,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1586,
- "script_type": 0
- }
-},
-{
- "pk": 91,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d29c53043914ebb9368e564d1b41eab1",
- "recipe": 94,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1899,
- "script_type": 0
- }
-},
-{
- "pk": 92,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8cd79342e95a6976e98b6678b2fd60c7",
- "recipe": 90,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1172,
- "script_type": 0
- }
-},
-{
- "pk": 93,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fb57e92ef41ee981d0c2ce380095ec79",
- "recipe": 105,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1750,
- "script_type": 0
- }
-},
-{
- "pk": 94,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a6074b0544cce628596b3edc8e197917",
- "recipe": 105,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1853,
- "script_type": 0
- }
-},
-{
- "pk": 95,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cf7b0c1ce709a5803bc26f82148b28f1",
- "recipe": 19,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1701,
- "script_type": 0
- }
-},
-{
- "pk": 96,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "739eda9c504fcab46f611d871e74a684",
- "recipe": 140,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1580,
- "script_type": 0
- }
-},
-{
- "pk": 97,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "11aa82f2b8fa14f6b30287ffce0ed4b7",
- "recipe": 19,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1939,
- "script_type": 0
- }
-},
-{
- "pk": 98,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "48fee8e6343d214de4c917cad7bc08e2",
- "recipe": 20,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1950,
- "script_type": 0
- }
-},
-{
- "pk": 99,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ea79c9ce1baca1d7bea33e5137fdc3d0",
- "recipe": 91,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1937,
- "script_type": 0
- }
-},
-{
- "pk": 100,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ac2f689e5d1ce257fb813c565cc7c593",
- "recipe": 137,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1775,
- "script_type": 0
- }
-},
-{
- "pk": 101,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c1ca696565a11746fb060af061f3d21",
- "recipe": 137,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1956,
- "script_type": 0
- }
-},
-{
- "pk": 102,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2f54d054acc1c88b3178272a9bbee6a6",
- "recipe": 45,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2049,
- "script_type": 0
- }
-},
-{
- "pk": 103,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d1b4394a483e722e4fc55f3ed92f0378",
- "recipe": 77,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1285,
- "script_type": 0
- }
-},
-{
- "pk": 104,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "379480b8b1a17cd4c84262a52fd7e452",
- "recipe": 140,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1841,
- "script_type": 0
- }
-},
-{
- "pk": 105,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "735dac070cfbc77b409c6313585f092b",
- "recipe": 77,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1773,
- "script_type": 0
- }
-},
-{
- "pk": 106,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "770f5cce89a14e7aaaa8ce6e1de10839",
- "recipe": 138,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1774,
- "script_type": 0
- }
-},
-{
- "pk": 107,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2d20a526da66a8c9c6a3246850c3b46c",
- "recipe": 138,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1955,
- "script_type": 0
- }
-},
-{
- "pk": 108,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e605c539b173537f8fbaea8572902187",
- "recipe": 139,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1898,
- "script_type": 0
- }
-},
-{
- "pk": 109,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b1a2ab6828a299d65c7e351179ad06a1",
- "recipe": 129,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1389,
- "script_type": 0
- }
-},
-{
- "pk": 110,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ab457fd3d466d946572cb1887268772c",
- "recipe": 129,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1796,
- "script_type": 0
- }
-},
-{
- "pk": 111,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "37a246f025940de62e816c4182fd5fe9",
- "recipe": 10,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2033,
- "script_type": 0
- }
-},
-{
- "pk": 112,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e8bfb0baecd4b3aee0000d6bb096b2a5",
- "recipe": 72,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2041,
- "script_type": 0
- }
-},
-{
- "pk": 113,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bc8a0712bdf338c0a1d5f785710ae99c",
- "recipe": 79,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1852,
- "script_type": 0
- }
-},
-{
- "pk": 114,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "92c0912da325027e7a3ef457ae9e7284",
- "recipe": 27,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1551,
- "script_type": 0
- }
-},
-{
- "pk": 115,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9d516c69272f4d80b357abf5eed7db6e",
- "recipe": 91,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1749,
- "script_type": 0
- }
-},
-{
- "pk": 116,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "02e4b2113e520d85b18c0c9036935c2b",
- "recipe": 27,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1834,
- "script_type": 0
- }
-},
-{
- "pk": 117,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f70cfb46cbb3e0eb6c9e143580d283d1",
- "recipe": 12,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2037,
- "script_type": 0
- }
-},
-{
- "pk": 118,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "337dca702a703b841e05aa913ce31887",
- "recipe": 23,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1859,
- "script_type": 0
- }
-},
-{
- "pk": 119,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6fe2048607634ac70c1f4fe07b08530a",
- "recipe": 132,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1490,
- "script_type": 0
- }
-},
-{
- "pk": 120,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3bd578be4d317fff13f6653f621e5e40",
- "recipe": 132,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1808,
- "script_type": 0
- }
-},
-{
- "pk": 121,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f562c76f526ed2348aa469549f7e116f",
- "recipe": 48,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1700,
- "script_type": 0
- }
-},
-{
- "pk": 122,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "40dffe887ef78c3fbfe4597f306a06ca",
- "recipe": 48,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1938,
- "script_type": 0
- }
-},
-{
- "pk": 123,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d0bba0144edb3d62d8e06107feaf9402",
- "recipe": 89,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1578,
- "script_type": 0
- }
-},
-{
- "pk": 124,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2e590f9f25bc216c26edc0044f7b68a6",
- "recipe": 57,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2240,
- "script_type": 0
- }
-},
-{
- "pk": 125,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7f1745db446e47eed500c5b775e635c1",
- "recipe": 75,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1568,
- "script_type": 0
- }
-},
-{
- "pk": 126,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1880220707610762652510d1d2b6a1fb",
- "recipe": 89,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1851,
- "script_type": 0
- }
-},
-{
- "pk": 127,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "02e2c477ca2346da383596c11f27f0d2",
- "recipe": 15,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1860,
- "script_type": 0
- }
-},
-{
- "pk": 128,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "27d4e7ce4b35be9497f664a02142196d",
- "recipe": 15,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1953,
- "script_type": 0
- }
-},
-{
- "pk": 129,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "da3ffd8b1614125050fc2f23b7cf93fe",
- "recipe": 18,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1577,
- "script_type": 0
- }
-},
-{
- "pk": 130,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c8cdc290cf9528355543b16da3724577",
- "recipe": 18,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1850,
- "script_type": 0
- }
-},
-{
- "pk": 131,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c18b42443b8045ff69f61c0871902f23",
- "recipe": 5,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1296,
- "script_type": 0
- }
-},
-{
- "pk": 132,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "61c77a560f55fd99b8f942c2cdc22233",
- "recipe": 37,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1983,
- "script_type": 0
- }
-},
-{
- "pk": 133,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "445aea8f424ea6aead442773b2784836",
- "recipe": 5,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1755,
- "script_type": 0
- }
-},
-{
- "pk": 134,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0681960a2ceabb3fff8d88c0e7444b77",
- "recipe": 122,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1782,
- "script_type": 0
- }
-},
-{
- "pk": 135,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "51b1ac860781cee98ec8706096106bf6",
- "recipe": 107,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1946,
- "script_type": 0
- }
-},
-{
- "pk": 136,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fed9518a5ba6fb7167f6ddbd98fcf6ae",
- "recipe": 128,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1576,
- "script_type": 0
- }
-},
-{
- "pk": 137,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a8ecfd4fde335475d43b1209df7e6b13",
- "recipe": 107,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 2029,
- "script_type": 0
- }
-},
-{
- "pk": 138,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "98219bd1d3c5b908f493694a5d450ae5",
- "recipe": 128,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1849,
- "script_type": 0
- }
-},
-{
- "pk": 139,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ecc6992b8e5d17d2d6cf2447f54e3843",
- "recipe": 40,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1199,
- "script_type": 0
- }
-},
-{
- "pk": 140,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "581a2462a253b1ce7a86f4ee84e37372",
- "recipe": 40,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1677,
- "script_type": 0
- }
-},
-{
- "pk": 141,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5acbe216319007a20631a42c12c7ca21",
- "recipe": 70,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1575,
- "script_type": 0
- }
-},
-{
- "pk": 142,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7ccef6d52ad4b3b1ec87d29f22e376f1",
- "recipe": 70,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1848,
- "script_type": 0
- }
-},
-{
- "pk": 143,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dd6f6306b5c543650e9ff7f1d40bd771",
- "recipe": 62,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2057,
- "script_type": 0
- }
-},
-{
- "pk": 144,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e72607eea09a1f89043c2f23532877ad",
- "recipe": 110,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1753,
- "script_type": 0
- }
-},
-{
- "pk": 145,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "833e843352c9501a92f5b2d459350d5b",
- "recipe": 95,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1882,
- "script_type": 0
- }
-},
-{
- "pk": 146,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6affe012935ba0b3130ef85613520c2e",
- "recipe": 17,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1944,
- "script_type": 0
- }
-},
-{
- "pk": 147,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fde3e58b7c97bd96ce8f7e8a2f6791fd",
- "recipe": 10,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1574,
- "script_type": 0
- }
-},
-{
- "pk": 148,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8bd6a25a5808c38fb39b89adea6e5ab7",
- "recipe": 17,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 2028,
- "script_type": 0
- }
-},
-{
- "pk": 149,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7e0ce5e2a3041c26605451ba5f8e5284",
- "recipe": 10,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1847,
- "script_type": 0
- }
-},
-{
- "pk": 150,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "74047424effb68a6f74161cb567c0d91",
- "recipe": 63,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1662,
- "script_type": 0
- }
-},
-{
- "pk": 151,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5dbf624ef502e6d0f6d8b57a9fac269c",
- "recipe": 119,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1989,
- "script_type": 0
- }
-},
-{
- "pk": 152,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e36e8a44f871e6ac19263842126a7ac",
- "recipe": 69,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1943,
- "script_type": 0
- }
-},
-{
- "pk": 153,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3c93729bb3134a9dbe5c01481ecfb19d",
- "recipe": 69,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 2027,
- "script_type": 0
- }
-},
-{
- "pk": 154,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "be7a3e515e717d0863a31988fab3df32",
- "recipe": 22,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1757,
- "script_type": 0
- }
-},
-{
- "pk": 155,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d1b6fcb8a7a90d0c501642e503ab9f67",
- "recipe": 41,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1558,
- "script_type": 0
- }
-},
-{
- "pk": 156,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aad09fe4358c7514e62f9713908c90d3",
- "recipe": 22,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1895,
- "script_type": 0
- }
-},
-{
- "pk": 157,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ce40671cc1dbd536f231ed1c1fcca41a",
- "recipe": 41,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1830,
- "script_type": 0
- }
-},
-{
- "pk": 158,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6343fbfaf574e9435fed85c38532d778",
- "recipe": 84,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1663,
- "script_type": 0
- }
-},
-{
- "pk": 159,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "828093405d192b7743f0f4bccfd15074",
- "recipe": 23,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1608,
- "script_type": 0
- }
-},
-{
- "pk": 160,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2e0e31eba113a554cb0181c54128cf82",
- "recipe": 46,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1557,
- "script_type": 0
- }
-},
-{
- "pk": 161,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cae5b900550ca1ae58821cd949aade96",
- "recipe": 1,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1919,
- "script_type": 0
- }
-},
-{
- "pk": 162,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d361f76ed619d3587fd0cdf6ebe50783",
- "recipe": 46,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1829,
- "script_type": 0
- }
-},
-{
- "pk": 163,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3cdccd886e9c805ca5856e170bcc316d",
- "recipe": 1,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1988,
- "script_type": 0
- }
-},
-{
- "pk": 164,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "061bd1e3cb5c3d545ab971df02f8a506",
- "recipe": 7,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1607,
- "script_type": 0
- }
-},
-{
- "pk": 165,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5fb4d52b4ee7a1bd24b9ee6153937b84",
- "recipe": 121,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1556,
- "script_type": 0
- }
-},
-{
- "pk": 166,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c63512bf4d327af8ae91ae79c37b50d2",
- "recipe": 49,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1918,
- "script_type": 0
- }
-},
-{
- "pk": 167,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "18035f94c85d6441eb78d62bbff4e57a",
- "recipe": 121,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1828,
- "script_type": 0
- }
-},
-{
- "pk": 168,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aa88d1d58cfe9d5b86b92907a738098b",
- "recipe": 49,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1987,
- "script_type": 0
- }
-},
-{
- "pk": 169,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a950f6bf004834e9cf54e21f6bd3fdd4",
- "recipe": 7,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1858,
- "script_type": 0
- }
-},
-{
- "pk": 170,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ae16c88fcae5389020ca2fc8c0bd4f1b",
- "recipe": 61,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1555,
- "script_type": 0
- }
-},
-{
- "pk": 171,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4d603a7c3ef35275f1a07ba8a7325ff3",
- "recipe": 54,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1917,
- "script_type": 0
- }
-},
-{
- "pk": 172,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "546a7bb10f70fe5a5091fbf2819fe32c",
- "recipe": 61,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1827,
- "script_type": 0
- }
-},
-{
- "pk": 173,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1118fe923cffcb1d620b9b8bdbe58d54",
- "recipe": 54,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1986,
- "script_type": 0
- }
-},
-{
- "pk": 174,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ca4689c569f2597fce2a60ef70935893",
- "recipe": 98,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1816,
- "script_type": 0
- }
-},
-{
- "pk": 175,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f40d4d20e3b1daf0d0846fb665d43e71",
- "recipe": 98,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1963,
- "script_type": 0
- }
-},
-{
- "pk": 176,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ee6ad50d79703e584fd2bf5185448f44",
- "recipe": 122,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1664,
- "script_type": 0
- }
-},
-{
- "pk": 177,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "04879ed6648ddd483f6246f0285893aa",
- "recipe": 4,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1916,
- "script_type": 0
- }
-},
-{
- "pk": 178,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "98709f2bbadacb38d524d332e49f66de",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 1,
- "order": 1173,
- "script_type": 0
- }
-},
-{
- "pk": 179,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2fbdf60cf568171b4e29ae5b19325415",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 1,
- "order": 1668,
- "script_type": 0
- }
-},
-{
- "pk": 180,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "688745cba4759acf064d0953933b8c5b",
- "recipe": 6,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1482,
- "script_type": 0
- }
-},
-{
- "pk": 181,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2d6f7ab6ff3de1c0e3a8978143f201d6",
- "recipe": 90,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1667,
- "script_type": 0
- }
-},
-{
- "pk": 182,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "66cac2b8db2c471eb45eaac21deb47e0",
- "recipe": 118,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1875,
- "script_type": 0
- }
-},
-{
- "pk": 183,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0b3b94c9c64e73ed6a872e0e885b0b77",
- "recipe": 37,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1915,
- "script_type": 0
- }
-},
-{
- "pk": 184,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "45f97c1a922e182dc21e9bf1a6cf6894",
- "recipe": 83,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1171,
- "script_type": 0
- }
-},
-{
- "pk": 185,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "59f6e0d23d53a4fd79fda03cf4af0632",
- "recipe": 75,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1879,
- "script_type": 0
- }
-},
-{
- "pk": 186,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ecd4b034aabc9e8bdb3edbd14f09900f",
- "recipe": 83,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1666,
- "script_type": 0
- }
-},
-{
- "pk": 187,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "db5e8ad7d1ac51470ced019da05bf6f8",
- "recipe": 130,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1914,
- "script_type": 0
- }
-},
-{
- "pk": 188,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5049d61d802bfd66935a7bc1f7b6f7f1",
- "recipe": 84,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1934,
- "script_type": 0
- }
-},
-{
- "pk": 189,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8dc8fbfe638fd98debf4ff8cf9fc7676",
- "recipe": 57,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1678,
- "script_type": 0
- }
-},
-{
- "pk": 190,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b94eecee8903a2c7a1f3b0f4c4b5b7d9",
- "recipe": 57,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1800,
- "script_type": 0
- }
-},
-{
- "pk": 191,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f70e063614c551445865f87f465d2be2",
- "recipe": 82,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1203,
- "script_type": 0
- }
-},
-{
- "pk": 192,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6dc97aec18a98f155404bc3601308c5a",
- "recipe": 82,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1698,
- "script_type": 0
- }
-},
-{
- "pk": 193,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "65c7f30dfbba69e7f129c3cb53463525",
- "recipe": 125,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1618,
- "script_type": 0
- }
-},
-{
- "pk": 194,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2e3860cec6aca738d6ab28a242491e2f",
- "recipe": 125,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1878,
- "script_type": 0
- }
-},
-{
- "pk": 195,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e65f9e73e3394aa72112e55021982822",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 1,
- "order": 1160,
- "script_type": 0
- }
-},
-{
- "pk": 196,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b5fc609c5383e4e7eb976817ca6673e4",
- "recipe": 21,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1655,
- "script_type": 0
- }
-},
-{
- "pk": 197,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "886cbf17dcd86f83db1f355d332288dd",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 1,
- "order": 1674,
- "script_type": 0
- }
-},
-{
- "pk": 198,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6ff66da550a7b894374ff6cfb1d8bc65",
- "recipe": 21,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1761,
- "script_type": 0
- }
-},
-{
- "pk": 199,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "30baf1fd424c8987f64caa4292c776f8",
- "recipe": 93,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1201,
- "script_type": 0
- }
-},
-{
- "pk": 200,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6763c0e20c7e6e46c8e582e71a00fcae",
- "recipe": 28,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1599,
- "script_type": 0
- }
-},
-{
- "pk": 201,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3373028733521511b358cf1e13d3dd7c",
- "recipe": 93,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1680,
- "script_type": 0
- }
-},
-{
- "pk": 202,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2967e8b65573ac7d7cd280246237b025",
- "recipe": 28,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1892,
- "script_type": 0
- }
-},
-{
- "pk": 203,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9bab8bafcee5ef6a071f049b4609e8bd",
- "recipe": 38,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1646,
- "script_type": 0
- }
-},
-{
- "pk": 204,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6cb1af91d2ddc96b0651fddb9fdfd1fc",
- "recipe": 38,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1891,
- "script_type": 0
- }
-},
-{
- "pk": 205,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "171df6dbf930a52b84e4a743c7832313",
- "recipe": 20,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1364,
- "script_type": 0
- }
-},
-{
- "pk": 206,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b450d5e9168919805ce44201092c7cf3",
- "recipe": 20,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1770,
- "script_type": 0
- }
-},
-{
- "pk": 207,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "35efddf9bc7618411bc28c1dddf1e1dd",
- "recipe": 127,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2045,
- "script_type": 0
- }
-},
-{
- "pk": 208,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b1c919dc66b39d34e4ab2b88e9821b66",
- "recipe": 51,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1610,
- "script_type": 0
- }
-},
-{
- "pk": 209,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e532ca714f4fceb8bb856c7f41642f83",
- "recipe": 71,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1605,
- "script_type": 0
- }
-},
-{
- "pk": 210,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6d1ca775d6737442f53f953891ae0f08",
- "recipe": 71,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1857,
- "script_type": 0
- }
-},
-{
- "pk": 211,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7993b7c0dd4e9a2dd5f4caee3036744c",
- "recipe": 111,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1791,
- "script_type": 0
- }
-},
-{
- "pk": 212,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "eeef32d68aa4633516ae8811460d642c",
- "recipe": 95,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1751,
- "script_type": 0
- }
-},
-{
- "pk": 213,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d50b4a4d116df5e039ba1a9cfb808e16",
- "recipe": 133,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1756,
- "script_type": 0
- }
-},
-{
- "pk": 214,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6a02210ec7844a91f720ccee75d8ce5d",
- "recipe": 133,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1890,
- "script_type": 0
- }
-},
-{
- "pk": 215,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "68e5eee8bb1aad6665365a56b9c765f4",
- "recipe": 115,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_packagedata",
- "message": "",
- "outcome": 2,
- "order": 1609,
- "script_type": 0
- }
-},
-{
- "pk": 216,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c48a02eef808e22cb9c5221126b45dc3",
- "recipe": 115,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1862,
- "script_type": 0
- }
-},
-{
- "pk": 217,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fdc167d77e06c1b5cc9e45cf2add838b",
- "recipe": 112,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2053,
- "script_type": 0
- }
-},
-{
- "pk": 218,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e4c9343e9514b54c370951c423bc9fa3",
- "recipe": 51,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write_rpm",
- "message": "",
- "outcome": 2,
- "order": 1665,
- "script_type": 0
- }
-},
-{
- "pk": 219,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "083cd39b0b15efb8e925abd57fa8478b",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1189,
- "script_type": 0
- }
-},
-{
- "pk": 220,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e10f12337f5820623c6ec4f4facb3957",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1188,
- "script_type": 0
- }
-},
-{
- "pk": 221,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f80e88ad3667a5cf3629965a11eb6d86",
- "recipe": 8,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 913,
- "script_type": 0
- }
-},
-{
- "pk": 222,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f4397ebda38bb82c656223603d4663ae",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1697,
- "script_type": 0
- }
-},
-{
- "pk": 223,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a5547b740ddd455fc6fd308658d8ac78",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_kernel_link_vmlinux",
- "message": "",
- "outcome": 1,
- "order": 1645,
- "script_type": 0
- }
-},
-{
- "pk": 224,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ccdc6204444699b471ab9b22f08791e8",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1594,
- "script_type": 0
- }
-},
-{
- "pk": 225,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ee798b20eaf55e487f8c114f52010e35",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_uboot_mkimage",
- "message": "",
- "outcome": 1,
- "order": 1696,
- "script_type": 0
- }
-},
-{
- "pk": 226,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "031b409d877f3990df4f8379f4e3d7aa",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_sizecheck",
- "message": "",
- "outcome": 1,
- "order": 1695,
- "script_type": 0
- }
-},
-{
- "pk": 227,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "45a149c540bd65d23b5e3ae94cbaf90f",
- "recipe": 94,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2318,
- "script_type": 0
- }
-},
-{
- "pk": 228,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b64eb230a91f99dca3657cf1b8030853",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1238,
- "script_type": 0
- }
-},
-{
- "pk": 229,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f536094282bcfcbe4b9d2c14572b31d6",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1416,
- "script_type": 0
- }
-},
-{
- "pk": 230,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2cae5b400c1c3b3eb769225ab20378da",
- "recipe": 129,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1450,
- "script_type": 0
- }
-},
-{
- "pk": 231,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "267849475b65a479867322e5da84876b",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1404,
- "script_type": 0
- }
-},
-{
- "pk": 232,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ce6d2d26efdc7fda437d3ffed2caaccb",
- "recipe": 77,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1435,
- "script_type": 0
- }
-},
-{
- "pk": 233,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3b64b5f85084049bf90f17def0d2933c",
- "recipe": 132,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1297,
- "script_type": 0
- }
-},
-{
- "pk": 234,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a2ee26bf04bfa37fcf34bb631e4ec71a",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 1,
- "order": 1159,
- "script_type": 0
- }
-},
-{
- "pk": 235,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b2c2bb33661d6fa96b94f3b6fd5672df",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1076,
- "script_type": 0
- }
-},
-{
- "pk": 236,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f550bc6a55a59bc4ea8c0da19609e717",
- "recipe": 116,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004538",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2279,
- "script_type": 1
- }
-},
-{
- "pk": 237,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9834aad57b26091fb1addaae8df34fe3",
- "recipe": 116,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1967,
- "script_type": 0
- }
-},
-{
- "pk": 238,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "932c60aac3e84208b6c9bd1e98ce9c20",
- "recipe": 116,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2278,
- "script_type": 0
- }
-},
-{
- "pk": 239,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0746ad65a3bc2b5df91d4ae78a082ad3",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00475",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2384,
- "script_type": 1
- }
-},
-{
- "pk": 240,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e7b60670f51313757fef23bc934aae51",
- "recipe": 57,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2383,
- "script_type": 0
- }
-},
-{
- "pk": 241,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "eff36368d43fd57574554fc519eeb331",
- "recipe": 64,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2001,
- "script_type": 0
- }
-},
-{
- "pk": 242,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7103fed45807c149684f9d909b41d7a2",
- "recipe": 64,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2000,
- "script_type": 0
- }
-},
-{
- "pk": 243,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dc4ba86694d73a4cf32ae63bc9dabab1",
- "recipe": 98,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1784,
- "script_type": 0
- }
-},
-{
- "pk": 244,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7f68b127d2e33c2baccf3ab0cd991833",
- "recipe": 78,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 982,
- "script_type": 0
- }
-},
-{
- "pk": 245,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "19fc0c90f68f1a60df9675380b13e7cf",
- "recipe": 78,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 981,
- "script_type": 0
- }
-},
-{
- "pk": 246,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2d0b2fd3630a71136463b780dc63ca0e",
- "recipe": 75,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2216,
- "script_type": 0
- }
-},
-{
- "pk": 247,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c0920ac487d7f029fba5230c4d4d457c",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1228,
- "script_type": 0
- }
-},
-{
- "pk": 248,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "28c251a1b359ddb67d952c9eabca6306",
- "recipe": 52,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1502,
- "script_type": 0
- }
-},
-{
- "pk": 249,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a2a1b45b946ad5a972a2a6f316139c10",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1501,
- "script_type": 0
- }
-},
-{
- "pk": 250,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6917b3dd4937ae4e65bc04951a0d8b0f",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1485,
- "script_type": 0
- }
-},
-{
- "pk": 251,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "56f56a7bff8835e53a8f4e81273dab92",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004672",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2262,
- "script_type": 1
- }
-},
-{
- "pk": 252,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6ebc2933d67315436f25bd76aad44e2b",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004592",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1675,
- "script_type": 1
- }
-},
-{
- "pk": 253,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "542dad36ed379cdc1f193cc9cd1bc1fb",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004767",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1676,
- "script_type": 1
- }
-},
-{
- "pk": 254,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d279da05c5167413d2f3e1936f1ecd1b",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004616",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1671,
- "script_type": 1
- }
-},
-{
- "pk": 255,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "54df5a649eb9437c244067af06a5921d",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004691",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1681,
- "script_type": 1
- }
-},
-{
- "pk": 256,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a6e622f4617214f2dfb4b255e02425c",
- "recipe": 49,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2261,
- "script_type": 0
- }
-},
-{
- "pk": 257,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "32db6498c1a85013ed4cbf2c86fe86c1",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004619",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1679,
- "script_type": 1
- }
-},
-{
- "pk": 258,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "640727f00841101ffa11aed2f5715cfc",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004683",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1801,
- "script_type": 1
- }
-},
-{
- "pk": 259,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dc30a80292d2057fc5899fbce03484d4",
- "recipe": 49,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2260,
- "script_type": 0
- }
-},
-{
- "pk": 260,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "173a6cd0a8436359da8a4a3d1f829c63",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004795",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2024,
- "script_type": 1
- }
-},
-{
- "pk": 261,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8887ed9cb93e40945ae067ff877c79ad",
- "recipe": 49,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1839,
- "script_type": 0
- }
-},
-{
- "pk": 262,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "687d1380993f266857cd39417438b1b4",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004686",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1669,
- "script_type": 1
- }
-},
-{
- "pk": 263,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "90f0dcf2b86e552981c68dc8b4fb905e",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004589",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1670,
- "script_type": 1
- }
-},
-{
- "pk": 264,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1f9462c8a7c62386b0bef9e7c4f9a7fb",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004652",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1672,
- "script_type": 1
- }
-},
-{
- "pk": 265,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f6c8336b48d599682183b148253c9ec0",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1515,
- "script_type": 0
- }
-},
-{
- "pk": 266,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f3e813fab1443cf9472a9875e7385daa",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 771,
- "script_type": 0
- }
-},
-{
- "pk": 267,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6deb531744ea1b15431bdc6cdb418b46",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1409,
- "script_type": 0
- }
-},
-{
- "pk": 268,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7b11b4743759fd0a35021c058a039bad",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1398,
- "script_type": 0
- }
-},
-{
- "pk": 269,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7546dc5bdc2bc141690175ac53634c31",
- "recipe": 68,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1089,
- "script_type": 0
- }
-},
-{
- "pk": 270,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b9d05bdf0920a2a60cdd34a3302504b6",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1927,
- "script_type": 0
- }
-},
-{
- "pk": 271,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "769dca759ea690036d40caee0627ae7a",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1906,
- "script_type": 0
- }
-},
-{
- "pk": 272,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c11d984674df1ba22798517c43ea4bc1",
- "recipe": 107,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1903,
- "script_type": 0
- }
-},
-{
- "pk": 273,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c4ecdf142d41aaae11d8b108549ebe89",
- "recipe": 80,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1499,
- "script_type": 0
- }
-},
-{
- "pk": 274,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8ffa54680547917faadc51be80ea2512",
- "recipe": 6,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1214,
- "script_type": 0
- }
-},
-{
- "pk": 275,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ce0a0210a9c52e4911aaf4193d7c73b3",
- "recipe": 81,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1150,
- "script_type": 0
- }
-},
-{
- "pk": 276,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a09bade8afdc88747b216d656f7ac308",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1436,
- "script_type": 0
- }
-},
-{
- "pk": 277,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ac3fad817533f99ce1506163b4b18491",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 751,
- "script_type": 0
- }
-},
-{
- "pk": 278,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3ea73aa3318c53a660af228b40e51762",
- "recipe": 7,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1602,
- "script_type": 0
- }
-},
-{
- "pk": 279,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a9945168aa144903ab66cac603fe84a8",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 828,
- "script_type": 0
- }
-},
-{
- "pk": 280,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "281c7502d1670fdeee119660d9dd0f16",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 827,
- "script_type": 0
- }
-},
-{
- "pk": 281,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ca18bf79dce8cc7aa050cd2a0d169c7c",
- "recipe": 42,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 950,
- "script_type": 0
- }
-},
-{
- "pk": 282,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6172e676300136f341a45f0c4b497f5b",
- "recipe": 42,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 949,
- "script_type": 0
- }
-},
-{
- "pk": 283,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d17d952015f9face8c9c27827142b87d",
- "recipe": 109,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1286,
- "script_type": 0
- }
-},
-{
- "pk": 284,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8aaced4aeb9ec5048747f9dfb06351e9",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 1237,
- "script_type": 0
- }
-},
-{
- "pk": 285,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a73c866e16c775c3c06380b6e58d0de",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 675,
- "script_type": 0
- }
-},
-{
- "pk": 286,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e5c67f2d2bffededc0ac8ac8e4241eac",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 750,
- "script_type": 0
- }
-},
-{
- "pk": 287,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ee74f8ee8a53feb0b689122c7941741e",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1186,
- "script_type": 0
- }
-},
-{
- "pk": 288,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c05fc5100d1e29816ba84757bc1cb1a2",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 658,
- "script_type": 0
- }
-},
-{
- "pk": 289,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "24a9e08fc12ca774ce9e1536d9439b69",
- "recipe": 125,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1615,
- "script_type": 0
- }
-},
-{
- "pk": 290,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9ea0dee9a3999e6c66051f72979e52a9",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1492,
- "script_type": 0
- }
-},
-{
- "pk": 291,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "018896ba832d3d4e5d336a562cd161d6",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1465,
- "script_type": 0
- }
-},
-{
- "pk": 292,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "980050628efef49d94662f2817be079f",
- "recipe": 62,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2056,
- "script_type": 0
- }
-},
-{
- "pk": 293,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5942e41c53b0bd7423f14f437ff85dd1",
- "recipe": 62,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2055,
- "script_type": 0
- }
-},
-{
- "pk": 294,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "513225dd73099ed25aa5cc3309ebf77c",
- "recipe": 139,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2173,
- "script_type": 0
- }
-},
-{
- "pk": 295,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b49d006b695cd7a3d4ad9c3a8f949263",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1736,
- "script_type": 0
- }
-},
-{
- "pk": 296,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "58b98366058b367c22c11247380a2c5a",
- "recipe": 137,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1767,
- "script_type": 0
- }
-},
-{
- "pk": 297,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ffe400fe74adb109f0f28a79b660645e",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1628,
- "script_type": 0
- }
-},
-{
- "pk": 298,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "701c951fb81c8c2a383c09ffc2b9c16c",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1074,
- "script_type": 0
- }
-},
-{
- "pk": 299,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "86da52eeab183019b8dbe44df3ce0135",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1073,
- "script_type": 0
- }
-},
-{
- "pk": 300,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ab153bf02c855e259b7daabdf838389f",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1621,
- "script_type": 0
- }
-},
-{
- "pk": 301,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1ddb1b0fb98c367df97622339983f7d8",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 793,
- "script_type": 0
- }
-},
-{
- "pk": 302,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "18044baad74ea903afd9ab55162353e9",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004563",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1980,
- "script_type": 1
- }
-},
-{
- "pk": 303,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a780f0727359e2a97afc31f5df046678",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004815",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1795,
- "script_type": 1
- }
-},
-{
- "pk": 304,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "53aed1a808fc5b9aef59af3a6a9f87b8",
- "recipe": 117,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1293,
- "script_type": 0
- }
-},
-{
- "pk": 305,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "86bd2df0f92349b3d8f8f74331b27f60",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2031,
- "script_type": 0
- }
-},
-{
- "pk": 306,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "de97ecf4e200be8d979b50a7da34efc1",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2030,
- "script_type": 0
- }
-},
-{
- "pk": 307,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4c1a666f7056f17f340689f9f20b77f4",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1134,
- "script_type": 0
- }
-},
-{
- "pk": 308,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3428d9399ca8b0d49378cb0a8bab4ba3",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 1133,
- "script_type": 0
- }
-},
-{
- "pk": 309,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ff454ecc746c42baeab473df253d8925",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1783,
- "script_type": 0
- }
-},
-{
- "pk": 310,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "20604cad8f2b7d660df05004898d1e48",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 824,
- "script_type": 0
- }
-},
-{
- "pk": 311,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3360e9a7dde9ba386baade4f5a04aef6",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1235,
- "script_type": 0
- }
-},
-{
- "pk": 312,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c349a6e831920075850d989c844be97",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1234,
- "script_type": 0
- }
-},
-{
- "pk": 313,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c178064b9161f486074a0363b4daba23",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1213,
- "script_type": 0
- }
-},
-{
- "pk": 314,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f403383a7c27b763a298f5e7ed958eb0",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1924,
- "script_type": 0
- }
-},
-{
- "pk": 315,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "769dca759ea690036d40caee0627ae7a",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1902,
- "script_type": 0
- }
-},
-{
- "pk": 316,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9d0f31baf354d3e35805f31124a7cb5c",
- "recipe": 23,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1603,
- "script_type": 0
- }
-},
-{
- "pk": 317,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "67c12bab3a9ccbd6a6c8f4c3770658ca",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1452,
- "script_type": 0
- }
-},
-{
- "pk": 318,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f1b0df58fd3d82fdbcbfc99a67afc805",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1451,
- "script_type": 0
- }
-},
-{
- "pk": 319,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9d2ec8b76a7b94b79fd109cd550d10fa",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004493",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2333,
- "script_type": 1
- }
-},
-{
- "pk": 320,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3dfa261d57ff9245590601c2e9fb0c36",
- "recipe": 109,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2332,
- "script_type": 0
- }
-},
-{
- "pk": 321,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "330a61da1bfacdc375d001f51682c4a5",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1206,
- "script_type": 0
- }
-},
-{
- "pk": 322,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6e99cb8da3341a248b1988bc88c24329",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1185,
- "script_type": 0
- }
-},
-{
- "pk": 323,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "97eaa154dfd11b9767c20d4bc3193425",
- "recipe": 123,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1302,
- "script_type": 0
- }
-},
-{
- "pk": 324,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "32231dcfdd1bfc3513b4a50de8935730",
- "recipe": 123,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 699,
- "script_type": 0
- }
-},
-{
- "pk": 325,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8006c8966b5c609dadcd810e7b069812",
- "recipe": 4,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1837,
- "script_type": 0
- }
-},
-{
- "pk": 326,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "42573cd6ffda11fb624d5b4c5cb62d99",
- "recipe": 28,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1519,
- "script_type": 0
- }
-},
-{
- "pk": 327,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8d704ebfd82f1a60dca004aa9ebbe16b",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1518,
- "script_type": 0
- }
-},
-{
- "pk": 328,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3c71f52fffbccc9bf84af3de28776d61",
- "recipe": 111,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2364,
- "script_type": 0
- }
-},
-{
- "pk": 329,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "45cf072aaec203f49da85fa4e20440b1",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004627",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1870,
- "script_type": 1
- }
-},
-{
- "pk": 330,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "67f046095fa35a7d689653184318b69d",
- "recipe": 2,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2114,
- "script_type": 0
- }
-},
-{
- "pk": 331,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "71e77cd8f014e1c85e39fd1fa83c7e99",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1445,
- "script_type": 0
- }
-},
-{
- "pk": 332,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "24c16006bf1d45f85a4d3ac72e2713af",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1537,
- "script_type": 0
- }
-},
-{
- "pk": 333,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a958e6ee6d449a34800635c063d8b188",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1536,
- "script_type": 0
- }
-},
-{
- "pk": 334,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3322ba286baeae503c19c4c6faba838c",
- "recipe": 94,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1483,
- "script_type": 0
- }
-},
-{
- "pk": 335,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1d789fa986301a11ff4d926a8d7013da",
- "recipe": 68,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1085,
- "script_type": 0
- }
-},
-{
- "pk": 336,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "33f99b755070d42ee65ed926f3e86224",
- "recipe": 68,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 628,
- "script_type": 0
- }
-},
-{
- "pk": 337,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3788e70eeddfa2345aa306723a06e495",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1406,
- "script_type": 0
- }
-},
-{
- "pk": 338,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5453f26fdaafdb499d3d878f5c04e60e",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 743,
- "script_type": 0
- }
-},
-{
- "pk": 339,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ea6fa0074fa83fba4e48b2a9e8ed485f",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004748",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2341,
- "script_type": 1
- }
-},
-{
- "pk": 340,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b11ed2ad837d673797e9f5971fef7f43",
- "recipe": 26,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2340,
- "script_type": 0
- }
-},
-{
- "pk": 341,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "113c7e69d26283a872e94ebbe418714a",
- "recipe": 55,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00473",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2404,
- "script_type": 1
- }
-},
-{
- "pk": 342,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cc6407577b79b8d9df7d36f70cc25f91",
- "recipe": 55,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2403,
- "script_type": 0
- }
-},
-{
- "pk": 343,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "98a65262d1533b11b54b5e5175b15131",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1685,
- "script_type": 0
- }
-},
-{
- "pk": 344,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cb49dd818bcc057c29a4b7aae094def7",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1643,
- "script_type": 0
- }
-},
-{
- "pk": 345,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f5060a219d4edec9c6e6771f0b5e384e",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1684,
- "script_type": 0
- }
-},
-{
- "pk": 346,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "11c2f554f8ed9b2ce4dc8c485cfd5338",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1276,
- "script_type": 0
- }
-},
-{
- "pk": 347,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "730375cac5c6603f3152c6ec7ea0280a",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1275,
- "script_type": 0
- }
-},
-{
- "pk": 348,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1f3a6c74ee0293d0fc2a725b31c620e9",
- "recipe": 30,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 849,
- "script_type": 0
- }
-},
-{
- "pk": 349,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d9a14694e929ebce715b681e39554950",
- "recipe": 30,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 848,
- "script_type": 0
- }
-},
-{
- "pk": 350,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0f579a47e657a8e53a0a7c60e84c1ae7",
- "recipe": 32,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1582,
- "script_type": 0
- }
-},
-{
- "pk": 351,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "737482a8e318e227b38b4a496c93a179",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004721",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1754,
- "script_type": 1
- }
-},
-{
- "pk": 352,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b693811eae186395fb1cc2f8cd6471e6",
- "recipe": 58,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2230,
- "script_type": 0
- }
-},
-{
- "pk": 353,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a5d68e1b8968a17d2aeef7dca5759558",
- "recipe": 58,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 926,
- "script_type": 0
- }
-},
-{
- "pk": 354,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ca2a1870c986a8a328d5a348da28f07",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1659,
- "script_type": 0
- }
-},
-{
- "pk": 355,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "943f4c86f0b92089cca9b8ff7a3aa5b8",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1658,
- "script_type": 0
- }
-},
-{
- "pk": 356,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "93bfb4b6c03d269c1334144b3378789b",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1063,
- "script_type": 0
- }
-},
-{
- "pk": 357,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "89087e0ef79f6e738690b02d44fd3fb6",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1043,
- "script_type": 0
- }
-},
-{
- "pk": 358,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a56b9146c9e4f6f6f7a0b9a4763c9d6",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1062,
- "script_type": 0
- }
-},
-{
- "pk": 359,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "17fffe71424ca86a75a1fe74be89d209",
- "recipe": 68,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1088,
- "script_type": 0
- }
-},
-{
- "pk": 360,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "09bc90ff857871b6e0960d6b80c86562",
- "recipe": 68,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1087,
- "script_type": 0
- }
-},
-{
- "pk": 361,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f98e11bd59889d9dbde0b9a38f9b4095",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1421,
- "script_type": 0
- }
-},
-{
- "pk": 362,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c9c8286796c4bcfdc74c5acf3c6e6e0a",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1420,
- "script_type": 0
- }
-},
-{
- "pk": 363,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e02cd02948663ea97d0b8810ad36cfd4",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004806",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2115,
- "script_type": 1
- }
-},
-{
- "pk": 364,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d82386b0e7775b13280bbd45b4cf19d2",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004671",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1759,
- "script_type": 1
- }
-},
-{
- "pk": 365,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cbff60c4c95809bb2c5f99f54deb4b09",
- "recipe": 2,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1476,
- "script_type": 0
- }
-},
-{
- "pk": 366,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a4dfb85bcf8a172286fa7d2a2c4ff6c3",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.0046",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1871,
- "script_type": 1
- }
-},
-{
- "pk": 367,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1d1073c891eb0ff99027da5621a8a8f0",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004669",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1888,
- "script_type": 1
- }
-},
-{
- "pk": 368,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "158e881504901ca4da42c894975dccde",
- "recipe": 2,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1584,
- "script_type": 0
- }
-},
-{
- "pk": 369,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "250f9f8f8f6216a74eed273c00ea775b",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004547",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1769,
- "script_type": 1
- }
-},
-{
- "pk": 370,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a0e28620d5144cac28e54d0397c2a010",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004599",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1771,
- "script_type": 1
- }
-},
-{
- "pk": 371,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c738d1a32326e033e5757f9700f1cbc8",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004592",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1864,
- "script_type": 1
- }
-},
-{
- "pk": 372,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2b96457b27f9d2c4f92caf29e71ad655",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004677",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1702,
- "script_type": 1
- }
-},
-{
- "pk": 373,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "34d1ff3f03e7b697bafdd9fedae316e5",
- "recipe": 131,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1731,
- "script_type": 0
- }
-},
-{
- "pk": 374,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5dccf75a26f609d09caa53445682f764",
- "recipe": 131,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1730,
- "script_type": 0
- }
-},
-{
- "pk": 375,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3331dba6af1de12f3d98fb0fd4f0968e",
- "recipe": 72,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2039,
- "script_type": 0
- }
-},
-{
- "pk": 376,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "994c02ab97524a978055853705ea643f",
- "recipe": 72,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2038,
- "script_type": 0
- }
-},
-{
- "pk": 377,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ff4f2a8abc0d0e278306c27bd63822b",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 797,
- "script_type": 0
- }
-},
-{
- "pk": 378,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c76e66fdf9e584278f9569035a10df6",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 796,
- "script_type": 0
- }
-},
-{
- "pk": 379,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "020cf5bd92a32214609e5ecfa030e032",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1971,
- "script_type": 0
- }
-},
-{
- "pk": 380,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2cffbee07de969c576bbda871ae9dcc7",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 855,
- "script_type": 0
- }
-},
-{
- "pk": 381,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5bc5ea65e77abfa864d09f2cf700134a",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 2006,
- "script_type": 0
- }
-},
-{
- "pk": 382,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fb2c682d1381d47c36f0668204d3802e",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 858,
- "script_type": 0
- }
-},
-{
- "pk": 383,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7fb5669457d7b85da8576c4b2ac1f524",
- "recipe": 3,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2060,
- "script_type": 0
- }
-},
-{
- "pk": 384,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "58560dbb980070862f3ae7a92d72cdbe",
- "recipe": 3,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2059,
- "script_type": 0
- }
-},
-{
- "pk": 385,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ec71bea8e0fdd598dd98a3f7daa5a403",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1027,
- "script_type": 0
- }
-},
-{
- "pk": 386,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "764a8be38a2c10431c0331f6a03015d8",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1026,
- "script_type": 0
- }
-},
-{
- "pk": 387,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3bd32cf86a7ef2efe8351189d59a6170",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1038,
- "script_type": 0
- }
-},
-{
- "pk": 388,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1d5248c063c067e7bb8667b8fada1196",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1037,
- "script_type": 0
- }
-},
-{
- "pk": 389,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8479f6859f761da0c532461629102d12",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004705",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1865,
- "script_type": 1
- }
-},
-{
- "pk": 390,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c00b5bce4947414e5808f945921b83de",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1232,
- "script_type": 0
- }
-},
-{
- "pk": 391,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f53f1be20ed8ae5f9dfee32e7b6ae75d",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 674,
- "script_type": 0
- }
-},
-{
- "pk": 392,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e2cd16331932b0dfbe09c9401fb1ebe0",
- "recipe": 101,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 896,
- "script_type": 0
- }
-},
-{
- "pk": 393,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c17fa8489c04be75da979099d0c6dfb3",
- "recipe": 101,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 895,
- "script_type": 0
- }
-},
-{
- "pk": 394,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f1f884a0fa3d84d41bbcbb065792a553",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1464,
- "script_type": 0
- }
-},
-{
- "pk": 395,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a6122fd9067ba5322d34794b1bf101b3",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1351,
- "script_type": 0
- }
-},
-{
- "pk": 396,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bdff52e141b5e412027e244a0bff8bac",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1740,
- "script_type": 0
- }
-},
-{
- "pk": 397,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0f53c80c61fdbd1ad85ba53ef11ed8ef",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1739,
- "script_type": 0
- }
-},
-{
- "pk": 398,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0c3264d4bea2c471fe786124a8e7126c",
- "recipe": 10,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1560,
- "script_type": 0
- }
-},
-{
- "pk": 399,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b2ab4cc4394cccae44ab73847fc61128",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004754",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2070,
- "script_type": 1
- }
-},
-{
- "pk": 400,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d0fa46b00bf18928704287351220237f",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.007755",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1777,
- "script_type": 1
- }
-},
-{
- "pk": 401,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "442373384ba2328ea0c4225cf65d0001",
- "recipe": 61,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1547,
- "script_type": 0
- }
-},
-{
- "pk": 402,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ccf30f0bea7555d477c461cfcce52bd0",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004786",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1799,
- "script_type": 1
- }
-},
-{
- "pk": 403,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0daf365755cdc521105df5c8cf3ec7db",
- "recipe": 61,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1399,
- "script_type": 0
- }
-},
-{
- "pk": 404,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "79dc22e128f0ef2c6e3aa5730d688272",
- "recipe": 61,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2069,
- "script_type": 0
- }
-},
-{
- "pk": 405,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e71576eabdda1795305b790586b5bfac",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004763",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1843,
- "script_type": 1
- }
-},
-{
- "pk": 406,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "61b9ad4aaf468df9ed41b42c1c20c9b1",
- "recipe": 97,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1959,
- "script_type": 0
- }
-},
-{
- "pk": 407,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a765f2017fb206f6edf7bcbe63b55c00",
- "recipe": 111,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1209,
- "script_type": 0
- }
-},
-{
- "pk": 408,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b6870376ce6a26214d960b8b36602402",
- "recipe": 97,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1941,
- "script_type": 0
- }
-},
-{
- "pk": 409,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5f147622845b24ebded3e26f7549741e",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 660,
- "script_type": 0
- }
-},
-{
- "pk": 410,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cc04c038f1c2b17b73af554e1d18216c",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004527",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2217,
- "script_type": 1
- }
-},
-{
- "pk": 411,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c680b541248848a4fe4f6e6bd39f516f",
- "recipe": 75,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1236,
- "script_type": 0
- }
-},
-{
- "pk": 412,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "968d91dbdceca92d84a0c3c8da56a0ba",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004662",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1894,
- "script_type": 1
- }
-},
-{
- "pk": 413,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62016827721b2b51c1b5738fabd261f0",
- "recipe": 75,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1559,
- "script_type": 0
- }
-},
-{
- "pk": 414,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "345147ee4a12ed54c4b6a4691b75662e",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1449,
- "script_type": 0
- }
-},
-{
- "pk": 415,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3e56a515ff27a7cb0d4a54923b7b79c9",
- "recipe": 24,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2210,
- "script_type": 0
- }
-},
-{
- "pk": 416,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cd0772d01038fdc094efb74be76ed003",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1256,
- "script_type": 0
- }
-},
-{
- "pk": 417,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62a5321f41e530586f249f6d4e43d82b",
- "recipe": 21,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1640,
- "script_type": 0
- }
-},
-{
- "pk": 418,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1fa1734a23ec40253ab89251fd4da469",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1636,
- "script_type": 0
- }
-},
-{
- "pk": 419,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f152488e3e753b508151412264f8b20c",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 795,
- "script_type": 0
- }
-},
-{
- "pk": 420,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8c1160b86c9c02c210c8c9593938546b",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 794,
- "script_type": 0
- }
-},
-{
- "pk": 421,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "989f376391824e53f448fb2d2999b403",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004684",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1868,
- "script_type": 1
- }
-},
-{
- "pk": 422,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a038500c5a7f66618377f3dd3cda8ce",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1230,
- "script_type": 0
- }
-},
-{
- "pk": 423,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "13e14c079c61c57bc0bb329f5f63bf47",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1229,
- "script_type": 0
- }
-},
-{
- "pk": 424,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5e8495087307b963768d0b7955923c94",
- "recipe": 38,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1632,
- "script_type": 0
- }
-},
-{
- "pk": 425,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75e57225a555870eeac25695d7171a9e",
- "recipe": 138,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1766,
- "script_type": 0
- }
-},
-{
- "pk": 426,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2c3e73b792dc3e38b9840786689750a6",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1625,
- "script_type": 0
- }
-},
-{
- "pk": 427,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d0f6e75c8ab6f71d8f8e53a2e8778f78",
- "recipe": 124,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_sanitize_sources",
- "message": "",
- "outcome": 1,
- "order": 873,
- "script_type": 0
- }
-},
-{
- "pk": 428,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "19104d436e2e033cc4bd3b9cd5c44c61",
- "recipe": 124,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 844,
- "script_type": 0
- }
-},
-{
- "pk": 429,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f551fb380eec07736c47a30f8b423b30",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1657,
- "script_type": 0
- }
-},
-{
- "pk": 430,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "85188fee0e43e988a754ab8877fcb359",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1656,
- "script_type": 0
- }
-},
-{
- "pk": 431,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1225cdb9da5b497c1e82ce93f0e13b94",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00452",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2270,
- "script_type": 1
- }
-},
-{
- "pk": 432,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "91b6f4d92eeabfaa1dceb4b8995d56f7",
- "recipe": 119,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2268,
- "script_type": 0
- }
-},
-{
- "pk": 433,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "59c11a268a9ce31134e7d16338087228",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004678",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2026,
- "script_type": 1
- }
-},
-{
- "pk": 434,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dba1e45e1312bca3496c6ab6482ff131",
- "recipe": 119,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1842,
- "script_type": 0
- }
-},
-{
- "pk": 435,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2239fe3e46c1918bd430a8958e45fb98",
- "recipe": 56,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 979,
- "script_type": 0
- }
-},
-{
- "pk": 436,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8d9c51f42078eae50ec28d137cb1adad",
- "recipe": 56,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 978,
- "script_type": 0
- }
-},
-{
- "pk": 437,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6bf23bfbb35093f1d920f5361b3a2368",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00456",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2088,
- "script_type": 1
- }
-},
-{
- "pk": 438,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6d4d53e5c1a56a729c14308c3552960d",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004669",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1846,
- "script_type": 1
- }
-},
-{
- "pk": 439,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "af7eee4ffe5b67b5c3b1bad4a1aaab11",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004585",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1845,
- "script_type": 1
- }
-},
-{
- "pk": 440,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ddb5b6eccc223c9d40e2c0251329fc23",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004625",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1844,
- "script_type": 1
- }
-},
-{
- "pk": 441,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "586b4a54a44bf5253d598f306f7b1cce",
- "recipe": 89,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1441,
- "script_type": 0
- }
-},
-{
- "pk": 442,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e9422471dc0872a9de8caca0204cffd7",
- "recipe": 89,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2087,
- "script_type": 0
- }
-},
-{
- "pk": 443,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "159fda04cdeeb9b0695030ad0241c121",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004756",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1869,
- "script_type": 1
- }
-},
-{
- "pk": 444,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4f4b4a439792772b1fa1014297778ef4",
- "recipe": 89,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1564,
- "script_type": 0
- }
-},
-{
- "pk": 445,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9bf03cd3d62ca4faafa332079d8b4b74",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1809,
- "script_type": 0
- }
-},
-{
- "pk": 446,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dce894bc6fd92ee7bcc4363af7bc1cef",
- "recipe": 114,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1807,
- "script_type": 0
- }
-},
-{
- "pk": 447,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a08b57f8465f1e2d8c99b7b0674973f",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1802,
- "script_type": 0
- }
-},
-{
- "pk": 448,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7f9c6dc5a030124e7211099bb279504c",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1014,
- "script_type": 0
- }
-},
-{
- "pk": 449,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b13d00516e787554a563b343cc8f5974",
- "recipe": 126,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 969,
- "script_type": 0
- }
-},
-{
- "pk": 450,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c6bb22714625d8e967c6bf8875063661",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1013,
- "script_type": 0
- }
-},
-{
- "pk": 451,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3a0e5f843756ecb5f5c37226683ae1a4",
- "recipe": 90,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 989,
- "script_type": 0
- }
-},
-{
- "pk": 452,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fa9f9f404618400e517d82a6fbd50179",
- "recipe": 104,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1004,
- "script_type": 0
- }
-},
-{
- "pk": 453,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f548d7a7a9132a4cf7c7ac1c352198e0",
- "recipe": 83,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1012,
- "script_type": 0
- }
-},
-{
- "pk": 454,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "84d84f78083d15e3c61fd1680c314511",
- "recipe": 34,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1005,
- "script_type": 0
- }
-},
-{
- "pk": 455,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ff38ce6063107cc626babd73e49d76a6",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1042,
- "script_type": 0
- }
-},
-{
- "pk": 456,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cc98ee414941950da82348128ef19ac5",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1032,
- "script_type": 0
- }
-},
-{
- "pk": 457,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f2927c2ce357095ebea266da2cafc195",
- "recipe": 118,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2112,
- "script_type": 0
- }
-},
-{
- "pk": 458,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8ac00848898d37aa67a0ef58aa4b006e",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1446,
- "script_type": 0
- }
-},
-{
- "pk": 459,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6958b29e1f891ad354f03ca4d435746f",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1410,
- "script_type": 0
- }
-},
-{
- "pk": 460,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e28540df79143daf3d908bc70d7d3b10",
- "recipe": 79,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2091,
- "script_type": 0
- }
-},
-{
- "pk": 461,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "791a0ac9ca5e64ac6fb9de5680be9a7b",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1408,
- "script_type": 0
- }
-},
-{
- "pk": 462,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "64a1b1f421087edd7ec343677f376056",
- "recipe": 73,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 648,
- "script_type": 0
- }
-},
-{
- "pk": 463,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "668f5f5566f0f581997f5fe128404b1c",
- "recipe": 73,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 647,
- "script_type": 0
- }
-},
-{
- "pk": 464,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ec6f3e3cf68b4bd9449dd18a1165b5c3",
- "recipe": 95,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1727,
- "script_type": 0
- }
-},
-{
- "pk": 465,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "99cec84dccd98329ab9ad32aa1edeb8b",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1722,
- "script_type": 0
- }
-},
-{
- "pk": 466,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9075b9eebc91d088838378fea2b3fb74",
- "recipe": 22,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1745,
- "script_type": 0
- }
-},
-{
- "pk": 467,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f7822c7361018ae951973a4990ca228d",
- "recipe": 78,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 976,
- "script_type": 0
- }
-},
-{
- "pk": 468,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "51116cc653957e6b58404e54dc66e972",
- "recipe": 78,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 591,
- "script_type": 0
- }
-},
-{
- "pk": 469,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "32a0adb7d9fdb5a68d5283edddf56ca2",
- "recipe": 33,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 900,
- "script_type": 0
- }
-},
-{
- "pk": 470,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "12d94164ae5b4d181d7144c6b8ee525f",
- "recipe": 33,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 899,
- "script_type": 0
- }
-},
-{
- "pk": 471,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dba9b038e6748f71d81243ea36617673",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1423,
- "script_type": 0
- }
-},
-{
- "pk": 472,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "345ef87ec9f405e2ef9e256199ca9824",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1422,
- "script_type": 0
- }
-},
-{
- "pk": 473,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bb0f09d53ec70af2844c44f4cc50911e",
- "recipe": 136,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1583,
- "script_type": 0
- }
-},
-{
- "pk": 474,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "02081c3431853cd01f676937cc24f0df",
- "recipe": 112,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 868,
- "script_type": 0
- }
-},
-{
- "pk": 475,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2ee175eeefed3b1255c4b41b8f4456f5",
- "recipe": 112,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 867,
- "script_type": 0
- }
-},
-{
- "pk": 476,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4f87de1d2f708d21e9531f83ce2ae8f1",
- "recipe": 63,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1553,
- "script_type": 0
- }
-},
-{
- "pk": 477,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ac8817ab7d17034773e687e95bd5823a",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1539,
- "script_type": 0
- }
-},
-{
- "pk": 478,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f93ed3aa2503660b24102fbbd34aa702",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004724",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2175,
- "script_type": 1
- }
-},
-{
- "pk": 479,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f57a59c25ab125eecf83f9f3a9a3ac10",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004509",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1910,
- "script_type": 1
- }
-},
-{
- "pk": 480,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d27291f3311d0143b956a3dd494e0a3a",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004481",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1911,
- "script_type": 1
- }
-},
-{
- "pk": 481,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "83102867116ed40f7e9db154a9c71f70",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004735",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1856,
- "script_type": 1
- }
-},
-{
- "pk": 482,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6aa177e2ef6aef7139a57ce2e52a3b53",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004467",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1907,
- "script_type": 1
- }
-},
-{
- "pk": 483,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dce60f1e9a6da4ed8a794b50011b355a",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004799",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1893,
- "script_type": 1
- }
-},
-{
- "pk": 484,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d3a3c04c5a39921dd5f629d8ffa94ed9",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004661",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1881,
- "script_type": 1
- }
-},
-{
- "pk": 485,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "883094bf10560ff071e83e349fb50bf4",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004778",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1876,
- "script_type": 1
- }
-},
-{
- "pk": 486,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7c12603b6f19b8bdcd96031195976611",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004606",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1912,
- "script_type": 1
- }
-},
-{
- "pk": 487,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b62e5926768148cf183bc9a8e4f81cd8",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004629",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1880,
- "script_type": 1
- }
-},
-{
- "pk": 488,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8b64e451d455995ea7cc8a1ca12abee0",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004652",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1909,
- "script_type": 1
- }
-},
-{
- "pk": 489,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bef9c747c9ef90387b41e4a6884dc97d",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004631",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1861,
- "script_type": 1
- }
-},
-{
- "pk": 490,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7dd226dffcdc5ab7c8cc95afae2178cb",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004604",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1889,
- "script_type": 1
- }
-},
-{
- "pk": 491,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a82a0a9740531afcfcaa254ecbecd742",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004672",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1877,
- "script_type": 1
- }
-},
-{
- "pk": 492,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7baf482ff6033f05e2f27e9cb84ac5d4",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004487",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1908,
- "script_type": 1
- }
-},
-{
- "pk": 493,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4674570cf896d6555b498410efe07cee",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004659",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1831,
- "script_type": 1
- }
-},
-{
- "pk": 494,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "87b647370150a99af23c182c68e89422",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00463",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1854,
- "script_type": 1
- }
-},
-{
- "pk": 495,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "901c92aeab0a3387c7fbf2a0c4695bc4",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004626",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1887,
- "script_type": 1
- }
-},
-{
- "pk": 496,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "19aed1bfb6aebb8e14bfb92b8ea69118",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004792",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1787,
- "script_type": 1
- }
-},
-{
- "pk": 497,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b3aef18cf263255ba1d7e09c3b428cef",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004715",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1798,
- "script_type": 1
- }
-},
-{
- "pk": 498,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ba7b2f06d88986dac1f6018cc0eaa488",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.007175",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1884,
- "script_type": 1
- }
-},
-{
- "pk": 499,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "01b0d0ad1a2120a085bbe7f5e4ce37cc",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004654",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1867,
- "script_type": 1
- }
-},
-{
- "pk": 500,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "51e52470c529b13fd8b8f9544d5bb758",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004564",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1900,
- "script_type": 1
- }
-},
-{
- "pk": 501,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4ddefd682d4169bea97c3486e678aee7",
- "recipe": 139,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2174,
- "script_type": 0
- }
-},
-{
- "pk": 502,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8f11b1d48eefbb4ff1f3656ae77ede64",
- "recipe": 139,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1746,
- "script_type": 0
- }
-},
-{
- "pk": 503,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4581af0233220b78a45316ca081b0d2a",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004758",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1866,
- "script_type": 1
- }
-},
-{
- "pk": 504,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "105838728fd652d69f1390a6298a5177",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.005963",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1883,
- "script_type": 1
- }
-},
-{
- "pk": 505,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d25962b181ad36c2a10a97d9149cd38b",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004669",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1886,
- "script_type": 1
- }
-},
-{
- "pk": 506,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c0ede161d8bbf34b833d564dd5ba0b9e",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004504",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1913,
- "script_type": 1
- }
-},
-{
- "pk": 507,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c6233e7e0073c7ed0151ad86310e9b08",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004403",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1897,
- "script_type": 1
- }
-},
-{
- "pk": 508,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "559e17ded91811b10db6ca09f6cbe7e5",
- "recipe": 57,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1661,
- "script_type": 0
- }
-},
-{
- "pk": 509,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "00104e6c0b6ba4daae0dc2b7a6dfcb12",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004645",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2072,
- "script_type": 1
- }
-},
-{
- "pk": 510,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c89c4ff7e899b5797b175a79ee2995f6",
- "recipe": 121,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1400,
- "script_type": 0
- }
-},
-{
- "pk": 511,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "516e1a7bfd16f5ad7c982129be69c0c1",
- "recipe": 121,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2071,
- "script_type": 0
- }
-},
-{
- "pk": 512,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e4347fcef166131a0bbcd68f45f599a2",
- "recipe": 121,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1548,
- "script_type": 0
- }
-},
-{
- "pk": 513,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "74930bf0fd331ad39cfc20734ec935d5",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1641,
- "script_type": 0
- }
-},
-{
- "pk": 514,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "32d3504b3af60d3de5c60ac5d6238e8a",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 799,
- "script_type": 0
- }
-},
-{
- "pk": 515,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "893ddd75aa7a4538eb4a121eb8631b77",
- "recipe": 101,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 562,
- "script_type": 0
- }
-},
-{
- "pk": 516,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "de6752e66e310e2ba23342fba70bcefe",
- "recipe": 101,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 561,
- "script_type": 0
- }
-},
-{
- "pk": 517,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a84b0d86501c5ff2a3d11fc533d9c5d",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1212,
- "script_type": 0
- }
-},
-{
- "pk": 518,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8c8a831aee75daf14bf491517404789a",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1211,
- "script_type": 0
- }
-},
-{
- "pk": 519,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "34f2f9e381f6db223e540545d21d4d87",
- "recipe": 13,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1709,
- "script_type": 0
- }
-},
-{
- "pk": 520,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6e487f7c56879334a2ef27ce448861f5",
- "recipe": 13,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1707,
- "script_type": 0
- }
-},
-{
- "pk": 521,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dd3399521db8cbcf9c099dd55a23eaeb",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1738,
- "script_type": 0
- }
-},
-{
- "pk": 522,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "34f1f190c4bc5530e00a328369f5aaf8",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1734,
- "script_type": 0
- }
-},
-{
- "pk": 523,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7ffd310a8ccc9fa724ba4e55c7533699",
- "recipe": 131,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1732,
- "script_type": 0
- }
-},
-{
- "pk": 524,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1e2e3a3a1784d21c3cbc57437dda56a2",
- "recipe": 125,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1529,
- "script_type": 0
- }
-},
-{
- "pk": 525,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "99795e8d5c72ce5d48d4f83443fe2c1a",
- "recipe": 38,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1542,
- "script_type": 0
- }
-},
-{
- "pk": 526,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "602bd242bf8c9b017c7b9bdf96ad4b34",
- "recipe": 117,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1514,
- "script_type": 0
- }
-},
-{
- "pk": 527,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1fcdd5dd510d573383fe3b53afc430d2",
- "recipe": 35,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 891,
- "script_type": 0
- }
-},
-{
- "pk": 528,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b313b8ae557ca9f8bb8543180e7af364",
- "recipe": 35,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 890,
- "script_type": 0
- }
-},
-{
- "pk": 529,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "29a1e0935f90091970f8425750c5a70a",
- "recipe": 28,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2137,
- "script_type": 0
- }
-},
-{
- "pk": 530,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1794d9c84ba906f30f5ad25d28524581",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1430,
- "script_type": 0
- }
-},
-{
- "pk": 531,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0f726ee83e9625dd58d144942478c6c5",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1429,
- "script_type": 0
- }
-},
-{
- "pk": 532,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b662f1b333de532171fbe84a998e5b0f",
- "recipe": 130,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2243,
- "script_type": 0
- }
-},
-{
- "pk": 533,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0b1b0c368fbb682c013ac8f99fe267d8",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1811,
- "script_type": 0
- }
-},
-{
- "pk": 534,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cd4d3f3aaa76b71722d34cff70767b99",
- "recipe": 104,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1002,
- "script_type": 0
- }
-},
-{
- "pk": 535,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "87327835f2b19315b48606b0fc835784",
- "recipe": 104,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1001,
- "script_type": 0
- }
-},
-{
- "pk": 536,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "76577c498132dddb885344c1c92d31ba",
- "recipe": 85,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 701,
- "script_type": 0
- }
-},
-{
- "pk": 537,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a7bd16d546912cfd78c1f8eb17945c50",
- "recipe": 85,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 700,
- "script_type": 0
- }
-},
-{
- "pk": 538,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fda5bbcc59ac00e10e7250157ea138eb",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004668",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2273,
- "script_type": 1
- }
-},
-{
- "pk": 539,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "41a6db286e6477af988b6eb04514b280",
- "recipe": 110,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2272,
- "script_type": 0
- }
-},
-{
- "pk": 540,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "34a7f8dd8d8d5a03b7cc0ad609ab1403",
- "recipe": 110,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2271,
- "script_type": 0
- }
-},
-{
- "pk": 541,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f15eab5e514eb2f69e574a4542441f93",
- "recipe": 110,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1728,
- "script_type": 0
- }
-},
-{
- "pk": 542,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c041c2d0388c7d6993326436822841fc",
- "recipe": 11,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 907,
- "script_type": 0
- }
-},
-{
- "pk": 543,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "896123966bba489c1d98ce94f7f70ed2",
- "recipe": 11,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 906,
- "script_type": 0
- }
-},
-{
- "pk": 544,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "64f10fa5027d4ef1b37965f2a098e490",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1525,
- "script_type": 0
- }
-},
-{
- "pk": 545,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ee334f4bfd2e4d1e552b56b5f0231d8a",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 775,
- "script_type": 0
- }
-},
-{
- "pk": 546,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0871f911c8268788a083dba852f7fba4",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1208,
- "script_type": 0
- }
-},
-{
- "pk": 547,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c9d7f0c86ae99681e123bc55550baeea",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1187,
- "script_type": 0
- }
-},
-{
- "pk": 548,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "056081e02a46e65c45a8d0dc572b91e4",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1207,
- "script_type": 0
- }
-},
-{
- "pk": 549,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "67b0843ab0cd90fb3ae80d0677a0bf55",
- "recipe": 88,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2356,
- "script_type": 0
- }
-},
-{
- "pk": 550,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fa5762f3f3438eac753fd9d0c342cd4a",
- "recipe": 88,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 884,
- "script_type": 0
- }
-},
-{
- "pk": 551,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c9026b19b0ead44417731f20b4d51147",
- "recipe": 77,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1271,
- "script_type": 0
- }
-},
-{
- "pk": 552,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3af8bdcc05788f0af1fb4f002f05879f",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1434,
- "script_type": 0
- }
-},
-{
- "pk": 553,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3a4347d1ace1ecd0440a30d290182d52",
- "recipe": 45,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 2014,
- "script_type": 0
- }
-},
-{
- "pk": 554,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1298e11d891e3a58dda0720ac5f1cf68",
- "recipe": 45,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 866,
- "script_type": 0
- }
-},
-{
- "pk": 555,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1fac5792cf1c19a70777a0e46395e213",
- "recipe": 28,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1598,
- "script_type": 0
- }
-},
-{
- "pk": 556,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ed66d37e46ae2130743cdac1961d9b1a",
- "recipe": 99,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00632",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2303,
- "script_type": 1
- }
-},
-{
- "pk": 557,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d44254bf2d4915c87f4054f2a8414f2e",
- "recipe": 99,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1104,
- "script_type": 0
- }
-},
-{
- "pk": 558,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d935835d276d237903c627e75c6b6880",
- "recipe": 99,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2302,
- "script_type": 0
- }
-},
-{
- "pk": 559,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a01dc3cdfa994de6adefa042ae227ee9",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 1,
- "order": 2374,
- "script_type": 0
- }
-},
-{
- "pk": 560,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0cf00f4b7c0b97bc043c29a21b711c70",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1926,
- "script_type": 0
- }
-},
-{
- "pk": 561,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9831c90c2e16777135a08918b251bb93",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004691",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2221,
- "script_type": 1
- }
-},
-{
- "pk": 562,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "18abe089f5a3df854da4cc1b34b75c24",
- "recipe": 115,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2220,
- "script_type": 0
- }
-},
-{
- "pk": 563,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "32a16e9e053d25ca92aaf0ae5798505a",
- "recipe": 115,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1291,
- "script_type": 0
- }
-},
-{
- "pk": 564,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6be71452685f0d08dfa0c5c8fa1bcaaf",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1821,
- "script_type": 0
- }
-},
-{
- "pk": 565,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1f77399c21aaff20e3eeb864bc15d13c",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1820,
- "script_type": 0
- }
-},
-{
- "pk": 566,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7cd1d623d6c6e0c8148d5eb869bccab9",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1813,
- "script_type": 0
- }
-},
-{
- "pk": 567,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "80b04b89a6222d09a1977ce621a4b8d4",
- "recipe": 140,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1347,
- "script_type": 0
- }
-},
-{
- "pk": 568,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e9dc5eecc94d058b4532c1deb2f27a52",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1803,
- "script_type": 0
- }
-},
-{
- "pk": 569,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d39b88a07ed9ec8a0897b2799707a129",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 1,
- "order": 1170,
- "script_type": 0
- }
-},
-{
- "pk": 570,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ff501a9ab403d68e11cad7eec9a7e1d7",
- "recipe": 37,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2245,
- "script_type": 0
- }
-},
-{
- "pk": 571,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fe897d9bf11a4ac22c083e3946c7b19a",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1372,
- "script_type": 0
- }
-},
-{
- "pk": 572,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7f8c1e38b880b748d517f5247798b1cf",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1371,
- "script_type": 0
- }
-},
-{
- "pk": 573,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "142bfee6bcbf362c787bde35426cef46",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1284,
- "script_type": 0
- }
-},
-{
- "pk": 574,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e4a2b94261070f3b2b168550d8ed942a",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1241,
- "script_type": 0
- }
-},
-{
- "pk": 575,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9d842c13b6fe128db6a1b1091f1ef7af",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 770,
- "script_type": 0
- }
-},
-{
- "pk": 576,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5bff1eb4e6defc2eb3b0f1541df13256",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2032,
- "script_type": 0
- }
-},
-{
- "pk": 577,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "69b83d5b6061079c5d3ddfbba4a81125",
- "recipe": 66,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004542",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2233,
- "script_type": 1
- }
-},
-{
- "pk": 578,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3bd5ea5a822979e023f70194035e14b2",
- "recipe": 66,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2232,
- "script_type": 0
- }
-},
-{
- "pk": 579,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "20cae2e63f662907e87bef8ac649dcc5",
- "recipe": 66,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 948,
- "script_type": 0
- }
-},
-{
- "pk": 580,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5b9fe0bfd5a8da4a0206dbcde14f3456",
- "recipe": 124,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2065,
- "script_type": 0
- }
-},
-{
- "pk": 581,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "265fbc003cf5b78e85d95b8c58c42ea9",
- "recipe": 124,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2064,
- "script_type": 0
- }
-},
-{
- "pk": 582,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "00c2cdd891f4a30352ca1d4d0538e423",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 842,
- "script_type": 0
- }
-},
-{
- "pk": 583,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8574fd9bd0d056b0ddc4e0cf9f7dd440",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 841,
- "script_type": 0
- }
-},
-{
- "pk": 584,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bcff40653d8ba456b15bec82dd1a7c5d",
- "recipe": 16,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1250,
- "script_type": 0
- }
-},
-{
- "pk": 585,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0cca63514022b2f29c70646d0d60cf11",
- "recipe": 16,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1249,
- "script_type": 0
- }
-},
-{
- "pk": 586,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "afad5bf0d0f3d7f5a8221906f8e97bef",
- "recipe": 127,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2042,
- "script_type": 0
- }
-},
-{
- "pk": 587,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "354e5ad2f7f593e15a7e9bb71a526df5",
- "recipe": 127,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 2013,
- "script_type": 0
- }
-},
-{
- "pk": 588,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d1932bf20b7c9830946a84efd99f30a3",
- "recipe": 92,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2010,
- "script_type": 0
- }
-},
-{
- "pk": 589,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b0945bc26130fa5b2b4c07cbf501de6d",
- "recipe": 35,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 560,
- "script_type": 0
- }
-},
-{
- "pk": 590,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c6dc18ef9303a5ba4bb71e75d62e74ce",
- "recipe": 35,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 559,
- "script_type": 0
- }
-},
-{
- "pk": 591,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "73a430df0a4b5afd961ce8915d0d7b08",
- "recipe": 29,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 914,
- "script_type": 0
- }
-},
-{
- "pk": 592,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a530d1942d20773f6d7c111b55a26973",
- "recipe": 60,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 964,
- "script_type": 0
- }
-},
-{
- "pk": 593,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0c6db53fa9359cb69c674477a09fa687",
- "recipe": 60,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 963,
- "script_type": 0
- }
-},
-{
- "pk": 594,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0d4f0b1c0e7fdf037b8a523a5f3fa91d",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1426,
- "script_type": 0
- }
-},
-{
- "pk": 595,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "012db05786a2d18df797b782a562bd15",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1425,
- "script_type": 0
- }
-},
-{
- "pk": 596,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8344596b96cc230641b26936530e41a7",
- "recipe": 27,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2366,
- "script_type": 0
- }
-},
-{
- "pk": 597,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e5f9888e45cc7c86e681e712fe91dd62",
- "recipe": 133,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2127,
- "script_type": 0
- }
-},
-{
- "pk": 598,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8e1e19396f44b4815b53d907f1469fb1",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1737,
- "script_type": 0
- }
-},
-{
- "pk": 599,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6b2f028059bbe9acb9686c842cb4b8ed",
- "recipe": 132,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1489,
- "script_type": 0
- }
-},
-{
- "pk": 600,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a1086c7795d56c1a664947f222ec424d",
- "recipe": 118,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1585,
- "script_type": 0
- }
-},
-{
- "pk": 601,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4df4a2972c717e49050c3194d53eb89f",
- "recipe": 40,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1198,
- "script_type": 0
- }
-},
-{
- "pk": 602,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "712376a74784e6b0976c2f948305bfd0",
- "recipe": 23,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1290,
- "script_type": 0
- }
-},
-{
- "pk": 603,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "41913680be60b43772197e6aacce9d53",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1283,
- "script_type": 0
- }
-},
-{
- "pk": 604,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cf3ce68591560d7c16f6d9e43a2f77f4",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1616,
- "script_type": 0
- }
-},
-{
- "pk": 605,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b89b6c1752b6ced3ea93c70cce099496",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1554,
- "script_type": 0
- }
-},
-{
- "pk": 606,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fdfa0d3023b14412845beb5af1be2d90",
- "recipe": 108,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004494",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2317,
- "script_type": 1
- }
-},
-{
- "pk": 607,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8119fd1b77dd6e246b3d78a9e4bf69b5",
- "recipe": 108,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1997,
- "script_type": 0
- }
-},
-{
- "pk": 608,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "629bb92bf52a70f56b4f90d75ff0a573",
- "recipe": 108,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2316,
- "script_type": 0
- }
-},
-{
- "pk": 609,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c43575f0451505a12301a82de08089d5",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1301,
- "script_type": 0
- }
-},
-{
- "pk": 610,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "25252f72f53a39f00d12c00b5bfde89f",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1245,
- "script_type": 0
- }
-},
-{
- "pk": 611,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "72bf3928308a493a7577b53e91f29489",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1300,
- "script_type": 0
- }
-},
-{
- "pk": 612,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aea954fced8b0a4028abce3df13997a6",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_multilib_install",
- "message": "",
- "outcome": 1,
- "order": 1033,
- "script_type": 0
- }
-},
-{
- "pk": 613,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "396ce75dc5d67dcb2d7fd8decdcd22f2",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1028,
- "script_type": 0
- }
-},
-{
- "pk": 614,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8f28fe81569495a49226e7f24c77d211",
- "recipe": 41,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2097,
- "script_type": 0
- }
-},
-{
- "pk": 615,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a35897b907c18155379ec8664c8c58b",
- "recipe": 33,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 564,
- "script_type": 0
- }
-},
-{
- "pk": 616,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9c943f178b2b7196efd74a1e6fb1038b",
- "recipe": 33,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 563,
- "script_type": 0
- }
-},
-{
- "pk": 617,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cb640b3c97412564b05d5e87a486cce8",
- "recipe": 114,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1760,
- "script_type": 0
- }
-},
-{
- "pk": 618,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "84cbb785e303c49e7b1ee2b9402a965f",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1513,
- "script_type": 0
- }
-},
-{
- "pk": 619,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "85d0727b5558c56a76c240a88f0a2672",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1631,
- "script_type": 0
- }
-},
-{
- "pk": 620,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4811d1d4df1a30acddf48b9baa978c33",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1630,
- "script_type": 0
- }
-},
-{
- "pk": 621,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "886e60dedbe55d372a441efd3590149a",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 972,
- "script_type": 0
- }
-},
-{
- "pk": 622,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6b3e105f90314d1d70fb16263dc2ba64",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 819,
- "script_type": 0
- }
-},
-{
- "pk": 623,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d511469d15a608a5de50c95f29b457cb",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 818,
- "script_type": 0
- }
-},
-{
- "pk": 624,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "56ef82e7e92d829660c67c5448c805b6",
- "recipe": 74,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1768,
- "script_type": 0
- }
-},
-{
- "pk": 625,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "82fb8091fe8f2088cec0eaf2e273687f",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1006,
- "script_type": 0
- }
-},
-{
- "pk": 626,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "348e82cb9b102fea20f72bf28b7dd7d1",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 600,
- "script_type": 0
- }
-},
-{
- "pk": 627,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b759692275c64e9d34fa55402cc6986d",
- "recipe": 81,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1148,
- "script_type": 0
- }
-},
-{
- "pk": 628,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f27c8184e3d714f225e4d39fc476b1b8",
- "recipe": 81,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1147,
- "script_type": 0
- }
-},
-{
- "pk": 629,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "53c5f491d484784ae98f906966177920",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1368,
- "script_type": 0
- }
-},
-{
- "pk": 630,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "12a8400a77da761d26c6f33e910d543e",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 725,
- "script_type": 0
- }
-},
-{
- "pk": 631,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "755baa174ca02b6e042601406aadf720",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00458",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1936,
- "script_type": 1
- }
-},
-{
- "pk": 632,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9ce046f4e672b6b8c80abf5a70ec41a5",
- "recipe": 66,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 944,
- "script_type": 0
- }
-},
-{
- "pk": 633,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "08075f65577f77be002243d29db6edea",
- "recipe": 80,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2376,
- "script_type": 0
- }
-},
-{
- "pk": 634,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "769dca759ea690036d40caee0627ae7a",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1495,
- "script_type": 0
- }
-},
-{
- "pk": 635,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "888c3de58a2fc14d92e8c4b2dc530754",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1008,
- "script_type": 0
- }
-},
-{
- "pk": 636,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3db9a2fa4a8298cb889f758b922ab4ee",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1007,
- "script_type": 0
- }
-},
-{
- "pk": 637,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e5eb8d275272138ff63e88abd786b03",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1812,
- "script_type": 0
- }
-},
-{
- "pk": 638,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "479e9345bccfbfae9c3beec77ed6aa08",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1763,
- "script_type": 0
- }
-},
-{
- "pk": 639,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7c9a04ec124dbe0b18b4f12eecfe39ec",
- "recipe": 92,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2009,
- "script_type": 0
- }
-},
-{
- "pk": 640,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5140f625bd4da561d1383fa78be522e0",
- "recipe": 92,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2008,
- "script_type": 0
- }
-},
-{
- "pk": 641,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2e1227cb3d9b53000d9bc18782170e45",
- "recipe": 123,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 698,
- "script_type": 0
- }
-},
-{
- "pk": 642,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d952eee03d00bbb811f055e315311ee7",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1457,
- "script_type": 0
- }
-},
-{
- "pk": 643,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "997eca8999e2f2b50b6e2a6a72a84e5e",
- "recipe": 5,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1192,
- "script_type": 0
- }
-},
-{
- "pk": 644,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "269d6689816e8eefeca255600ba366b9",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1376,
- "script_type": 0
- }
-},
-{
- "pk": 645,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a0ea9e1ef7df71fa284ae11150e06eaf",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1541,
- "script_type": 0
- }
-},
-{
- "pk": 646,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9df36fe23d2ee7bd3581b4196e3a4692",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 781,
- "script_type": 0
- }
-},
-{
- "pk": 647,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0f4948f20329048e9b33346f215f95da",
- "recipe": 16,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1248,
- "script_type": 0
- }
-},
-{
- "pk": 648,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "20ac22f425f7fd913a29083aa700eccd",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1572,
- "script_type": 0
- }
-},
-{
- "pk": 649,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "90dc19e5f4e7e79455498e6dcbaef211",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1571,
- "script_type": 0
- }
-},
-{
- "pk": 650,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "32ac004d51879eab8daf9ea494234fc8",
- "recipe": 117,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2204,
- "script_type": 0
- }
-},
-{
- "pk": 651,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cf7b75553e56fe86038e0affc44fd5fb",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1510,
- "script_type": 0
- }
-},
-{
- "pk": 652,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "583cfb8456d2ddc0a37e860cbae4cc02",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1819,
- "script_type": 0
- }
-},
-{
- "pk": 653,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e2f1ab240587d21ea87b0536ae6bfd61",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1818,
- "script_type": 0
- }
-},
-{
- "pk": 654,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6ddf888a8baee71a2710b21daebee16d",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1459,
- "script_type": 0
- }
-},
-{
- "pk": 655,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a0516980cd261d0652ad2040738b7ecc",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1458,
- "script_type": 0
- }
-},
-{
- "pk": 656,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fa337aebb9b59318caf39a92b1a9506e",
- "recipe": 17,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1931,
- "script_type": 0
- }
-},
-{
- "pk": 657,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "611d4a940117d381fb2c92d2f244aa97",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1375,
- "script_type": 0
- }
-},
-{
- "pk": 658,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3230d6af1c44e462f2f2e32543cbee18",
- "recipe": 99,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1091,
- "script_type": 0
- }
-},
-{
- "pk": 659,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f5663ef725f26687bcfa09721f880ca9",
- "recipe": 56,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 975,
- "script_type": 0
- }
-},
-{
- "pk": 660,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ba1fba106ddbf249bb1d73bdcf076873",
- "recipe": 56,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 589,
- "script_type": 0
- }
-},
-{
- "pk": 661,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8a6b043eafa88b665987dca383d9558b",
- "recipe": 93,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2338,
- "script_type": 0
- }
-},
-{
- "pk": 662,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b35ed745ccb9eeb9348664f94419ea90",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1035,
- "script_type": 0
- }
-},
-{
- "pk": 663,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a700cce5c2a6e9c965db0485760823a",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1725,
- "script_type": 0
- }
-},
-{
- "pk": 664,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6a6a046284525e76bcace29003255a64",
- "recipe": 55,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1120,
- "script_type": 0
- }
-},
-{
- "pk": 665,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5af11a59f4d03f8c0afb5428e333132b",
- "recipe": 55,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1119,
- "script_type": 0
- }
-},
-{
- "pk": 666,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9a6d40424154b2c9065fc8e57650b68c",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004516",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2183,
- "script_type": 1
- }
-},
-{
- "pk": 667,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "524cce6e43e2e4ea05cb795dbd7696d0",
- "recipe": 48,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1596,
- "script_type": 0
- }
-},
-{
- "pk": 668,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f7fee8e687f0008f29a39e8d8390bb53",
- "recipe": 48,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2182,
- "script_type": 0
- }
-},
-{
- "pk": 669,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3a4e0527fe1f27152b5da9a2968e2507",
- "recipe": 48,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1682,
- "script_type": 0
- }
-},
-{
- "pk": 670,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "19d66c5c33c06042531a86947fde3304",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00465",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1954,
- "script_type": 1
- }
-},
-{
- "pk": 671,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75c74731f211d0c59d41b2c53f6f02fd",
- "recipe": 135,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00473",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2355,
- "script_type": 1
- }
-},
-{
- "pk": 672,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7ca507a523bda34c92098bffe771aeeb",
- "recipe": 135,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2354,
- "script_type": 0
- }
-},
-{
- "pk": 673,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9f34217cfe4b0d32af84f951a9ea3cd4",
- "recipe": 106,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1115,
- "script_type": 0
- }
-},
-{
- "pk": 674,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fd9b8281294bb1ab879f3139b2597889",
- "recipe": 106,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1114,
- "script_type": 0
- }
-},
-{
- "pk": 675,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "63c0aa5bc39ea55155628fd5514d3d32",
- "recipe": 31,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1328,
- "script_type": 0
- }
-},
-{
- "pk": 676,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "148a27eb1c10f5d4fb7f8668250ce748",
- "recipe": 31,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1327,
- "script_type": 0
- }
-},
-{
- "pk": 677,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "522777196a52818c44d2723e7d8bc6e8",
- "recipe": 103,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1316,
- "script_type": 0
- }
-},
-{
- "pk": 678,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f8352ecf4885e5c950782d04d3221a8f",
- "recipe": 103,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 708,
- "script_type": 0
- }
-},
-{
- "pk": 679,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "34efd8c83295fb7314c2d7ed86072be3",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1949,
- "script_type": 0
- }
-},
-{
- "pk": 680,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75845664b79dfbae5c155593bdf79983",
- "recipe": 62,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004633",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2402,
- "script_type": 1
- }
-},
-{
- "pk": 681,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c2946be17e7548eba922147440b8a74e",
- "recipe": 62,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2401,
- "script_type": 0
- }
-},
-{
- "pk": 682,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6a81e4ff1dbe302b6b8adab0457b1516",
- "recipe": 24,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1588,
- "script_type": 0
- }
-},
-{
- "pk": 683,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "33bde1cca01490de504cab1cf3a6a090",
- "recipe": 60,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 962,
- "script_type": 0
- }
-},
-{
- "pk": 684,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2a0839bef15af1580bfe8209f6d5ccb7",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 792,
- "script_type": 0
- }
-},
-{
- "pk": 685,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ac901c1e260787c0805e187774d0bec3",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1191,
- "script_type": 0
- }
-},
-{
- "pk": 686,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "636a5b1ef16b94f6a82e740de5266fb8",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1190,
- "script_type": 0
- }
-},
-{
- "pk": 687,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e09069619ea763b69386e0722e9eb965",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004475",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2293,
- "script_type": 1
- }
-},
-{
- "pk": 688,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dc01862299675ac67f089fe4da59edbe",
- "recipe": 71,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1287,
- "script_type": 0
- }
-},
-{
- "pk": 689,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "260bc112224625b6bec095ff8ddb435d",
- "recipe": 71,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2292,
- "script_type": 0
- }
-},
-{
- "pk": 690,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0f72beddab41460ffb278766f6b03076",
- "recipe": 129,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1388,
- "script_type": 0
- }
-},
-{
- "pk": 691,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0fa893b40d0c7bc3e5e88ed2b8a4e0be",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1511,
- "script_type": 0
- }
-},
-{
- "pk": 692,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ab7ace8b968dd0e4e2bc56eedb203a32",
- "recipe": 81,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1149,
- "script_type": 0
- }
-},
-{
- "pk": 693,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b1a22b4f9fa09c5d5788689d95e688b5",
- "recipe": 8,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 910,
- "script_type": 0
- }
-},
-{
- "pk": 694,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "736ca236cca629adcc953c6d9114d31c",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1365,
- "script_type": 0
- }
-},
-{
- "pk": 695,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d70bacd25e50a7714b365a9960a9e9d9",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1299,
- "script_type": 0
- }
-},
-{
- "pk": 696,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5448e7cef5cf78fd1602f4d2e510e24f",
- "recipe": 68,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2290,
- "script_type": 0
- }
-},
-{
- "pk": 697,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f625c93bde6db4b89579c1d1153f9677",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1928,
- "script_type": 0
- }
-},
-{
- "pk": 698,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5e38cb35d2ea4f89530c60f217954745",
- "recipe": 107,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1932,
- "script_type": 0
- }
-},
-{
- "pk": 699,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4746a26005a752799e2dcfb006b367e0",
- "recipe": 124,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004746",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2408,
- "script_type": 1
- }
-},
-{
- "pk": 700,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4535576ee16978594b2c5553f80fa823",
- "recipe": 124,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2407,
- "script_type": 0
- }
-},
-{
- "pk": 701,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "936ebc6e8e6b48ac737c20d898702f1a",
- "recipe": 12,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2387,
- "script_type": 0
- }
-},
-{
- "pk": 702,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e3e0cd81468042f865f85c7c25b63c5e",
- "recipe": 12,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 2011,
- "script_type": 0
- }
-},
-{
- "pk": 703,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0050078c356c6d609892a42c968564bf",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1612,
- "script_type": 0
- }
-},
-{
- "pk": 704,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "df45d08fc5b33a4653f46a94c14abf1b",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1611,
- "script_type": 0
- }
-},
-{
- "pk": 705,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a9c2fd450861dd96ac7e1303fd40542",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 604,
- "script_type": 0
- }
-},
-{
- "pk": 706,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1a21c52051534e94eb9674edd6551f4b",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 603,
- "script_type": 0
- }
-},
-{
- "pk": 707,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f103a9ef447d7603364d70e6f805d585",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004769",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2191,
- "script_type": 1
- }
-},
-{
- "pk": 708,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3347cf713ebe5795296f99f7f20e9f93",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004661",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1957,
- "script_type": 1
- }
-},
-{
- "pk": 709,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a5157fbd3787a46fe04a67e13c31bb5d",
- "recipe": 137,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1638,
- "script_type": 0
- }
-},
-{
- "pk": 710,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "492ce28f003e0e6f132a0ccbdb67cf7e",
- "recipe": 137,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2190,
- "script_type": 0
- }
-},
-{
- "pk": 711,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ed8ebd2763756e0756f0e8c1802b040b",
- "recipe": 54,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1838,
- "script_type": 0
- }
-},
-{
- "pk": 712,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8b316da66bbe7a9013277306e474a8f9",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004788",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2211,
- "script_type": 1
- }
-},
-{
- "pk": 713,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fb29b0bd346b4d2e07b3bbe23913fcdb",
- "recipe": 56,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004602",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2227,
- "script_type": 1
- }
-},
-{
- "pk": 714,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c44485ee4b5c1dc60727d950db77449",
- "recipe": 56,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 980,
- "script_type": 0
- }
-},
-{
- "pk": 715,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0a6da2d4e16d5e45bd4884ab04d98469",
- "recipe": 56,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2226,
- "script_type": 0
- }
-},
-{
- "pk": 716,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7b155163be939e1505f65757a3e90e71",
- "recipe": 25,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2326,
- "script_type": 0
- }
-},
-{
- "pk": 717,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9eb10db498f517a0bde1b534e6e8b6af",
- "recipe": 25,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1500,
- "script_type": 0
- }
-},
-{
- "pk": 718,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e7e0c4cddf97acde1ffe8393696570bb",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1433,
- "script_type": 0
- }
-},
-{
- "pk": 719,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5e427fef298e557b0c37a864f1b80d9c",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1432,
- "script_type": 0
- }
-},
-{
- "pk": 720,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b4b8b032b94aab2892befa40673bafe5",
- "recipe": 122,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1651,
- "script_type": 0
- }
-},
-{
- "pk": 721,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2fd86de8adc7ee8efb5388e8d619b78f",
- "recipe": 25,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1505,
- "script_type": 0
- }
-},
-{
- "pk": 722,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aac5cd877073f7fec34d74a1cfe3d04c",
- "recipe": 25,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1504,
- "script_type": 0
- }
-},
-{
- "pk": 723,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bcdd0c954926fbc98ff6be25479a3cd9",
- "recipe": 29,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 917,
- "script_type": 0
- }
-},
-{
- "pk": 724,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "40bdac6335b7253388068a9577bc9ee7",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1257,
- "script_type": 0
- }
-},
-{
- "pk": 725,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aa1a8430fde397fa0761b1e93db266eb",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 689,
- "script_type": 0
- }
-},
-{
- "pk": 726,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "06ac2010b8ff8312970018973df60c26",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 688,
- "script_type": 0
- }
-},
-{
- "pk": 727,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "88e52e6ac0d9aa584a3d01ee68494f31",
- "recipe": 65,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1252,
- "script_type": 0
- }
-},
-{
- "pk": 728,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "99a00a38059bda4e8e80e1de4796497b",
- "recipe": 86,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1221,
- "script_type": 0
- }
-},
-{
- "pk": 729,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "597d7ae3fa80e357b293ae5b5343a1f9",
- "recipe": 65,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1251,
- "script_type": 0
- }
-},
-{
- "pk": 730,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5476fe59adc6e3fb53fa3471c3a00581",
- "recipe": 91,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1619,
- "script_type": 0
- }
-},
-{
- "pk": 731,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "386613bd8e1cd306d6209fbd319ffcb1",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1614,
- "script_type": 0
- }
-},
-{
- "pk": 732,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0930536004024321b75b386ae0251bf2",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 998,
- "script_type": 0
- }
-},
-{
- "pk": 733,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "78c1553b7c9a00c014606fb236c959a8",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 997,
- "script_type": 0
- }
-},
-{
- "pk": 734,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8594988c970f8b42dcc2a3cd87c5dc9b",
- "recipe": 13,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2143,
- "script_type": 0
- }
-},
-{
- "pk": 735,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1486f8ec0df1f740eb6df57e93371862",
- "recipe": 72,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2389,
- "script_type": 0
- }
-},
-{
- "pk": 736,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1498724ff4d0c433184d948489456c96",
- "recipe": 72,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 2012,
- "script_type": 0
- }
-},
-{
- "pk": 737,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "542ae92efca5aeb37faa3c3e2377abca",
- "recipe": 63,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2168,
- "script_type": 0
- }
-},
-{
- "pk": 738,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ddd5fc05fa8929e1980b6898899196e",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 757,
- "script_type": 0
- }
-},
-{
- "pk": 739,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "85e3fa85557e6b3e29a1d6225330da90",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 756,
- "script_type": 0
- }
-},
-{
- "pk": 740,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2c571900b83265134c2bea8eb1798814",
- "recipe": 16,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1247,
- "script_type": 0
- }
-},
-{
- "pk": 741,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9103d700ca265ed139f076f7d36f5b7c",
- "recipe": 16,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1246,
- "script_type": 0
- }
-},
-{
- "pk": 742,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "897da0748113fbe5d723c04466cd4a73",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1260,
- "script_type": 0
- }
-},
-{
- "pk": 743,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b903b1081dc6b953473f50e00480ab64",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1239,
- "script_type": 0
- }
-},
-{
- "pk": 744,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ad6ef15f9368a32014fce37643d4aa87",
- "recipe": 25,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004517",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2327,
- "script_type": 1
- }
-},
-{
- "pk": 745,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f7088eb2d615efd869cc4be49a02719b",
- "recipe": 25,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1506,
- "script_type": 0
- }
-},
-{
- "pk": 746,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4eb255ea05c32fe0794e0bb32abbb946",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1016,
- "script_type": 0
- }
-},
-{
- "pk": 747,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5226a957de785a33155f6bebd18ac3e6",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1015,
- "script_type": 0
- }
-},
-{
- "pk": 748,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "68f85da2635bdf138d6a965d28079d9d",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1543,
- "script_type": 0
- }
-},
-{
- "pk": 749,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8d7ddc271987d8c3e17669156dddc7f2",
- "recipe": 126,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004737",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2347,
- "script_type": 1
- }
-},
-{
- "pk": 750,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fde2656ce8769be29216e882142e33cc",
- "recipe": 126,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2346,
- "script_type": 0
- }
-},
-{
- "pk": 751,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "334b9e0d3107ee9086f83e57674416ba",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1448,
- "script_type": 0
- }
-},
-{
- "pk": 752,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "281eaf430877b0639fe810d56fc4e213",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1447,
- "script_type": 0
- }
-},
-{
- "pk": 753,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a6c1fef58c6a39d6964bea3488234294",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1357,
- "script_type": 0
- }
-},
-{
- "pk": 754,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0763b47c55f64d24046e4ac60dd339a7",
- "recipe": 55,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1121,
- "script_type": 0
- }
-},
-{
- "pk": 755,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5b053d190690a3c2cba01901e00d5e78",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1781,
- "script_type": 0
- }
-},
-{
- "pk": 756,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cd2bf52e821eec85309841d371bf984d",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1780,
- "script_type": 0
- }
-},
-{
- "pk": 757,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b253688607b712d626f58dae63de777d",
- "recipe": 128,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1562,
- "script_type": 0
- }
-},
-{
- "pk": 758,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3e1bdee723c615b2f1c77019f76ef60e",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1279,
- "script_type": 0
- }
-},
-{
- "pk": 759,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "31e5e79b60d89356854075ebd288ef12",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1278,
- "script_type": 0
- }
-},
-{
- "pk": 760,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0608f7674622c7c5e3844429d147254b",
- "recipe": 87,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1396,
- "script_type": 0
- }
-},
-{
- "pk": 761,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "84d6ecc388e75ec8465d8d44d32e6aef",
- "recipe": 87,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1395,
- "script_type": 0
- }
-},
-{
- "pk": 762,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1dc8e99cb2d61687990cd3658063589d",
- "recipe": 35,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004532",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2238,
- "script_type": 1
- }
-},
-{
- "pk": 763,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ad06325f6db991e3d7fdb08e9495314e",
- "recipe": 35,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 893,
- "script_type": 0
- }
-},
-{
- "pk": 764,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "34239fd3be778a4cedfe7a9973741f59",
- "recipe": 35,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2237,
- "script_type": 0
- }
-},
-{
- "pk": 765,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "968387e28a0f5b1c6c7ab21217757f54",
- "recipe": 13,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004761",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2144,
- "script_type": 1
- }
-},
-{
- "pk": 766,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75b8a22030c7542447ebdd19f6151ec9",
- "recipe": 13,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1712,
- "script_type": 0
- }
-},
-{
- "pk": 767,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a6196d8e2a4251fd3ce535b3f32bff12",
- "recipe": 23,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2296,
- "script_type": 0
- }
-},
-{
- "pk": 768,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bfa8d91a88bbfc08a8c2d2534c546d31",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1274,
- "script_type": 0
- }
-},
-{
- "pk": 769,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4cf951bb6093f6f5d8bc295b221d25ea",
- "recipe": 37,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1836,
- "script_type": 0
- }
-},
-{
- "pk": 770,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "99bb5743c772185f62de9f355a359379",
- "recipe": 36,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1131,
- "script_type": 0
- }
-},
-{
- "pk": 771,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4ef055d92a458b827d5377bf015480f5",
- "recipe": 36,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1130,
- "script_type": 0
- }
-},
-{
- "pk": 772,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "946a67e2f4b5ca1542fddb8510bbf66b",
- "recipe": 14,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2153,
- "script_type": 0
- }
-},
-{
- "pk": 773,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c1b13516aa4699575d4b9d5f48849cf1",
- "recipe": 14,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1314,
- "script_type": 0
- }
-},
-{
- "pk": 774,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0fd2f9c1e9e33f552ab828b1a22d19b7",
- "recipe": 19,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2192,
- "script_type": 0
- }
-},
-{
- "pk": 775,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "552a8e9fa97aabfdc61562c49b7b6292",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1567,
- "script_type": 0
- }
-},
-{
- "pk": 776,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e2c1291d9bf9c0799e23694617d75bb8",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004647",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2325,
- "script_type": 1
- }
-},
-{
- "pk": 777,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f7f2bee4f22767113ca4b7c7d064b98a",
- "recipe": 51,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2324,
- "script_type": 0
- }
-},
-{
- "pk": 778,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f238d6ef4e65f712588dc5fdea8a17d2",
- "recipe": 51,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1587,
- "script_type": 0
- }
-},
-{
- "pk": 779,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "66204d5c3740da1c29c64f89508ef2c7",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1233,
- "script_type": 0
- }
-},
-{
- "pk": 780,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7e6be4e67c3fae8d5f7e13007516f3a5",
- "recipe": 92,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004495",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2386,
- "script_type": 1
- }
-},
-{
- "pk": 781,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "04665c67f91784ca9ec97a890d3c2006",
- "recipe": 92,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2385,
- "script_type": 0
- }
-},
-{
- "pk": 782,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9cbc62d47490c2b94265832c5e0202c7",
- "recipe": 88,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 885,
- "script_type": 0
- }
-},
-{
- "pk": 783,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e7109f6eb8b7ad43d86dbd00a5c8a784",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004504",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2309,
- "script_type": 1
- }
-},
-{
- "pk": 784,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "86f6b12e325802dc2d4b2b2aedba141c",
- "recipe": 91,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2308,
- "script_type": 0
- }
-},
-{
- "pk": 785,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2d14fd487bc55df43ea01fbf28345440",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 723,
- "script_type": 0
- }
-},
-{
- "pk": 786,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "da3f045745ad727ca3481aef325c81d6",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 722,
- "script_type": 0
- }
-},
-{
- "pk": 787,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2c3bf40951fdf9d87bee5350d489cfbf",
- "recipe": 42,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2411,
- "script_type": 0
- }
-},
-{
- "pk": 788,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "45ddc0a97494e673554b1dfef7d8e383",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1718,
- "script_type": 0
- }
-},
-{
- "pk": 789,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f6cd246f387281eca3ef78b999e4c6fd",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1272,
- "script_type": 0
- }
-},
-{
- "pk": 790,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "28b70735a4c1e76329b0db2d75e5438d",
- "recipe": 120,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 931,
- "script_type": 0
- }
-},
-{
- "pk": 791,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9d544f6e90784357dbace617df594763",
- "recipe": 120,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 575,
- "script_type": 0
- }
-},
-{
- "pk": 792,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b4cd994ae7c9fbb377f22900e9a476c3",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 693,
- "script_type": 0
- }
-},
-{
- "pk": 793,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f2f5cbf75ec5bdef3bf26cb7c2cc912a",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 692,
- "script_type": 0
- }
-},
-{
- "pk": 794,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ecc7e93efb4f0942d1ad17d86ff0d67d",
- "recipe": 114,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2409,
- "script_type": 0
- }
-},
-{
- "pk": 795,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "69aa6428d91560fdacab9a70a18e9e09",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1486,
- "script_type": 0
- }
-},
-{
- "pk": 796,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "845185e9b3151563f9877da4447f8f0f",
- "recipe": 64,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004758",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2321,
- "script_type": 1
- }
-},
-{
- "pk": 797,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d535de25c70ac6cc21fc9498fd2e5d1d",
- "recipe": 64,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2320,
- "script_type": 0
- }
-},
-{
- "pk": 798,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7cd7de64e6081520d3b041958cce056e",
- "recipe": 72,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 862,
- "script_type": 0
- }
-},
-{
- "pk": 799,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "67435734b5535ea2bd3091b7c8c5717e",
- "recipe": 72,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 861,
- "script_type": 0
- }
-},
-{
- "pk": 800,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "87207e5e70891153b84e8e539fab7a97",
- "recipe": 15,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1797,
- "script_type": 0
- }
-},
-{
- "pk": 801,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4773a59cec8f72c90712674cad966da7",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1790,
- "script_type": 0
- }
-},
-{
- "pk": 802,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "73f375ba425571a470821b71f8c4a1d9",
- "recipe": 69,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2369,
- "script_type": 0
- }
-},
-{
- "pk": 803,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "40f69deb6ee7b4344a82ab88107559cc",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1901,
- "script_type": 0
- }
-},
-{
- "pk": 804,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3a9fb07c5faa26de89dde288306df282",
- "recipe": 58,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 573,
- "script_type": 0
- }
-},
-{
- "pk": 805,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "60dfeb9d29403a2092f009ebeeec02ee",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1405,
- "script_type": 0
- }
-},
-{
- "pk": 806,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "49f078be2363ca9b1c4d3134cf9f7f7f",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 741,
- "script_type": 0
- }
-},
-{
- "pk": 807,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "55ef5d0b79bbbdd0e201ee7015c6cb0f",
- "recipe": 43,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1126,
- "script_type": 0
- }
-},
-{
- "pk": 808,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8db4340db670a16a403b6a332892fdd3",
- "recipe": 43,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1125,
- "script_type": 0
- }
-},
-{
- "pk": 809,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0fd3e83e5e126100acb26856aa244e3e",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 779,
- "script_type": 0
- }
-},
-{
- "pk": 810,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3ca6d1de00b772e9bcb47099f9ee4448",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 778,
- "script_type": 0
- }
-},
-{
- "pk": 811,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ab9acdbaae33a767fbc190998766082d",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 879,
- "script_type": 0
- }
-},
-{
- "pk": 812,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75714b7258d02ce8e9b7b56b37be264f",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 877,
- "script_type": 0
- }
-},
-{
- "pk": 813,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "23180c4cfe8ed045f3d9f1d03611c628",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 878,
- "script_type": 0
- }
-},
-{
- "pk": 814,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1efeb2e9e5fcff06824212abbfdf5639",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004603",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2259,
- "script_type": 1
- }
-},
-{
- "pk": 815,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "767f48b1c01ac01736525657784596e3",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004779",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2023,
- "script_type": 1
- }
-},
-{
- "pk": 816,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "af8cac3800511bac06d5917993ba171e",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004571",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1985,
- "script_type": 1
- }
-},
-{
- "pk": 817,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "501a5f386b25882a554b81568175df9b",
- "recipe": 54,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2258,
- "script_type": 0
- }
-},
-{
- "pk": 818,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e1d6fefbd268f5ce273a9ccae8dc997f",
- "recipe": 54,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2257,
- "script_type": 0
- }
-},
-{
- "pk": 819,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f9f3b489f2ea1c808a83be4ebe9a0675",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004798",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2121,
- "script_type": 1
- }
-},
-{
- "pk": 820,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "82d6eb1e7a97f90a2749af2de045a0d4",
- "recipe": 129,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2120,
- "script_type": 0
- }
-},
-{
- "pk": 821,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9ef9b9017ba27f8abb6a86a98bb174af",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1814,
- "script_type": 0
- }
-},
-{
- "pk": 822,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "acf73d98627eb9953c084095241be8c5",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1528,
- "script_type": 0
- }
-},
-{
- "pk": 823,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62a914b4817e6fb4a52bf977da5caa30",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004546",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2074,
- "script_type": 1
- }
-},
-{
- "pk": 824,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62a04d1fdcb1c55dbdbd10f1bb3bb9f0",
- "recipe": 46,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1401,
- "script_type": 0
- }
-},
-{
- "pk": 825,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4935b35cb92098cc8745bcbe2799c49b",
- "recipe": 46,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2073,
- "script_type": 0
- }
-},
-{
- "pk": 826,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5580816e8ce4755d4ea4978f0c26c991",
- "recipe": 46,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1549,
- "script_type": 0
- }
-},
-{
- "pk": 827,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "63928584522046932aa9d60440703b01",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 822,
- "script_type": 0
- }
-},
-{
- "pk": 828,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "88401c3ee342311ba03550cbb11e9aa2",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 821,
- "script_type": 0
- }
-},
-{
- "pk": 829,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e55369462778467d926da84bfc943de4",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1390,
- "script_type": 0
- }
-},
-{
- "pk": 830,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4c119634449931eb5f2eba354958192b",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 672,
- "script_type": 0
- }
-},
-{
- "pk": 831,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "082f461819492e8daa6ada27a7fe5a68",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 671,
- "script_type": 0
- }
-},
-{
- "pk": 832,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3dc105b975be124256e4f0ae6622e553",
- "recipe": 86,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1220,
- "script_type": 0
- }
-},
-{
- "pk": 833,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2713f54f89ad8ba060b877113236cb63",
- "recipe": 86,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1219,
- "script_type": 0
- }
-},
-{
- "pk": 834,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a29a03626c50020d274583c1ec99841d",
- "recipe": 68,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1086,
- "script_type": 0
- }
-},
-{
- "pk": 835,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "64ad7ccb91e3d65b264a39901e95e9cc",
- "recipe": 50,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1242,
- "script_type": 0
- }
-},
-{
- "pk": 836,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9b0ef53eb422ca03c2a68821af945ac0",
- "recipe": 10,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2381,
- "script_type": 0
- }
-},
-{
- "pk": 837,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7c0584df86b017fb42c6db887e87b524",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 691,
- "script_type": 0
- }
-},
-{
- "pk": 838,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e46a60be7876154f997942bd141ab01",
- "recipe": 11,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004732",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2359,
- "script_type": 1
- }
-},
-{
- "pk": 839,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "316c41c726b048f1677ca80a518f50d2",
- "recipe": 11,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2358,
- "script_type": 0
- }
-},
-{
- "pk": 840,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "01cf2136deadee643fa480fc319dffa0",
- "recipe": 141,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 710,
- "script_type": 0
- }
-},
-{
- "pk": 841,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7005f75bdac922cc1455656eb0decfb4",
- "recipe": 141,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 709,
- "script_type": 0
- }
-},
-{
- "pk": 842,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2c9d4a868e0ef03da2a0d9d247596043",
- "recipe": 88,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 887,
- "script_type": 0
- }
-},
-{
- "pk": 843,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "15290e0e5bdafb41954ae25877602b0f",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 735,
- "script_type": 0
- }
-},
-{
- "pk": 844,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2dbf50d8b11e2015b7476ebf064b7612",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 734,
- "script_type": 0
- }
-},
-{
- "pk": 845,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8f2b59f9dd076e770ae1d5c0d221100b",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1613,
- "script_type": 0
- }
-},
-{
- "pk": 846,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d848607c544b2548b430d93a4be8d420",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1497,
- "script_type": 0
- }
-},
-{
- "pk": 847,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a857d83a8497d16d4eccc22ea6a98a39",
- "recipe": 97,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004688",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2213,
- "script_type": 1
- }
-},
-{
- "pk": 848,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3a66ef91f96f1e96f3d192ff182bdb2d",
- "recipe": 97,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2212,
- "script_type": 0
- }
-},
-{
- "pk": 849,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3f63052e208cfc6aa7a181b78f050d4a",
- "recipe": 97,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1962,
- "script_type": 0
- }
-},
-{
- "pk": 850,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2be19eef9328d761941a905b77ae51bc",
- "recipe": 13,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1710,
- "script_type": 0
- }
-},
-{
- "pk": 851,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f68724dbe0fc5f732e3a31f8496873e1",
- "recipe": 38,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2135,
- "script_type": 0
- }
-},
-{
- "pk": 852,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e1e932980dd611f9001b7601f0fb1411",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1265,
- "script_type": 0
- }
-},
-{
- "pk": 853,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3d6cf612022c9ba8068c37cafb70678a",
- "recipe": 116,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 847,
- "script_type": 0
- }
-},
-{
- "pk": 854,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5eb016e9d5a4018f46858c973c09ecf0",
- "recipe": 116,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 846,
- "script_type": 0
- }
-},
-{
- "pk": 855,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e522e1147da09854514eba7801f1c49f",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004743",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2339,
- "script_type": 1
- }
-},
-{
- "pk": 856,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2f24b02f9a6d7e660decf039c938ccf9",
- "recipe": 93,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1200,
- "script_type": 0
- }
-},
-{
- "pk": 857,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ae04c4b231ecce44432c10e287e9823e",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1629,
- "script_type": 0
- }
-},
-{
- "pk": 858,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0c7c3621b8916e00a3ef87a2bbe6dc52",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1622,
- "script_type": 0
- }
-},
-{
- "pk": 859,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ae71b97a6111045beafc59015c682b53",
- "recipe": 85,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1307,
- "script_type": 0
- }
-},
-{
- "pk": 860,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dd10717f91f31eed3b49b6694cc98380",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1923,
- "script_type": 0
- }
-},
-{
- "pk": 861,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6d0bed07592b4c886e2a3d39b94f6ef0",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1922,
- "script_type": 0
- }
-},
-{
- "pk": 862,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7302c6f91f45004685602731d83dfb9b",
- "recipe": 16,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 677,
- "script_type": 0
- }
-},
-{
- "pk": 863,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0edf5f1d5b4edd571381e7616a2f12b2",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1570,
- "script_type": 0
- }
-},
-{
- "pk": 864,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "47e145e37a048ba54de33f0b3d329333",
- "recipe": 84,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1566,
- "script_type": 0
- }
-},
-{
- "pk": 865,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c28bc0f14768ce27fe41a26f3160eca0",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1467,
- "script_type": 0
- }
-},
-{
- "pk": 866,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "847cd4709760c85b8c47f01df0141cec",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1358,
- "script_type": 0
- }
-},
-{
- "pk": 867,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5e3e92ac061d52e31ab68ddac61b6792",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1466,
- "script_type": 0
- }
-},
-{
- "pk": 868,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f514858f6a5bd740a8591fd0586385c2",
- "recipe": 42,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 951,
- "script_type": 0
- }
-},
-{
- "pk": 869,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "88e3b770b35500641f95605f2f585268",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1538,
- "script_type": 0
- }
-},
-{
- "pk": 870,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "17a4880c4cf77ca850d8965a843bc2c2",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 724,
- "script_type": 0
- }
-},
-{
- "pk": 871,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8b42ecbf92b8b5d5e75b264012dad9ef",
- "recipe": 45,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2048,
- "script_type": 0
- }
-},
-{
- "pk": 872,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2fbc1af6f15f6642a30ca9eaddd6eb82",
- "recipe": 45,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2047,
- "script_type": 0
- }
-},
-{
- "pk": 873,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a367c308311db5399e5512cb76c20b47",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1135,
- "script_type": 0
- }
-},
-{
- "pk": 874,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "af2494a1ecaf8a91ce7fe2c5b65405a9",
- "recipe": 126,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 968,
- "script_type": 0
- }
-},
-{
- "pk": 875,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1b21429d92c4b630745ab94284b826a7",
- "recipe": 126,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 967,
- "script_type": 0
- }
-},
-{
- "pk": 876,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "665bda5a1f69ed97d8c3754c843945f5",
- "recipe": 5,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1295,
- "script_type": 0
- }
-},
-{
- "pk": 877,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dbedcf8c8b9b256bd26d75cacb9ac9fc",
- "recipe": 12,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 860,
- "script_type": 0
- }
-},
-{
- "pk": 878,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5579770c39e03cbc56dc21d4cbdcdadb",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1512,
- "script_type": 0
- }
-},
-{
- "pk": 879,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b3929d1c6ad66a8dddeadc7f640b3fd4",
- "recipe": 83,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1168,
- "script_type": 0
- }
-},
-{
- "pk": 880,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6b020061937b819d2b3872ee08ef5c5c",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 1,
- "order": 1933,
- "script_type": 0
- }
-},
-{
- "pk": 881,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2cb5b3845b4dff8f08db7abd82c00ba2",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1929,
- "script_type": 0
- }
-},
-{
- "pk": 882,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e08a39c5d66b396d576cbb6db79aad41",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004714",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2022,
- "script_type": 1
- }
-},
-{
- "pk": 883,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "43bd1edd789dbdf74f3a505a86cc2b44",
- "recipe": 55,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1118,
- "script_type": 0
- }
-},
-{
- "pk": 884,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7e62f5487d4e7362fa7206ef930bbc4d",
- "recipe": 76,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1340,
- "script_type": 0
- }
-},
-{
- "pk": 885,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "03ab82a966176b9bb6ff88832adb0153",
- "recipe": 76,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1339,
- "script_type": 0
- }
-},
-{
- "pk": 886,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "306c132ecdf5854ff8fc7355610b21d2",
- "recipe": 67,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1717,
- "script_type": 0
- }
-},
-{
- "pk": 887,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "be8fb4f93fef6326636116768fc0ec24",
- "recipe": 67,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1716,
- "script_type": 0
- }
-},
-{
- "pk": 888,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4269ec919ac0ffe8eee8e60e51821726",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 690,
- "script_type": 0
- }
-},
-{
- "pk": 889,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c6416c02590b0189536917675d4c55a6",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00484",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2205,
- "script_type": 1
- }
-},
-{
- "pk": 890,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bd66f0ad1cc0dc8ce2a826036c7057a2",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004638",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2307,
- "script_type": 1
- }
-},
-{
- "pk": 891,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "746b7c76d1ec47ae53f1d8c6829b8b73",
- "recipe": 74,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1639,
- "script_type": 0
- }
-},
-{
- "pk": 892,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e65256d42f1dcec9c84ea162e324f5b1",
- "recipe": 74,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2306,
- "script_type": 0
- }
-},
-{
- "pk": 893,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "08cc6b7c366d487101399c6511331ebe",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004619",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1981,
- "script_type": 1
- }
-},
-{
- "pk": 894,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ea4e7527d7d9db3a80fa48bf36be3cf7",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004619",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1952,
- "script_type": 1
- }
-},
-{
- "pk": 895,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "777ff99bbbb39a7b72482f670c637a57",
- "recipe": 3,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2058,
- "script_type": 0
- }
-},
-{
- "pk": 896,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fc6753517c4c800bbf66e6edef665682",
- "recipe": 3,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 2017,
- "script_type": 0
- }
-},
-{
- "pk": 897,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0818b53b3f39d13973329654b107263f",
- "recipe": 90,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1169,
- "script_type": 0
- }
-},
-{
- "pk": 898,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "183be41e0881b3df394095ea6c4113d3",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1411,
- "script_type": 0
- }
-},
-{
- "pk": 899,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aede3d2441d156ee8950e415be4e1a6b",
- "recipe": 32,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1474,
- "script_type": 0
- }
-},
-{
- "pk": 900,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3a57820cac67e70e5a742486fd5c3a7a",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1453,
- "script_type": 0
- }
-},
-{
- "pk": 901,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "68e6af10524462e497fe56b7b9eaf27c",
- "recipe": 15,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2180,
- "script_type": 0
- }
-},
-{
- "pk": 902,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f94efcac8d20518724956732e13cad45",
- "recipe": 27,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2005,
- "script_type": 0
- }
-},
-{
- "pk": 903,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d24bebd9144c9e5e008a566613263c1b",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1346,
- "script_type": 0
- }
-},
-{
- "pk": 904,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1ceac9492e2e93553db36bb9ee792b78",
- "recipe": 18,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1563,
- "script_type": 0
- }
-},
-{
- "pk": 905,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2081b8d3f2244d10d2e0ca00a569ccdc",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 985,
- "script_type": 0
- }
-},
-{
- "pk": 906,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "156c83d994949d90665c2857c521334c",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 593,
- "script_type": 0
- }
-},
-{
- "pk": 907,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "de8eb0cdeaeac8f30a71c0e7c2b919b0",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 644,
- "script_type": 0
- }
-},
-{
- "pk": 908,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "633a29fe66385aa6cc9915a339d17222",
- "recipe": 82,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1202,
- "script_type": 0
- }
-},
-{
- "pk": 909,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9a9a1ca9a4bba5040f7a0bb0623be9e8",
- "recipe": 105,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1706,
- "script_type": 0
- }
-},
-{
- "pk": 910,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d244b15220e716bcd90274445d940b0d",
- "recipe": 126,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 585,
- "script_type": 0
- }
-},
-{
- "pk": 911,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "010b67caef73725290f4df2024d3abc5",
- "recipe": 73,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1145,
- "script_type": 0
- }
-},
-{
- "pk": 912,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "289f57334ffdac922584dcb0dafd1f3d",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1298,
- "script_type": 0
- }
-},
-{
- "pk": 913,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "efae313c9e152900d27a2d82f6d99b6a",
- "recipe": 21,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2235,
- "script_type": 0
- }
-},
-{
- "pk": 914,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0f4b5ff06749a6e938710783fd0f0f34",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 832,
- "script_type": 0
- }
-},
-{
- "pk": 915,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "662c25a1adaf13f3c3b2f6db70d0ae6b",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 831,
- "script_type": 0
- }
-},
-{
- "pk": 916,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ab702bcbb0c4030970c62e67255b999",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1720,
- "script_type": 0
- }
-},
-{
- "pk": 917,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fc5a030810989af830cf3fdc61648f32",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1713,
- "script_type": 0
- }
-},
-{
- "pk": 918,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b6a3389dc3a5a00dce8b22ed01daffeb",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 987,
- "script_type": 0
- }
-},
-{
- "pk": 919,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a4448124f62e777585cb7631608e32b4",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 986,
- "script_type": 0
- }
-},
-{
- "pk": 920,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a9c2fd450861dd96ac7e1303fd40542",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 606,
- "script_type": 0
- }
-},
-{
- "pk": 921,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1a21c52051534e94eb9674edd6551f4b",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 605,
- "script_type": 0
- }
-},
-{
- "pk": 922,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4c3329c7d44a04fcd9e842b544b7fcbe",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 739,
- "script_type": 0
- }
-},
-{
- "pk": 923,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ea3213e042342f90811a6db9ced1ddf6",
- "recipe": 123,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1304,
- "script_type": 0
- }
-},
-{
- "pk": 924,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "20fea8dc3cea7732c05876b0d1d916eb",
- "recipe": 123,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1303,
- "script_type": 0
- }
-},
-{
- "pk": 925,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "42bcade4496e6df8a28c12db4ca35807",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 970,
- "script_type": 0
- }
-},
-{
- "pk": 926,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fd972e74a612e708af29b0d0b9733647",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 587,
- "script_type": 0
- }
-},
-{
- "pk": 927,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6b447af4030544bbf9d7650dce0502d1",
- "recipe": 79,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1442,
- "script_type": 0
- }
-},
-{
- "pk": 928,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0aa4caa226a8a41c57cf70eb817aac2a",
- "recipe": 58,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 929,
- "script_type": 0
- }
-},
-{
- "pk": 929,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a4f2cda7daea78ca5d3353d86246baaf",
- "recipe": 58,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 928,
- "script_type": 0
- }
-},
-{
- "pk": 930,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ce807563c58ec05c22e6a04204f75c49",
- "recipe": 40,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1034,
- "script_type": 0
- }
-},
-{
- "pk": 931,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "57cced0d5fdc48a83ae0959f6ffec3b9",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1261,
- "script_type": 0
- }
-},
-{
- "pk": 932,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "19156f5cd6dcace54dd01c222c1b0eca",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 753,
- "script_type": 0
- }
-},
-{
- "pk": 933,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a527d0852c1958ba4d3b4eed30832bf",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 752,
- "script_type": 0
- }
-},
-{
- "pk": 934,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "29e057ce606fba488ce240f9004604ce",
- "recipe": 56,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 977,
- "script_type": 0
- }
-},
-{
- "pk": 935,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "16aa9cca38dd5c79ae7c7805ae452b52",
- "recipe": 30,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1993,
- "script_type": 0
- }
-},
-{
- "pk": 936,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d0d38b1f133fcb1ef0589b20cd82e1b6",
- "recipe": 30,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1992,
- "script_type": 0
- }
-},
-{
- "pk": 937,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0589eb53967b8b500abf3b33001e8d98",
- "recipe": 87,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 733,
- "script_type": 0
- }
-},
-{
- "pk": 938,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "60d9e95eb93c2cdc8bc3319717162f20",
- "recipe": 87,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 732,
- "script_type": 0
- }
-},
-{
- "pk": 939,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b95aa98e46dc59a98fc51d0d1013eb84",
- "recipe": 95,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2171,
- "script_type": 0
- }
-},
-{
- "pk": 940,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ef6301432b87b1ae003862f89498c772",
- "recipe": 102,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 954,
- "script_type": 0
- }
-},
-{
- "pk": 941,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "132accfdd13627a9fe823f6354e264b7",
- "recipe": 102,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 581,
- "script_type": 0
- }
-},
-{
- "pk": 942,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f2e5b479001a16e5a17811a4b9fb8627",
- "recipe": 101,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 894,
- "script_type": 0
- }
-},
-{
- "pk": 943,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7684be6ff2f464115da2d1d81136bd6b",
- "recipe": 87,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1394,
- "script_type": 0
- }
-},
-{
- "pk": 944,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "76acb1e1794b057d4913af05a506072e",
- "recipe": 87,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1392,
- "script_type": 0
- }
-},
-{
- "pk": 945,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5dea024f0f02c2006a8afd40709a56e1",
- "recipe": 47,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1391,
- "script_type": 0
- }
-},
-{
- "pk": 946,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3c37050dc604a97bebc15b1a6882af03",
- "recipe": 86,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004776",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2132,
- "script_type": 1
- }
-},
-{
- "pk": 947,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "67fb2ac83ccddbe056d4ab38710696ec",
- "recipe": 86,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2131,
- "script_type": 0
- }
-},
-{
- "pk": 948,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "88bd631f06aa553b21bec3441e03a251",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004697",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2082,
- "script_type": 1
- }
-},
-{
- "pk": 949,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ab07029773ec0f483d762a24bfbed6fb",
- "recipe": 70,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1561,
- "script_type": 0
- }
-},
-{
- "pk": 950,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e125a00f69a5d9c06dd47b82193fa96",
- "recipe": 70,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1438,
- "script_type": 0
- }
-},
-{
- "pk": 951,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8fef82faf416ddd94942d1e4ff1c43ff",
- "recipe": 70,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2081,
- "script_type": 0
- }
-},
-{
- "pk": 952,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c3b393e574aa90fd1bda897018c090ff",
- "recipe": 135,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1046,
- "script_type": 0
- }
-},
-{
- "pk": 953,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8e693bd0be4b2d74df90e65e6727e2a2",
- "recipe": 135,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1045,
- "script_type": 0
- }
-},
-{
- "pk": 954,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e0673a29a2ea40a41f199a9316b10365",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_evacuate_scripts",
- "message": "",
- "outcome": 1,
- "order": 1011,
- "script_type": 0
- }
-},
-{
- "pk": 955,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f77726e0e8fff62242517dd5765f6451",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1009,
- "script_type": 0
- }
-},
-{
- "pk": 956,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8c62bd6ec597fe279b359976de4a4ff0",
- "recipe": 76,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 712,
- "script_type": 0
- }
-},
-{
- "pk": 957,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fcc753ac5ecb4a7f7695f760059259e6",
- "recipe": 76,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 711,
- "script_type": 0
- }
-},
-{
- "pk": 958,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6fc39cd74e6730c9bfabf916b85fbf1c",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1270,
- "script_type": 0
- }
-},
-{
- "pk": 959,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5fe989505e111c9a02811603be104965",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1463,
- "script_type": 0
- }
-},
-{
- "pk": 960,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2432c309f60cea281c8c4bca1fa2b291",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1349,
- "script_type": 0
- }
-},
-{
- "pk": 961,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c49a0fe380d39a0ef9a3035d9c227c9d",
- "recipe": 44,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1100,
- "script_type": 0
- }
-},
-{
- "pk": 962,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6aa7cba5de06f6aaf04551f35d30b0b9",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1099,
- "script_type": 0
- }
-},
-{
- "pk": 963,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0e31937a8af2e3947e6ce9021674be29",
- "recipe": 35,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 889,
- "script_type": 0
- }
-},
-{
- "pk": 964,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b99c812fbd849a9068f0ee21ede02751",
- "recipe": 67,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2202,
- "script_type": 0
- }
-},
-{
- "pk": 965,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "73212c88d21a5d55a1915704346866a6",
- "recipe": 67,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1708,
- "script_type": 0
- }
-},
-{
- "pk": 966,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f85647b3c14b55ca84767f05bfd29bd2",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004593",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2207,
- "script_type": 1
- }
-},
-{
- "pk": 967,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aeaf556a84c0b051b926ad1a1588944f",
- "recipe": 50,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2206,
- "script_type": 0
- }
-},
-{
- "pk": 968,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1fce96b18c567cc9cc1faec667fb0f49",
- "recipe": 136,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1475,
- "script_type": 0
- }
-},
-{
- "pk": 969,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3ec8393b8b88b621e38495e5beee681d",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1456,
- "script_type": 0
- }
-},
-{
- "pk": 970,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cac16226b4baab26e6477c5ff3bead70",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004549",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2167,
- "script_type": 1
- }
-},
-{
- "pk": 971,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "272ff32be13ab509cca121674be913db",
- "recipe": 22,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2166,
- "script_type": 0
- }
-},
-{
- "pk": 972,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a51b765bdc4abbd9e9c950cec934c581",
- "recipe": 22,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2165,
- "script_type": 0
- }
-},
-{
- "pk": 973,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4aa4f9f8acc9f42bbd9ce61bc38d294f",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1215,
- "script_type": 0
- }
-},
-{
- "pk": 974,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f3337c4d722083d7e0b0c5c44bfa983e",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 666,
- "script_type": 0
- }
-},
-{
- "pk": 975,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b031b9c573edf5db2755d027487e2383",
- "recipe": 122,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2177,
- "script_type": 0
- }
-},
-{
- "pk": 976,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3fa9912151bfcd3cc1b7fd048a2081bd",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1650,
- "script_type": 0
- }
-},
-{
- "pk": 977,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3449ddf9d259ac98ec0ed8cedaa8641d",
- "recipe": 104,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1003,
- "script_type": 0
- }
-},
-{
- "pk": 978,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3986fe6c999b3a2dff049332b15f51a2",
- "recipe": 13,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1711,
- "script_type": 0
- }
-},
-{
- "pk": 979,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8c8b0e9b2c88b0c5e3b33c8dfe4af55c",
- "recipe": 101,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 897,
- "script_type": 0
- }
-},
-{
- "pk": 980,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d2fe91104c1fcf9dbf385cc684f9755f",
- "recipe": 99,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 632,
- "script_type": 0
- }
-},
-{
- "pk": 981,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "897ee04dbe42efaf1c517465b3be023f",
- "recipe": 99,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 631,
- "script_type": 0
- }
-},
-{
- "pk": 982,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "28c2dea373af499cdee839018866bd0a",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 1509,
- "script_type": 0
- }
-},
-{
- "pk": 983,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9eebee4487b9ee6e4c4e5c63f7ba4cec",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1552,
- "script_type": 0
- }
-},
-{
- "pk": 984,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b822cf2baa5ef8e9de05a63ac122de76",
- "recipe": 102,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 958,
- "script_type": 0
- }
-},
-{
- "pk": 985,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "319410103317fb08cb241a54789d3da9",
- "recipe": 102,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 957,
- "script_type": 0
- }
-},
-{
- "pk": 986,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a2e87eb70b1316a3ebaf08b54ad0a00c",
- "recipe": 69,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1930,
- "script_type": 0
- }
-},
-{
- "pk": 987,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d6b8758b4e4ce705b6ddcbeb4cea557e",
- "recipe": 19,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1597,
- "script_type": 0
- }
-},
-{
- "pk": 988,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6e28277d678b65ce86fe0252d65c923c",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1806,
- "script_type": 0
- }
-},
-{
- "pk": 989,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0456a6c53777d47dabbcc6f229a82ca6",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 836,
- "script_type": 0
- }
-},
-{
- "pk": 990,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a90850d43831958d8d4f8edbd78fd633",
- "recipe": 64,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1970,
- "script_type": 0
- }
-},
-{
- "pk": 991,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1d37883571a2f3a185aa4ed39505f9b4",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1021,
- "script_type": 0
- }
-},
-{
- "pk": 992,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5d90f26673bce3cda7cd6d4ef7053db8",
- "recipe": 78,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 984,
- "script_type": 0
- }
-},
-{
- "pk": 993,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d3c2ebcbf545a9140d178758966fa0a9",
- "recipe": 58,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 930,
- "script_type": 0
- }
-},
-{
- "pk": 994,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b35ed745ccb9eeb9348664f94419ea90",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1020,
- "script_type": 0
- }
-},
-{
- "pk": 995,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8ebe79f09131330969a01aac025e4321",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1369,
- "script_type": 0
- }
-},
-{
- "pk": 996,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ad63531e82b4a429fad260ba2c46734d",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 727,
- "script_type": 0
- }
-},
-{
- "pk": 997,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f520596b9127ac2cc3f0a9d75b98d6a0",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 791,
- "script_type": 0
- }
-},
-{
- "pk": 998,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "537929beb64a63e371062d07f6bbdba9",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 790,
- "script_type": 0
- }
-},
-{
- "pk": 999,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e6a287497cbe980377bd683dcee0fcf",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 789,
- "script_type": 0
- }
-},
-{
- "pk": 1000,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fee3c72f01f636b95e9bb321d2c43786",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1277,
- "script_type": 0
- }
-},
-{
- "pk": 1001,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e4ae66a73459fa27130a5c3e535a731a",
- "recipe": 128,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2083,
- "script_type": 0
- }
-},
-{
- "pk": 1002,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e8043033dfaef291f45911cb88870f5",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004533",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2285,
- "script_type": 1
- }
-},
-{
- "pk": 1003,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b379b69c5dec976a50ea4f968dd10d0c",
- "recipe": 47,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2284,
- "script_type": 0
- }
-},
-{
- "pk": 1004,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ba9acde73bceae323e6b4b46b4d145c9",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 803,
- "script_type": 0
- }
-},
-{
- "pk": 1005,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "111f0a57cf3683bea2653525b6935dd8",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.005554",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2244,
- "script_type": 1
- }
-},
-{
- "pk": 1006,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8741a2d992e5f0f7786ca15f58594f7a",
- "recipe": 130,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2242,
- "script_type": 0
- }
-},
-{
- "pk": 1007,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cda30d85959c2948726352fa9cb7f4e9",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004621",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2020,
- "script_type": 1
- }
-},
-{
- "pk": 1008,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cbb67fc36686f075fa1b3a1f9bd8fed3",
- "recipe": 130,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1835,
- "script_type": 0
- }
-},
-{
- "pk": 1009,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ad3eaef9731fbd4a5312ae5cf10dd0c8",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004641",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1972,
- "script_type": 1
- }
-},
-{
- "pk": 1010,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8dd6e51d4da7ddea1b6e447abf7b2d59",
- "recipe": 114,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_deploy",
- "message": "",
- "outcome": 2,
- "order": 1977,
- "script_type": 0
- }
-},
-{
- "pk": 1011,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "704dba6357a309a029ac6ff0c518677e",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004754",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2019,
- "script_type": 1
- }
-},
-{
- "pk": 1012,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "556baa18017155c0608df031fdc5ebf9",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2004,
- "script_type": 0
- }
-},
-{
- "pk": 1013,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6502442607acbcd4015c5cc42d61546b",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2003,
- "script_type": 0
- }
-},
-{
- "pk": 1014,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fc473c0ad9ac4ece02e2e670c23ae14b",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004756",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2349,
- "script_type": 1
- }
-},
-{
- "pk": 1015,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fdbe7567865535fd7af0a8a876656e92",
- "recipe": 83,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2348,
- "script_type": 0
- }
-},
-{
- "pk": 1016,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "df925b08381051b3b0bf3028780f28af",
- "recipe": 104,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2344,
- "script_type": 0
- }
-},
-{
- "pk": 1017,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a976d4fc12d14c5796db3a637f6cbce5",
- "recipe": 104,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1000,
- "script_type": 0
- }
-},
-{
- "pk": 1018,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "65f5bcdfd459c69da4f234432c4b6169",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1743,
- "script_type": 0
- }
-},
-{
- "pk": 1019,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ad01ae149838b59373966988514b3a1f",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 659,
- "script_type": 0
- }
-},
-{
- "pk": 1020,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "431c1b27167a2ec5fd8939f8582c6334",
- "recipe": 116,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1965,
- "script_type": 0
- }
-},
-{
- "pk": 1021,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b6f5221c4e2a075805416198112d64dd",
- "recipe": 116,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1964,
- "script_type": 0
- }
-},
-{
- "pk": 1022,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "95bd8f973e352c5302acc9c2f80a8be3",
- "recipe": 6,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1473,
- "script_type": 0
- }
-},
-{
- "pk": 1023,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e7f9cbbb8075763abbc1a6eef6970d4a",
- "recipe": 15,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2179,
- "script_type": 0
- }
-},
-{
- "pk": 1024,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aa7c7bcad27fb7669265029d15f5397f",
- "recipe": 11,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 904,
- "script_type": 0
- }
-},
-{
- "pk": 1025,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dc29d3a902b0b79fb3ba5ba5e66c55f7",
- "recipe": 11,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 566,
- "script_type": 0
- }
-},
-{
- "pk": 1026,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "db776ff3be3be58b7450ace3ead5e719",
- "recipe": 60,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004628",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2225,
- "script_type": 1
- }
-},
-{
- "pk": 1027,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "840d551a8a4209901e385f10542e068a",
- "recipe": 60,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2224,
- "script_type": 0
- }
-},
-{
- "pk": 1028,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "528d66a1d8c0f20c9a8db2f73cb37703",
- "recipe": 33,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 901,
- "script_type": 0
- }
-},
-{
- "pk": 1029,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6e4c2400227d474a91b49a4a5b986687",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1921,
- "script_type": 0
- }
-},
-{
- "pk": 1030,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "597a713eba694b7816e3904a44d4691e",
- "recipe": 42,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004731",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2412,
- "script_type": 1
- }
-},
-{
- "pk": 1031,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d6a47fd4ef9b40d7f4498bfac409b6cb",
- "recipe": 103,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2157,
- "script_type": 0
- }
-},
-{
- "pk": 1032,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0a86e93dcefcdd130f2e98c03cd74b59",
- "recipe": 29,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 570,
- "script_type": 0
- }
-},
-{
- "pk": 1033,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "42e0ba5e62e2d2142c2cf1cc68f52679",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004727",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2416,
- "script_type": 1
- }
-},
-{
- "pk": 1034,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e186b2a96e7eeec20d4e6cec4327f3d2",
- "recipe": 39,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2415,
- "script_type": 0
- }
-},
-{
- "pk": 1035,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9e98a6539d0f59457077bab1e442aaf6",
- "recipe": 39,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1174,
- "script_type": 0
- }
-},
-{
- "pk": 1036,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ff4f2a8abc0d0e278306c27bd63822b",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 815,
- "script_type": 0
- }
-},
-{
- "pk": 1037,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c76e66fdf9e584278f9569035a10df6",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 814,
- "script_type": 0
- }
-},
-{
- "pk": 1038,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4427a6cb664706d0d1819af9c3d74bfa",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1516,
- "script_type": 0
- }
-},
-{
- "pk": 1039,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "28a0870d97ae9d380784c834a9603d4c",
- "recipe": 8,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 909,
- "script_type": 0
- }
-},
-{
- "pk": 1040,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bbbdb82ec27c956628ef951e15eb7985",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1494,
- "script_type": 0
- }
-},
-{
- "pk": 1041,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "361bde13fe4057e4bead2bc4d43f7c0f",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1569,
- "script_type": 0
- }
-},
-{
- "pk": 1042,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "49a9ac014330c604fee8a4b443c31718",
- "recipe": 78,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 590,
- "script_type": 0
- }
-},
-{
- "pk": 1043,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a08981956b16d788e8dca63a5bdca604",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 876,
- "script_type": 0
- }
-},
-{
- "pk": 1044,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5f20020c0089676418795d2366679a6b",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 875,
- "script_type": 0
- }
-},
-{
- "pk": 1045,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "973a1e5d15905f0822e9d140ef39105b",
- "recipe": 120,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2286,
- "script_type": 0
- }
-},
-{
- "pk": 1046,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "37b3ab3ae2bc950fcf0173d448433001",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 695,
- "script_type": 0
- }
-},
-{
- "pk": 1047,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d9216d22aab33e6f1ddcc064b23970d0",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 694,
- "script_type": 0
- }
-},
-{
- "pk": 1048,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4b10986ec5fc818afe404df684c7012e",
- "recipe": 33,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2360,
- "script_type": 0
- }
-},
-{
- "pk": 1049,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5879f59d589fa4315b25a72d89f83dbf",
- "recipe": 9,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1070,
- "script_type": 0
- }
-},
-{
- "pk": 1050,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "beac26967ddd1cf1ff915e85b5230d67",
- "recipe": 9,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1069,
- "script_type": 0
- }
-},
-{
- "pk": 1051,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d7fe78d5053160419abc2b04869281c3",
- "recipe": 127,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2043,
- "script_type": 0
- }
-},
-{
- "pk": 1052,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a71e296d1e7048cd7f55d7a4071ef2df",
- "recipe": 126,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 584,
- "script_type": 0
- }
-},
-{
- "pk": 1053,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cd8d354a488071171731234cf209f3cf",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1822,
- "script_type": 0
- }
-},
-{
- "pk": 1054,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c5ff0e70a9dcd93313f6f0df2f1779c2",
- "recipe": 138,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1637,
- "script_type": 0
- }
-},
-{
- "pk": 1055,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7ab73a4e83fda32b8558db7b7590e0e5",
- "recipe": 141,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1336,
- "script_type": 0
- }
-},
-{
- "pk": 1056,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7958fbb9fc93eece798766dd6cc5fb09",
- "recipe": 141,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1335,
- "script_type": 0
- }
-},
-{
- "pk": 1057,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7eeb516ef61700d0e615b0f5679c9364",
- "recipe": 115,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1604,
- "script_type": 0
- }
-},
-{
- "pk": 1058,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6f0459e5cbd1e8957e12f9f684b7713b",
- "recipe": 109,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1601,
- "script_type": 0
- }
-},
-{
- "pk": 1059,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b05529abd050e1c05623c9099b7cfdf3",
- "recipe": 27,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1546,
- "script_type": 0
- }
-},
-{
- "pk": 1060,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "648dd34f5bc55a7e20cd123fbb2c4c9c",
- "recipe": 87,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1397,
- "script_type": 0
- }
-},
-{
- "pk": 1061,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f9a6d78e14cc1fbbf6e6cc81d8a35741",
- "recipe": 30,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1968,
- "script_type": 0
- }
-},
-{
- "pk": 1062,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dae85ec00cda2ad4fe60ca175dff51d5",
- "recipe": 140,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1573,
- "script_type": 0
- }
-},
-{
- "pk": 1063,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9d80dc192a9bf1c80fe0eab10001548f",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1788,
- "script_type": 0
- }
-},
-{
- "pk": 1064,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "baee99938a7d11da2df1ce2c4d871e2b",
- "recipe": 14,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1323,
- "script_type": 0
- }
-},
-{
- "pk": 1065,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "765361386807d614bb0aeb37f1788547",
- "recipe": 14,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1322,
- "script_type": 0
- }
-},
-{
- "pk": 1066,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e4328fb23c88eeca59d83fed152b9d4b",
- "recipe": 104,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 999,
- "script_type": 0
- }
-},
-{
- "pk": 1067,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "44680af9e2dc2a887ae34c20652ecf3c",
- "recipe": 104,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 598,
- "script_type": 0
- }
-},
-{
- "pk": 1068,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1ee75852b955852ace4f7b53b42cb76a",
- "recipe": 36,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1129,
- "script_type": 0
- }
-},
-{
- "pk": 1069,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0756ac10fe5d3356d391957317958147",
- "recipe": 43,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1127,
- "script_type": 0
- }
-},
-{
- "pk": 1070,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "867dd89af0c72a1d3dca6d3dc2b128a0",
- "recipe": 9,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1072,
- "script_type": 0
- }
-},
-{
- "pk": 1071,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d3a94d18696c2099b26aba5c5adb0926",
- "recipe": 36,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1128,
- "script_type": 0
- }
-},
-{
- "pk": 1072,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "242256e57d9e1d775dc03deb7c56434e",
- "recipe": 67,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 811,
- "script_type": 0
- }
-},
-{
- "pk": 1073,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "eda7184a2543dbd4b863921d93993c94",
- "recipe": 91,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1733,
- "script_type": 0
- }
-},
-{
- "pk": 1074,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1ca77e942a868044eb092fec3a3494eb",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1280,
- "script_type": 0
- }
-},
-{
- "pk": 1075,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cb1b6b4d5d9fa0b00404aafb2c923703",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1407,
- "script_type": 0
- }
-},
-{
- "pk": 1076,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "17537616c6784f70b6d6c1134aa5b3a8",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 745,
- "script_type": 0
- }
-},
-{
- "pk": 1077,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bae2097358b7f39008956511e9683e1b",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1417,
- "script_type": 0
- }
-},
-{
- "pk": 1078,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c514f52f2a31bb5c4a9d986760622bec",
- "recipe": 12,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2034,
- "script_type": 0
- }
-},
-{
- "pk": 1079,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dea0cce5fb77c8154946cbdeba0fb71b",
- "recipe": 64,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 853,
- "script_type": 0
- }
-},
-{
- "pk": 1080,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c4b275722559dc0283ba46d522613bc2",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004725",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2289,
- "script_type": 1
- }
-},
-{
- "pk": 1081,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b34d139f14b5ab712b2bd31ac4929959",
- "recipe": 5,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2288,
- "script_type": 0
- }
-},
-{
- "pk": 1082,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "11a1c1be56eec073b962fa9a6403b64e",
- "recipe": 14,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 1313,
- "script_type": 0
- }
-},
-{
- "pk": 1083,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "713792793a173a0c528f482873415b39",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 747,
- "script_type": 0
- }
-},
-{
- "pk": 1084,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fd39341b83f3a4f356764090f346aa07",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 746,
- "script_type": 0
- }
-},
-{
- "pk": 1085,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a5bd109ba314fd8f9b0214bb83c401e",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1075,
- "script_type": 0
- }
-},
-{
- "pk": 1086,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "77286643d885e694758437cdc5ffbe75",
- "recipe": 59,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1471,
- "script_type": 0
- }
-},
-{
- "pk": 1087,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8c395a3b41a5e49153a794a4cbeafa47",
- "recipe": 59,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1470,
- "script_type": 0
- }
-},
-{
- "pk": 1088,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6deb7343def40c3a1778e2537903c4cb",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1779,
- "script_type": 0
- }
-},
-{
- "pk": 1089,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8acb9efa79babec6f0a8b681e2c37d44",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004709",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2382,
- "script_type": 1
- }
-},
-{
- "pk": 1090,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "152e58bc88eaebe22e2629cabcde09ca",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_evacuate_scripts",
- "message": "",
- "outcome": 1,
- "order": 1018,
- "script_type": 0
- }
-},
-{
- "pk": 1091,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "271241a157be824a454843ec360a89c9",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_locale",
- "message": "",
- "outcome": 1,
- "order": 1017,
- "script_type": 0
- }
-},
-{
- "pk": 1092,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "85714d05b47f72a5d51605424a94af9b",
- "recipe": 72,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2040,
- "script_type": 0
- }
-},
-{
- "pk": 1093,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3de184fc8c00a894ffe11228020b0108",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1817,
- "script_type": 0
- }
-},
-{
- "pk": 1094,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fdc6dae818085dda2c85029ca4af91d4",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 664,
- "script_type": 0
- }
-},
-{
- "pk": 1095,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c0745bcfd1112086051f09d5533977d1",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 663,
- "script_type": 0
- }
-},
-{
- "pk": 1096,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c9f9d455104615ccb99c6f205a6b2604",
- "recipe": 18,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1440,
- "script_type": 0
- }
-},
-{
- "pk": 1097,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "83e8684bd4148d1e24ae6168ec371d30",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1424,
- "script_type": 0
- }
-},
-{
- "pk": 1098,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dc7dfd2c11a83f0bfd56b72d3c6a5db4",
- "recipe": 43,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1123,
- "script_type": 0
- }
-},
-{
- "pk": 1099,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fd972e74a612e708af29b0d0b9733647",
- "recipe": 43,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 641,
- "script_type": 0
- }
-},
-{
- "pk": 1100,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "35f8106023802387d502d04fa48eeab8",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1281,
- "script_type": 0
- }
-},
-{
- "pk": 1101,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8e6c4a300a82b5c3b6b461e76a286c0d",
- "recipe": 124,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2063,
- "script_type": 0
- }
-},
-{
- "pk": 1102,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "edd9d7e0ac4ad9ae544536ab6cf1b78e",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 681,
- "script_type": 0
- }
-},
-{
- "pk": 1103,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9010b42b0d1e89cced612bc10c75477b",
- "recipe": 102,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 959,
- "script_type": 0
- }
-},
-{
- "pk": 1104,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5d9c765b4d45df7c10a3caf3848db925",
- "recipe": 106,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1116,
- "script_type": 0
- }
-},
-{
- "pk": 1105,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e86872e47bf4b1a0ef11e47c46e98023",
- "recipe": 134,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1108,
- "script_type": 0
- }
-},
-{
- "pk": 1106,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a9c2fd450861dd96ac7e1303fd40542",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 612,
- "script_type": 0
- }
-},
-{
- "pk": 1107,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f505f8a179455a84335eb73f65d8e99b",
- "recipe": 92,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 1973,
- "script_type": 0
- }
-},
-{
- "pk": 1108,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bedce9841ef11061cf2f9200c094af83",
- "recipe": 92,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 856,
- "script_type": 0
- }
-},
-{
- "pk": 1109,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "84aa8a2244dccceca20556b8f6044ff9",
- "recipe": 141,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2198,
- "script_type": 0
- }
-},
-{
- "pk": 1110,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c6b9e2212f8a4f8eb06b5bdd71c25dc8",
- "recipe": 141,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1333,
- "script_type": 0
- }
-},
-{
- "pk": 1111,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "51c2cabf4ebe5859a61f98f3c0073ee4",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1443,
- "script_type": 0
- }
-},
-{
- "pk": 1112,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7a456924f97a147013c7afe141ed9883",
- "recipe": 3,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004735",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2406,
- "script_type": 1
- }
-},
-{
- "pk": 1113,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4d2fde15bea79485509f341be1302874",
- "recipe": 3,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2405,
- "script_type": 0
- }
-},
-{
- "pk": 1114,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "89a9c8cad112d4cbb740046a0ba45f48",
- "recipe": 3,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2061,
- "script_type": 0
- }
-},
-{
- "pk": 1115,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1db7a8ef77b3250755f8e1a9515c0387",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 783,
- "script_type": 0
- }
-},
-{
- "pk": 1116,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "897bcd80483f513874bc68e168472d75",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 782,
- "script_type": 0
- }
-},
-{
- "pk": 1117,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bc7b9c43c1c61e6a7176669395cc7592",
- "recipe": 66,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 946,
- "script_type": 0
- }
-},
-{
- "pk": 1118,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "217ce84a37911f87628f4945a0b28687",
- "recipe": 66,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 945,
- "script_type": 0
- }
-},
-{
- "pk": 1119,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a642a680999677ad38e558f55fd72bf2",
- "recipe": 140,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2266,
- "script_type": 0
- }
-},
-{
- "pk": 1120,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8a04d7fb08b45e75270139071e733717",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1343,
- "script_type": 0
- }
-},
-{
- "pk": 1121,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "23d60416eefb9c407e8dfad7295bfc51",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1691,
- "script_type": 0
- }
-},
-{
- "pk": 1122,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "01e4b0d7b00055954e13017fe1a5c47f",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1690,
- "script_type": 0
- }
-},
-{
- "pk": 1123,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6c466bffcc605093c778e216f309f320",
- "recipe": 67,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 810,
- "script_type": 0
- }
-},
-{
- "pk": 1124,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2578761ef47b5fcc5c6dfb2722ef2460",
- "recipe": 42,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 580,
- "script_type": 0
- }
-},
-{
- "pk": 1125,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "574ac2d6f5268cc2a652fd2e34dbf50c",
- "recipe": 42,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 579,
- "script_type": 0
- }
-},
-{
- "pk": 1126,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0d3ef82fa3d2d7f8292b320d7fa35262",
- "recipe": 14,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1321,
- "script_type": 0
- }
-},
-{
- "pk": 1127,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d600b7a41489ba0ce83dc42f609d143a",
- "recipe": 85,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1309,
- "script_type": 0
- }
-},
-{
- "pk": 1128,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "947ffb55e5a259bcd652bef8e05e62ab",
- "recipe": 85,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1308,
- "script_type": 0
- }
-},
-{
- "pk": 1129,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "996dbff9a56fff1a7249520897f9a237",
- "recipe": 105,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2099,
- "script_type": 0
- }
-},
-{
- "pk": 1130,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e918cd3641d09703c11058b0cd75cad3",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1699,
- "script_type": 0
- }
-},
-{
- "pk": 1131,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b30aaf862a72477fca1aa4c2c509fc90",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 788,
- "script_type": 0
- }
-},
-{
- "pk": 1132,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "18b8ba89b6037496c5a4b4cbf352e747",
- "recipe": 60,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 960,
- "script_type": 0
- }
-},
-{
- "pk": 1133,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ccc8b8215d6ce1e795869955b8b8fffb",
- "recipe": 94,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1581,
- "script_type": 0
- }
-},
-{
- "pk": 1134,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0196da8588c71d71d4d94e88803b5eee",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1268,
- "script_type": 0
- }
-},
-{
- "pk": 1135,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "308507df1d247cb3e01fe597c925ec99",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1267,
- "script_type": 0
- }
-},
-{
- "pk": 1136,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62b2eb5df924070acad266a8825ee3ed",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 726,
- "script_type": 0
- }
-},
-{
- "pk": 1137,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ebbb42802a177d6cc91754ca01fe342f",
- "recipe": 1,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1840,
- "script_type": 0
- }
-},
-{
- "pk": 1138,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5deec7e22a7cdc235e240be4dc075899",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1823,
- "script_type": 0
- }
-},
-{
- "pk": 1139,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9f95c941acd9bc41ee607e6d792c4d9b",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1765,
- "script_type": 0
- }
-},
-{
- "pk": 1140,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "845b5ed3bae8c922b68991848e5a98cc",
- "recipe": 79,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1565,
- "script_type": 0
- }
-},
-{
- "pk": 1141,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a5e3dbe680f75c5a129c269f98b04613",
- "recipe": 134,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 634,
- "script_type": 0
- }
-},
-{
- "pk": 1142,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e9fabe6fe3d2963360f9febec2c8f487",
- "recipe": 134,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 633,
- "script_type": 0
- }
-},
-{
- "pk": 1143,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6fea5dbefb770691f7e4ddcced465607",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1689,
- "script_type": 0
- }
-},
-{
- "pk": 1144,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1dc1905ebc5fde5e77b1789fcf5cd2fb",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1688,
- "script_type": 0
- }
-},
-{
- "pk": 1145,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "137b9362f7af2da19cea7835974a47f6",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1810,
- "script_type": 0
- }
-},
-{
- "pk": 1146,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9e79f5a2d35df2370cb8b93baad7f0f5",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2002,
- "script_type": 0
- }
-},
-{
- "pk": 1147,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e00b906d86caf615243583ee6c16e714",
- "recipe": 99,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1102,
- "script_type": 0
- }
-},
-{
- "pk": 1148,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "af73d861ccb29e0aa669d1e36f21ea6f",
- "recipe": 99,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1101,
- "script_type": 0
- }
-},
-{
- "pk": 1149,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bd80fe3fb1297d615259c702069bd826",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1461,
- "script_type": 0
- }
-},
-{
- "pk": 1150,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a61f4f602444acf6020b105cbc5a86e3",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1460,
- "script_type": 0
- }
-},
-{
- "pk": 1151,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "127f95b86abf3b70f489215ec7aff658",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1269,
- "script_type": 0
- }
-},
-{
- "pk": 1152,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2d2cec6f1a43d41a91c487944f257058",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1282,
- "script_type": 0
- }
-},
-{
- "pk": 1153,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "efb7846615c66144d6ee50b5b5a25f4f",
- "recipe": 30,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1991,
- "script_type": 0
- }
-},
-{
- "pk": 1154,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "663aa6d3aa0ed985b15c17d90a94e260",
- "recipe": 92,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1974,
- "script_type": 0
- }
-},
-{
- "pk": 1155,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2612fddaa276fd25b1fef1d266fb4d5c",
- "recipe": 63,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1654,
- "script_type": 0
- }
-},
-{
- "pk": 1156,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "99c5d83ef9f6f307cb890165de15e442",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_kernel_configcheck",
- "message": "",
- "outcome": 1,
- "order": 1593,
- "script_type": 0
- }
-},
-{
- "pk": 1157,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6ecbd546faa806d0659ae854405757b2",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1508,
- "script_type": 0
- }
-},
-{
- "pk": 1158,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6a4749cd53f5cc68214c94bb36a548e2",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004752",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2142,
- "script_type": 1
- }
-},
-{
- "pk": 1159,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "811fdc7675101e7049ff489424daa6a8",
- "recipe": 125,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2141,
- "script_type": 0
- }
-},
-{
- "pk": 1160,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "760f7a8ac2df24c46d25818cb9fc62e4",
- "recipe": 4,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2251,
- "script_type": 0
- }
-},
-{
- "pk": 1161,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b2f9c7e9f0184cea309bd181ce3294a8",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 697,
- "script_type": 0
- }
-},
-{
- "pk": 1162,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b6ae46535210562958c95195e6cca02e",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 696,
- "script_type": 0
- }
-},
-{
- "pk": 1163,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "855726274d96be9aa872236196241246",
- "recipe": 106,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 638,
- "script_type": 0
- }
-},
-{
- "pk": 1164,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d9f2aba9e561269aeaf45504153ef8fd",
- "recipe": 106,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 637,
- "script_type": 0
- }
-},
-{
- "pk": 1165,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a6a65b873702ade08c43801366a87182",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 624,
- "script_type": 0
- }
-},
-{
- "pk": 1166,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5e73d08306285ea3574ba68875207ec2",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1724,
- "script_type": 0
- }
-},
-{
- "pk": 1167,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "11d4084cd3d1155317a0d23d923100f7",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1723,
- "script_type": 0
- }
-},
-{
- "pk": 1168,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b35ed745ccb9eeb9348664f94419ea90",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1025,
- "script_type": 0
- }
-},
-{
- "pk": 1169,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8304051c63d64748a7966c4fa3ddf7d2",
- "recipe": 64,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1998,
- "script_type": 0
- }
-},
-{
- "pk": 1170,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e191970db8c5ed03dbc0475c70b04314",
- "recipe": 124,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2062,
- "script_type": 0
- }
-},
-{
- "pk": 1171,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a436af6e62583ddf114f67e74f512161",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1377,
- "script_type": 0
- }
-},
-{
- "pk": 1172,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1a21c52051534e94eb9674edd6551f4b",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 611,
- "script_type": 0
- }
-},
-{
- "pk": 1173,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3ffc96e361295e7ae9cb848a22240799",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1634,
- "script_type": 0
- }
-},
-{
- "pk": 1174,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "769dca759ea690036d40caee0627ae7a",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1633,
- "script_type": 0
- }
-},
-{
- "pk": 1175,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2d949b4521dc59695a887187756e07b7",
- "recipe": 12,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 859,
- "script_type": 0
- }
-},
-{
- "pk": 1176,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "727df24663459eba71917251a8659637",
- "recipe": 73,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1142,
- "script_type": 0
- }
-},
-{
- "pk": 1177,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3a9beb3751be005e61d2ab1c7d96af8b",
- "recipe": 73,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1141,
- "script_type": 0
- }
-},
-{
- "pk": 1178,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1f4ad7a90e94c13e36b43b951d6774d1",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.005139",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2425,
- "script_type": 1
- }
-},
-{
- "pk": 1179,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "59d7ebc2c71075852e39c49494dd914e",
- "recipe": 73,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004633",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2219,
- "script_type": 1
- }
-},
-{
- "pk": 1180,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fa5d4056c76870fef39a56a28418f933",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 1,
- "order": 2424,
- "script_type": 0
- }
-},
-{
- "pk": 1181,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "edf8112326b1497d699e080d35a6ced3",
- "recipe": 85,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004754",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2123,
- "script_type": 1
- }
-},
-{
- "pk": 1182,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6ce6266bde08157e7406e2c4041e1e1f",
- "recipe": 100,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2422,
- "script_type": 0
- }
-},
-{
- "pk": 1183,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f871070e14738bb2619d4a04aee1f0f2",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00477",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2421,
- "script_type": 1
- }
-},
-{
- "pk": 1184,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d9fcc98c649d69535634b31a7591f51c",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004654",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2215,
- "script_type": 1
- }
-},
-{
- "pk": 1185,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "088928c2d41a9d4d5d41b50d3dc877db",
- "recipe": 76,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004755",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2201,
- "script_type": 1
- }
-},
-{
- "pk": 1186,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "77e948798971ff3d85e16498c705fd13",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004738",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2420,
- "script_type": 1
- }
-},
-{
- "pk": 1187,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3fef4bbb60da9c5bbd3eb7ffa1c54eb6",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004702",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2319,
- "script_type": 1
- }
-},
-{
- "pk": 1188,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9130bcf504d5d08b6615b1007bf7b3d0",
- "recipe": 81,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004668",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2418,
- "script_type": 1
- }
-},
-{
- "pk": 1189,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cf98b87045cd5b51fabccc3a1a4372c1",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00469",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2323,
- "script_type": 1
- }
-},
-{
- "pk": 1190,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0a3e2e2ddf2cf27b3d95d54072786de2",
- "recipe": 8,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00466",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2313,
- "script_type": 1
- }
-},
-{
- "pk": 1191,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a3035ca236d69c2327e2fdfe117c0b41",
- "recipe": 106,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004673",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2311,
- "script_type": 1
- }
-},
-{
- "pk": 1192,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dc42c249c27f5dac61b85db9b6573b88",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004737",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2169,
- "script_type": 1
- }
-},
-{
- "pk": 1193,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5b957fde91ed39830e31722de7af97f2",
- "recipe": 67,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004679",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2203,
- "script_type": 1
- }
-},
-{
- "pk": 1194,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8415cc79f454fc61184410fc711bb476",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004768",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2109,
- "script_type": 1
- }
-},
-{
- "pk": 1195,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "606d32c834cc494b0f71dbd1fe569333",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004769",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2107,
- "script_type": 1
- }
-},
-{
- "pk": 1196,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "63fa0e8008044054c37b0bb3dfd63914",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004758",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2410,
- "script_type": 1
- }
-},
-{
- "pk": 1197,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c7ebd07ab2363a3b7fe0a6a44d19ef31",
- "recipe": 134,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004579",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2305,
- "script_type": 1
- }
-},
-{
- "pk": 1198,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bbdff602febbc28fb8e3a17a10fcf37a",
- "recipe": 141,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004634",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2199,
- "script_type": 1
- }
-},
-{
- "pk": 1199,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "35d3fb38145f284d668f31b95ce24e5f",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00456",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2371,
- "script_type": 1
- }
-},
-{
- "pk": 1200,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7183519cbeacee52ad2c458f1fcc2a71",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00475",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2136,
- "script_type": 1
- }
-},
-{
- "pk": 1201,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a8ebac988bcff8bbe7e18347d548d0ad",
- "recipe": 102,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004572",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2301,
- "script_type": 1
- }
-},
-{
- "pk": 1202,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "61b81d76645d3657ee34a557bc71f87c",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004535",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2299,
- "script_type": 1
- }
-},
-{
- "pk": 1203,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bd067db1bd8ab46545d3b652f2c66bda",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004576",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2297,
- "script_type": 1
- }
-},
-{
- "pk": 1204,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c95391db8fe94adb0b749435d4791982",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004625",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2101,
- "script_type": 1
- }
-},
-{
- "pk": 1205,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cbae4063e37f674e838f26587ace95d8",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004649",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2193,
- "script_type": 1
- }
-},
-{
- "pk": 1206,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cfda3c938c647bb43d70a9b294c0cff7",
- "recipe": 112,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004707",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2400,
- "script_type": 1
- }
-},
-{
- "pk": 1207,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c86bcdec5bf2a58abc35247f4e110977",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004766",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2351,
- "script_type": 1
- }
-},
-{
- "pk": 1208,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "881bda89c6cf459e15dfc1d556a56106",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004699",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2098,
- "script_type": 1
- }
-},
-{
- "pk": 1209,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a8511b0c5ac0761f10315d0db918ec26",
- "recipe": 68,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004568",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2291,
- "script_type": 1
- }
-},
-{
- "pk": 1210,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1469bd9ab6f672638b899b57339a94c4",
- "recipe": 9,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004559",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2295,
- "script_type": 1
- }
-},
-{
- "pk": 1211,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75e9ce54048bb3201bbfd95acff6fccf",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004648",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2365,
- "script_type": 1
- }
-},
-{
- "pk": 1212,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dfdda2f786350aaed1dd64e281ce706b",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004678",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2367,
- "script_type": 1
- }
-},
-{
- "pk": 1213,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "de351b38db32325af2688abf7923ef3e",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004648",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2189,
- "script_type": 1
- }
-},
-{
- "pk": 1214,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "da3681bb5251eba8a07af13839851bda",
- "recipe": 127,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004974",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2394,
- "script_type": 1
- }
-},
-{
- "pk": 1215,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "01cb8c3952e24faddc8e3ce899fc9b62",
- "recipe": 87,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004511",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2187,
- "script_type": 1
- }
-},
-{
- "pk": 1216,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "695a4ad82ca724dd325bab7b920f32c2",
- "recipe": 36,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004746",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2392,
- "script_type": 1
- }
-},
-{
- "pk": 1217,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "49e5b54840e8e985a23e0828aa716c32",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004572",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2092,
- "script_type": 1
- }
-},
-{
- "pk": 1218,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "368d84556f4106c9efd55dc9241e6ad1",
- "recipe": 72,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004744",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2390,
- "script_type": 1
- }
-},
-{
- "pk": 1219,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ce772d76584685d7bec40c83c170fb97",
- "recipe": 12,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004513",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2388,
- "script_type": 1
- }
-},
-{
- "pk": 1220,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "12149619ca8aee72603891241e7a191d",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00453",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2090,
- "script_type": 1
- }
-},
-{
- "pk": 1221,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e0e41dd6e1e073e244071c5ffcd207ed",
- "recipe": 43,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004529",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2283,
- "script_type": 1
- }
-},
-{
- "pk": 1222,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d4a9374a0131bf582e330d4357a88bfc",
- "recipe": 123,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004532",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2281,
- "script_type": 1
- }
-},
-{
- "pk": 1223,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6c2d8927c4462d28bc07bbfbaeada296",
- "recipe": 120,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004748",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2287,
- "script_type": 1
- }
-},
-{
- "pk": 1224,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d4b9eb3820ec60e5c45c6a17bc75b1f9",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00465",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2247,
- "script_type": 1
- }
-},
-{
- "pk": 1225,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f28ccb5dd481ad2e57e15632031ccfa3",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00465",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2086,
- "script_type": 1
- }
-},
-{
- "pk": 1226,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "35ea6cd5dbe1a78ca1bc687892315acb",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004761",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2178,
- "script_type": 1
- }
-},
-{
- "pk": 1227,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f51a4b0365af6d929267c4e234b5b67a",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004785",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2380,
- "script_type": 1
- }
-},
-{
- "pk": 1228,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "230c4cbcf3d817800e1e6b98f0c07b94",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004665",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2084,
- "script_type": 1
- }
-},
-{
- "pk": 1229,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "34515acda2a074035daa77bedd8c2609",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004555",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2275,
- "script_type": 1
- }
-},
-{
- "pk": 1230,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5e58ec8e6866c2bccb824a1ec0cf8509",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004642",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2377,
- "script_type": 1
- }
-},
-{
- "pk": 1231,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "48cec31a1859958457df412ee4fe03db",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004638",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2375,
- "script_type": 1
- }
-},
-{
- "pk": 1232,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ee63ae49c97e11226e1d531413f7c191",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004775",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2138,
- "script_type": 1
- }
-},
-{
- "pk": 1233,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "588e7067b85339d1801b015b764b80ea",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004781",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2181,
- "script_type": 1
- }
-},
-{
- "pk": 1234,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b5f5141c4ee5632eda4dc634a0d3ed8a",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004543",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2267,
- "script_type": 1
- }
-},
-{
- "pk": 1235,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a9abcee375341399fa6b9901f0fea92d",
- "recipe": 30,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004622",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2315,
- "script_type": 1
- }
-},
-{
- "pk": 1236,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "40e4843af2296037fcc68aad91724fca",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004613",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2265,
- "script_type": 1
- }
-},
-{
- "pk": 1237,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "daed831d6659e26062be74a75645e306",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004727",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2414,
- "script_type": 1
- }
-},
-{
- "pk": 1238,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e1c64d116eb05169d309d288b24f2ac1",
- "recipe": 101,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004748",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2363,
- "script_type": 1
- }
-},
-{
- "pk": 1239,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "36efd0da9b70f34324367f77dd6d1b50",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004675",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2162,
- "script_type": 1
- }
-},
-{
- "pk": 1240,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "619e4b8329653110753a019b0a496f09",
- "recipe": 33,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00477",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2361,
- "script_type": 1
- }
-},
-{
- "pk": 1241,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "17d7b684d5073b995a477c8d3798be4a",
- "recipe": 65,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004587",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2160,
- "script_type": 1
- }
-},
-{
- "pk": 1242,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "312e3d7d07a8b0ebdf019ed047923810",
- "recipe": 103,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004655",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2158,
- "script_type": 1
- }
-},
-{
- "pk": 1243,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8dfa76418c5ab6dc3a93d13f09ab7f74",
- "recipe": 88,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004743",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2357,
- "script_type": 1
- }
-},
-{
- "pk": 1244,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "05cffbbdb3daeb45a073a06a17093aa0",
- "recipe": 31,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004713",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2156,
- "script_type": 1
- }
-},
-{
- "pk": 1245,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d7aa42987ebdf6e4f0318c1273e7be7f",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.005693",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2256,
- "script_type": 1
- }
-},
-{
- "pk": 1246,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2df0e5c215d8668b699a6ca1eac8f58e",
- "recipe": 14,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00473",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2154,
- "script_type": 1
- }
-},
-{
- "pk": 1247,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bcce33ed82704b52a8a82cfccabebaa4",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004588",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2253,
- "script_type": 1
- }
-},
-{
- "pk": 1248,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a2a8513d48ceb91a03fc503b3f427fe9",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00475",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2353,
- "script_type": 1
- }
-},
-{
- "pk": 1249,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "38c20b8703e76c32f177a4a13b37e814",
- "recipe": 53,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004706",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2152,
- "script_type": 1
- }
-},
-{
- "pk": 1250,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5e1d5422800e9c4527eed5d9fae7fb39",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004681",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2250,
- "script_type": 1
- }
-},
-{
- "pk": 1251,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "35f0e44123fac0a22b3d930f4d74d862",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004772",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2113,
- "script_type": 1
- }
-},
-{
- "pk": 1252,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b35acbc8335b2daa9888f2926a047efa",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004685",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2398,
- "script_type": 1
- }
-},
-{
- "pk": 1253,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ac572342ecc689c959cac47484da3d6f",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004776",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2146,
- "script_type": 1
- }
-},
-{
- "pk": 1254,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "80c33a8455b516ced195dd06b348347d",
- "recipe": 104,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004732",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2345,
- "script_type": 1
- }
-},
-{
- "pk": 1255,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "67bd7a9a281bc1b05ed2fea16699118d",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004791",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2343,
- "script_type": 1
- }
-},
-{
- "pk": 1256,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5843604688edcf4ba507d959f01251dc",
- "recipe": 45,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004652",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2396,
- "script_type": 1
- }
-},
-{
- "pk": 1257,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "51c818d08132439cbca98ff1c556324a",
- "recipe": 58,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004626",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2231,
- "script_type": 1
- }
-},
-{
- "pk": 1258,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "31e2772491166dbeddba78f976c16953",
- "recipe": 78,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004615",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2229,
- "script_type": 1
- }
-},
-{
- "pk": 1259,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8b15ab51ea10f6f88d97f18c5763def7",
- "recipe": 131,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004768",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2134,
- "script_type": 1
- }
-},
-{
- "pk": 1260,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "63d0fadf726972eb2a1919f0cfa33f14",
- "recipe": 59,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004636",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2331,
- "script_type": 1
- }
-},
-{
- "pk": 1261,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8b7b03472ec61bd266026dff25025ebf",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004717",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2128,
- "script_type": 1
- }
-},
-{
- "pk": 1262,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cb3af59e210e7894b90152bb67bf56ad",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004717",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2172,
- "script_type": 1
- }
-},
-{
- "pk": 1263,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "52770ece3e6bcc38206482106ec6b3c9",
- "recipe": 16,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004811",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2125,
- "script_type": 1
- }
-},
-{
- "pk": 1264,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "01b6ba93d09126ec429b928ca7bbb1e2",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004637",
- "logfile": "",
- "build": 1,
- "task_name": "do_build",
- "message": "",
- "outcome": 0,
- "order": 2236,
- "script_type": 1
- }
-},
-{
- "pk": 1265,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ed8161eaabd3a1431a241b6d6e0b1839",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 880,
- "script_type": 0
- }
-},
-{
- "pk": 1266,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e0673a29a2ea40a41f199a9316b10365",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_locale",
- "message": "",
- "outcome": 1,
- "order": 1010,
- "script_type": 0
- }
-},
-{
- "pk": 1267,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4480e6c9722e079475d4cb9292b9bc12",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1348,
- "script_type": 0
- }
-},
-{
- "pk": 1268,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7734bd3a92815feb9772c05176876d13",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1825,
- "script_type": 0
- }
-},
-{
- "pk": 1269,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ed71b03e63103b13d340f904360d53ad",
- "recipe": 88,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 886,
- "script_type": 0
- }
-},
-{
- "pk": 1270,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b14a2eecdceb4ae17cf56a04f2a5ee60",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_kernel_checkout",
- "message": "",
- "outcome": 1,
- "order": 721,
- "script_type": 0
- }
-},
-{
- "pk": 1271,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0041c2407a95b1481e59bd30c60cdb62",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00529",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2372,
- "script_type": 1
- }
-},
-{
- "pk": 1272,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0aea059a3edb4204a10cdf3982182408",
- "recipe": 105,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2100,
- "script_type": 0
- }
-},
-{
- "pk": 1273,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a503cdf4a7c2b939d063b5b7d2ac4617",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1705,
- "script_type": 0
- }
-},
-{
- "pk": 1274,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4daad6a5b856c3ac39acac9d365455a4",
- "recipe": 141,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1338,
- "script_type": 0
- }
-},
-{
- "pk": 1275,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c36683bc0e8b1bd3dfc28f525df23797",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1526,
- "script_type": 0
- }
-},
-{
- "pk": 1276,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9680537e67e60bec4ec97b213c1c41d3",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1742,
- "script_type": 0
- }
-},
-{
- "pk": 1277,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "429f201a5f059a7b6819ad2319bb951b",
- "recipe": 43,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1124,
- "script_type": 0
- }
-},
-{
- "pk": 1278,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1ae1f7556fe28873decb8aa9624f46ed",
- "recipe": 31,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2155,
- "script_type": 0
- }
-},
-{
- "pk": 1279,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62bafb521fc59307127b25d8c1319a7a",
- "recipe": 31,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1315,
- "script_type": 0
- }
-},
-{
- "pk": 1280,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0d50db42c76348745e9bb83a7b0292fb",
- "recipe": 123,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1306,
- "script_type": 0
- }
-},
-{
- "pk": 1281,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4c2bc80ce5d6ae5d58af1a186ccae0b3",
- "recipe": 123,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1305,
- "script_type": 0
- }
-},
-{
- "pk": 1282,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4aa14ee3f6b6a83e00bd90d1c0e80f41",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 687,
- "script_type": 0
- }
-},
-{
- "pk": 1283,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "956ef5d93c816cfa23d68bb9af81c649",
- "recipe": 4,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2252,
- "script_type": 0
- }
-},
-{
- "pk": 1284,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "df09c520af871effa26e17a3691571a7",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1815,
- "script_type": 0
- }
-},
-{
- "pk": 1285,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "130e70bb761a4894903ed192d7921f92",
- "recipe": 12,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2035,
- "script_type": 0
- }
-},
-{
- "pk": 1286,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b25d23280ebabec0069b072d7585147b",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 1735,
- "script_type": 0
- }
-},
-{
- "pk": 1287,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "15d6a23c2468010e4d73603e8a2cdb00",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 820,
- "script_type": 0
- }
-},
-{
- "pk": 1288,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8f13598b294eef495b6b24986723d12e",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1704,
- "script_type": 0
- }
-},
-{
- "pk": 1289,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3fb0c0104c5a1be6bca4169d410783d8",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1703,
- "script_type": 0
- }
-},
-{
- "pk": 1290,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e7dccf29c9dbfac280e7b61cd75604e5",
- "recipe": 81,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1146,
- "script_type": 0
- }
-},
-{
- "pk": 1291,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c53f94ad2833f0b045364f5b07fd39df",
- "recipe": 81,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 650,
- "script_type": 0
- }
-},
-{
- "pk": 1292,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cd488d49d15432bc404bacd0e4d85363",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1292,
- "script_type": 0
- }
-},
-{
- "pk": 1293,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fe1a6c30697c30dee5663ed08f531a12",
- "recipe": 7,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1289,
- "script_type": 0
- }
-},
-{
- "pk": 1294,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b14b7e136060d541cd930a9f8651446f",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1288,
- "script_type": 0
- }
-},
-{
- "pk": 1295,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "45b47a5bd647aa8a58ed1662d85e91ba",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 759,
- "script_type": 0
- }
-},
-{
- "pk": 1296,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e4ab5c5daac5e255f828e021062fbc5b",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 758,
- "script_type": 0
- }
-},
-{
- "pk": 1297,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "55f055f9a9bd51bffb095bb174fc5764",
- "recipe": 8,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2312,
- "script_type": 0
- }
-},
-{
- "pk": 1298,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f403383a7c27b763a298f5e7ed958eb0",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1496,
- "script_type": 0
- }
-},
-{
- "pk": 1299,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4d2dab156882ac29d64584b9b0cb0f20",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 805,
- "script_type": 0
- }
-},
-{
- "pk": 1300,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "818f953df80236e544e6e4d5d5a69b56",
- "recipe": 98,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2254,
- "script_type": 0
- }
-},
-{
- "pk": 1301,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ca08d6b94165fc97ee69926f7f8b7a2d",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1778,
- "script_type": 0
- }
-},
-{
- "pk": 1302,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7841493c3246486c6a6f438a59d54c98",
- "recipe": 59,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 761,
- "script_type": 0
- }
-},
-{
- "pk": 1303,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a866be2c0a3ec3c92e872d2c82c9511a",
- "recipe": 59,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 760,
- "script_type": 0
- }
-},
-{
- "pk": 1304,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "362d191e8d6d69bdfcdbe33edf1cd4d8",
- "recipe": 101,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2362,
- "script_type": 0
- }
-},
-{
- "pk": 1305,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "908c7002d52e5787ac4c078e7e8683cd",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004767",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2025,
- "script_type": 1
- }
-},
-{
- "pk": 1306,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a90f99f37cceac48582ccfb4360157a1",
- "recipe": 127,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2044,
- "script_type": 0
- }
-},
-{
- "pk": 1307,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e3ed4c2ff6003661ccd2ee192d2ee60f",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 685,
- "script_type": 0
- }
-},
-{
- "pk": 1308,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5f6d736ce062f1e5137edb0449e52fda",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 684,
- "script_type": 0
- }
-},
-{
- "pk": 1309,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0ead3a22fd64b56cc33b07edf0ae8703",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 749,
- "script_type": 0
- }
-},
-{
- "pk": 1310,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "96e3c29726432d3a788ad5d408edf8c3",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 748,
- "script_type": 0
- }
-},
-{
- "pk": 1311,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "852b0e1ebc11aa895610159ded14618b",
- "recipe": 18,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2085,
- "script_type": 0
- }
-},
-{
- "pk": 1312,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e3fc3299d4d414b3f9732633bae7495d",
- "recipe": 29,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 569,
- "script_type": 0
- }
-},
-{
- "pk": 1313,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "05eb47c26bd645e619e4cd2e932776f0",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 780,
- "script_type": 0
- }
-},
-{
- "pk": 1314,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "76fc9b19c790e1edea053536099b5345",
- "recipe": 35,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 892,
- "script_type": 0
- }
-},
-{
- "pk": 1315,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a292d2d34b403b18e4c96c95fb8f2758",
- "recipe": 67,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1714,
- "script_type": 0
- }
-},
-{
- "pk": 1316,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "097bb8565e11b32be593d32ce604f756",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1419,
- "script_type": 0
- }
-},
-{
- "pk": 1317,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2bf958124ed4c22be6b8254a5a6e039b",
- "recipe": 127,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 864,
- "script_type": 0
- }
-},
-{
- "pk": 1318,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1bd58cdf9058238cdc1e296d3f1cbe71",
- "recipe": 127,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 863,
- "script_type": 0
- }
-},
-{
- "pk": 1319,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f3561785f3feb4536fed5ae3cdc3e649",
- "recipe": 112,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2399,
- "script_type": 0
- }
-},
-{
- "pk": 1320,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4dd842e2f4086be42cf09fc456133214",
- "recipe": 112,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 2015,
- "script_type": 0
- }
-},
-{
- "pk": 1321,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "295c3b21537804613df8e85cf29950e2",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1544,
- "script_type": 0
- }
-},
-{
- "pk": 1322,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ab1548cbad74b59ef690740ef23b081f",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1428,
- "script_type": 0
- }
-},
-{
- "pk": 1323,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "26084bc5f4d603e65b25bd6a5985bc24",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1517,
- "script_type": 0
- }
-},
-{
- "pk": 1324,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dab96b80a4e7f14b23bbda0132999333",
- "recipe": 53,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1320,
- "script_type": 0
- }
-},
-{
- "pk": 1325,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c04d908e8eea47e017841910c7186827",
- "recipe": 53,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1319,
- "script_type": 0
- }
-},
-{
- "pk": 1326,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "348e82cb9b102fea20f72bf28b7dd7d1",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 602,
- "script_type": 0
- }
-},
-{
- "pk": 1327,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1588b2dd8efdba6aca43d77c0812af76",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00456",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1979,
- "script_type": 1
- }
-},
-{
- "pk": 1328,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b74786e63db3c7f2a8f7ccbd994311de",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1624,
- "script_type": 0
- }
-},
-{
- "pk": 1329,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fc9c805d55857a4796566c250d3138f9",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 657,
- "script_type": 0
- }
-},
-{
- "pk": 1330,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "beff96c82f087b61469ab179407c5d5a",
- "recipe": 134,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1105,
- "script_type": 0
- }
-},
-{
- "pk": 1331,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e9301924ed823a919d08144c3036b0bd",
- "recipe": 134,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1092,
- "script_type": 0
- }
-},
-{
- "pk": 1332,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e3062a4b836392711115426656923166",
- "recipe": 69,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2370,
- "script_type": 0
- }
-},
-{
- "pk": 1333,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a972c8b35d9a0294fabb3856042b6aa1",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004633",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2368,
- "script_type": 1
- }
-},
-{
- "pk": 1334,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e15d629e2141af17be98c058167feb37",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1379,
- "script_type": 0
- }
-},
-{
- "pk": 1335,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f4b7e644677abeecd8371d0ed5cb1627",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1378,
- "script_type": 0
- }
-},
-{
- "pk": 1336,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c9d7b8f99b73d31a9f252548b5feb4e4",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_strip",
- "message": "",
- "outcome": 1,
- "order": 1694,
- "script_type": 0
- }
-},
-{
- "pk": 1337,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d506c0bac1f8cf5d57486cf59af4daad",
- "recipe": 53,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2151,
- "script_type": 0
- }
-},
-{
- "pk": 1338,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fbdb41cc096de45c484c51475bebb94d",
- "recipe": 53,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1312,
- "script_type": 0
- }
-},
-{
- "pk": 1339,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "97f460400729ee4684e10baf1eecfd09",
- "recipe": 135,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1044,
- "script_type": 0
- }
-},
-{
- "pk": 1340,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "23718bf812cd264d6f110fbb18a29b59",
- "recipe": 135,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 614,
- "script_type": 0
- }
-},
-{
- "pk": 1341,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "58c6f10d78fcb6d6398e3c4d57c0f6f3",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 592,
- "script_type": 0
- }
-},
-{
- "pk": 1342,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d5baa7d346a63f6a79771e13572840d4",
- "recipe": 16,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2124,
- "script_type": 0
- }
-},
-{
- "pk": 1343,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d5ae4f197400d4a7db0d8fe49eadea06",
- "recipe": 87,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2186,
- "script_type": 0
- }
-},
-{
- "pk": 1344,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "de21c5a2ccd31f06e040ad3e002deeae",
- "recipe": 112,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2050,
- "script_type": 0
- }
-},
-{
- "pk": 1345,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ea940c3bd76602d12a8b964c9acf9721",
- "recipe": 30,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2314,
- "script_type": 0
- }
-},
-{
- "pk": 1346,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7d4fb07e08f5ac371a6c143fd069d202",
- "recipe": 59,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1469,
- "script_type": 0
- }
-},
-{
- "pk": 1347,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bc3a8bb4fb5877cd0c23e816a7814b5e",
- "recipe": 59,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1468,
- "script_type": 0
- }
-},
-{
- "pk": 1348,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "77de88afcfc9b95fde40f1c98776535c",
- "recipe": 66,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 947,
- "script_type": 0
- }
-},
-{
- "pk": 1349,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4f87c2dab1db70b9fe88e570a83e7b1b",
- "recipe": 53,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 703,
- "script_type": 0
- }
-},
-{
- "pk": 1350,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "764985f5a1f4f78aabeae66e6ad38606",
- "recipe": 53,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 702,
- "script_type": 0
- }
-},
-{
- "pk": 1351,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ff4f2a8abc0d0e278306c27bd63822b",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 766,
- "script_type": 0
- }
-},
-{
- "pk": 1352,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c76e66fdf9e584278f9569035a10df6",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 765,
- "script_type": 0
- }
-},
-{
- "pk": 1353,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9d3c570acabc4f37e32b98c2dca32abd",
- "recipe": 59,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1472,
- "script_type": 0
- }
-},
-{
- "pk": 1354,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c92e78f7ef335b4550e9fb3add35817b",
- "recipe": 59,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2330,
- "script_type": 0
- }
-},
-{
- "pk": 1355,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "660896b3d519c8becaee0f4e1c74bbe2",
- "recipe": 103,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1332,
- "script_type": 0
- }
-},
-{
- "pk": 1356,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "782beaf3701c33cd4bf9fb06d829cd8f",
- "recipe": 103,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1331,
- "script_type": 0
- }
-},
-{
- "pk": 1357,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a23e921c30f7d011c63e490ba439e22",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1635,
- "script_type": 0
- }
-},
-{
- "pk": 1358,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2bdb9dea49cc3c07eaeaabe4459439ba",
- "recipe": 97,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1961,
- "script_type": 0
- }
-},
-{
- "pk": 1359,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "244cf9df30796f6489ee71f49e082bf7",
- "recipe": 134,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2304,
- "script_type": 0
- }
-},
-{
- "pk": 1360,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ad1a6d2360dc46bad311e30cc40f6afa",
- "recipe": 25,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 768,
- "script_type": 0
- }
-},
-{
- "pk": 1361,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "928e46976a379ce73e38098e8b42f78e",
- "recipe": 25,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 767,
- "script_type": 0
- }
-},
-{
- "pk": 1362,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a9087b815f042d682c983b5cf5f9ca0d",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1620,
- "script_type": 0
- }
-},
-{
- "pk": 1363,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8ae4ac295d5e1f4afb95c2a514b19749",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1240,
- "script_type": 0
- }
-},
-{
- "pk": 1364,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cad8f5645dfc429b627786b62d4a9f22",
- "recipe": 43,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 640,
- "script_type": 0
- }
-},
-{
- "pk": 1365,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2e13a559307256f813d672da88c43b08",
- "recipe": 55,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 1117,
- "script_type": 0
- }
-},
-{
- "pk": 1366,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2f0c33f07b78fdb5260b8232fcc2364c",
- "recipe": 112,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2052,
- "script_type": 0
- }
-},
-{
- "pk": 1367,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e5d0b0a1d4cda4cde9e3dc41b26d822c",
- "recipe": 112,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 2051,
- "script_type": 0
- }
-},
-{
- "pk": 1368,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c28d91e9865ddeb1a2c40965f98f141a",
- "recipe": 58,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 572,
- "script_type": 0
- }
-},
-{
- "pk": 1369,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2ca421df74c97c8abc09ee6471d0b4f9",
- "recipe": 133,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1744,
- "script_type": 0
- }
-},
-{
- "pk": 1370,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a74d4a0831c2538d84962b2b066640d6",
- "recipe": 97,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 1940,
- "script_type": 0
- }
-},
-{
- "pk": 1371,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d58b3cf828d687fd9903401bcdd2b49d",
- "recipe": 97,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 845,
- "script_type": 0
- }
-},
-{
- "pk": 1372,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "67f202286aa121765d0230148568ba7c",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1527,
- "script_type": 0
- }
-},
-{
- "pk": 1373,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "223464832a88b15f2d9a9a32bec36b49",
- "recipe": 7,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2161,
- "script_type": 0
- }
-},
-{
- "pk": 1374,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1ab9eb285a99974966857927dbf6187f",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1273,
- "script_type": 0
- }
-},
-{
- "pk": 1375,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1147a3023d01bef3032897bcc117e871",
- "recipe": 76,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1334,
- "script_type": 0
- }
-},
-{
- "pk": 1376,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2b386aa6fce3dbff71af3d6dbfb75dd8",
- "recipe": 14,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1324,
- "script_type": 0
- }
-},
-{
- "pk": 1377,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "035a793641c6b9af6d729b847d04747d",
- "recipe": 65,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1255,
- "script_type": 0
- }
-},
-{
- "pk": 1378,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "51d7a8d653fd956e4e2342d301b8719b",
- "recipe": 78,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2228,
- "script_type": 0
- }
-},
-{
- "pk": 1379,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3ce5db1f2af0072e8082d3254afdc592",
- "recipe": 31,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1326,
- "script_type": 0
- }
-},
-{
- "pk": 1380,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "69ebee62966fa3be7a5742a5617f363f",
- "recipe": 31,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1325,
- "script_type": 0
- }
-},
-{
- "pk": 1381,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e78784d792024d6d1ff66bff8237c05e",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1258,
- "script_type": 0
- }
-},
-{
- "pk": 1382,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e395c83c99318fe78fc566075a5670d0",
- "recipe": 84,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1660,
- "script_type": 0
- }
-},
-{
- "pk": 1383,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0dd357a2e5b3114082df9db1f4afebf7",
- "recipe": 108,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1996,
- "script_type": 0
- }
-},
-{
- "pk": 1384,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "41ee3cb916a2b488ad65a9fe3db454f6",
- "recipe": 108,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1995,
- "script_type": 0
- }
-},
-{
- "pk": 1385,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7e4de5365e92dae85d8d127590634661",
- "recipe": 73,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1144,
- "script_type": 0
- }
-},
-{
- "pk": 1386,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0c1ce99df7647d8a95970aebaaf9c81a",
- "recipe": 73,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1143,
- "script_type": 0
- }
-},
-{
- "pk": 1387,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f55d1bf60ede810ba9f73619c2fd1a3b",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 807,
- "script_type": 0
- }
-},
-{
- "pk": 1388,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c6087dce81e358f86e9b5e6c5fed430b",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 971,
- "script_type": 0
- }
-},
-{
- "pk": 1389,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d6ea98724964db21d04b1984a24b3870",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 774,
- "script_type": 0
- }
-},
-{
- "pk": 1390,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d5c48059df4766951e3d4077e2df5299",
- "recipe": 42,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 952,
- "script_type": 0
- }
-},
-{
- "pk": 1391,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c795a587b3f3c66b953b21556f972d9b",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1023,
- "script_type": 0
- }
-},
-{
- "pk": 1392,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6485eb9bac08e70d58321fd2a4a73ae9",
- "recipe": 113,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2249,
- "script_type": 0
- }
-},
-{
- "pk": 1393,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ac7553f1239ec25cde2fc57b195543ae",
- "recipe": 113,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2248,
- "script_type": 0
- }
-},
-{
- "pk": 1394,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "92813d83585919953d51d6ce2b029e7b",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.00476",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 1978,
- "script_type": 1
- }
-},
-{
- "pk": 1395,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "58a9588358185342a6fad58136b19cbc",
- "recipe": 11,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 905,
- "script_type": 0
- }
-},
-{
- "pk": 1396,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5e022c7a0e075ff4958d037f7c3d1f31",
- "recipe": 106,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2310,
- "script_type": 0
- }
-},
-{
- "pk": 1397,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "deae483c23155d5417400caa6d367990",
- "recipe": 98,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2255,
- "script_type": 0
- }
-},
-{
- "pk": 1398,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7ac2a8f572d2385b0f2206ed840770cd",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1264,
- "script_type": 0
- }
-},
-{
- "pk": 1399,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b58151ae1272a13f96745e0f6e4d509b",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1263,
- "script_type": 0
- }
-},
-{
- "pk": 1400,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "59cae35c8c2291eb2df66d77e059d5e9",
- "recipe": 84,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2145,
- "script_type": 0
- }
-},
-{
- "pk": 1401,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "46eced0cc7b074f5f608f7a7e3f0953f",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1649,
- "script_type": 0
- }
-},
-{
- "pk": 1402,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8c87b5bf598f4126347a36f8bb1540fb",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1648,
- "script_type": 0
- }
-},
-{
- "pk": 1403,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5b9fe0848f23e3ae45ee9041eeb0d66f",
- "recipe": 86,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1217,
- "script_type": 0
- }
-},
-{
- "pk": 1404,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "26e2244d4bda6151bddd492c40a2c62f",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1427,
- "script_type": 0
- }
-},
-{
- "pk": 1405,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5eed412ff46864383100386d998931ed",
- "recipe": 122,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2176,
- "script_type": 0
- }
-},
-{
- "pk": 1406,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8aabd32b0c67a9af9d23102ecf9ca172",
- "recipe": 30,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1990,
- "script_type": 0
- }
-},
-{
- "pk": 1407,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8cf571677200c4797b00a275a7432fc0",
- "recipe": 21,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2234,
- "script_type": 0
- }
-},
-{
- "pk": 1408,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "39df7a1c6d49cde830b1e9486b6576d7",
- "recipe": 36,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 643,
- "script_type": 0
- }
-},
-{
- "pk": 1409,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2cda7b3f02a67c1c84e7032805fb19dd",
- "recipe": 36,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 642,
- "script_type": 0
- }
-},
-{
- "pk": 1410,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b04220bc8cfe21ec3441bd7604ea10a2",
- "recipe": 50,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1530,
- "script_type": 0
- }
-},
-{
- "pk": 1411,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a8f4f78cfbc3bc51849bea8f6d65333",
- "recipe": 71,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1600,
- "script_type": 0
- }
-},
-{
- "pk": 1412,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c8f1f511e3454227ff6a6339793dd2e2",
- "recipe": 123,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2280,
- "script_type": 0
- }
-},
-{
- "pk": 1413,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d3d5d8aecaf7ab5ef77cf5f73ac2056f",
- "recipe": 99,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1103,
- "script_type": 0
- }
-},
-{
- "pk": 1414,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b3667eed1830b50ccbfa2a39141ba6e2",
- "recipe": 73,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2218,
- "script_type": 0
- }
-},
-{
- "pk": 1415,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a82c7bf15d55e4f2d6da4887bf7bfc23",
- "recipe": 103,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1330,
- "script_type": 0
- }
-},
-{
- "pk": 1416,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cea69133230d844a1acafc588ec9dd52",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 801,
- "script_type": 0
- }
-},
-{
- "pk": 1417,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "36485f76bf8ce4eb772a6bbefb16575e",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 800,
- "script_type": 0
- }
-},
-{
- "pk": 1418,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8b7ea2a19c35890cf56bbfd52f22cb35",
- "recipe": 45,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2395,
- "script_type": 0
- }
-},
-{
- "pk": 1419,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b2290237d69f50513eab9e73e3ab55cf",
- "recipe": 132,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2089,
- "script_type": 0
- }
-},
-{
- "pk": 1420,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ff4f2a8abc0d0e278306c27bd63822b",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 826,
- "script_type": 0
- }
-},
-{
- "pk": 1421,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e64536be71d31a3eba5f484ee4c53467",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1948,
- "script_type": 0
- }
-},
-{
- "pk": 1422,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6cb1380b1e8813df1fcec5423b273f62",
- "recipe": 138,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2188,
- "script_type": 0
- }
-},
-{
- "pk": 1423,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a19b6c83d4d9bde8ea47aa83dfa0b580",
- "recipe": 9,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2294,
- "script_type": 0
- }
-},
-{
- "pk": 1424,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8ad0aafb47761f543fdc6ba1bc065846",
- "recipe": 9,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1068,
- "script_type": 0
- }
-},
-{
- "pk": 1425,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "983a44253dd554cdb4f8e995508b107f",
- "recipe": 20,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1359,
- "script_type": 0
- }
-},
-{
- "pk": 1426,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "639547b0c7af0704aa8528e2715292b8",
- "recipe": 131,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 817,
- "script_type": 0
- }
-},
-{
- "pk": 1427,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e4ce19a2e47c1b31b04ca8072cbe9e0e",
- "recipe": 131,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 816,
- "script_type": 0
- }
-},
-{
- "pk": 1428,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "708ed772529783da88087ccc0e30ed17",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1804,
- "script_type": 0
- }
-},
-{
- "pk": 1429,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "132b16d533fcb8e4babf7a3a65e62394",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 680,
- "script_type": 0
- }
-},
-{
- "pk": 1430,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "65bc51841727561b70cb6de1164b7985",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 718,
- "script_type": 0
- }
-},
-{
- "pk": 1431,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7125f1b50f431f62337e109229e730df",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1493,
- "script_type": 0
- }
-},
-{
- "pk": 1432,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a699bf9fc7df1942766d6b31247c2ee",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1216,
- "script_type": 0
- }
-},
-{
- "pk": 1433,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "43857dcadc97eae134d9e632130e50f3",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1244,
- "script_type": 0
- }
-},
-{
- "pk": 1434,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a9c8023875a8cbc0a9d61239fa4de2ac",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 854,
- "script_type": 0
- }
-},
-{
- "pk": 1435,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6ea869561b963c6e12ec14a0c01ce14c",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004666",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2021,
- "script_type": 1
- }
-},
-{
- "pk": 1436,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "546686e436e31851af405ba4db07e4fd",
- "recipe": 86,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 668,
- "script_type": 0
- }
-},
-{
- "pk": 1437,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a0d8e24fb7f23838b28abc8b28613bd6",
- "recipe": 65,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2159,
- "script_type": 0
- }
-},
-{
- "pk": 1438,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "31c38861c3adc182470dcbb7fe419b1d",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1022,
- "script_type": 0
- }
-},
-{
- "pk": 1439,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cad8f5645dfc429b627786b62d4a9f22",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 586,
- "script_type": 0
- }
-},
-{
- "pk": 1440,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2916f596f2e3d544dec7523c151e2063",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1373,
- "script_type": 0
- }
-},
-{
- "pk": 1441,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "14569ccbf0b5e13c6b82cadda9225cff",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 738,
- "script_type": 0
- }
-},
-{
- "pk": 1442,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "68e029bbafe8ceb771a0fe69c872dbbe",
- "recipe": 53,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1318,
- "script_type": 0
- }
-},
-{
- "pk": 1443,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62d2907fcc53655bc9fb6ab11383f4d2",
- "recipe": 53,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1317,
- "script_type": 0
- }
-},
-{
- "pk": 1444,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "36c3193acc9fe2bdda92941830260149",
- "recipe": 9,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1071,
- "script_type": 0
- }
-},
-{
- "pk": 1445,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "416db5b2249af8ce06bbf3e15dce1686",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 857,
- "script_type": 0
- }
-},
-{
- "pk": 1446,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d848607c544b2548b430d93a4be8d420",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1925,
- "script_type": 0
- }
-},
-{
- "pk": 1447,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fdc08be18d724e66daaadfee348e0267",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1350,
- "script_type": 0
- }
-},
-{
- "pk": 1448,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f4b8216d590b4e779dfe165fc1bb6e75",
- "recipe": 95,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2170,
- "script_type": 0
- }
-},
-{
- "pk": 1449,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d368871a726a39acdee25493a5a6814c",
- "recipe": 134,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1107,
- "script_type": 0
- }
-},
-{
- "pk": 1450,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ce5083845ffedf0b9b5085bb95be5314",
- "recipe": 40,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2274,
- "script_type": 0
- }
-},
-{
- "pk": 1451,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a9c2fd450861dd96ac7e1303fd40542",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 597,
- "script_type": 0
- }
-},
-{
- "pk": 1452,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1a21c52051534e94eb9674edd6551f4b",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 596,
- "script_type": 0
- }
-},
-{
- "pk": 1453,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a5124fb211f901ad1280bdfaf067a0da",
- "recipe": 13,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 809,
- "script_type": 0
- }
-},
-{
- "pk": 1454,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "28c34fffd1eac50f2483e92ddcfa73df",
- "recipe": 13,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 808,
- "script_type": 0
- }
-},
-{
- "pk": 1455,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "085b88a17d4f892eccb9f6e660c17d8d",
- "recipe": 41,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1412,
- "script_type": 0
- }
-},
-{
- "pk": 1456,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3b02ab0cff8748f98f42727c1ded82a7",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1626,
- "script_type": 0
- }
-},
-{
- "pk": 1457,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "97f2f49a2fa8276082d713c88373e891",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1741,
- "script_type": 0
- }
-},
-{
- "pk": 1458,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "311a75c26ba7af40e1d1f378d3fb1f2a",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1647,
- "script_type": 0
- }
-},
-{
- "pk": 1459,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "395a5aea482545be35cd1c7973990be0",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1418,
- "script_type": 0
- }
-},
-{
- "pk": 1460,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ce4263699978b527c90260ab4d2b4eb9",
- "recipe": 116,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1966,
- "script_type": 0
- }
-},
-{
- "pk": 1461,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "68bf8734fc947a157f4621c1af927f4d",
- "recipe": 133,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2126,
- "script_type": 0
- }
-},
-{
- "pk": 1462,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "09f9e21e1568853386365ec6f1f05bbd",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 988,
- "script_type": 0
- }
-},
-{
- "pk": 1463,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0e88d6cf5f5b4d7d5bdd6c651909110e",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 673,
- "script_type": 0
- }
-},
-{
- "pk": 1464,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "94180a366daaa853bd254b6e9e04b180",
- "recipe": 62,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 2016,
- "script_type": 0
- }
-},
-{
- "pk": 1465,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "31e664e5af509d604cf1c44cdaefe6c4",
- "recipe": 9,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 622,
- "script_type": 0
- }
-},
-{
- "pk": 1466,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2725764d7b19d4c1b2e66bc09c3b3ad3",
- "recipe": 85,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2122,
- "script_type": 0
- }
-},
-{
- "pk": 1467,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "45cb5fa6075d3dbadcd286c45b1df8e4",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 686,
- "script_type": 0
- }
-},
-{
- "pk": 1468,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cf79cf72946c688058997f306d74d4ae",
- "recipe": 127,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2393,
- "script_type": 0
- }
-},
-{
- "pk": 1469,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7ae7114fbb7721ca6e45cc650d7a1baf",
- "recipe": 19,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1683,
- "script_type": 0
- }
-},
-{
- "pk": 1470,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "47ace6c5785ce65f0824be8aae7d726a",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1262,
- "script_type": 0
- }
-},
-{
- "pk": 1471,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1820b479dd69129e8dc89b94b489f5f3",
- "recipe": 88,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 558,
- "script_type": 0
- }
-},
-{
- "pk": 1472,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1f9cc1cf988acfd9bf60fa9ecfee4edc",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1687,
- "script_type": 0
- }
-},
-{
- "pk": 1473,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9f2bfc2cf2480763ad982a8eb0fb14cc",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1644,
- "script_type": 0
- }
-},
-{
- "pk": 1474,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "13bebd0ff8e30d54d2ceb6c4549a5f56",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1686,
- "script_type": 0
- }
-},
-{
- "pk": 1475,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9f0562b2421d07f6e70d36fcdbb64a3b",
- "recipe": 62,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2054,
- "script_type": 0
- }
-},
-{
- "pk": 1476,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d89f5741f912ccde28bd6804413c7015",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1161,
- "script_type": 0
- }
-},
-{
- "pk": 1477,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c2232f67db433d2cc22554be8597c010",
- "recipe": 102,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2300,
- "script_type": 0
- }
-},
-{
- "pk": 1478,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7af2a8bd4da6361b0e37bdee970a6bbe",
- "recipe": 102,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 955,
- "script_type": 0
- }
-},
-{
- "pk": 1479,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cc02309fa08b32925a49d2f93c6ea871",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1036,
- "script_type": 0
- }
-},
-{
- "pk": 1480,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c1525ad80f3c780aa7032717013df21",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1366,
- "script_type": 0
- }
-},
-{
- "pk": 1481,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0d5345317d988a66216d8afe8e1824e3",
- "recipe": 120,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 934,
- "script_type": 0
- }
-},
-{
- "pk": 1482,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7452872a4397d9eb084f94dc63c18581",
- "recipe": 120,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 933,
- "script_type": 0
- }
-},
-{
- "pk": 1483,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "88f99d66c534d6013d1fc04e76cc5669",
- "recipe": 97,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1960,
- "script_type": 0
- }
-},
-{
- "pk": 1484,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "71b62f5290da9a55b3d3a1e9501981cc",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1545,
- "script_type": 0
- }
-},
-{
- "pk": 1485,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1165b954e941648197cf283458413bb6",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 785,
- "script_type": 0
- }
-},
-{
- "pk": 1486,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3ec56351104855a33e84b5a9b599c8ff",
- "recipe": 45,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 865,
- "script_type": 0
- }
-},
-{
- "pk": 1487,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1e91a0657241ab90d5752e1c415c75b3",
- "recipe": 58,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 927,
- "script_type": 0
- }
-},
-{
- "pk": 1488,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "120cb6c47cb363779d3aeef94c92f4dc",
- "recipe": 88,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 557,
- "script_type": 0
- }
-},
-{
- "pk": 1489,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3623cf65665c67c57bb341bab99aef4c",
- "recipe": 124,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 2018,
- "script_type": 0
- }
-},
-{
- "pk": 1490,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8cdbd6303ae50a205d8ef7d7c00fd8d8",
- "recipe": 32,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2106,
- "script_type": 0
- }
-},
-{
- "pk": 1491,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e9a8db85eed994a6f1d3f8fe5a0fc7e9",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 610,
- "script_type": 0
- }
-},
-{
- "pk": 1492,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4f2fde0bb60931af786d04a0ee649b18",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 609,
- "script_type": 0
- }
-},
-{
- "pk": 1493,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "038495e8d1ac75afaf292c1ab49ddbde",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1345,
- "script_type": 0
- }
-},
-{
- "pk": 1494,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "11737f7dd437ea5baf57e7eb99f85c68",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1344,
- "script_type": 0
- }
-},
-{
- "pk": 1495,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "659ea642e8582187638c164d07bb187b",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1162,
- "script_type": 0
- }
-},
-{
- "pk": 1496,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f6e3816ed5fd2f0e07a8cf2e3e171e1c",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1184,
- "script_type": 0
- }
-},
-{
- "pk": 1497,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fda795baa3f1e298b2f64f8c7899772c",
- "recipe": 12,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 2036,
- "script_type": 0
- }
-},
-{
- "pk": 1498,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "02efd1cf3485aa9c44e768e8b84f0461",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 769,
- "script_type": 0
- }
-},
-{
- "pk": 1499,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2d8a97907a0e3e4ebccbe2485078db72",
- "recipe": 17,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2373,
- "script_type": 0
- }
-},
-{
- "pk": 1500,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ec0c9400b2489c734d9545ce821aff4",
- "recipe": 124,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 843,
- "script_type": 0
- }
-},
-{
- "pk": 1501,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "71ecdf40a78ed7ecd17a0b545260454b",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1455,
- "script_type": 0
- }
-},
-{
- "pk": 1502,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "26c283335d18d9ae8487b9fdf32e9a99",
- "recipe": 44,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2298,
- "script_type": 0
- }
-},
-{
- "pk": 1503,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0d6d708a490501eb0dedf5c242f71d34",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 798,
- "script_type": 0
- }
-},
-{
- "pk": 1504,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8461a5dda28341c1f93a509eb7713005",
- "recipe": 8,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 568,
- "script_type": 0
- }
-},
-{
- "pk": 1505,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "99d90c548d2d922ce0af420d8a162947",
- "recipe": 9,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 621,
- "script_type": 0
- }
-},
-{
- "pk": 1506,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fd333cbf65577c1ecac66cb4600a8eec",
- "recipe": 31,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 706,
- "script_type": 0
- }
-},
-{
- "pk": 1507,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "83fd13292de46d5175e0d891a667f906",
- "recipe": 86,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 667,
- "script_type": 0
- }
-},
-{
- "pk": 1508,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7dc707cbb08aabc1033b208729c611f6",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1454,
- "script_type": 0
- }
-},
-{
- "pk": 1509,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "adcab34e7da760cfb0a36d80097b22ef",
- "recipe": 128,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1439,
- "script_type": 0
- }
-},
-{
- "pk": 1510,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "eb4f65f94cab6069c9251b7f2f5e52ca",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1444,
- "script_type": 0
- }
-},
-{
- "pk": 1511,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6f0bf4e8055855db716b431b5e6f1769",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_bundle_initramfs",
- "message": "",
- "outcome": 1,
- "order": 1975,
- "script_type": 0
- }
-},
-{
- "pk": 1512,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "764d39eb893ccd3b6a778a1026e0d1d8",
- "recipe": 3,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 872,
- "script_type": 0
- }
-},
-{
- "pk": 1513,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d219d7938a2cacd4d0310bde007c2ff8",
- "recipe": 86,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1218,
- "script_type": 0
- }
-},
-{
- "pk": 1514,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "be11f4e43964cbb89b9fe1bcd5de57d7",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1484,
- "script_type": 0
- }
-},
-{
- "pk": 1515,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1949cbccdfb6b83f1ce484978d775cda",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 599,
- "script_type": 0
- }
-},
-{
- "pk": 1516,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ea4dc0eab48bd448dc684524c96958fe",
- "recipe": 37,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2246,
- "script_type": 0
- }
-},
-{
- "pk": 1517,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d468ce8e7507f3a00587152b988c0ad3",
- "recipe": 41,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_package",
- "message": "",
- "outcome": 2,
- "order": 1550,
- "script_type": 0
- }
-},
-{
- "pk": 1518,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "461dcf63500564f66957c920e11758c6",
- "recipe": 1,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 2264,
- "script_type": 0
- }
-},
-{
- "pk": 1519,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f150d70a8253a882b1eaeb1de0304735",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 755,
- "script_type": 0
- }
-},
-{
- "pk": 1520,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b7a2f261006e1893804e4a6d1f46740c",
- "recipe": 120,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 574,
- "script_type": 0
- }
-},
-{
- "pk": 1521,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "89b12eaa65873a4d77627c92a8007d2d",
- "recipe": 135,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1047,
- "script_type": 0
- }
-},
-{
- "pk": 1522,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "807c9e77eb7be89dc23cbb569a49f77a",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 882,
- "script_type": 0
- }
-},
-{
- "pk": 1523,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4797530cbab090db2e39230df3aa0c46",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 881,
- "script_type": 0
- }
-},
-{
- "pk": 1524,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "18082e47b9c6eb17ed36e5b3932349e4",
- "recipe": 8,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 567,
- "script_type": 0
- }
-},
-{
- "pk": 1525,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "086fa41da1932c7bc24624f0ff14951c",
- "recipe": 108,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1969,
- "script_type": 0
- }
-},
-{
- "pk": 1526,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2edf446948f713f0ce4e8cc088be4570",
- "recipe": 116,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1942,
- "script_type": 0
- }
-},
-{
- "pk": 1527,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "935b3dd22ad86df98e66bc5a4b20c906",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 714,
- "script_type": 0
- }
-},
-{
- "pk": 1528,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a7d9500345a729848b0c1843af7a43e4",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 713,
- "script_type": 0
- }
-},
-{
- "pk": 1529,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f2739fa413c42b075b48c3a6bca52caf",
- "recipe": 90,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2350,
- "script_type": 0
- }
-},
-{
- "pk": 1530,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cb87140ea2ff8c4b07baf1f82f3b6cca",
- "recipe": 45,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2046,
- "script_type": 0
- }
-},
-{
- "pk": 1531,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f0568e7d71b3c1cbe661ee007460ed9f",
- "recipe": 131,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2133,
- "script_type": 0
- }
-},
-{
- "pk": 1532,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1949cbccdfb6b83f1ce484978d775cda",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 601,
- "script_type": 0
- }
-},
-{
- "pk": 1533,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7056d53e3c43c924c63b840eb60b4f6f",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 806,
- "script_type": 0
- }
-},
-{
- "pk": 1534,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ff4f2a8abc0d0e278306c27bd63822b",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 840,
- "script_type": 0
- }
-},
-{
- "pk": 1535,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c76e66fdf9e584278f9569035a10df6",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 839,
- "script_type": 0
- }
-},
-{
- "pk": 1536,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "63ac374716b4b8bdddde34d48dbec058",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1789,
- "script_type": 0
- }
-},
-{
- "pk": 1537,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "88a542550b0395c79e3aa09c734aa89f",
- "recipe": 82,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2342,
- "script_type": 0
- }
-},
-{
- "pk": 1538,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f654d77dfc471ca50b4cec1fa2c91a7d",
- "recipe": 16,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 676,
- "script_type": 0
- }
-},
-{
- "pk": 1539,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "17f1376d7505bed25d7a3650cd4763d7",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1231,
- "script_type": 0
- }
-},
-{
- "pk": 1540,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c395e9e5146be3bdf226a6e4176683b4",
- "recipe": 65,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 679,
- "script_type": 0
- }
-},
-{
- "pk": 1541,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3adf61f7450f79dfae8b5ed0cf164fd2",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1642,
- "script_type": 0
- }
-},
-{
- "pk": 1542,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "94ed8571f5348736c462939cae9cee46",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 787,
- "script_type": 0
- }
-},
-{
- "pk": 1543,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d16d914a725b1394a9059fc03875cdb9",
- "recipe": 102,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 956,
- "script_type": 0
- }
-},
-{
- "pk": 1544,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a5530229b846b1b29c3b2e15074be268",
- "recipe": 64,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 852,
- "script_type": 0
- }
-},
-{
- "pk": 1545,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "01698436f8ce0821f689a7b95792e73d",
- "recipe": 85,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1310,
- "script_type": 0
- }
-},
-{
- "pk": 1546,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5aae6f5820c1d1a6dfa04a14cf4b2fed",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1721,
- "script_type": 0
- }
-},
-{
- "pk": 1547,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c5ea551ffd24ebe9a20e88e4f96394ed",
- "recipe": 118,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1477,
- "script_type": 0
- }
-},
-{
- "pk": 1548,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b273336ad7c5eae87ef53073c263c473",
- "recipe": 20,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2397,
- "script_type": 0
- }
-},
-{
- "pk": 1549,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c76e66fdf9e584278f9569035a10df6",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 825,
- "script_type": 0
- }
-},
-{
- "pk": 1550,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "49246416e7d8309c875c0a467a562145",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1627,
- "script_type": 0
- }
-},
-{
- "pk": 1551,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b0ce895db487e6f73dc8545dfb7c9be7",
- "recipe": 103,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1329,
- "script_type": 0
- }
-},
-{
- "pk": 1552,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": true,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "24e6293441650f5205df17c93a7cef25",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.004819",
- "logfile": "",
- "build": 1,
- "task_name": "do_package_write",
- "message": "",
- "outcome": 0,
- "order": 2378,
- "script_type": 1
- }
-},
-{
- "pk": 1553,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d58f8a6fca0fd7193354eb1e6b0b6c8c",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 744,
- "script_type": 0
- }
-},
-{
- "pk": 1554,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7601c5cede4a064abcfab0bddf2e8be8",
- "recipe": 60,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 961,
- "script_type": 0
- }
-},
-{
- "pk": 1555,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "56c2e7af0275d66474c774b4848e2b19",
- "recipe": 141,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1337,
- "script_type": 0
- }
-},
-{
- "pk": 1556,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ff4f2a8abc0d0e278306c27bd63822b",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 1905,
- "script_type": 0
- }
-},
-{
- "pk": 1557,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c76e66fdf9e584278f9569035a10df6",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 1904,
- "script_type": 0
- }
-},
-{
- "pk": 1558,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "00b7d4b8046153621ccf0e94a62c6bdf",
- "recipe": 106,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1094,
- "script_type": 0
- }
-},
-{
- "pk": 1559,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "69032755c88d85d7b3de95c9f0bc18a6",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 740,
- "script_type": 0
- }
-},
-{
- "pk": 1560,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e7bd0660c115cbf35c40d2cafc14126",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_validate_branches",
- "message": "",
- "outcome": 1,
- "order": 764,
- "script_type": 0
- }
-},
-{
- "pk": 1561,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "90fe6035bc97414025e1ed2dcca4b0ce",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 830,
- "script_type": 0
- }
-},
-{
- "pk": 1562,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "48a6981bfcdf109a0e5ba677dbd5590b",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 829,
- "script_type": 0
- }
-},
-{
- "pk": 1563,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7dcdc34458d21dbdfc7bdf6a1eb3bf91",
- "recipe": 67,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1715,
- "script_type": 0
- }
-},
-{
- "pk": 1564,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75a346fb0044bfa85658fc5c12e2ed9f",
- "recipe": 25,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1503,
- "script_type": 0
- }
-},
-{
- "pk": 1565,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c9168921dfd58945ee8b6c6b9d853ffa",
- "recipe": 78,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 983,
- "script_type": 0
- }
-},
-{
- "pk": 1566,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "839c283ca28f05bc5d1044ec4dd41271",
- "recipe": 106,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1113,
- "script_type": 0
- }
-},
-{
- "pk": 1567,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "990e4c0d25e98dd72dc425acce99a419",
- "recipe": 1,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2263,
- "script_type": 0
- }
-},
-{
- "pk": 1568,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "43f22773f7acc5df6aa19aa644628a6f",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 838,
- "script_type": 0
- }
-},
-{
- "pk": 1569,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5afb4954f76e3a224a76c4af328055b5",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 874,
- "script_type": 0
- }
-},
-{
- "pk": 1570,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1db82ba766cdff6663e9fe2d99b0dcad",
- "recipe": 66,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 943,
- "script_type": 0
- }
-},
-{
- "pk": 1571,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f49149d6bdba4cd44dee4f2f8d623237",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 802,
- "script_type": 0
- }
-},
-{
- "pk": 1572,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0e305056ebe1cfe61d072692dab5a228",
- "recipe": 56,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 588,
- "script_type": 0
- }
-},
-{
- "pk": 1573,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "33c8f6ac60d19a7ba1bf10c06cd65842",
- "recipe": 64,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1999,
- "script_type": 0
- }
-},
-{
- "pk": 1574,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e67d0dbbbb0b89908942daa6b32b8a3e",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1031,
- "script_type": 0
- }
-},
-{
- "pk": 1575,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "896f56ea903f96b3c248f823f15d6310",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 837,
- "script_type": 0
- }
-},
-{
- "pk": 1576,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4865e125202dcf6a6de5eea2ed47951a",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 683,
- "script_type": 0
- }
-},
-{
- "pk": 1577,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "087f6d85f21422de8fe9f09f2e29a112",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_kernelmodules",
- "message": "",
- "outcome": 1,
- "order": 1693,
- "script_type": 0
- }
-},
-{
- "pk": 1578,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bce990a21a6c305a84dfbd6fb643baa6",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 996,
- "script_type": 0
- }
-},
-{
- "pk": 1579,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2209d3547160191d724cfdc0cde08d37",
- "recipe": 68,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 627,
- "script_type": 0
- }
-},
-{
- "pk": 1580,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9e6cc256e720ec58480754586737836e",
- "recipe": 62,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 870,
- "script_type": 0
- }
-},
-{
- "pk": 1581,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9949d313126e5502f88577ff43c5069d",
- "recipe": 66,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 578,
- "script_type": 0
- }
-},
-{
- "pk": 1582,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d509e092fac036392fcafc2a820318ab",
- "recipe": 76,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1341,
- "script_type": 0
- }
-},
-{
- "pk": 1583,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f5fb707ca6241c370e112029ef42861d",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1762,
- "script_type": 0
- }
-},
-{
- "pk": 1584,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a86addf719a7db23c5dae8c34d370f5",
- "recipe": 76,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1342,
- "script_type": 0
- }
-},
-{
- "pk": 1585,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "34169c2c1c961e78c8b5feb2659b5994",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 717,
- "script_type": 0
- }
-},
-{
- "pk": 1586,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "83e43b4e558ce3ecf01ebe5a7bc0fda7",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1623,
- "script_type": 0
- }
-},
-{
- "pk": 1587,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1fb76fbaac2aba627a763018ce1e8cad",
- "recipe": 43,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2282,
- "script_type": 0
- }
-},
-{
- "pk": 1588,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b11ed2ad837d673797e9f5971fef7f43",
- "recipe": 34,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2352,
- "script_type": 0
- }
-},
-{
- "pk": 1589,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b35ed745ccb9eeb9348664f94419ea90",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 995,
- "script_type": 0
- }
-},
-{
- "pk": 1590,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ffac5718a67f582238462fec4607ab67",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1367,
- "script_type": 0
- }
-},
-{
- "pk": 1591,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f737564517d65ba4fa8a1feb2e6b64bf",
- "recipe": 60,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 583,
- "script_type": 0
- }
-},
-{
- "pk": 1592,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0434e9aa47d1a3a7e310934714bbcedb",
- "recipe": 60,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 582,
- "script_type": 0
- }
-},
-{
- "pk": 1593,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "363936417c1572c7c7d448c8d84b0b4a",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 833,
- "script_type": 0
- }
-},
-{
- "pk": 1594,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0a95bc2da84d1b66d7e32e28dc064fbe",
- "recipe": 108,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_unpack",
- "message": "",
- "outcome": 1,
- "order": 851,
- "script_type": 0
- }
-},
-{
- "pk": 1595,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f532c5c720ad62ae3f68c7fafe6370d3",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 742,
- "script_type": 0
- }
-},
-{
- "pk": 1596,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0a39f2547e56ab67fbc70fac815db900",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 1462,
- "script_type": 0
- }
-},
-{
- "pk": 1597,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "97b0ff25ae09cd61a38429a175a28d03",
- "recipe": 131,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1729,
- "script_type": 0
- }
-},
-{
- "pk": 1598,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1cb29553778e992cff254afe9fcb62e7",
- "recipe": 131,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_patch",
- "message": "",
- "outcome": 1,
- "order": 1726,
- "script_type": 0
- }
-},
-{
- "pk": 1599,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "899320cc14fafc62c8b68a3d2c93becb",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 835,
- "script_type": 0
- }
-},
-{
- "pk": 1600,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3d207a1e87f5222e9caa440a85468bc6",
- "recipe": 108,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1994,
- "script_type": 0
- }
-},
-{
- "pk": 1601,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f7f316056c6dde6f8c637a8f55693b6b",
- "recipe": 36,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2391,
- "script_type": 0
- }
-},
-{
- "pk": 1602,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "161188080a9d7bd1f4bb93b912af1fda",
- "recipe": 136,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2108,
- "script_type": 0
- }
-},
-{
- "pk": 1603,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "025cd6e1351c8f1f02cb568dda18dc74",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1374,
- "script_type": 0
- }
-},
-{
- "pk": 1604,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8e8b7abea6051612f4f1911d90447bb4",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_kernel_configme",
- "message": "",
- "outcome": 1,
- "order": 1507,
- "script_type": 0
- }
-},
-{
- "pk": 1605,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dd6b4d6e989e6d0f8ac6af5e1e46ef51",
- "recipe": 135,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 613,
- "script_type": 0
- }
-},
-{
- "pk": 1606,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b5a0062344ebccd3ceae1c042616c57e",
- "recipe": 96,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2419,
- "script_type": 0
- }
-},
-{
- "pk": 1607,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "82d1d32992e5e9dcc327eb5fa9a2ec23",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 623,
- "script_type": 0
- }
-},
-{
- "pk": 1608,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bafaa9e68b25a68f31c5cebf56957c1f",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 665,
- "script_type": 0
- }
-},
-{
- "pk": 1609,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e483b814ee7c62e8c4088f603ae502c1",
- "recipe": 65,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 678,
- "script_type": 0
- }
-},
-{
- "pk": 1610,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "73d3203945a78bff0a5a64d7f86fccf2",
- "recipe": 108,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 850,
- "script_type": 0
- }
-},
-{
- "pk": 1611,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0b267f1d653b7a4bb23843aba3f5bc21",
- "recipe": 62,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 869,
- "script_type": 0
- }
-},
-{
- "pk": 1612,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "08075f65577f77be002243d29db6edea",
- "recipe": 107,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2379,
- "script_type": 0
- }
-},
-{
- "pk": 1613,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ba14a9ee0dedad83ec2655cc18439c6a",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 1824,
- "script_type": 0
- }
-},
-{
- "pk": 1614,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cca7ef9ed173abb01b2958bbcca1a4c0",
- "recipe": 3,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 871,
- "script_type": 0
- }
-},
-{
- "pk": 1615,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8a5261d91a9d7656d73c4182aed2f586",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile_ptest_base",
- "message": "",
- "outcome": 1,
- "order": 1764,
- "script_type": 0
- }
-},
-{
- "pk": 1616,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8e03980282423ca4fd7b8e89324eb4b4",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 804,
- "script_type": 0
- }
-},
-{
- "pk": 1617,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c30fafa880d9b5ce7450a498b72ba7e3",
- "recipe": 55,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 639,
- "script_type": 0
- }
-},
-{
- "pk": 1618,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e063bcc68c39ca327a1eb3361e70dfdd",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 786,
- "script_type": 0
- }
-},
-{
- "pk": 1619,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a63875abdeebe7df4bf9e5fca379170c",
- "recipe": 81,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 649,
- "script_type": 0
- }
-},
-{
- "pk": 1620,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "38c7dd6bcd5c18afefc1e4959eca5ad9",
- "recipe": 33,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_install",
- "message": "",
- "outcome": 1,
- "order": 902,
- "script_type": 0
- }
-},
-{
- "pk": 1621,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0c90d655f7c09ac8c990a8424ff73f77",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 754,
- "script_type": 0
- }
-},
-{
- "pk": 1622,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "239741308f93df317731f3f45572e3ba",
- "recipe": 134,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_compile",
- "message": "",
- "outcome": 1,
- "order": 1106,
- "script_type": 0
- }
-},
-{
- "pk": 1623,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "767f398a098f865da86eeb45bbe3df2f",
- "recipe": 120,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 932,
- "script_type": 0
- }
-},
-{
- "pk": 1624,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f59a17096129c7ba6932701d22d1633a",
- "recipe": 85,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_sysroot",
- "message": "",
- "outcome": 2,
- "order": 1311,
- "script_type": 0
- }
-},
-{
- "pk": 1625,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1e321beca9ba28ece68954139f899f91",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 823,
- "script_type": 0
- }
-},
-{
- "pk": 1626,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bf9b5a4022f6ecbe3b46fc8926687089",
- "recipe": 31,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 705,
- "script_type": 0
- }
-},
-{
- "pk": 1627,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "00dbba1e69040f09663a6202b4170ba4",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 682,
- "script_type": 0
- }
-},
-{
- "pk": 1628,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "10197933da89288437293b52ea018dca",
- "recipe": 81,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2417,
- "script_type": 0
- }
-},
-{
- "pk": 1629,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b24881cc6646629356c376d85ad19098",
- "recipe": 103,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 707,
- "script_type": 0
- }
-},
-{
- "pk": 1630,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "103225c9848e342c73b451c2a83554fb",
- "recipe": 52,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2322,
- "script_type": 0
- }
-},
-{
- "pk": 1631,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3e877df5d650781fff50bd905451ab45",
- "recipe": 76,
- "sstate_result": 3,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_populate_lic",
- "message": "",
- "outcome": 2,
- "order": 2200,
- "script_type": 0
- }
-},
-{
- "pk": 1632,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "19338e3e5f6cb8c159d2fe9600725268",
- "recipe": 11,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 565,
- "script_type": 0
- }
-},
-{
- "pk": 1633,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "89a4d72ab29e322e5995a979b563f5b7",
- "recipe": 92,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_configure",
- "message": "",
- "outcome": 1,
- "order": 2007,
- "script_type": 0
- }
-},
-{
- "pk": 1634,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e16ecb991f62945a06b43d9e9b6e21f4",
- "recipe": 14,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 704,
- "script_type": 0
- }
-},
-{
- "pk": 1635,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": null,
- "task_executed": false,
- "disk_io": null,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1145c3ccb7c03b5498f133af4142982d",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0",
- "logfile": "",
- "build": 1,
- "task_name": "do_fetch",
- "message": "",
- "outcome": 1,
- "order": 784,
- "script_type": 0
- }
-},
-{
- "pk": 1636,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.3",
- "task_executed": true,
- "disk_io": 488,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "769dca759ea690036d40caee0627ae7a",
- "recipe": 100,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.160532",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.do_populate_lic_setscene.5748",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe core-image-minimal-1.0-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 1,
- "script_type": 2
- }
-},
-{
- "pk": 1637,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 560,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f625c93bde6db4b89579c1d1153f9677",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.136068",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/quilt-native/0.61-r0/temp/log.do_populate_lic_setscene.5749",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe quilt-native-0.61-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 2,
- "script_type": 2
- }
-},
-{
- "pk": 1638,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4",
- "task_executed": true,
- "disk_io": 152,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6ce6266bde08157e7406e2c4041e1e1f",
- "recipe": 81,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.100332",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/pigz-native/2.3.1-r0/temp/log.do_populate_lic_setscene.5750",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe pigz-native-2.3.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 3,
- "script_type": 2
- }
-},
-{
- "pk": 1639,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.1",
- "task_executed": true,
- "disk_io": 152,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6a3143cec3c4c52d35ffb509b7e4fa57",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.101908",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc/2.18-r0/temp/log.do_populate_lic_setscene.5751",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe eglibc-2.18-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 4,
- "script_type": 2
- }
-},
-{
- "pk": 1640,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 10004,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a6131a16190fba05ca8545d95a73890e",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.561569",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc/2.18-r0/temp/log.do_package_write_rpm_setscene.5752",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe eglibc-2.18-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 5,
- "script_type": 2
- }
-},
-{
- "pk": 1641,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 632,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9e6cc256e720ec58480754586737836e",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.600443",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/ncurses-native/5.9-r15.1/temp/log.do_populate_lic_setscene.6609",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe ncurses-native-5.9-r15.1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 74,
- "script_type": 2
- }
-},
-{
- "pk": 1642,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.5",
- "task_executed": true,
- "disk_io": 456,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6e40ea1b1e475369b78b062faee45acc",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.109964",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/ncurses/5.9-r15.1/temp/log.do_package_write_rpm_setscene.5754",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe ncurses-5.9-r15.1: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 7,
- "script_type": 2
- }
-},
-{
- "pk": 1643,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 952,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5afb4954f76e3a224a76c4af328055b5",
- "recipe": 42,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.208476",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/pseudo-native/1.5.1-r4/temp/log.do_populate_sysroot_setscene.5755",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe pseudo-native-1.5.1-r4: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 8,
- "script_type": 2
- }
-},
-{
- "pk": 1644,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "6.3",
- "task_executed": true,
- "disk_io": 124,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75714b7258d02ce8e9b7b56b37be264f",
- "recipe": 42,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.103494",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/pseudo-native/1.5.1-r4/temp/log.do_populate_lic_setscene.5867",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe pseudo-native-1.5.1-r4: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 9,
- "script_type": 2
- }
-},
-{
- "pk": 1645,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 16580,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ab9acdbaae33a767fbc190998766082d",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "5.934248",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/linux-yocto/3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0/temp/log.do_deploy_setscene.5868",
- "build": 1,
- "task_name": "do_deploy_setscene",
- "message": "recipe linux-yocto-3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0: task do_deploy_setscene: Succeeded",
- "outcome": 0,
- "order": 10,
- "script_type": 2
- }
-},
-{
- "pk": 1646,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.4",
- "task_executed": true,
- "disk_io": 432,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ed8161eaabd3a1431a241b6d6e0b1839",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.126776",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/linux-yocto/3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0/temp/log.do_populate_lic_setscene.5869",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe linux-yocto-3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 11,
- "script_type": 2
- }
-},
-{
- "pk": 1647,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4",
- "task_executed": true,
- "disk_io": 3356,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c53f94ad2833f0b045364f5b07fd39df",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.464814",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/linux-yocto/3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0/temp/log.do_package_write_rpm_setscene.5870",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe linux-yocto-3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 12,
- "script_type": 2
- }
-},
-{
- "pk": 1648,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 96416,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e7dccf29c9dbfac280e7b61cd75604e5",
- "recipe": 124,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "48.84997",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/qemu-native/1.7.0-r0/temp/log.do_populate_sysroot_setscene.5871",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe qemu-native-1.7.0-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 13,
- "script_type": 2
- }
-},
-{
- "pk": 1649,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 760,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ab7ace8b968dd0e4e2bc56eedb203a32",
- "recipe": 124,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.13771",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/qemu-native/1.7.0-r0/temp/log.do_populate_lic_setscene.5879",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe qemu-native-1.7.0-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 14,
- "script_type": 2
- }
-},
-{
- "pk": 1650,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 528,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ce0a0210a9c52e4911aaf4193d7c73b3",
- "recipe": 3,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.070991",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/qemu-helper-native/1.0-r1/temp/log.do_populate_sysroot_setscene.5903",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe qemu-helper-native-1.0-r1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 15,
- "script_type": 2
- }
-},
-{
- "pk": 1651,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 692,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a63875abdeebe7df4bf9e5fca379170c",
- "recipe": 3,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.095319",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/qemu-helper-native/1.0-r1/temp/log.do_populate_lic_setscene.5911",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe qemu-helper-native-1.0-r1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 16,
- "script_type": 2
- }
-},
-{
- "pk": 1652,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 564,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b759692275c64e9d34fa55402cc6986d",
- "recipe": 55,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.107418",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/rpm-native/5.4.9-r63/temp/log.do_populate_lic_setscene.5931",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe rpm-native-5.4.9-r63: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 17,
- "script_type": 2
- }
-},
-{
- "pk": 1653,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.7",
- "task_executed": true,
- "disk_io": 436,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "10197933da89288437293b52ea018dca",
- "recipe": 62,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.101636",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/rpmresolve-native/1.0-r2/temp/log.do_populate_sysroot_setscene.5943",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe rpmresolve-native-1.0-r2: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 18,
- "script_type": 2
- }
-},
-{
- "pk": 1654,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2",
- "task_executed": true,
- "disk_io": 244,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9130bcf504d5d08b6615b1007bf7b3d0",
- "recipe": 62,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.04655",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/rpmresolve-native/1.0-r2/temp/log.do_populate_lic_setscene.5955",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe rpmresolve-native-1.0-r2: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 19,
- "script_type": 2
- }
-},
-{
- "pk": 1655,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 740,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "348e82cb9b102fea20f72bf28b7dd7d1",
- "recipe": 112,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.11356",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/python-smartpm-native/1.4.1-r9/temp/log.do_populate_sysroot_setscene.5963",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe python-smartpm-native-1.4.1-r9: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 20,
- "script_type": 2
- }
-},
-{
- "pk": 1656,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1652,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c6bb22714625d8e967c6bf8875063661",
- "recipe": 112,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.201167",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/python-smartpm-native/1.4.1-r9/temp/log.do_populate_lic_setscene.5990",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe python-smartpm-native-1.4.1-r9: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 21,
- "script_type": 2
- }
-},
-{
- "pk": 1657,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 664,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "980050628efef49d94662f2817be079f",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.577492",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/opkg/1_0.2.0-r0/temp/log.do_populate_lic_setscene.6610",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe opkg-1_0.2.0-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 75,
- "script_type": 2
- }
-},
-{
- "pk": 1658,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 1200,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4eb255ea05c32fe0794e0bb32abbb946",
- "recipe": 45,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.101489",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/createrepo-native/0.4.11-r9/temp/log.do_populate_sysroot_setscene.6003",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe createrepo-native-0.4.11-r9: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 23,
- "script_type": 2
- }
-},
-{
- "pk": 1659,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 608,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c214ca5db7746dcd3b7180f0ce555451",
- "recipe": 45,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.040764",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/createrepo-native/0.4.11-r9/temp/log.do_populate_lic_setscene.6023",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe createrepo-native-0.4.11-r9: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 24,
- "script_type": 2
- }
-},
-{
- "pk": 1660,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 1052,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1949cbccdfb6b83f1ce484978d775cda",
- "recipe": 127,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.077205",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/mklibs-native/0.1.38-r0/temp/log.do_populate_sysroot_setscene.6031",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe mklibs-native-0.1.38-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 25,
- "script_type": 2
- }
-},
-{
- "pk": 1661,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.3",
- "task_executed": true,
- "disk_io": 332,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7f9c6dc5a030124e7211099bb279504c",
- "recipe": 127,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.052765",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/mklibs-native/0.1.38-r0/temp/log.do_populate_lic_setscene.6047",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe mklibs-native-0.1.38-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 26,
- "script_type": 2
- }
-},
-{
- "pk": 1662,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1488,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e186b2a96e7eeec20d4e6cec4327f3d2",
- "recipe": 36,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.286892",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/prelink-native/1.0+gitAUTOINC+6822ec76aa-r0/temp/log.do_populate_lic_setscene.6063",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe prelink-native-1.0+gitAUTOINC+6822ec76aa-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 27,
- "script_type": 2
- }
-},
-{
- "pk": 1663,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 436,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6ebc2933d67315436f25bd76aad44e2b",
- "recipe": 72,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.083752",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/makedevs-native/1.0.1-r0/temp/log.do_populate_sysroot_setscene.6083",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe makedevs-native-1.0.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 28,
- "script_type": 2
- }
-},
-{
- "pk": 1664,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.2",
- "task_executed": true,
- "disk_io": 392,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "30fe426ee9914e4e2b6d1f69e2d3715d",
- "recipe": 72,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.096116",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/makedevs-native/1.0.1-r0/temp/log.do_populate_lic_setscene.6087",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe makedevs-native-1.0.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 29,
- "script_type": 2
- }
-},
-{
- "pk": 1665,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 508,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9e98a6539d0f59457077bab1e442aaf6",
- "recipe": 12,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.093805",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/ldconfig-native/2.12.1-r2/temp/log.do_populate_sysroot_setscene.6091",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe ldconfig-native-2.12.1-r2: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 30,
- "script_type": 2
- }
-},
-{
- "pk": 1666,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 808,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "42e0ba5e62e2d2142c2cf1cc68f52679",
- "recipe": 12,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.166065",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/ldconfig-native/2.12.1-r2/temp/log.do_populate_lic_setscene.6111",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe ldconfig-native-2.12.1-r2: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 31,
- "script_type": 2
- }
-},
-{
- "pk": 1667,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5.5",
- "task_executed": true,
- "disk_io": 156,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0218e0d7e0e0ef46e8dfcac117be7a55",
- "recipe": 92,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.067259",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/dpkg-native/1.17.4-r0/temp/log.do_populate_sysroot_setscene.6130",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe dpkg-native-1.17.4-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 32,
- "script_type": 2
- }
-},
-{
- "pk": 1668,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.1",
- "task_executed": true,
- "disk_io": 180,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fdc6dae818085dda2c85029ca4af91d4",
- "recipe": 92,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.067299",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/dpkg-native/1.17.4-r0/temp/log.do_populate_lic_setscene.6131",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe dpkg-native-1.17.4-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 33,
- "script_type": 2
- }
-},
-{
- "pk": 1669,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 2356,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d848607c544b2548b430d93a4be8d420",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.962513",
- "logfile": "/home/andreea/poky/build/tmp/work/all-poky-linux/update-rc.d/0.7-r5/temp/log.do_populate_lic_setscene.7610",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe update-rc.d-0.7-r5: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 161,
- "script_type": 2
- }
-},
-{
- "pk": 1670,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1396,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "94180a366daaa853bd254b6e9e04b180",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.808715",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/opkg/1_0.2.0-r0/temp/log.do_populate_sysroot_setscene.11498",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe opkg-1_0.2.0-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 489,
- "script_type": 2
- }
-},
-{
- "pk": 1671,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 3820,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "28324546fc9f8759c3f3a84a95086a99",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.939833",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/e2fsprogs/1.42.9-r0/temp/log.do_populate_sysroot_setscene.10702",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe e2fsprogs-1.42.9-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 416,
- "script_type": 2
- }
-},
-{
- "pk": 1672,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5",
- "task_executed": true,
- "disk_io": 132,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e21e00cf091b54ea39913943908bc3bf",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.254302",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/e2fsprogs/1.42.9-r0/temp/log.do_populate_lic_setscene.9767",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe e2fsprogs-1.42.9-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 349,
- "script_type": 2
- }
-},
-{
- "pk": 1673,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.6",
- "task_executed": true,
- "disk_io": 244,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8c8a831aee75daf14bf491517404789a",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.076522",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/qemuwrapper-cross/1.0-r0/temp/log.do_populate_sysroot_setscene.6195",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe qemuwrapper-cross-1.0-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 38,
- "script_type": 2
- }
-},
-{
- "pk": 1674,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 404,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a84b0d86501c5ff2a3d11fc533d9c5d",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.112775",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/qemuwrapper-cross/1.0-r0/temp/log.do_populate_lic_setscene.6207",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe qemuwrapper-cross-1.0-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 39,
- "script_type": 2
- }
-},
-{
- "pk": 1675,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.2",
- "task_executed": true,
- "disk_io": 152,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "688745cba4759acf064d0953933b8c5b",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.114119",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/qemuwrapper-cross/1.0-r0/temp/log.do_package_write_rpm_setscene.6239",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe qemuwrapper-cross-1.0-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 40,
- "script_type": 2
- }
-},
-{
- "pk": 1676,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.9",
- "task_executed": true,
- "disk_io": 132,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "daed831d6659e26062be74a75645e306",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.083462",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/depmodwrapper-cross/1.0-r0/temp/log.do_populate_lic_setscene.6242",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe depmodwrapper-cross-1.0-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 41,
- "script_type": 2
- }
-},
-{
- "pk": 1677,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.9",
- "task_executed": true,
- "disk_io": 132,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6172e676300136f341a45f0c4b497f5b",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.095771",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/depmodwrapper-cross/1.0-r0/temp/log.do_package_write_rpm_setscene.6243",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe depmodwrapper-cross-1.0-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 42,
- "script_type": 2
- }
-},
-{
- "pk": 1678,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 732,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4018b6d5b04e53c64883582a2874b4e7",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.182041",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/packagegroup-core-boot/1.0-r11/temp/log.do_populate_lic_setscene.6259",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe packagegroup-core-boot-1.0-r11: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 43,
- "script_type": 2
- }
-},
-{
- "pk": 1679,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "11.6",
- "task_executed": true,
- "disk_io": 52,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f514858f6a5bd740a8591fd0586385c2",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.095931",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/packagegroup-core-boot/1.0-r11/temp/log.do_package_write_rpm_setscene.6282",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe packagegroup-core-boot-1.0-r11: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 44,
- "script_type": 2
- }
-},
-{
- "pk": 1680,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.9",
- "task_executed": true,
- "disk_io": 320,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2c3bf40951fdf9d87bee5350d489cfbf",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.096177",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/run-postinsts/1.0-r9/temp/log.do_populate_sysroot_setscene.6283",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe run-postinsts-1.0-r9: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 45,
- "script_type": 2
- }
-},
-{
- "pk": 1681,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4",
- "task_executed": true,
- "disk_io": 156,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "623c04795ede5f6402ccb13dea46b96c",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.084215",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/qemuwrapper-cross/1.0-r0/temp/log.do_packagedata_setscene.6298",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe qemuwrapper-cross-1.0-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 46,
- "script_type": 2
- }
-},
-{
- "pk": 1682,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 636,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "597a713eba694b7816e3904a44d4691e",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.120422",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/run-postinsts/1.0-r9/temp/log.do_populate_lic_setscene.6299",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe run-postinsts-1.0-r9: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 47,
- "script_type": 2
- }
-},
-{
- "pk": 1683,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.5",
- "task_executed": true,
- "disk_io": 404,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "574ac2d6f5268cc2a652fd2e34dbf50c",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.095526",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/packagegroup-core-boot/1.0-r11/temp/log.do_packagedata_setscene.6327",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe packagegroup-core-boot-1.0-r11: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 48,
- "script_type": 2
- }
-},
-{
- "pk": 1684,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 384,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b2f9c7e9f0184cea309bd181ce3294a8",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.065338",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/run-postinsts/1.0-r9/temp/log.do_package_write_rpm_setscene.6335",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe run-postinsts-1.0-r9: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 49,
- "script_type": 2
- }
-},
-{
- "pk": 1685,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.7",
- "task_executed": true,
- "disk_io": 276,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a780f0727359e2a97afc31f5df046678",
- "recipe": 107,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.169174",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/qemuwrapper-cross/1.0-r0/temp/log.do_package_setscene.6377",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe qemuwrapper-cross-1.0-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 50,
- "script_type": 2
- }
-},
-{
- "pk": 1686,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.7",
- "task_executed": true,
- "disk_io": 280,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ca18bf79dce8cc7aa050cd2a0d169c7c",
- "recipe": 17,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.121441",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/packagegroup-core-boot/1.0-r11/temp/log.do_package_setscene.6379",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe packagegroup-core-boot-1.0-r11: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 51,
- "script_type": 2
- }
-},
-{
- "pk": 1687,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 704,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e7bd0660c115cbf35c40d2cafc14126",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.041765",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/run-postinsts/1.0-r9/temp/log.do_packagedata_setscene.6374",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe run-postinsts-1.0-r9: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 52,
- "script_type": 2
- }
-},
-{
- "pk": 1688,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1832,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c3b393e574aa90fd1bda897018c090ff",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.985926",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/util-linux/2.23.2-r0/temp/log.do_populate_sysroot_setscene.10769",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe util-linux-2.23.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 420,
- "script_type": 2
- }
-},
-{
- "pk": 1689,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 1828,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7ca507a523bda34c92098bffe771aeeb",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.17705",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/util-linux/2.23.2-r0/temp/log.do_populate_lic_setscene.8177",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe util-linux-2.23.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 211,
- "script_type": 2
- }
-},
-{
- "pk": 1690,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.8",
- "task_executed": true,
- "disk_io": 280,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b14a2eecdceb4ae17cf56a04f2a5ee60",
- "recipe": 69,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.08369",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/run-postinsts/1.0-r9/temp/log.do_package_setscene.6402",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe run-postinsts-1.0-r9: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 55,
- "script_type": 2
- }
-},
-{
- "pk": 1691,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1020,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "556baa18017155c0608df031fdc5ebf9",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.05734",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/zlib/1.2.8-r0/temp/log.do_populate_lic_setscene.7780",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe zlib-1.2.8-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 177,
- "script_type": 2
- }
-},
-{
- "pk": 1692,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 404,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6ecbd546faa806d0659ae854405757b2",
- "recipe": 101,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.070837",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/autoconf-native/2.69-r11/temp/log.do_populate_lic_setscene.6425",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe autoconf-native-2.69-r11: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 57,
- "script_type": 2
- }
-},
-{
- "pk": 1693,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 936,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ccdc6204444699b471ab9b22f08791e8",
- "recipe": 33,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.12573",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/automake-native/1.14-r0/temp/log.do_populate_lic_setscene.6426",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe automake-native-1.14-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 58,
- "script_type": 2
- }
-},
-{
- "pk": 1694,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1396,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ee798b20eaf55e487f8c114f52010e35",
- "recipe": 11,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.204947",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libtool-native/2.4.2-r6.1/temp/log.do_populate_lic_setscene.6427",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libtool-native-2.4.2-r6.1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 59,
- "script_type": 2
- }
-},
-{
- "pk": 1695,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 444,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8dd6e51d4da7ddea1b6e447abf7b2d59",
- "recipe": 88,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.083981",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gnu-config-native/20120814-r0/temp/log.do_populate_lic_setscene.6451",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gnu-config-native-20120814-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 60,
- "script_type": 2
- }
-},
-{
- "pk": 1696,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 600,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "704dba6357a309a029ac6ff0c518677e",
- "recipe": 135,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.156885",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/file-native/5.16-r0/temp/log.do_populate_lic_setscene.6463",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe file-native-5.16-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 61,
- "script_type": 2
- }
-},
-{
- "pk": 1697,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 568,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cb640b3c97412564b05d5e87a486cce8",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.114102",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gcc-cross-initial/4.8.2-r0/temp/log.do_populate_lic_setscene.6475",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gcc-cross-initial-4.8.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 62,
- "script_type": 2
- }
-},
-{
- "pk": 1698,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.4",
- "task_executed": true,
- "disk_io": 184,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c9d7b8f99b73d31a9f252548b5feb4e4",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.059261",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/linux-libc-headers/3.10-r0/temp/log.do_populate_lic_setscene.6498",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe linux-libc-headers-3.10-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 63,
- "script_type": 2
- }
-},
-{
- "pk": 1699,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.6",
- "task_executed": true,
- "disk_io": 136,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3623cf65665c67c57bb341bab99aef4c",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.022554",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/linux-libc-headers/3.10-r0/temp/log.do_package_write_rpm_setscene.6499",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe linux-libc-headers-3.10-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 64,
- "script_type": 2
- }
-},
-{
- "pk": 1700,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "8.7",
- "task_executed": true,
- "disk_io": 220,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5b9fe0bfd5a8da4a0206dbcde14f3456",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.132944",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc-initial/2.18-r0/temp/log.do_populate_lic_setscene.6515",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe eglibc-initial-2.18-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 65,
- "script_type": 2
- }
-},
-{
- "pk": 1701,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "9.5",
- "task_executed": true,
- "disk_io": 172,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8e6c4a300a82b5c3b6b461e76a286c0d",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.133095",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc-initial/2.18-r0/temp/log.do_package_write_rpm_setscene.6523",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe eglibc-initial-2.18-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 66,
- "script_type": 2
- }
-},
-{
- "pk": 1702,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5.4",
- "task_executed": true,
- "disk_io": 192,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4746a26005a752799e2dcfb006b367e0",
- "recipe": 126,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.871084",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gperf-native/3.0.4-r0/temp/log.do_populate_lic_setscene.6545",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gperf-native-3.0.4-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 67,
- "script_type": 2
- }
-},
-{
- "pk": 1703,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "7.3",
- "task_executed": true,
- "disk_io": 124,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fc6753517c4c800bbf66e6edef665682",
- "recipe": 104,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.102817",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/kconfig-frontends-native/3.12.0.0-r0/temp/log.do_populate_lic_setscene.6546",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe kconfig-frontends-native-3.12.0.0-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 68,
- "script_type": 2
- }
-},
-{
- "pk": 1704,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5.9",
- "task_executed": true,
- "disk_io": 156,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "89a9c8cad112d4cbb740046a0ba45f48",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.325568",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libtool-cross/2.4.2-r6.1/temp/log.do_populate_lic_setscene.6547",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libtool-cross-2.4.2-r6.1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 69,
- "script_type": 2
- }
-},
-{
- "pk": 1705,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "7.4",
- "task_executed": true,
- "disk_io": 124,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "58560dbb980070862f3ae7a92d72cdbe",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.244622",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libtool-cross/2.4.2-r6.1/temp/log.do_package_write_rpm_setscene.6566",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libtool-cross-2.4.2-r6.1: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 70,
- "script_type": 2
- }
-},
-{
- "pk": 1706,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "9.9",
- "task_executed": true,
- "disk_io": 104,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7a456924f97a147013c7afe141ed9883",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.254858",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gcc-cross/4.8.2-r0/temp/log.do_populate_lic_setscene.6578",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gcc-cross-4.8.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 71,
- "script_type": 2
- }
-},
-{
- "pk": 1707,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.2",
- "task_executed": true,
- "disk_io": 208,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c30fafa880d9b5ce7450a498b72ba7e3",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.260917",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gcc-runtime/4.8.2-r0/temp/log.do_populate_lic_setscene.6586",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gcc-runtime-4.8.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 72,
- "script_type": 2
- }
-},
-{
- "pk": 1708,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 1992,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cc6407577b79b8d9df7d36f70cc25f91",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.673336",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gcc-runtime/4.8.2-r0/temp/log.do_package_write_rpm_setscene.6605",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe gcc-runtime-4.8.2-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 73,
- "script_type": 2
- }
-},
-{
- "pk": 1709,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.9",
- "task_executed": true,
- "disk_io": 160,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9f0562b2421d07f6e70d36fcdbb64a3b",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.109693",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/opkg/1_0.2.0-r0/temp/log.do_package_write_rpm_setscene.6615",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe opkg-1_0.2.0-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 76,
- "script_type": 2
- }
-},
-{
- "pk": 1710,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 4512,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "983a44253dd554cdb4f8e995508b107f",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "4.676633",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/sqlite3/3080002-r0/temp/log.do_populate_lic_setscene.9277",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe sqlite3-3080002-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 307,
- "script_type": 2
- }
-},
-{
- "pk": 1711,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 428,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "02081c3431853cd01f676937cc24f0df",
- "recipe": 59,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.111816",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/kern-tools-native/0.2+gitAUTOINC+a42509b01c-r12/temp/log.do_populate_lic_setscene.6651",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe kern-tools-native-0.2+gitAUTOINC+a42509b01c-r12: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 78,
- "script_type": 2
- }
-},
-{
- "pk": 1712,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.3",
- "task_executed": true,
- "disk_io": 328,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2f0c33f07b78fdb5260b8232fcc2364c",
- "recipe": 29,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.098787",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/xz-native/5.1.3alpha-r0/temp/log.do_populate_lic_setscene.6667",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe xz-native-5.1.3alpha-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 79,
- "script_type": 2
- }
-},
-{
- "pk": 1713,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4",
- "task_executed": true,
- "disk_io": 156,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2ee175eeefed3b1255c4b41b8f4456f5",
- "recipe": 25,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.09289",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/bc-native/1.06-r2/temp/log.do_populate_lic_setscene.6679",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe bc-native-1.06-r2: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 80,
- "script_type": 2
- }
-},
-{
- "pk": 1714,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3",
- "task_executed": true,
- "disk_io": 340,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e5d0b0a1d4cda4cde9e3dc41b26d822c",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.121581",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/binutils-cross/2.23.2-r4/temp/log.do_populate_lic_setscene.6709",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe binutils-cross-2.23.2-r4: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 81,
- "script_type": 2
- }
-},
-{
- "pk": 1715,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.5",
- "task_executed": true,
- "disk_io": 296,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "00c2cdd891f4a30352ca1d4d0538e423",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.096889",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/binutils-cross/2.23.2-r4/temp/log.do_package_write_rpm_setscene.6710",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe binutils-cross-2.23.2-r4: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 82,
- "script_type": 2
- }
-},
-{
- "pk": 1716,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.9",
- "task_executed": true,
- "disk_io": 348,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "34efd8c83295fb7314c2d7ed86072be3",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.114132",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/kmod-native/16+gitAUTOINC+36c4bb928a-r0/temp/log.do_populate_lic_setscene.6711",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe kmod-native-16+gitAUTOINC+36c4bb928a-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 83,
- "script_type": 2
- }
-},
-{
- "pk": 1717,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.3",
- "task_executed": true,
- "disk_io": 280,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8574fd9bd0d056b0ddc4e0cf9f7dd440",
- "recipe": 64,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.112934",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/alsa-lib-native/1.0.27.2-r0/temp/log.do_populate_lic_setscene.6726",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe alsa-lib-native-1.0.27.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 84,
- "script_type": 2
- }
-},
-{
- "pk": 1718,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 4448,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a8b7f95586082225ee32fc96a40c1101",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.607975",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/glib-2.0/1_2.38.2-r0/temp/log.do_populate_lic_setscene.8006",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe glib-2.0-1_2.38.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 196,
- "script_type": 2
- }
-},
-{
- "pk": 1719,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4",
- "task_executed": true,
- "disk_io": 288,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b35acbc8335b2daa9888f2926a047efa",
- "recipe": 108,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.149862",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/pixman-native/1_0.32.4-r0/temp/log.do_populate_lic_setscene.6748",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe pixman-native-1_0.32.4-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 86,
- "script_type": 2
- }
-},
-{
- "pk": 1720,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.7",
- "task_executed": true,
- "disk_io": 304,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3a4347d1ace1ecd0440a30d290182d52",
- "recipe": 30,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.143857",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/dtc-native/1.4.0+gitAUTOINC+65cc4d2748-r0/temp/log.do_populate_lic_setscene.6765",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe dtc-native-1.4.0+gitAUTOINC+65cc4d2748-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 87,
- "script_type": 2
- }
-},
-{
- "pk": 1721,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.2",
- "task_executed": true,
- "disk_io": 292,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2f54d054acc1c88b3178272a9bbee6a6",
- "recipe": 8,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.089647",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gettext-minimal-native/0.18.3.1-r0/temp/log.do_populate_lic_setscene.6772",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gettext-minimal-native-0.18.3.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 88,
- "script_type": 2
- }
-},
-{
- "pk": 1722,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "6.1",
- "task_executed": true,
- "disk_io": 104,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cb87140ea2ff8c4b07baf1f82f3b6cca",
- "recipe": 106,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.034637",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libpcre-native/8.34-r0/temp/log.do_populate_lic_setscene.6773",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libpcre-native-8.34-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 89,
- "script_type": 2
- }
-},
-{
- "pk": 1723,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.7",
- "task_executed": true,
- "disk_io": 368,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "80c33a8455b516ced195dd06b348347d",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.489446",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/attr/2.4.47-r0/temp/log.do_populate_lic_setscene.8726",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe attr-2.4.47-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 260,
- "script_type": 2
- }
-},
-{
- "pk": 1724,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 868,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4b10986ec5fc818afe404df684c7012e",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.052396",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/acl/2.2.52-r0/temp/log.do_populate_lic_setscene.7978",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe acl-2.2.52-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 194,
- "script_type": 2
- }
-},
-{
- "pk": 1725,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "6.5",
- "task_executed": true,
- "disk_io": 136,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a90f99f37cceac48582ccfb4360157a1",
- "recipe": 134,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.111397",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/popt-native/1.16-r3/temp/log.do_populate_lic_setscene.6813",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe popt-native-1.16-r3: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 92,
- "script_type": 2
- }
-},
-{
- "pk": 1726,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "8.9",
- "task_executed": true,
- "disk_io": 112,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1bd58cdf9058238cdc1e296d3f1cbe71",
- "recipe": 99,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.104773",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/ossp-uuid-native/1.6.2-r2/temp/log.do_populate_lic_setscene.6828",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe ossp-uuid-native-1.6.2-r2: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 93,
- "script_type": 2
- }
-},
-{
- "pk": 1727,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.1",
- "task_executed": true,
- "disk_io": 244,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d7fe78d5053160419abc2b04869281c3",
- "recipe": 102,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.121331",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/bison-native/2.7.1-r0/temp/log.do_populate_lic_setscene.6829",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe bison-native-2.7.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 94,
- "script_type": 2
- }
-},
-{
- "pk": 1728,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1268,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "da3681bb5251eba8a07af13839851bda",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.160953",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/beecrypt-native/4.2.1-r3/temp/log.do_populate_lic_setscene.6857",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe beecrypt-native-4.2.1-r3: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 95,
- "script_type": 2
- }
-},
-{
- "pk": 1729,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 796,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b3929d1c6ad66a8dddeadc7f640b3fd4",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.979219",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/db/5.3.21-r0/temp/log.do_populate_lic_setscene.8584",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe db-5.3.21-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 248,
- "script_type": 2
- }
-},
-{
- "pk": 1730,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 1248,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fe66a4f33b53ea295cd1b32e5ab09d03",
- "recipe": 9,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.195692",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/elfutils-native/0.155-r0/temp/log.do_populate_lic_setscene.6888",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe elfutils-native-0.155-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 97,
- "script_type": 2
- }
-},
-{
- "pk": 1731,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 532,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e522e1147da09854514eba7801f1c49f",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.651665",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/openssl/1.0.1e-r15.0/temp/log.do_populate_lic_setscene.9047",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe openssl-1.0.1e-r15.0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 287,
- "script_type": 2
- }
-},
-{
- "pk": 1732,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 1144,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f7f316056c6dde6f8c637a8f55693b6b",
- "recipe": 68,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.126609",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/python-native/2.7.3-r0.1/temp/log.do_populate_lic_setscene.6902",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe python-native-2.7.3-r0.1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 99,
- "script_type": 2
- }
-},
-{
- "pk": 1733,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 760,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f70cfb46cbb3e0eb6c9e143580d283d1",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.175637",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gettext/0.18.3.1-r0/temp/log.do_populate_lic_setscene.6984",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gettext-0.18.3.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 107,
- "script_type": 2
- }
-},
-{
- "pk": 1734,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1016,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "85714d05b47f72a5d51605424a94af9b",
- "recipe": 120,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.062795",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/pkgconfig-native/0.28-r0/temp/log.do_populate_lic_setscene.6919",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe pkgconfig-native-0.28-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 101,
- "script_type": 2
- }
-},
-{
- "pk": 1735,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.8",
- "task_executed": true,
- "disk_io": 484,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "67435734b5535ea2bd3091b7c8c5717e",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.168111",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libxml2-native/2.9.1-r0/temp/log.do_populate_lic_setscene.6951",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libxml2-native-2.9.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 102,
- "script_type": 2
- }
-},
-{
- "pk": 1736,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.2",
- "task_executed": true,
- "disk_io": 148,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3331dba6af1de12f3d98fb0fd4f0968e",
- "recipe": 43,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.125818",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/binutils-native/2.23.2-r4/temp/log.do_populate_lic_setscene.6952",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe binutils-native-2.23.2-r4: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 103,
- "script_type": 2
- }
-},
-{
- "pk": 1737,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "8.2",
- "task_executed": true,
- "disk_io": 124,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "368d84556f4106c9efd55dc9241e6ad1",
- "recipe": 123,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.096294",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/perl-native/5.14.3-r0/temp/log.do_populate_lic_setscene.6971",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe perl-native-5.14.3-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 104,
- "script_type": 2
- }
-},
-{
- "pk": 1738,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.3",
- "task_executed": true,
- "disk_io": 468,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dbedcf8c8b9b256bd26d75cacb9ac9fc",
- "recipe": 116,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.139286",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/lzo-native/2.06-r1/temp/log.do_populate_sysroot_setscene.6982",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe lzo-native-2.06-r1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 105,
- "script_type": 2
- }
-},
-{
- "pk": 1739,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 768,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e3e0cd81468042f865f85c7c25b63c5e",
- "recipe": 116,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.175429",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/lzo-native/2.06-r1/temp/log.do_populate_lic_setscene.6983",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe lzo-native-2.06-r1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 106,
- "script_type": 2
- }
-},
-{
- "pk": 1740,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 1256,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "130e70bb761a4894903ed192d7921f92",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.230936",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gettext/0.18.3.1-r0/temp/log.do_package_write_rpm_setscene.7015",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe gettext-0.18.3.1-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 108,
- "script_type": 2
- }
-},
-{
- "pk": 1741,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2",
- "task_executed": true,
- "disk_io": 380,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ce772d76584685d7bec40c83c170fb97",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.064039",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libgcc/4.8.2-r0/temp/log.do_populate_lic_setscene.7016",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libgcc-4.8.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 109,
- "script_type": 2
- }
-},
-{
- "pk": 1742,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.9",
- "task_executed": true,
- "disk_io": 464,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7c9a04ec124dbe0b18b4f12eecfe39ec",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.135368",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libgcc/4.8.2-r0/temp/log.do_package_write_rpm_setscene.7040",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libgcc-4.8.2-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 110,
- "script_type": 2
- }
-},
-{
- "pk": 1743,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 6260,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d1932bf20b7c9830946a84efd99f30a3",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.961226",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc-locale/2.18-r0/temp/log.do_populate_sysroot_setscene.7052",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe eglibc-locale-2.18-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 111,
- "script_type": 2
- }
-},
-{
- "pk": 1744,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.7",
- "task_executed": true,
- "disk_io": 112,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bedce9841ef11061cf2f9200c094af83",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.058188",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc-locale/2.18-r0/temp/log.do_populate_lic_setscene.7060",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe eglibc-locale-2.18-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 112,
- "script_type": 2
- }
-},
-{
- "pk": 1745,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 92988,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "04665c67f91784ca9ec97a890d3c2006",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "53.98015",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc-locale/2.18-r0/temp/log.do_package_write_rpm_setscene.7088",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe eglibc-locale-2.18-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 113,
- "script_type": 2
- }
-},
-{
- "pk": 1746,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 324,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7e6be4e67c3fae8d5f7e13007516f3a5",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.06994",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/base-files/3.0.14-r73/temp/log.do_populate_sysroot_setscene.7092",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe base-files-3.0.14-r73: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 114,
- "script_type": 2
- }
-},
-{
- "pk": 1747,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1704,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8570f77cfe89f1c4cb36166a1aaa7857",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.19507",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/base-files/3.0.14-r73/temp/log.do_populate_lic_setscene.7096",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe base-files-3.0.14-r73: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 115,
- "script_type": 2
- }
-},
-{
- "pk": 1748,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.9",
- "task_executed": true,
- "disk_io": 216,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c396c8c8fef9c60f0ba39e23b1b4e9f7",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.04613",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/base-files/3.0.14-r73/temp/log.do_package_write_rpm_setscene.7116",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe base-files-3.0.14-r73: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 116,
- "script_type": 2
- }
-},
-{
- "pk": 1749,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "8.5",
- "task_executed": true,
- "disk_io": 132,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f49149d6bdba4cd44dee4f2f8d623237",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.052532",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/base-passwd/3.5.29-r0/temp/log.do_populate_sysroot_setscene.7124",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe base-passwd-3.5.29-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 117,
- "script_type": 2
- }
-},
-{
- "pk": 1750,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.2",
- "task_executed": true,
- "disk_io": 196,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2dffeb7023efceb8b803c4db563098b8",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.070256",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/base-files/3.0.14-r73/temp/log.do_packagedata_setscene.7154",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe base-files-3.0.14-r73: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 118,
- "script_type": 2
- }
-},
-{
- "pk": 1751,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 1212,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f5dc0a705f5490fc98c13c76cd39f6a1",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.111621",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/base-passwd/3.5.29-r0/temp/log.do_populate_lic_setscene.7155",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe base-passwd-3.5.29-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 119,
- "script_type": 2
- }
-},
-{
- "pk": 1752,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.1",
- "task_executed": true,
- "disk_io": 280,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0746ad65a3bc2b5df91d4ae78a082ad3",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.028057",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/base-passwd/3.5.29-r0/temp/log.do_package_write_rpm_setscene.7160",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe base-passwd-3.5.29-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 120,
- "script_type": 2
- }
-},
-{
- "pk": 1753,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1036,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fb2c682d1381d47c36f0668204d3802e",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.093588",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/busybox/1.21.1-r0/temp/log.do_populate_sysroot_setscene.7187",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe busybox-1.21.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 121,
- "script_type": 2
- }
-},
-{
- "pk": 1754,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 572,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f84abed7d1ef7149fa58fe74d7529d71",
- "recipe": 119,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.117153",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/base-files/3.0.14-r73/temp/log.do_package_setscene.7189",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe base-files-3.0.14-r73: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 122,
- "script_type": 2
- }
-},
-{
- "pk": 1755,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.7",
- "task_executed": true,
- "disk_io": 224,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5bc5ea65e77abfa864d09f2cf700134a",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.051792",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/busybox/1.21.1-r0/temp/log.do_populate_lic_setscene.7211",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe busybox-1.21.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 123,
- "script_type": 2
- }
-},
-{
- "pk": 1756,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1732,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "416db5b2249af8ce06bbf3e15dce1686",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.200235",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/busybox/1.21.1-r0/temp/log.do_package_write_rpm_setscene.7217",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe busybox-1.21.1-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 124,
- "script_type": 2
- }
-},
-{
- "pk": 1757,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1516,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "de97ecf4e200be8d979b50a7da34efc1",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.192704",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/modutils-initscripts/1.0-r6/temp/log.do_populate_sysroot_setscene.7240",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe modutils-initscripts-1.0-r6: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 125,
- "script_type": 2
- }
-},
-{
- "pk": 1758,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1532,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "86bd2df0f92349b3d8f8f74331b27f60",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.1949",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/modutils-initscripts/1.0-r6/temp/log.do_populate_lic_setscene.7241",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe modutils-initscripts-1.0-r6: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 126,
- "script_type": 2
- }
-},
-{
- "pk": 1759,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.4",
- "task_executed": true,
- "disk_io": 372,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ff4f2a8abc0d0e278306c27bd63822b",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.052261",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/modutils-initscripts/1.0-r6/temp/log.do_package_write_rpm_setscene.7242",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe modutils-initscripts-1.0-r6: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 127,
- "script_type": 2
- }
-},
-{
- "pk": 1760,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 744,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "769dca759ea690036d40caee0627ae7a",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.057442",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/init-ifupdown/1.0-r3/temp/log.do_populate_sysroot_setscene.7250",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe init-ifupdown-1.0-r3: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 128,
- "script_type": 2
- }
-},
-{
- "pk": 1761,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 668,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9b0ef53eb422ca03c2a68821af945ac0",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.039914",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/modutils-initscripts/1.0-r6/temp/log.do_packagedata_setscene.7274",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe modutils-initscripts-1.0-r6: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 129,
- "script_type": 2
- }
-},
-{
- "pk": 1762,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.3",
- "task_executed": true,
- "disk_io": 484,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9400956aef953e7b18d76f11fc82cdfe",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.11116",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/init-ifupdown/1.0-r3/temp/log.do_populate_lic_setscene.7279",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe init-ifupdown-1.0-r3: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 130,
- "script_type": 2
- }
-},
-{
- "pk": 1763,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.5",
- "task_executed": true,
- "disk_io": 176,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8acb9efa79babec6f0a8b681e2c37d44",
- "recipe": 49,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.034166",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/modutils-initscripts/1.0-r6/temp/log.do_package_setscene.7291",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe modutils-initscripts-1.0-r6: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 131,
- "script_type": 2
- }
-},
-{
- "pk": 1764,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.1",
- "task_executed": true,
- "disk_io": 280,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5bff1eb4e6defc2eb3b0f1541df13256",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.128911",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/busybox/1.21.1-r0/temp/log.do_packagedata_setscene.7305",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe busybox-1.21.1-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 132,
- "script_type": 2
- }
-},
-{
- "pk": 1765,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.4",
- "task_executed": true,
- "disk_io": 144,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f403383a7c27b763a298f5e7ed958eb0",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.093195",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/init-ifupdown/1.0-r3/temp/log.do_package_write_rpm_setscene.7313",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe init-ifupdown-1.0-r3: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 133,
- "script_type": 2
- }
-},
-{
- "pk": 1766,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1624,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d848607c544b2548b430d93a4be8d420",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.383642",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/netbase/1_5.2-r0/temp/log.do_populate_sysroot_setscene.7314",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe netbase-1_5.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 134,
- "script_type": 2
- }
-},
-{
- "pk": 1767,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 396,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "08075f65577f77be002243d29db6edea",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.146982",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/netbase/1_5.2-r0/temp/log.do_populate_lic_setscene.7316",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe netbase-1_5.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 135,
- "script_type": 2
- }
-},
-{
- "pk": 1768,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3",
- "task_executed": true,
- "disk_io": 208,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5e38cb35d2ea4f89530c60f217954745",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.075519",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/netbase/1_5.2-r0/temp/log.do_package_write_rpm_setscene.7323",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe netbase-1_5.2-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 136,
- "script_type": 2
- }
-},
-{
- "pk": 1769,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.3",
- "task_executed": true,
- "disk_io": 180,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c11d984674df1ba22798517c43ea4bc1",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.063895",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/init-ifupdown/1.0-r3/temp/log.do_packagedata_setscene.7351",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe init-ifupdown-1.0-r3: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 137,
- "script_type": 2
- }
-},
-{
- "pk": 1770,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.2",
- "task_executed": true,
- "disk_io": 1084,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "37a246f025940de62e816c4182fd5fe9",
- "recipe": 1,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.252228",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/busybox/1.21.1-r0/temp/log.do_package_setscene.7359",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe busybox-1.21.1-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 138,
- "script_type": 2
- }
-},
-{
- "pk": 1771,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "8",
- "task_executed": true,
- "disk_io": 100,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "24e6293441650f5205df17c93a7cef25",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.058322",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/netbase/1_5.2-r0/temp/log.do_packagedata_setscene.7369",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe netbase-1_5.2-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 139,
- "script_type": 2
- }
-},
-{
- "pk": 1772,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2",
- "task_executed": true,
- "disk_io": 376,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c76e66fdf9e584278f9569035a10df6",
- "recipe": 54,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.069825",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/init-ifupdown/1.0-r3/temp/log.do_package_setscene.7396",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe init-ifupdown-1.0-r3: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 140,
- "script_type": 2
- }
-},
-{
- "pk": 1773,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.9",
- "task_executed": true,
- "disk_io": 400,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f51a4b0365af6d929267c4e234b5b67a",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.05775",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/sysvinit/2.88dsf-r11/temp/log.do_populate_sysroot_setscene.7399",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe sysvinit-2.88dsf-r11: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 141,
- "script_type": 2
- }
-},
-{
- "pk": 1774,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.1",
- "task_executed": true,
- "disk_io": 424,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "51b1ac860781cee98ec8706096106bf6",
- "recipe": 98,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.064667",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/netbase/1_5.2-r0/temp/log.do_package_setscene.7407",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe netbase-1_5.2-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 142,
- "script_type": 2
- }
-},
-{
- "pk": 1775,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.3",
- "task_executed": true,
- "disk_io": 268,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a8ecfd4fde335475d43b1209df7e6b13",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.072219",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/sysvinit/2.88dsf-r11/temp/log.do_populate_lic_setscene.7429",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe sysvinit-2.88dsf-r11: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 143,
- "script_type": 2
- }
-},
-{
- "pk": 1776,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.7",
- "task_executed": true,
- "disk_io": 296,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "db40ae927edd41894486807fe6a69f4f",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.084306",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/sysvinit/2.88dsf-r11/temp/log.do_package_write_rpm_setscene.7430",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe sysvinit-2.88dsf-r11: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 144,
- "script_type": 2
- }
-},
-{
- "pk": 1777,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.6",
- "task_executed": true,
- "disk_io": 168,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c4ecdf142d41aaae11d8b108549ebe89",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.02876",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/initscripts/1.0-r141/temp/log.do_populate_sysroot_setscene.7431",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe initscripts-1.0-r141: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 145,
- "script_type": 2
- }
-},
-{
- "pk": 1778,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 736,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c76e66fdf9e584278f9569035a10df6",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.193865",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/initscripts/1.0-r141/temp/log.do_populate_lic_setscene.7444",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe initscripts-1.0-r141: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 146,
- "script_type": 2
- }
-},
-{
- "pk": 1779,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.8",
- "task_executed": true,
- "disk_io": 432,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "08075f65577f77be002243d29db6edea",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.108872",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/initscripts/1.0-r141/temp/log.do_package_write_rpm_setscene.7452",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe initscripts-1.0-r141: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 147,
- "script_type": 2
- }
-},
-{
- "pk": 1780,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.5",
- "task_executed": true,
- "disk_io": 364,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ff4f2a8abc0d0e278306c27bd63822b",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.14441",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/sysvinit/2.88dsf-r11/temp/log.do_packagedata_setscene.7460",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe sysvinit-2.88dsf-r11: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 148,
- "script_type": 2
- }
-},
-{
- "pk": 1781,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.3",
- "task_executed": true,
- "disk_io": 2960,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ad3eaef9731fbd4a5312ae5cf10dd0c8",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.306523",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/udev/182-r7/temp/log.do_populate_sysroot_setscene.7461",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe udev-182-r7: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 149,
- "script_type": 2
- }
-},
-{
- "pk": 1782,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1484,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "608a2f4b376de2d83e0fe8ef5c1120c1",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.217386",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/udev/182-r7/temp/log.do_populate_lic_setscene.7485",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe udev-182-r7: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 150,
- "script_type": 2
- }
-},
-{
- "pk": 1783,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "8.8",
- "task_executed": true,
- "disk_io": 88,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "822ded6256710da139b5e4bc99710e13",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.101874",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/udev/182-r7/temp/log.do_package_write_rpm_setscene.7500",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe udev-182-r7: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 151,
- "script_type": 2
- }
-},
-{
- "pk": 1784,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "12",
- "task_executed": true,
- "disk_io": 64,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ff4f2a8abc0d0e278306c27bd63822b",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.040425",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/v86d/0.1.10-r1/temp/log.do_populate_sysroot_setscene.7501",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe v86d-0.1.10-r1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 152,
- "script_type": 2
- }
-},
-{
- "pk": 1785,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 2268,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "769dca759ea690036d40caee0627ae7a",
- "recipe": 4,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.20111",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/sysvinit/2.88dsf-r11/temp/log.do_package_setscene.7520",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe sysvinit-2.88dsf-r11: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 153,
- "script_type": 2
- }
-},
-{
- "pk": 1786,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1320,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "769dca759ea690036d40caee0627ae7a",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.138825",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/v86d/0.1.10-r1/temp/log.do_populate_lic_setscene.7522",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe v86d-0.1.10-r1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 154,
- "script_type": 2
- }
-},
-{
- "pk": 1787,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "10.2",
- "task_executed": true,
- "disk_io": 76,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c76e66fdf9e584278f9569035a10df6",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.053158",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/v86d/0.1.10-r1/temp/log.do_package_write_rpm_setscene.7524",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe v86d-0.1.10-r1: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 155,
- "script_type": 2
- }
-},
-{
- "pk": 1788,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 1284,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "91f09830ce94a84f444bca517df9ed41",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.107874",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/udev/182-r7/temp/log.do_packagedata_setscene.7540",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe udev-182-r7: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 156,
- "script_type": 2
- }
-},
-{
- "pk": 1789,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "12.2",
- "task_executed": true,
- "disk_io": 60,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0cf00f4b7c0b97bc043c29a21b711c70",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.016714",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/v86d/0.1.10-r1/temp/log.do_packagedata_setscene.7560",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe v86d-0.1.10-r1: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 157,
- "script_type": 2
- }
-},
-{
- "pk": 1790,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "8.4",
- "task_executed": true,
- "disk_io": 120,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a01dc3cdfa994de6adefa042ae227ee9",
- "recipe": 130,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.123833",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/v86d/0.1.10-r1/temp/log.do_package_setscene.7572",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe v86d-0.1.10-r1: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 158,
- "script_type": 2
- }
-},
-{
- "pk": 1791,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.7",
- "task_executed": true,
- "disk_io": 172,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "27a870a1dab1e5e73ecc92428a18303b",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.302119",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/update-rc.d-native/0.7-r5/temp/log.do_populate_sysroot_setscene.10215",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe update-rc.d-native-0.7-r5: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 380,
- "script_type": 2
- }
-},
-{
- "pk": 1792,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 25028,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5e58ec8e6866c2bccb824a1ec0cf8509",
- "recipe": 37,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "8.353705",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/udev/182-r7/temp/log.do_package_setscene.7608",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe udev-182-r7: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 160,
- "script_type": 2
- }
-},
-{
- "pk": 1793,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.9",
- "task_executed": true,
- "disk_io": 396,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6affe012935ba0b3130ef85613520c2e",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.889097",
- "logfile": "/home/andreea/poky/build/tmp/work/all-poky-linux/update-rc.d/0.7-r5/temp/log.do_package_write_rpm_setscene.7614",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe update-rc.d-0.7-r5: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 162,
- "script_type": 2
- }
-},
-{
- "pk": 1794,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2308,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "48cec31a1859958457df412ee4fe03db",
- "recipe": 35,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.921602",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/m4-native/1.4.17-r0/temp/log.do_populate_lic_setscene.7616",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe m4-native-1.4.17-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 163,
- "script_type": 2
- }
-},
-{
- "pk": 1795,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 85560,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "23180c4cfe8ed045f3d9f1d03611c628",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "54.104183",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/linux-yocto/3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0/temp/log.do_populate_sysroot_setscene.7618",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe linux-yocto-3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 164,
- "script_type": 2
- }
-},
-{
- "pk": 1796,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2",
- "task_executed": true,
- "disk_io": 1912,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b5a0062344ebccd3ceae1c042616c57e",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.09516",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/linux-yocto/3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0/temp/log.do_packagedata_setscene.7650",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe linux-yocto-3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 165,
- "script_type": 2
- }
-},
-{
- "pk": 1797,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 2620,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8bd6a25a5808c38fb39b89adea6e5ab7",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.162233",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/opkg-config-base/1.0-r1/temp/log.do_populate_sysroot_setscene.7662",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe opkg-config-base-1.0-r1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 166,
- "script_type": 2
- }
-},
-{
- "pk": 1798,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 692,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "43f22773f7acc5df6aa19aa644628a6f",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.814177",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/opkg-config-base/1.0-r1/temp/log.do_populate_lic_setscene.7677",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe opkg-config-base-1.0-r1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 167,
- "script_type": 2
- }
-},
-{
- "pk": 1799,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 2996,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e3062a4b836392711115426656923166",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.163947",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/opkg-config-base/1.0-r1/temp/log.do_package_write_rpm_setscene.7678",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe opkg-config-base-1.0-r1: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 168,
- "script_type": 2
- }
-},
-{
- "pk": 1800,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.3",
- "task_executed": true,
- "disk_io": 55344,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "77e948798971ff3d85e16498c705fd13",
- "recipe": 114,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "23.448052",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/linux-yocto/3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0/temp/log.do_package_setscene.7683",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe linux-yocto-3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 169,
- "script_type": 2
- }
-},
-{
- "pk": 1801,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 8936,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6e4c2400227d474a91b49a4a5b986687",
- "recipe": 66,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.160452",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/mpfr-native/3.1.2-r0/temp/log.do_populate_lic_setscene.7705",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe mpfr-native-3.1.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 170,
- "script_type": 2
- }
-},
-{
- "pk": 1802,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 436,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "73f375ba425571a470821b71f8c4a1d9",
- "recipe": 58,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.016909",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gmp-native/5.1.1-r0/temp/log.do_populate_lic_setscene.7717",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gmp-native-5.1.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 171,
- "script_type": 2
- }
-},
-{
- "pk": 1803,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 876,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e36e8a44f871e6ac19263842126a7ac",
- "recipe": 78,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.041154",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libmpc-native/1.0.1-r0/temp/log.do_populate_lic_setscene.7729",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libmpc-native-1.0.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 172,
- "script_type": 2
- }
-},
-{
- "pk": 1804,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1088,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "40f69deb6ee7b4344a82ab88107559cc",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.04704",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/opkg-config-base/1.0-r1/temp/log.do_packagedata_setscene.7730",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe opkg-config-base-1.0-r1: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 173,
- "script_type": 2
- }
-},
-{
- "pk": 1805,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 4712,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "35d3fb38145f284d668f31b95ce24e5f",
- "recipe": 56,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.040791",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/unifdef-native/2.6.18+git-r1/temp/log.do_populate_lic_setscene.7746",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe unifdef-native-2.6.18+git-r1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 174,
- "script_type": 2
- }
-},
-{
- "pk": 1806,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 5476,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dd10717f91f31eed3b49b6694cc98380",
- "recipe": 21,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.063556",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/opkg-config-base/1.0-r1/temp/log.do_package_setscene.7758",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe opkg-config-base-1.0-r1: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 175,
- "script_type": 2
- }
-},
-{
- "pk": 1807,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 1064,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2cffbee07de969c576bbda871ae9dcc7",
- "recipe": 60,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.068983",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/flex-native/2.5.37-r0/temp/log.do_populate_lic_setscene.7779",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe flex-native-2.5.37-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 176,
- "script_type": 2
- }
-},
-{
- "pk": 1808,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 4164,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9e79f5a2d35df2370cb8b93baad7f0f5",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.082878",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/zlib/1.2.8-r0/temp/log.do_package_write_rpm_setscene.7789",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe zlib-1.2.8-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 178,
- "script_type": 2
- }
-},
-{
- "pk": 1809,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 720,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f2e5b479001a16e5a17811a4b9fb8627",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.417615",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/bzip2-native/1.0.6-r5/temp/log.do_populate_lic_setscene.7894",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe bzip2-native-1.0.6-r5: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 186,
- "script_type": 2
- }
-},
-{
- "pk": 1810,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 4068,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e4a8c131f43788861a8c4b26b721c6cc",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.090273",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bzip2/1.0.6-r5/temp/log.do_package_write_rpm_setscene.7809",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe bzip2-1.0.6-r5: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 180,
- "script_type": 2
- }
-},
-{
- "pk": 1811,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2364,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "01c086b92e9dfd1fa49063c4d94e619b",
- "recipe": 73,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.077997",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gtk-doc-stub-native/0.0+gitAUTOINC+3dfd0a09de-r0/temp/log.do_populate_lic_setscene.7830",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gtk-doc-stub-native-0.0+gitAUTOINC+3dfd0a09de-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 181,
- "script_type": 2
- }
-},
-{
- "pk": 1812,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 860,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "82d1d32992e5e9dcc327eb5fa9a2ec23",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.014425",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libffi/3.0.13-r0/temp/log.do_populate_lic_setscene.8768",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libffi-3.0.13-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 265,
- "script_type": 2
- }
-},
-{
- "pk": 1813,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.1",
- "task_executed": true,
- "disk_io": 360,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b05f14ac987434e31e786107e3af5254",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.13512",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/util-macros/1_1.18.0-r0/temp/log.do_populate_lic_setscene.9548",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe util-macros-1_1.18.0-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 331,
- "script_type": 2
- }
-},
-{
- "pk": 1814,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 1980,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f90911fdce9ccd2463e4475b9e65eda8",
- "recipe": 97,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.069665",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libpng-native/1.6.7-r0/temp/log.do_populate_lic_setscene.7857",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libpng-native-1.6.7-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 184,
- "script_type": 2
- }
-},
-{
- "pk": 1815,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2",
- "task_executed": true,
- "disk_io": 308,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1cc0a468aa544042ec549b120119e5a8",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.76869",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/ocf-linux/20120127-r3.0/temp/log.do_populate_lic_setscene.9487",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe ocf-linux-20120127-r3.0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 325,
- "script_type": 2
- }
-},
-{
- "pk": 1816,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 944,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b412a927f18f3812ef34ff121b5cf6ba",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.116278",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/readline/6.2-r4/temp/log.do_populate_lic_setscene.9253",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe readline-6.2-r4: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 305,
- "script_type": 2
- }
-},
-{
- "pk": 1817,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 404,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b1a22b4f9fa09c5d5788689d95e688b5",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.479284",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/expat-native/2.1.0-r0/temp/log.do_populate_lic_setscene.9895",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe expat-native-2.1.0-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 360,
- "script_type": 2
- }
-},
-{
- "pk": 1818,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 5164,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e1c64d116eb05169d309d288b24f2ac1",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.553089",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/expat/2.1.0-r0/temp/log.do_package_write_rpm_setscene.7936",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe expat-2.1.0-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 189,
- "script_type": 2
- }
-},
-{
- "pk": 1819,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 4156,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "12d94164ae5b4d181d7144c6b8ee525f",
- "recipe": 67,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.482485",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/cross-localedef-native/2.18-r0/temp/log.do_populate_lic_setscene.7937",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe cross-localedef-native-2.18-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 190,
- "script_type": 2
- }
-},
-{
- "pk": 1820,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 4152,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1e20f7f197e703dfe060850670f21e22",
- "recipe": 76,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.081345",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/docbook-utils-native/0.6.14-r3/temp/log.do_populate_lic_setscene.7938",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe docbook-utils-native-0.6.14-r3: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 191,
- "script_type": 2
- }
-},
-{
- "pk": 1821,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 3096,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "32a0adb7d9fdb5a68d5283edddf56ca2",
- "recipe": 141,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.043382",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/linuxdoc-tools-native/0.9.69-r0/temp/log.do_populate_lic_setscene.7951",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe linuxdoc-tools-native-0.9.69-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 192,
- "script_type": 2
- }
-},
-{
- "pk": 1822,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.9",
- "task_executed": true,
- "disk_io": 736,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5843604688edcf4ba507d959f01251dc",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.514721",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/acl-native/2.2.52-r0/temp/log.do_populate_sysroot_setscene.11846",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe acl-native-2.2.52-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 521,
- "script_type": 2
- }
-},
-{
- "pk": 1823,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 5120,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aa7c7bcad27fb7669265029d15f5397f",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.630644",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/acl/2.2.52-r0/temp/log.do_package_write_rpm_setscene.7979",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe acl-2.2.52-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 195,
- "script_type": 2
- }
-},
-{
- "pk": 1824,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 23188,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "896123966bba489c1d98ce94f7f70ed2",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "12.892013",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/glib-2.0/1_2.38.2-r0/temp/log.do_package_write_rpm_setscene.8007",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe glib-2.0-1_2.38.2-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 197,
- "script_type": 2
- }
-},
-{
- "pk": 1825,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 1912,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4e46a60be7876154f997942bd141ab01",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.554077",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libusb-compat/1_0.1.5-r0/temp/log.do_populate_lic_setscene.8023",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libusb-compat-1_0.1.5-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 198,
- "script_type": 2
- }
-},
-{
- "pk": 1826,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 3768,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "619e4b8329653110753a019b0a496f09",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.656371",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/acl/2.2.52-r0/temp/log.do_packagedata_setscene.8049",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe acl-2.2.52-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 199,
- "script_type": 2
- }
-},
-{
- "pk": 1827,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 5916,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2c9d4a868e0ef03da2a0d9d247596043",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.710295",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libusb-compat/1_0.1.5-r0/temp/log.do_package_write_rpm_setscene.8050",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libusb-compat-1_0.1.5-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 200,
- "script_type": 2
- }
-},
-{
- "pk": 1828,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 1800,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "11bc31b7cdfa4e49470bb06b911e2931",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.029083",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/usbutils/007-r0/temp/log.do_populate_sysroot_setscene.8051",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe usbutils-007-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 201,
- "script_type": 2
- }
-},
-{
- "pk": 1829,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1344,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "120cb6c47cb363779d3aeef94c92f4dc",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.642757",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/usbutils/007-r0/temp/log.do_populate_lic_setscene.8078",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe usbutils-007-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 202,
- "script_type": 2
- }
-},
-{
- "pk": 1830,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1488,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dc29d3a902b0b79fb3ba5ba5e66c55f7",
- "recipe": 74,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.991296",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/acl/2.2.52-r0/temp/log.do_package_setscene.8079",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe acl-2.2.52-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 203,
- "script_type": 2
- }
-},
-{
- "pk": 1831,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 5272,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "67b0843ab0cd90fb3ae80d0677a0bf55",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "4.10433",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/usbutils/007-r0/temp/log.do_package_write_rpm_setscene.8098",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe usbutils-007-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 204,
- "script_type": 2
- }
-},
-{
- "pk": 1832,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 5548,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8dfa76418c5ab6dc3a93d13f09ab7f74",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "4.921868",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/pciutils/3.2.1-r0/temp/log.do_populate_sysroot_setscene.8110",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe pciutils-3.2.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 205,
- "script_type": 2
- }
-},
-{
- "pk": 1833,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1252,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "23718bf812cd264d6f110fbb18a29b59",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.356214",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/pciutils/3.2.1-r0/temp/log.do_populate_lic_setscene.8120",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe pciutils-3.2.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 206,
- "script_type": 2
- }
-},
-{
- "pk": 1834,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2268,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9cbc62d47490c2b94265832c5e0202c7",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.404183",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/usbutils/007-r0/temp/log.do_packagedata_setscene.8127",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe usbutils-007-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 207,
- "script_type": 2
- }
-},
-{
- "pk": 1835,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 3720,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5d13e59189d87970ac05431d9d7239af",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "5.028235",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/pciutils/3.2.1-r0/temp/log.do_package_write_rpm_setscene.8135",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe pciutils-3.2.1-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 208,
- "script_type": 2
- }
-},
-{
- "pk": 1836,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1700,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8e693bd0be4b2d74df90e65e6727e2a2",
- "recipe": 87,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.246352",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libxslt-native/1.1.28-r0/temp/log.do_populate_lic_setscene.8151",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libxslt-native-1.1.28-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 209,
- "script_type": 2
- }
-},
-{
- "pk": 1837,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1540,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ed71b03e63103b13d340f904360d53ad",
- "recipe": 137,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.839304",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/usbutils/007-r0/temp/log.do_package_setscene.8163",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe usbutils-007-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 210,
- "script_type": 2
- }
-},
-{
- "pk": 1838,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2080,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "316c41c726b048f1677ca80a518f50d2",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.010849",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libusb-compat/1_0.1.5-r0/temp/log.do_populate_sysroot_setscene.8196",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libusb-compat-1_0.1.5-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 212,
- "script_type": 2
- }
-},
-{
- "pk": 1839,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1052,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1820b479dd69129e8dc89b94b489f5f3",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.026986",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libusb-compat/1_0.1.5-r0/temp/log.do_packagedata_setscene.8197",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libusb-compat-1_0.1.5-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 213,
- "script_type": 2
- }
-},
-{
- "pk": 1840,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2476,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "97f460400729ee4684e10baf1eecfd09",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.414242",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/pciutils/3.2.1-r0/temp/log.do_packagedata_setscene.8198",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe pciutils-3.2.1-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 214,
- "script_type": 2
- }
-},
-{
- "pk": 1841,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 780,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fa5762f3f3438eac753fd9d0c342cd4a",
- "recipe": 19,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.884169",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libusb-compat/1_0.1.5-r0/temp/log.do_package_setscene.8218",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libusb-compat-1_0.1.5-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 215,
- "script_type": 2
- }
-},
-{
- "pk": 1842,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 14888,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b35ed745ccb9eeb9348664f94419ea90",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "15.684145",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/util-linux/2.23.2-r0/temp/log.do_package_write_rpm_setscene.8225",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe util-linux-2.23.2-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 216,
- "script_type": 2
- }
-},
-{
- "pk": 1843,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.5",
- "task_executed": true,
- "disk_io": 252,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "84d84f78083d15e3c61fd1680c314511",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.403723",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/kmod/16+gitAUTOINC+36c4bb928a-r0/temp/log.do_populate_lic_setscene.8237",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe kmod-16+gitAUTOINC+36c4bb928a-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 217,
- "script_type": 2
- }
-},
-{
- "pk": 1844,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 10940,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "78c1553b7c9a00c014606fb236c959a8",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "11.247122",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/kmod/16+gitAUTOINC+36c4bb928a-r0/temp/log.do_package_write_rpm_setscene.8249",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe kmod-16+gitAUTOINC+36c4bb928a-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 218,
- "script_type": 2
- }
-},
-{
- "pk": 1845,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 928,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "89b12eaa65873a4d77627c92a8007d2d",
- "recipe": 138,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.047454",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/pciutils/3.2.1-r0/temp/log.do_package_setscene.8265",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe pciutils-3.2.1-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 219,
- "script_type": 2
- }
-},
-{
- "pk": 1846,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 600,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b11ed2ad837d673797e9f5971fef7f43",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.023077",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/sysvinit-inittab/2.88dsf-r9/temp/log.do_populate_sysroot_setscene.8275",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe sysvinit-inittab-2.88dsf-r9: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 220,
- "script_type": 2
- }
-},
-{
- "pk": 1847,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.3",
- "task_executed": true,
- "disk_io": 488,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1f9462c8a7c62386b0bef9e7c4f9a7fb",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.318978",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/sysvinit-inittab/2.88dsf-r9/temp/log.do_populate_lic_setscene.8284",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe sysvinit-inittab-2.88dsf-r9: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 221,
- "script_type": 2
- }
-},
-{
- "pk": 1848,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 13156,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0930536004024321b75b386ae0251bf2",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "13.78477",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/kmod/16+gitAUTOINC+36c4bb928a-r0/temp/log.do_populate_sysroot_setscene.8289",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe kmod-16+gitAUTOINC+36c4bb928a-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 222,
- "script_type": 2
- }
-},
-{
- "pk": 1849,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 340,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a2a8513d48ceb91a03fc503b3f427fe9",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.472301",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/sysvinit-inittab/2.88dsf-r9/temp/log.do_package_write_rpm_setscene.8297",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe sysvinit-inittab-2.88dsf-r9: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 223,
- "script_type": 2
- }
-},
-{
- "pk": 1850,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 528,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "98709f2bbadacb38d524d332e49f66de",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.617103",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/sysvinit-inittab/2.88dsf-r9/temp/log.do_packagedata_setscene.8313",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe sysvinit-inittab-2.88dsf-r9: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 224,
- "script_type": 2
- }
-},
-{
- "pk": 1851,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1104,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d39b88a07ed9ec8a0897b2799707a129",
- "recipe": 15,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.232755",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/sysvinit-inittab/2.88dsf-r9/temp/log.do_package_setscene.8325",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe sysvinit-inittab-2.88dsf-r9: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 225,
- "script_type": 2
- }
-},
-{
- "pk": 1852,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 684,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2fbdf60cf568171b4e29ae5b19325415",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.632338",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/make/4.0-r0/temp/log.do_populate_sysroot_setscene.8332",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe make-4.0-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 226,
- "script_type": 2
- }
-},
-{
- "pk": 1853,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1280,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "156c83d994949d90665c2857c521334c",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.399267",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/make/4.0-r0/temp/log.do_populate_lic_setscene.8344",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe make-4.0-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 227,
- "script_type": 2
- }
-},
-{
- "pk": 1854,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 744,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "06a41da4555e8e1cfdf64fecfef48bc7",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.865493",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/depmodwrapper-cross/1.0-r0/temp/log.do_packagedata_setscene.8349",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe depmodwrapper-cross-1.0-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 228,
- "script_type": 2
- }
-},
-{
- "pk": 1855,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 3988,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3a0e5f843756ecb5f5c37226683ae1a4",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "4.098272",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/make/4.0-r0/temp/log.do_package_write_rpm_setscene.8366",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe make-4.0-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 229,
- "script_type": 2
- }
-},
-{
- "pk": 1856,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 564,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2578761ef47b5fcc5c6dfb2722ef2460",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.871083",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/depmodwrapper-cross/1.0-r0/temp/log.do_package_setscene.8369",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe depmodwrapper-cross-1.0-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 230,
- "script_type": 2
- }
-},
-{
- "pk": 1857,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2052,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "58c6f10d78fcb6d6398e3c4d57c0f6f3",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.179043",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gnome-desktop-testing/2013.1-r0/temp/log.do_populate_sysroot_setscene.8384",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gnome-desktop-testing-2013.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 231,
- "script_type": 2
- }
-},
-{
- "pk": 1858,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.3",
- "task_executed": true,
- "disk_io": 468,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a4448124f62e777585cb7631608e32b4",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.559993",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gnome-desktop-testing/2013.1-r0/temp/log.do_populate_lic_setscene.8396",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gnome-desktop-testing-2013.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 232,
- "script_type": 2
- }
-},
-{
- "pk": 1859,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 1564,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d279da05c5167413d2f3e1936f1ecd1b",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.991301",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gnome-desktop-testing/2013.1-r0/temp/log.do_package_write_rpm_setscene.8404",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe gnome-desktop-testing-2013.1-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 233,
- "script_type": 2
- }
-},
-{
- "pk": 1860,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 1316,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8cd79342e95a6976e98b6678b2fd60c7",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.946073",
- "logfile": "/home/andreea/poky/build/tmp/work/all-poky-linux/tzdata/2013i-r0/temp/log.do_populate_sysroot_setscene.8420",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe tzdata-2013i-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 234,
- "script_type": 2
- }
-},
-{
- "pk": 1861,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.3",
- "task_executed": true,
- "disk_io": 280,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1a21c52051534e94eb9674edd6551f4b",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.960994",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/kmod/16+gitAUTOINC+36c4bb928a-r0/temp/log.do_packagedata_setscene.8432",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe kmod-16+gitAUTOINC+36c4bb928a-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 235,
- "script_type": 2
- }
-},
-{
- "pk": 1862,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 8620,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bce990a21a6c305a84dfbd6fb643baa6",
- "recipe": 48,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "8.610585",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/kmod/16+gitAUTOINC+36c4bb928a-r0/temp/log.do_package_setscene.8444",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe kmod-16+gitAUTOINC+36c4bb928a-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 236,
- "script_type": 2
- }
-},
-{
- "pk": 1863,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 692,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b6a3389dc3a5a00dce8b22ed01daffeb",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.77916",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gnome-desktop-testing/2013.1-r0/temp/log.do_packagedata_setscene.8461",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe gnome-desktop-testing-2013.1-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 237,
- "script_type": 2
- }
-},
-{
- "pk": 1864,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 820,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0818b53b3f39d13973329654b107263f",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.440515",
- "logfile": "/home/andreea/poky/build/tmp/work/all-poky-linux/tzdata/2013i-r0/temp/log.do_populate_lic_setscene.8462",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe tzdata-2013i-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 238,
- "script_type": 2
- }
-},
-{
- "pk": 1865,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 1028,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f2739fa413c42b075b48c3a6bca52caf",
- "recipe": 139,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.373546",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gnome-desktop-testing/2013.1-r0/temp/log.do_package_setscene.8482",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe gnome-desktop-testing-2013.1-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 239,
- "script_type": 2
- }
-},
-{
- "pk": 1866,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1384,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "348e82cb9b102fea20f72bf28b7dd7d1",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.12067",
- "logfile": "/home/andreea/poky/build/tmp/work/all-poky-linux/tzdata/2013i-r0/temp/log.do_package_write_rpm_setscene.8492",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe tzdata-2013i-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 240,
- "script_type": 2
- }
-},
-{
- "pk": 1867,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 684,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "542dad36ed379cdc1f193cc9cd1bc1fb",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.869284",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/python-pygobject-native/2.27.91-r6/temp/log.do_populate_lic_setscene.8926",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe python-pygobject-native-2.27.91-r6: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 277,
- "script_type": 2
- }
-},
-{
- "pk": 1868,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 720,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f548d7a7a9132a4cf7c7ac1c352198e0",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.321697",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python-pygobject/2.27.91-r6/temp/log.do_package_write_rpm_setscene.8520",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe python-pygobject-2.27.91-r6: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 242,
- "script_type": 2
- }
-},
-{
- "pk": 1869,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.5",
- "task_executed": true,
- "disk_io": 300,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c86bcdec5bf2a58abc35247f4e110977",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.037087",
- "logfile": "/home/andreea/poky/build/tmp/work/all-poky-linux/tzdata/2013i-r0/temp/log.do_packagedata_setscene.8521",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe tzdata-2013i-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 243,
- "script_type": 2
- }
-},
-{
- "pk": 1870,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2",
- "task_executed": true,
- "disk_io": 1480,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2d6f7ab6ff3de1c0e3a8978143f201d6",
- "recipe": 95,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.581128",
- "logfile": "/home/andreea/poky/build/tmp/work/all-poky-linux/tzdata/2013i-r0/temp/log.do_package_setscene.8549",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe tzdata-2013i-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 244,
- "script_type": 2
- }
-},
-{
- "pk": 1871,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.5",
- "task_executed": true,
- "disk_io": 180,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1949cbccdfb6b83f1ce484978d775cda",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.262434",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python-dbus/1.2.0-r0/temp/log.do_populate_sysroot_setscene.8555",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe python-dbus-1.2.0-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 245,
- "script_type": 2
- }
-},
-{
- "pk": 1872,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 460,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3db9a2fa4a8298cb889f758b922ab4ee",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.544699",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python-dbus/1.2.0-r0/temp/log.do_populate_lic_setscene.8556",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe python-dbus-1.2.0-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 246,
- "script_type": 2
- }
-},
-{
- "pk": 1873,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 932,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "90f0dcf2b86e552981c68dc8b4fb905e",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.020186",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python-dbus/1.2.0-r0/temp/log.do_package_write_rpm_setscene.8576",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe python-dbus-1.2.0-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 247,
- "script_type": 2
- }
-},
-{
- "pk": 1874,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 40872,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d244b15220e716bcd90274445d940b0d",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "41.004005",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/db/5.3.21-r0/temp/log.do_package_write_rpm_setscene.8596",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe db-5.3.21-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 249,
- "script_type": 2
- }
-},
-{
- "pk": 1875,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 524,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "af2494a1ecaf8a91ce7fe2c5b65405a9",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.87622",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gdbm/1.11-r0/temp/log.do_populate_lic_setscene.8608",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe gdbm-1.11-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 250,
- "script_type": 2
- }
-},
-{
- "pk": 1876,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2460,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5757a78b1ef939ecc7a3d1832ea5a673",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.011911",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gdbm/1.11-r0/temp/log.do_package_write_rpm_setscene.8617",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe gdbm-1.11-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 251,
- "script_type": 2
- }
-},
-{
- "pk": 1877,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.8",
- "task_executed": true,
- "disk_io": 616,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fde2656ce8769be29216e882142e33cc",
- "recipe": 65,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.745103",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/openjade-native/1.3.2-r5/temp/log.do_populate_lic_setscene.8632",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe openjade-native-1.3.2-r5: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 252,
- "script_type": 2
- }
-},
-{
- "pk": 1878,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 472,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "888c3de58a2fc14d92e8c4b2dc530754",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.634001",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python-dbus/1.2.0-r0/temp/log.do_packagedata_setscene.8637",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe python-dbus-1.2.0-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 253,
- "script_type": 2
- }
-},
-{
- "pk": 1879,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 596,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e4328fb23c88eeca59d83fed152b9d4b",
- "recipe": 103,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.68078",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/sgmlspl-native/1.03ii-r3/temp/log.do_populate_lic_setscene.8661",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe sgmlspl-native-1.03ii-r3: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 254,
- "script_type": 2
- }
-},
-{
- "pk": 1880,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1976,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fdbe7567865535fd7af0a8a876656e92",
- "recipe": 22,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.088075",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python-dbus/1.2.0-r0/temp/log.do_package_setscene.8662",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe python-dbus-1.2.0-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 255,
- "script_type": 2
- }
-},
-{
- "pk": 1881,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.8",
- "task_executed": true,
- "disk_io": 364,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3449ddf9d259ac98ec0ed8cedaa8641d",
- "recipe": 31,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.465792",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/docbook-dsssl-stylesheets-native/1.79-r4/temp/log.do_populate_lic_setscene.8680",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe docbook-dsssl-stylesheets-native-1.79-r4: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 256,
- "script_type": 2
- }
-},
-{
- "pk": 1882,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 812,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "44680af9e2dc2a887ae34c20652ecf3c",
- "recipe": 14,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.925757",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/docbook-sgml-dtd-3.1-native/3.1-r3.0/temp/log.do_populate_lic_setscene.8693",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe docbook-sgml-dtd-3.1-native-3.1-r3.0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 257,
- "script_type": 2
- }
-},
-{
- "pk": 1883,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.1",
- "task_executed": true,
- "disk_io": 204,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cd4d3f3aaa76b71722d34cff70767b99",
- "recipe": 53,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.361293",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/groff-native/1.22.2-r1/temp/log.do_populate_lic_setscene.8705",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe groff-native-1.22.2-r1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 258,
- "script_type": 2
- }
-},
-{
- "pk": 1884,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.3",
- "task_executed": true,
- "disk_io": 436,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2fbc1af6f15f6642a30ca9eaddd6eb82",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.692847",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/attr-native/2.4.47-r0/temp/log.do_populate_sysroot_setscene.11969",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe attr-native-2.4.47-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 528,
- "script_type": 2
- }
-},
-{
- "pk": 1885,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1396,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b2c2bb33661d6fa96b94f3b6fd5672df",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.536689",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/attr/2.4.47-r0/temp/log.do_package_write_rpm_setscene.8727",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe attr-2.4.47-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 261,
- "script_type": 2
- }
-},
-{
- "pk": 1886,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1660,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "48fee8e6343d214de4c917cad7bc08e2",
- "recipe": 64,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.203817",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/alsa-lib-native/1.0.27.2-r0/temp/log.do_populate_sysroot_setscene.8747",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe alsa-lib-native-1.0.27.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 262,
- "script_type": 2
- }
-},
-{
- "pk": 1887,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1548,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b273336ad7c5eae87ef53073c263c473",
- "recipe": 108,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.12436",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/pixman-native/1_0.32.4-r0/temp/log.do_populate_sysroot_setscene.8748",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe pixman-native-1_0.32.4-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 263,
- "script_type": 2
- }
-},
-{
- "pk": 1888,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 912,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1298e11d891e3a58dda0720ac5f1cf68",
- "recipe": 30,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.094888",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/dtc-native/1.4.0+gitAUTOINC+65cc4d2748-r0/temp/log.do_populate_sysroot_setscene.8756",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe dtc-native-1.4.0+gitAUTOINC+65cc4d2748-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 264,
- "script_type": 2
- }
-},
-{
- "pk": 1889,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 600,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a6a65b873702ade08c43801366a87182",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.029659",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/attr/2.4.47-r0/temp/log.do_packagedata_setscene.8795",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe attr-2.4.47-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 266,
- "script_type": 2
- }
-},
-{
- "pk": 1890,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 612,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "88a542550b0395c79e3aa09c734aa89f",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.029153",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libffi/3.0.13-r0/temp/log.do_package_write_rpm_setscene.8796",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libffi-3.0.13-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 267,
- "script_type": 2
- }
-},
-{
- "pk": 1891,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 876,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2b96457b27f9d2c4f92caf29e71ad655",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.053174",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libusb1/1.0.9-r1/temp/log.do_populate_sysroot_setscene.8804",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libusb1-1.0.9-r1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 268,
- "script_type": 2
- }
-},
-{
- "pk": 1892,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.1",
- "task_executed": true,
- "disk_io": 204,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ccb4cb9e0a91c079b1bae615d1b52c8f",
- "recipe": 97,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.212929",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libpng-native/1.6.7-r0/temp/log.do_populate_sysroot_setscene.8846",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libpng-native-1.6.7-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 269,
- "script_type": 2
- }
-},
-{
- "pk": 1893,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 484,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f70e063614c551445865f87f465d2be2",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.218987",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libusb1/1.0.9-r1/temp/log.do_populate_lic_setscene.8847",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libusb1-1.0.9-r1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 270,
- "script_type": 2
- }
-},
-{
- "pk": 1894,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 580,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "86da52eeab183019b8dbe44df3ce0135",
- "recipe": 91,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.712344",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/attr/2.4.47-r0/temp/log.do_package_setscene.8855",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe attr-2.4.47-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 271,
- "script_type": 2
- }
-},
-{
- "pk": 1895,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 620,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6dc97aec18a98f155404bc3601308c5a",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.402493",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libusb1/1.0.9-r1/temp/log.do_package_write_rpm_setscene.8856",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libusb1-1.0.9-r1: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 272,
- "script_type": 2
- }
-},
-{
- "pk": 1896,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.3",
- "task_executed": true,
- "disk_io": 280,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a9c2fd450861dd96ac7e1303fd40542",
- "recipe": 13,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.314951",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/tzcode-native/2013i-r0/temp/log.do_populate_sysroot_setscene.8874",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe tzcode-native-2013i-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 273,
- "script_type": 2
- }
-},
-{
- "pk": 1897,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "7.7",
- "task_executed": true,
- "disk_io": 84,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b35ed745ccb9eeb9348664f94419ea90",
- "recipe": 13,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.20061",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/tzcode-native/2013i-r0/temp/log.do_populate_lic_setscene.8905",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe tzcode-native-2013i-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 274,
- "script_type": 2
- }
-},
-{
- "pk": 1898,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 872,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62416ff7b773b45d6e47320e243236fe",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.072039",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python/2.7.3-r0.3/temp/log.do_populate_lic_setscene.8906",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe python-2.7.3-r0.3: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 275,
- "script_type": 2
- }
-},
-{
- "pk": 1899,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 23016,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "31c38861c3adc182470dcbb7fe419b1d",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "23.212857",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python/2.7.3-r0.3/temp/log.do_package_write_rpm_setscene.8925",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe python-2.7.3-r0.3: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 276,
- "script_type": 2
- }
-},
-{
- "pk": 1900,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 688,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "633a29fe66385aa6cc9915a339d17222",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.878912",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libusb1/1.0.9-r1/temp/log.do_packagedata_setscene.8938",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libusb1-1.0.9-r1: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 278,
- "script_type": 2
- }
-},
-{
- "pk": 1901,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 676,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "086fa41da1932c7bc24624f0ff14951c",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.855204",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/dbus-native/1.6.18-r0/temp/log.do_populate_lic_setscene.9783",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe dbus-native-1.6.18-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 351,
- "script_type": 2
- }
-},
-{
- "pk": 1902,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 5336,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a9c2fd450861dd96ac7e1303fd40542",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "5.447104",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus/1.6.18-r0/temp/log.do_package_write_rpm_setscene.8982",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe dbus-1.6.18-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 280,
- "script_type": 2
- }
-},
-{
- "pk": 1903,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.3",
- "task_executed": true,
- "disk_io": 280,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "18e0aa9cc981f5c2a30a2a9a40f5a908",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.783189",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/dbus-glib-native/0.100.2-r0/temp/log.do_populate_lic_setscene.9486",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe dbus-glib-native-0.100.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 324,
- "script_type": 2
- }
-},
-{
- "pk": 1904,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 828,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cc02309fa08b32925a49d2f93c6ea871",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.915325",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus-glib/0.100.2-r0/temp/log.do_package_write_rpm_setscene.8987",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe dbus-glib-0.100.2-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 282,
- "script_type": 2
- }
-},
-{
- "pk": 1905,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 3320,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "67bd7a9a281bc1b05ed2fea16699118d",
- "recipe": 84,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.428785",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libusb1/1.0.9-r1/temp/log.do_package_setscene.8988",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libusb1-1.0.9-r1: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 283,
- "script_type": 2
- }
-},
-{
- "pk": 1906,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 1048,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1d5248c063c067e7bb8667b8fada1196",
- "recipe": 131,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.13815",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/python-pyrex-native/0.9.9-r3/temp/log.do_populate_sysroot_setscene.9015",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe python-pyrex-native-0.9.9-r3: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 284,
- "script_type": 2
- }
-},
-{
- "pk": 1907,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 796,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8a6b043eafa88b665987dca383d9558b",
- "recipe": 131,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.032327",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/python-pyrex-native/0.9.9-r3/temp/log.do_populate_lic_setscene.9023",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe python-pyrex-native-0.9.9-r3: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 285,
- "script_type": 2
- }
-},
-{
- "pk": 1908,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 732,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "30baf1fd424c8987f64caa4292c776f8",
- "recipe": 86,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.873839",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/sgml-common-native/0.6.3-r1/temp/log.do_populate_lic_setscene.9039",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe sgml-common-native-0.6.3-r1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 286,
- "script_type": 2
- }
-},
-{
- "pk": 1909,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 6028,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1b4b4e54965c1757e197fd0ca99f817c",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "6.155276",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/openssl/1.0.1e-r15.0/temp/log.do_package_write_rpm_setscene.9063",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe openssl-1.0.1e-r15.0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 288,
- "script_type": 2
- }
-},
-{
- "pk": 1910,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 20548,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c706b631c936e07aae059b6c128c47a6",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "21.139611",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus-ptest/1.6.18-r0/temp/log.do_populate_sysroot_setscene.9072",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe dbus-ptest-1.6.18-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 289,
- "script_type": 2
- }
-},
-{
- "pk": 1911,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1532,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "47f9afc145d17eed9373ffccca756cd7",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.714361",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus-ptest/1.6.18-r0/temp/log.do_populate_lic_setscene.9081",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe dbus-ptest-1.6.18-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 290,
- "script_type": 2
- }
-},
-{
- "pk": 1912,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 12940,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cbeef42a447ead19123f38258d7be781",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "13.053489",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus-ptest/1.6.18-r0/temp/log.do_package_write_rpm_setscene.9093",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe dbus-ptest-1.6.18-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 291,
- "script_type": 2
- }
-},
-{
- "pk": 1913,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 804,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f403383a7c27b763a298f5e7ed958eb0",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.92701",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/initscripts/1.0-r141/temp/log.do_packagedata_setscene.9105",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe initscripts-1.0-r141: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 292,
- "script_type": 2
- }
-},
-{
- "pk": 1914,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 520,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d848607c544b2548b430d93a4be8d420",
- "recipe": 113,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.677251",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/initscripts/1.0-r141/temp/log.do_package_setscene.9117",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe initscripts-1.0-r141: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 293,
- "script_type": 2
- }
-},
-{
- "pk": 1915,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 780,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2d8a97907a0e3e4ebccbe2485078db72",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.938717",
- "logfile": "/home/andreea/poky/build/tmp/work/all-poky-linux/update-rc.d/0.7-r5/temp/log.do_packagedata_setscene.9124",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe update-rc.d-0.7-r5: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 294,
- "script_type": 2
- }
-},
-{
- "pk": 1916,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.8",
- "task_executed": true,
- "disk_io": 2832,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "89a4d72ab29e322e5995a979b563f5b7",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.994842",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc-locale/2.18-r0/temp/log.do_packagedata_setscene.9132",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe eglibc-locale-2.18-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 295,
- "script_type": 2
- }
-},
-{
- "pk": 1917,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 604,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0041c2407a95b1481e59bd30c60cdb62",
- "recipe": 57,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.731507",
- "logfile": "/home/andreea/poky/build/tmp/work/all-poky-linux/update-rc.d/0.7-r5/temp/log.do_package_setscene.9148",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe update-rc.d-0.7-r5: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 296,
- "script_type": 2
- }
-},
-{
- "pk": 1918,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 1120,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "95bd8f973e352c5302acc9c2f80a8be3",
- "recipe": 80,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.267907",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/depmodwrapper-cross/1.0-r0/temp/log.do_populate_sysroot_setscene.9169",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe depmodwrapper-cross-1.0-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 297,
- "script_type": 2
- }
-},
-{
- "pk": 1919,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.9",
- "task_executed": true,
- "disk_io": 332,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75845664b79dfbae5c155593bdf79983",
- "recipe": 59,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.503131",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/kern-tools-native/0.2+gitAUTOINC+a42509b01c-r12/temp/log.do_populate_sysroot_setscene.9170",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe kern-tools-native-0.2+gitAUTOINC+a42509b01c-r12: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 298,
- "script_type": 2
- }
-},
-{
- "pk": 1920,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 952,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fdc167d77e06c1b5cc9e45cf2add838b",
- "recipe": 25,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.108976",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/bc-native/1.06-r2/temp/log.do_populate_sysroot_setscene.9182",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe bc-native-1.06-r2: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 299,
- "script_type": 2
- }
-},
-{
- "pk": 1921,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 3404,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "70e315ae93cd2ef324045e4d3c5c9cfe",
- "recipe": 52,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.413183",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/kmod-native/16+gitAUTOINC+36c4bb928a-r0/temp/log.do_populate_sysroot_setscene.9198",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe kmod-native-16+gitAUTOINC+36c4bb928a-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 300,
- "script_type": 2
- }
-},
-{
- "pk": 1922,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 800,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ad9fe406f5cdf2713179566255767db6",
- "recipe": 16,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.942573",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/opensp-native/1.5.2-r1/temp/log.do_populate_lic_setscene.9217",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe opensp-native-1.5.2-r1: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 301,
- "script_type": 2
- }
-},
-{
- "pk": 1923,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 748,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dcc8d6b25fc80d1accbe3faf73281610",
- "recipe": 85,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.882753",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/unzip-native/1_6.0-r4/temp/log.do_populate_lic_setscene.9218",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe unzip-native-1_6.0-r4: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 302,
- "script_type": 2
- }
-},
-{
- "pk": 1924,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 56928,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5140f625bd4da561d1383fa78be522e0",
- "recipe": 110,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "57.0331",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc-locale/2.18-r0/temp/log.do_package_setscene.9223",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe eglibc-locale-2.18-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 303,
- "script_type": 2
- }
-},
-{
- "pk": 1925,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.7",
- "task_executed": true,
- "disk_io": 368,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f7f2bee4f22767113ca4b7c7d064b98a",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.636416",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xproto/1_7.0.25-r0/temp/log.do_populate_lic_setscene.9576",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe xproto-1_7.0.25-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 333,
- "script_type": 2
- }
-},
-{
- "pk": 1926,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.1",
- "task_executed": true,
- "disk_io": 4780,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a0e28620d5144cac28e54d0397c2a010",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "5.185214",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/readline/6.2-r4/temp/log.do_package_write_rpm_setscene.9269",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe readline-6.2-r4: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 306,
- "script_type": 2
- }
-},
-{
- "pk": 1927,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 6312,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1c7b2d24b8fe6b05b0894fe7e55dcf9c",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "6.468464",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/sqlite3/3080002-r0/temp/log.do_package_write_rpm_setscene.9297",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe sqlite3-3080002-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 308,
- "script_type": 2
- }
-},
-{
- "pk": 1928,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 680,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9d2ec8b76a7b94b79fd109cd550d10fa",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.082057",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/shadow/4.1.4.3-r13/temp/log.do_populate_sysroot_setscene.10258",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe shadow-4.1.4.3-r13: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 385,
- "script_type": 2
- }
-},
-{
- "pk": 1929,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 416,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7841493c3246486c6a6f438a59d54c98",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.545116",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/shadow/4.1.4.3-r13/temp/log.do_populate_lic_setscene.9406",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe shadow-4.1.4.3-r13: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 318,
- "script_type": 2
- }
-},
-{
- "pk": 1930,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.7",
- "task_executed": true,
- "disk_io": 580,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2081b8d3f2244d10d2e0ca00a569ccdc",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.70847",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/make/4.0-r0/temp/log.do_packagedata_setscene.9325",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe make-4.0-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 311,
- "script_type": 2
- }
-},
-{
- "pk": 1931,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 1292,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "09f9e21e1568853386365ec6f1f05bbd",
- "recipe": 122,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.718582",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/make/4.0-r0/temp/log.do_package_setscene.9345",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe make-4.0-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 312,
- "script_type": 2
- }
-},
-{
- "pk": 1932,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.8",
- "task_executed": true,
- "disk_io": 492,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c0745bcfd1112086051f09d5533977d1",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.692543",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus-ptest/1.6.18-r0/temp/log.do_packagedata_setscene.9355",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe dbus-ptest-1.6.18-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 313,
- "script_type": 2
- }
-},
-{
- "pk": 1933,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 772,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8bf7d5bfd2e706ff0126477d0f1619bd",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.876785",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/shadow-sysroot/4.1.4.3-r3/temp/log.do_populate_sysroot_setscene.9378",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe shadow-sysroot-4.1.4.3-r3: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 314,
- "script_type": 2
- }
-},
-{
- "pk": 1934,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 12588,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "85ac38dafba9c05fb519a0b7c9e11ed9",
- "recipe": 133,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "12.641789",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus-ptest/1.6.18-r0/temp/log.do_package_setscene.9379",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe dbus-ptest-1.6.18-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 315,
- "script_type": 2
- }
-},
-{
- "pk": 1935,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 448,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "45cb5fa6075d3dbadcd286c45b1df8e4",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.582228",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/shadow-sysroot/4.1.4.3-r3/temp/log.do_populate_lic_setscene.9404",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe shadow-sysroot-4.1.4.3-r3: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 316,
- "script_type": 2
- }
-},
-{
- "pk": 1936,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 432,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3dfa261d57ff9245590601c2e9fb0c36",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.526187",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/shadow-sysroot/4.1.4.3-r3/temp/log.do_package_write_rpm_setscene.9405",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe shadow-sysroot-4.1.4.3-r3: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 317,
- "script_type": 2
- }
-},
-{
- "pk": 1937,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 3216,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9d3c570acabc4f37e32b98c2dca32abd",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.370603",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/shadow/4.1.4.3-r13/temp/log.do_package_write_rpm_setscene.9429",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe shadow-4.1.4.3-r13: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 319,
- "script_type": 2
- }
-},
-{
- "pk": 1938,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.3",
- "task_executed": true,
- "disk_io": 496,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7d4fb07e08f5ac371a6c143fd069d202",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.601293",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libx11/1_1.6.2-r0/temp/log.do_populate_lic_setscene.9434",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libx11-1_1.6.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 320,
- "script_type": 2
- }
-},
-{
- "pk": 1939,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 6664,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "63d0fadf726972eb2a1919f0cfa33f14",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "6.742712",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libx11/1_1.6.2-r0/temp/log.do_package_write_rpm_setscene.9435",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libx11-1_1.6.2-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 321,
- "script_type": 2
- }
-},
-{
- "pk": 1940,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1176,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "73a430df0a4b5afd961ce8915d0d7b08",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.285571",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libsm/1_1.2.2-r0/temp/log.do_populate_lic_setscene.9455",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libsm-1_1.2.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 322,
- "script_type": 2
- }
-},
-{
- "pk": 1941,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 764,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e3fc3299d4d414b3f9732633bae7495d",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.882742",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libsm/1_1.2.2-r0/temp/log.do_package_write_rpm_setscene.9467",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libsm-1_1.2.2-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 323,
- "script_type": 2
- }
-},
-{
- "pk": 1942,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.9",
- "task_executed": true,
- "disk_io": 268,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2fd86de8adc7ee8efb5388e8d619b78f",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.591209",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/ocf-linux/20120127-r3.0/temp/log.do_package_write_rpm_setscene.9517",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe ocf-linux-20120127-r3.0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 326,
- "script_type": 2
- }
-},
-{
- "pk": 1943,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.3",
- "task_executed": true,
- "disk_io": 120,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f7088eb2d615efd869cc4be49a02719b",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.099609",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/shadow-securetty/4.1.4.3-r2/temp/log.do_populate_sysroot_setscene.9518",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe shadow-securetty-4.1.4.3-r2: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 327,
- "script_type": 2
- }
-},
-{
- "pk": 1944,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.4",
- "task_executed": true,
- "disk_io": 260,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "928e46976a379ce73e38098e8b42f78e",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.556214",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/shadow-securetty/4.1.4.3-r2/temp/log.do_populate_lic_setscene.9519",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe shadow-securetty-4.1.4.3-r2: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 328,
- "script_type": 2
- }
-},
-{
- "pk": 1945,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.7",
- "task_executed": true,
- "disk_io": 188,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7b155163be939e1505f65757a3e90e71",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.672938",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/shadow-securetty/4.1.4.3-r2/temp/log.do_package_write_rpm_setscene.9532",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe shadow-securetty-4.1.4.3-r2: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 329,
- "script_type": 2
- }
-},
-{
- "pk": 1946,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "8.5",
- "task_executed": true,
- "disk_io": 76,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8119fd1b77dd6e246b3d78a9e4bf69b5",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.235089",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xcb-proto/1.9-r0/temp/log.do_populate_lic_setscene.9795",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe xcb-proto-1.9-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 352,
- "script_type": 2
- }
-},
-{
- "pk": 1947,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 308,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c6087dce81e358f86e9b5e6c5fed430b",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.386668",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/util-macros/1_1.18.0-r0/temp/log.do_package_write_rpm_setscene.9564",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe util-macros-1_1.18.0-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 332,
- "script_type": 2
- }
-},
-{
- "pk": 1948,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 484,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f238d6ef4e65f712588dc5fdea8a17d2",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.850326",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xproto/1_7.0.25-r0/temp/log.do_package_write_rpm_setscene.9592",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe xproto-1_7.0.25-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 334,
- "script_type": 2
- }
-},
-{
- "pk": 1949,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.9",
- "task_executed": true,
- "disk_io": 452,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75a346fb0044bfa85658fc5c12e2ed9f",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.617312",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/shadow-securetty/4.1.4.3-r2/temp/log.do_packagedata_setscene.9596",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe shadow-securetty-4.1.4.3-r2: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 335,
- "script_type": 2
- }
-},
-{
- "pk": 1950,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.7",
- "task_executed": true,
- "disk_io": 184,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e4c9343e9514b54c370951c423bc9fa3",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.342354",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xextproto/1_7.2.1-r0/temp/log.do_populate_lic_setscene.9616",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe xextproto-1_7.2.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 336,
- "script_type": 2
- }
-},
-{
- "pk": 1951,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.5",
- "task_executed": true,
- "disk_io": 144,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a2a1b45b946ad5a972a2a6f316139c10",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.340253",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xextproto/1_7.2.1-r0/temp/log.do_package_write_rpm_setscene.9635",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe xextproto-1_7.2.1-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 337,
- "script_type": 2
- }
-},
-{
- "pk": 1952,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.5",
- "task_executed": true,
- "disk_io": 180,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "28c251a1b359ddb67d952c9eabca6306",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.272025",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xtrans/1_1.3.2-r0/temp/log.do_populate_lic_setscene.9636",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe xtrans-1_1.3.2-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 338,
- "script_type": 2
- }
-},
-{
- "pk": 1953,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "7.5",
- "task_executed": true,
- "disk_io": 88,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aac5cd877073f7fec34d74a1cfe3d04c",
- "recipe": 105,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.333125",
- "logfile": "/home/andreea/poky/build/tmp/work/qemux86-poky-linux/shadow-securetty/4.1.4.3-r2/temp/log.do_package_setscene.9644",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe shadow-securetty-4.1.4.3-r2: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 339,
- "script_type": 2
- }
-},
-{
- "pk": 1954,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.7",
- "task_executed": true,
- "disk_io": 140,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "736ca236cca629adcc953c6d9114d31c",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.148503",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xtrans/1_1.3.2-r0/temp/log.do_package_write_rpm_setscene.9654",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe xtrans-1_1.3.2-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 340,
- "script_type": 2
- }
-},
-{
- "pk": 1955,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1352,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "be11f4e43964cbb89b9fe1bcd5de57d7",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.561901",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxcb/1.9.3-r0/temp/log.do_populate_lic_setscene.9675",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libxcb-1.9.3-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 341,
- "script_type": 2
- }
-},
-{
- "pk": 1956,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 3348,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dea0cce5fb77c8154946cbdeba0fb71b",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.472118",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxcb/1.9.3-r0/temp/log.do_package_write_rpm_setscene.9693",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libxcb-1.9.3-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 342,
- "script_type": 2
- }
-},
-{
- "pk": 1957,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2",
- "task_executed": true,
- "disk_io": 308,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7103fed45807c149684f9d909b41d7a2",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.421856",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/kbproto/1_1.0.6-r0/temp/log.do_populate_lic_setscene.9694",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe kbproto-1_1.0.6-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 343,
- "script_type": 2
- }
-},
-{
- "pk": 1958,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2184,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8304051c63d64748a7966c4fa3ddf7d2",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.338589",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/kbproto/1_1.0.6-r0/temp/log.do_package_write_rpm_setscene.9695",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe kbproto-1_1.0.6-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 344,
- "script_type": 2
- }
-},
-{
- "pk": 1959,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 868,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d535de25c70ac6cc21fc9498fd2e5d1d",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.015249",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/inputproto/1_2.3-r0/temp/log.do_populate_lic_setscene.9718",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe inputproto-1_2.3-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 345,
- "script_type": 2
- }
-},
-{
- "pk": 1960,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.8",
- "task_executed": true,
- "disk_io": 352,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8acfde2a8f32f39bb058194a585e0a31",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.762723",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/inputproto/1_2.3-r0/temp/log.do_package_write_rpm_setscene.9738",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe inputproto-1_2.3-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 346,
- "script_type": 2
- }
-},
-{
- "pk": 1961,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.8",
- "task_executed": true,
- "disk_io": 344,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1655a5aaab1f6b932aba789660df7280",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.430793",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libice/1_1.0.8-r0/temp/log.do_populate_lic_setscene.9739",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libice-1_1.0.8-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 347,
- "script_type": 2
- }
-},
-{
- "pk": 1962,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 352,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "83beaec02d086c80ad748667f964122e",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.471583",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libice/1_1.0.8-r0/temp/log.do_package_write_rpm_setscene.9755",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libice-1_1.0.8-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 348,
- "script_type": 2
- }
-},
-{
- "pk": 1963,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 1292,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3fef4bbb60da9c5bbd3eb7ffa1c54eb6",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.569186",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/e2fsprogs/1.42.9-r0/temp/log.do_package_write_rpm_setscene.9775",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe e2fsprogs-1.42.9-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 350,
- "script_type": 2
- }
-},
-{
- "pk": 1964,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 808,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "41ee3cb916a2b488ad65a9fe3db454f6",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.940694",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xcb-proto/1.9-r0/temp/log.do_package_write_rpm_setscene.9803",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe xcb-proto-1.9-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 353,
- "script_type": 2
- }
-},
-{
- "pk": 1965,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 460,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fdfa0d3023b14412845beb5af1be2d90",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.605148",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxau/1_1.0.8-r0/temp/log.do_populate_lic_setscene.9823",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libxau-1_1.0.8-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 354,
- "script_type": 2
- }
-},
-{
- "pk": 1966,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 440,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d0d38b1f133fcb1ef0589b20cd82e1b6",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.650455",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxau/1_1.0.8-r0/temp/log.do_package_write_rpm_setscene.9839",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libxau-1_1.0.8-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 355,
- "script_type": 2
- }
-},
-{
- "pk": 1967,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.9",
- "task_executed": true,
- "disk_io": 388,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d9a14694e929ebce715b681e39554950",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.610175",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libpthread-stubs/0.3-r0/temp/log.do_populate_lic_setscene.9847",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libpthread-stubs-0.3-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 356,
- "script_type": 2
- }
-},
-{
- "pk": 1968,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.4",
- "task_executed": true,
- "disk_io": 216,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ea940c3bd76602d12a8b964c9acf9721",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.474014",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libpthread-stubs/0.3-r0/temp/log.do_package_write_rpm_setscene.9863",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libpthread-stubs-0.3-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 357,
- "script_type": 2
- }
-},
-{
- "pk": 1969,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.1",
- "task_executed": true,
- "disk_io": 248,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8461a5dda28341c1f93a509eb7713005",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.460542",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxdmcp/1_1.1.1-r0/temp/log.do_populate_lic_setscene.9871",
- "build": 1,
- "task_name": "do_populate_lic_setscene",
- "message": "recipe libxdmcp-1_1.1.1-r0: task do_populate_lic_setscene: Succeeded",
- "outcome": 0,
- "order": 358,
- "script_type": 2
- }
-},
-{
- "pk": 1970,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 844,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f80e88ad3667a5cf3629965a11eb6d86",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.079708",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxdmcp/1_1.1.1-r0/temp/log.do_package_write_rpm_setscene.9887",
- "build": 1,
- "task_name": "do_package_write_rpm_setscene",
- "message": "recipe libxdmcp-1_1.1.1-r0: task do_package_write_rpm_setscene: Succeeded",
- "outcome": 0,
- "order": 359,
- "script_type": 2
- }
-},
-{
- "pk": 1971,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 1720,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b11ed2ad837d673797e9f5971fef7f43",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.899235",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/python-pygobject-native/2.27.91-r6/temp/log.do_populate_sysroot_setscene.10013",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe python-pygobject-native-2.27.91-r6: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 371,
- "script_type": 2
- }
-},
-{
- "pk": 1972,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "8.1",
- "task_executed": true,
- "disk_io": 84,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e0673a29a2ea40a41f199a9316b10365",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.218697",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python-pygobject/2.27.91-r6/temp/log.do_packagedata_setscene.9941",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe python-pygobject-2.27.91-r6: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 362,
- "script_type": 2
- }
-},
-{
- "pk": 1973,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 760,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dec408ae40bd8508648fbacb00707b90",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.898293",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/dbus-glib-native/0.100.2-r0/temp/log.do_populate_sysroot_setscene.10110",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe dbus-glib-native-0.100.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 377,
- "script_type": 2
- }
-},
-{
- "pk": 1974,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "7.8",
- "task_executed": true,
- "disk_io": 144,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "33f3be58d515eada375a57e1d2c2d74f",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.492821",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus-glib/0.100.2-r0/temp/log.do_packagedata_setscene.9943",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe dbus-glib-0.100.2-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 364,
- "script_type": 2
- }
-},
-{
- "pk": 1975,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.2",
- "task_executed": true,
- "disk_io": 684,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f77726e0e8fff62242517dd5765f6451",
- "recipe": 63,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.914033",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python-pygobject/2.27.91-r6/temp/log.do_package_setscene.9970",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe python-pygobject-2.27.91-r6: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 365,
- "script_type": 2
- }
-},
-{
- "pk": 1976,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.4",
- "task_executed": true,
- "disk_io": 420,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1a21c52051534e94eb9674edd6551f4b",
- "recipe": 38,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.618726",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus-glib/0.100.2-r0/temp/log.do_package_setscene.9995",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe dbus-glib-0.100.2-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 366,
- "script_type": 2
- }
-},
-{
- "pk": 1977,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 5876,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "25108979bebb9e0fe2fb686fe6b678e8",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "6.027788",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/glib-2.0-native/1_2.38.2-r0/temp/log.do_populate_sysroot_setscene.10436",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe glib-2.0-native-1_2.38.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 397,
- "script_type": 2
- }
-},
-{
- "pk": 1978,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.6",
- "task_executed": true,
- "disk_io": 484,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "19338e3e5f6cb8c159d2fe9600725268",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.635079",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/glib-2.0/1_2.38.2-r0/temp/log.do_packagedata_setscene.10010",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe glib-2.0-1_2.38.2-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 368,
- "script_type": 2
- }
-},
-{
- "pk": 1979,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 40884,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c795a587b3f3c66b953b21556f972d9b",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "41.096533",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python/2.7.3-r0.3/temp/log.do_populate_sysroot_setscene.10011",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe python-2.7.3-r0.3: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 369,
- "script_type": 2
- }
-},
-{
- "pk": 1980,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.1",
- "task_executed": true,
- "disk_io": 368,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1a21c52051534e94eb9674edd6551f4b",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.569886",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python/2.7.3-r0.3/temp/log.do_packagedata_setscene.10012",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe python-2.7.3-r0.3: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 370,
- "script_type": 2
- }
-},
-{
- "pk": 1981,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 9440,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e65f9e73e3394aa72112e55021982822",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "9.628456",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus/1.6.18-r0/temp/log.do_populate_sysroot_setscene.10014",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe dbus-1.6.18-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 378,
- "script_type": 2
- }
-},
-{
- "pk": 1982,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.7",
- "task_executed": true,
- "disk_io": 316,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ea6fa0074fa83fba4e48b2a9e8ed485f",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.49697",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus/1.6.18-r0/temp/log.do_packagedata_setscene.10015",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe dbus-1.6.18-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 373,
- "script_type": 2
- }
-},
-{
- "pk": 1983,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 10340,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "886cbf17dcd86f83db1f355d332288dd",
- "recipe": 28,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "10.491112",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/dbus/1.6.18-r0/temp/log.do_package_setscene.10065",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe dbus-1.6.18-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 374,
- "script_type": 2
- }
-},
-{
- "pk": 1984,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 45048,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1d37883571a2f3a185aa4ed39505f9b4",
- "recipe": 125,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "45.27934",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/python/2.7.3-r0.3/temp/log.do_package_setscene.10075",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe python-2.7.3-r0.3: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 375,
- "script_type": 2
- }
-},
-{
- "pk": 1985,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 20364,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "58a9588358185342a6fad58136b19cbc",
- "recipe": 94,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "20.526651",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/glib-2.0/1_2.38.2-r0/temp/log.do_package_setscene.10078",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe glib-2.0-1_2.38.2-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 376,
- "script_type": 2
- }
-},
-{
- "pk": 1986,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.1",
- "task_executed": true,
- "disk_io": 248,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "de6752e66e310e2ba23342fba70bcefe",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.370087",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/expat/2.1.0-r0/temp/log.do_populate_sysroot_setscene.11579",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe expat-2.1.0-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 495,
- "script_type": 2
- }
-},
-{
- "pk": 1987,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "7.5",
- "task_executed": true,
- "disk_io": 168,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "30e59d7ce2fc2bf1eb0f2bf6a590d7a5",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.271238",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/base-passwd/3.5.29-r0/temp/log.do_packagedata_setscene.10216",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe base-passwd-3.5.29-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 381,
- "script_type": 2
- }
-},
-{
- "pk": 1988,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5.4",
- "task_executed": true,
- "disk_io": 124,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "122a2091dc5ed9c07653aa94e842db17",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.238145",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/shadow-sysroot/4.1.4.3-r3/temp/log.do_packagedata_setscene.10217",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe shadow-sysroot-4.1.4.3-r3: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 382,
- "script_type": 2
- }
-},
-{
- "pk": 1989,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 844,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "44e191693e6b946b9eef995bb6cc5c48",
- "recipe": 118,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.115876",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/shadow-sysroot/4.1.4.3-r3/temp/log.do_package_setscene.10244",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe shadow-sysroot-4.1.4.3-r3: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 383,
- "script_type": 2
- }
-},
-{
- "pk": 1990,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 716,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e7b60670f51313757fef23bc934aae51",
- "recipe": 140,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.110531",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/base-passwd/3.5.29-r0/temp/log.do_package_setscene.10252",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe base-passwd-3.5.29-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 384,
- "script_type": 2
- }
-},
-{
- "pk": 1991,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1956,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bc3a8bb4fb5877cd0c23e816a7814b5e",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.02807",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/shadow/4.1.4.3-r13/temp/log.do_packagedata_setscene.10279",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe shadow-4.1.4.3-r13: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 386,
- "script_type": 2
- }
-},
-{
- "pk": 1992,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1344,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "38c7dd6bcd5c18afefc1e4959eca5ad9",
- "recipe": 76,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.389584",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/docbook-utils-native/0.6.14-r3/temp/log.do_populate_sysroot_setscene.10280",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe docbook-utils-native-0.6.14-r3: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 387,
- "script_type": 2
- }
-},
-{
- "pk": 1993,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 1936,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9c943f178b2b7196efd74a1e6fb1038b",
- "recipe": 141,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.972731",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/linuxdoc-tools-native/0.9.69-r0/temp/log.do_populate_sysroot_setscene.10281",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe linuxdoc-tools-native-0.9.69-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 388,
- "script_type": 2
- }
-},
-{
- "pk": 1994,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 480,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8d7ddc271987d8c3e17669156dddc7f2",
- "recipe": 103,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.106365",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/sgmlspl-native/1.03ii-r3/temp/log.do_populate_sysroot_setscene.10305",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe sgmlspl-native-1.03ii-r3: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 389,
- "script_type": 2
- }
-},
-{
- "pk": 1995,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 7060,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1b21429d92c4b630745ab94284b826a7",
- "recipe": 65,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "7.184384",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/openjade-native/1.3.2-r5/temp/log.do_populate_sysroot_setscene.10339",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe openjade-native-1.3.2-r5: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 390,
- "script_type": 2
- }
-},
-{
- "pk": 1996,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 1428,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a976d4fc12d14c5796db3a637f6cbce5",
- "recipe": 31,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.553557",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/docbook-dsssl-stylesheets-native/1.79-r4/temp/log.do_populate_sysroot_setscene.10340",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe docbook-dsssl-stylesheets-native-1.79-r4: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 391,
- "script_type": 2
- }
-},
-{
- "pk": 1997,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 25632,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1486f8ec0df1f740eb6df57e93371862",
- "recipe": 123,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "25.720395",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/perl-native/5.14.3-r0/temp/log.do_populate_sysroot_setscene.10349",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe perl-native-5.14.3-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 392,
- "script_type": 2
- }
-},
-{
- "pk": 1998,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 956,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fa9f9f404618400e517d82a6fbd50179",
- "recipe": 14,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.051545",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/docbook-sgml-dtd-3.1-native/3.1-r3.0/temp/log.do_populate_sysroot_setscene.10381",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe docbook-sgml-dtd-3.1-native-3.1-r3.0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 393,
- "script_type": 2
- }
-},
-{
- "pk": 1999,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 7512,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "87327835f2b19315b48606b0fc835784",
- "recipe": 53,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "7.643983",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/groff-native/1.22.2-r1/temp/log.do_populate_sysroot_setscene.10386",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe groff-native-1.22.2-r1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 394,
- "script_type": 2
- }
-},
-{
- "pk": 2000,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 964,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "53d1a340f3a2d56ef86a0e428bd1587d",
- "recipe": 85,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.090937",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/unzip-native/1_6.0-r4/temp/log.do_populate_sysroot_setscene.10417",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe unzip-native-1_6.0-r4: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 395,
- "script_type": 2
- }
-},
-{
- "pk": 2001,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 12904,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "77286643d885e694758437cdc5ffbe75",
- "recipe": 2,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "13.08104",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/shadow/4.1.4.3-r13/temp/log.do_package_setscene.10429",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe shadow-4.1.4.3-r13: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 396,
- "script_type": 2
- }
-},
-{
- "pk": 2002,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.2",
- "task_executed": true,
- "disk_io": 200,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6b5c9524c199bd316786c6806ed0a7ad",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.610527",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libffi-native/3.0.13-r0/temp/log.do_populate_sysroot_setscene.10579",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libffi-native-3.0.13-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 405,
- "script_type": 2
- }
-},
-{
- "pk": 2003,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3",
- "task_executed": true,
- "disk_io": 284,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "701c951fb81c8c2a383c09ffc2b9c16c",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.386882",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libffi/3.0.13-r0/temp/log.do_packagedata_setscene.10475",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libffi-3.0.13-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 399,
- "script_type": 2
- }
-},
-{
- "pk": 2004,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2520,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a5bd109ba314fd8f9b0214bb83c401e",
- "recipe": 75,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.594623",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libffi/3.0.13-r0/temp/log.do_package_setscene.10487",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libffi-3.0.13-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 400,
- "script_type": 2
- }
-},
-{
- "pk": 2005,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 2540,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "54df5a649eb9437c244067af06a5921d",
- "recipe": 86,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.659621",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/sgml-common-native/0.6.3-r1/temp/log.do_populate_sysroot_setscene.10505",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe sgml-common-native-0.6.3-r1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 401,
- "script_type": 2
- }
-},
-{
- "pk": 2006,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 6112,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "aa74c770c7f41eb6e98be458e82c8b7c",
- "recipe": 16,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "6.68954",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/opensp-native/1.5.2-r1/temp/log.do_populate_sysroot_setscene.10521",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe opensp-native-1.5.2-r1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 402,
- "script_type": 2
- }
-},
-{
- "pk": 2007,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 16532,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a866be2c0a3ec3c92e872d2c82c9511a",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "16.65504",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libx11/1_1.6.2-r0/temp/log.do_populate_sysroot_setscene.10546",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libx11-1_1.6.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 403,
- "script_type": 2
- }
-},
-{
- "pk": 2008,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.2",
- "task_executed": true,
- "disk_io": 3248,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f5276f7aa9ac720212f0b4f29345c5cd",
- "recipe": 73,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.383254",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gtk-doc-stub-native/0.0+gitAUTOINC+3dfd0a09de-r0/temp/log.do_populate_sysroot_setscene.10563",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gtk-doc-stub-native-0.0+gitAUTOINC+3dfd0a09de-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 404,
- "script_type": 2
- }
-},
-{
- "pk": 2009,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4",
- "task_executed": true,
- "disk_io": 160,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8c395a3b41a5e49153a794a4cbeafa47",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.060013",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libx11/1_1.6.2-r0/temp/log.do_packagedata_setscene.10595",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libx11-1_1.6.2-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 406,
- "script_type": 2
- }
-},
-{
- "pk": 2010,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 14756,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c92e78f7ef335b4550e9fb3add35817b",
- "recipe": 136,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "14.955857",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libx11/1_1.6.2-r0/temp/log.do_package_setscene.10607",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libx11-1_1.6.2-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 407,
- "script_type": 2
- }
-},
-{
- "pk": 2011,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 940,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0a86e93dcefcdd130f2e98c03cd74b59",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.459475",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libsm/1_1.2.2-r0/temp/log.do_populate_sysroot_setscene.10609",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libsm-1_1.2.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 408,
- "script_type": 2
- }
-},
-{
- "pk": 2012,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1220,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "bcdd0c954926fbc98ff6be25479a3cd9",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.978921",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libsm/1_1.2.2-r0/temp/log.do_packagedata_setscene.10637",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libsm-1_1.2.2-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 409,
- "script_type": 2
- }
-},
-{
- "pk": 2013,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.1",
- "task_executed": true,
- "disk_io": 240,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f3561785f3feb4536fed5ae3cdc3e649",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.37958",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/binutils-cross/2.23.2-r4/temp/log.do_packagedata_setscene.10638",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe binutils-cross-2.23.2-r4: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 410,
- "script_type": 2
- }
-},
-{
- "pk": 2014,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 1460,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4a35897b907c18155379ec8664c8c58b",
- "recipe": 67,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.596317",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/cross-localedef-native/2.18-r0/temp/log.do_populate_sysroot_setscene.10639",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe cross-localedef-native-2.18-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 411,
- "script_type": 2
- }
-},
-{
- "pk": 2015,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2100,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cfda3c938c647bb43d70a9b294c0cff7",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.216041",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/binutils-cross/2.23.2-r4/temp/log.do_package_setscene.10659",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe binutils-cross-2.23.2-r4: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 412,
- "script_type": 2
- }
-},
-{
- "pk": 2016,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 712,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3cc961d7093b8d4debe7d67afb534fcf",
- "recipe": 32,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.072739",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libsm/1_1.2.2-r0/temp/log.do_package_setscene.10671",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libsm-1_1.2.2-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 413,
- "script_type": 2
- }
-},
-{
- "pk": 2017,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 792,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5cf130fbf809742deae167ce631862d6",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.597575",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libice/1_1.0.8-r0/temp/log.do_populate_sysroot_setscene.10685",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libice-1_1.0.8-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 414,
- "script_type": 2
- }
-},
-{
- "pk": 2018,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.1",
- "task_executed": true,
- "disk_io": 156,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7987f399a2b5478f5dc8b8e55307f34b",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.257771",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libice/1_1.0.8-r0/temp/log.do_packagedata_setscene.10686",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libice-1_1.0.8-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 415,
- "script_type": 2
- }
-},
-{
- "pk": 2019,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1572,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0e8306d2e4d8a882d3d17376df7bfcae",
- "recipe": 70,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.590558",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libice/1_1.0.8-r0/temp/log.do_package_setscene.10703",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libice-1_1.0.8-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 417,
- "script_type": 2
- }
-},
-{
- "pk": 2020,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 728,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e0289c69f73c14cb86eaee1eda2123d5",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.759769",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/e2fsprogs/1.42.9-r0/temp/log.do_packagedata_setscene.10721",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe e2fsprogs-1.42.9-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 418,
- "script_type": 2
- }
-},
-{
- "pk": 2021,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 3032,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "45a149c540bd65d23b5e3ae94cbaf90f",
- "recipe": 10,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.178264",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/e2fsprogs/1.42.9-r0/temp/log.do_package_setscene.10733",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe e2fsprogs-1.42.9-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 419,
- "script_type": 2
- }
-},
-{
- "pk": 2022,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.4",
- "task_executed": true,
- "disk_io": 404,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "75c74731f211d0c59d41b2c53f6f02fd",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.532449",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/util-linux/2.23.2-r0/temp/log.do_packagedata_setscene.10770",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe util-linux-2.23.2-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 421,
- "script_type": 2
- }
-},
-{
- "pk": 2023,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 4964,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5a9c2fd450861dd96ac7e1303fd40542",
- "recipe": 27,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "5.176775",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/util-linux/2.23.2-r0/temp/log.do_package_setscene.10786",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe util-linux-2.23.2-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 422,
- "script_type": 2
- }
-},
-{
- "pk": 2024,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.7",
- "task_executed": true,
- "disk_io": 456,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "893ddd75aa7a4538eb4a121eb8631b77",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.609987",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/bzip2-native/1.0.6-r5/temp/log.do_populate_sysroot_setscene.12030",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe bzip2-native-1.0.6-r5: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 530,
- "script_type": 2
- }
-},
-{
- "pk": 2025,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.6",
- "task_executed": true,
- "disk_io": 160,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dfdda2f786350aaed1dd64e281ce706b",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.328081",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bzip2/1.0.6-r5/temp/log.do_packagedata_setscene.10812",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe bzip2-1.0.6-r5: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 424,
- "script_type": 2
- }
-},
-{
- "pk": 2026,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 1460,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "39df7a1c6d49cde830b1e9486b6576d7",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.769417",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/db-native/5.3.21-r0/temp/log.do_populate_sysroot_setscene.11869",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe db-native-5.3.21-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 525,
- "script_type": 2
- }
-},
-{
- "pk": 2027,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.2",
- "task_executed": true,
- "disk_io": 532,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fc473c0ad9ac4ece02e2e670c23ae14b",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.991915",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/db/5.3.21-r0/temp/log.do_packagedata_setscene.10814",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe db-5.3.21-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 426,
- "script_type": 2
- }
-},
-{
- "pk": 2028,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 520,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8b1e3a09f00f4d27c8df3f59f70a6f1b",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.68676",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gdbm/1.11-r0/temp/log.do_populate_sysroot_setscene.10815",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gdbm-1.11-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 427,
- "script_type": 2
- }
-},
-{
- "pk": 2029,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.6",
- "task_executed": true,
- "disk_io": 348,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b13d00516e787554a563b343cc8f5974",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.489771",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gdbm/1.11-r0/temp/log.do_packagedata_setscene.10816",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe gdbm-1.11-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 428,
- "script_type": 2
- }
-},
-{
- "pk": 2030,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 808,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "44f8095929502193f205d54c1b5f22d5",
- "recipe": 115,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.944473",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bzip2/1.0.6-r5/temp/log.do_package_setscene.10845",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe bzip2-1.0.6-r5: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 429,
- "script_type": 2
- }
-},
-{
- "pk": 2031,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 1424,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2cda7b3f02a67c1c84e7032805fb19dd",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.604616",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/openssl-native/1.0.1e-r15.0/temp/log.do_populate_sysroot_setscene.12029",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe openssl-native-1.0.1e-r15.0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 529,
- "script_type": 2
- }
-},
-{
- "pk": 2032,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 2320,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a71e296d1e7048cd7f55d7a4071ef2df",
- "recipe": 7,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.458688",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gdbm/1.11-r0/temp/log.do_package_setscene.10867",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe gdbm-1.11-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 431,
- "script_type": 2
- }
-},
-{
- "pk": 2033,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 816,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3373028733521511b358cf1e13d3dd7c",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.298543",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/openssl/1.0.1e-r15.0/temp/log.do_packagedata_setscene.10884",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe openssl-1.0.1e-r15.0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 432,
- "script_type": 2
- }
-},
-{
- "pk": 2034,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 27284,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ecd4b034aabc9e8bdb3edbd14f09900f",
- "recipe": 23,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "27.973177",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/db/5.3.21-r0/temp/log.do_package_setscene.10889",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe db-5.3.21-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 433,
- "script_type": 2
- }
-},
-{
- "pk": 2035,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.9",
- "task_executed": true,
- "disk_io": 156,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "886e60dedbe55d372a441efd3590149a",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.2565",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xproto/1_7.0.25-r0/temp/log.do_populate_sysroot_setscene.11445",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe xproto-1_7.0.25-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 484,
- "script_type": 2
- }
-},
-{
- "pk": 2036,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 828,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dce894bc6fd92ee7bcc4363af7bc1cef",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.007236",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/zlib-native/1.2.8-r0/temp/log.do_populate_sysroot_setscene.12252",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe zlib-native-1.2.8-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 545,
- "script_type": 2
- }
-},
-{
- "pk": 2037,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5.5",
- "task_executed": true,
- "disk_io": 160,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f94efcac8d20518724956732e13cad45",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.01519",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/zlib/1.2.8-r0/temp/log.do_packagedata_setscene.10913",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe zlib-1.2.8-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 436,
- "script_type": 2
- }
-},
-{
- "pk": 2038,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 15432,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0669ff7c20e7b1ba7a12b45641863137",
- "recipe": 71,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "15.610576",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/openssl/1.0.1e-r15.0/temp/log.do_package_setscene.10933",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe openssl-1.0.1e-r15.0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 437,
- "script_type": 2
- }
-},
-{
- "pk": 2039,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 436,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "42bcade4496e6df8a28c12db4ca35807",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.584869",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/util-macros/1_1.18.0-r0/temp/log.do_populate_sysroot_setscene.11488",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe util-macros-1_1.18.0-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 487,
- "script_type": 2
- }
-},
-{
- "pk": 2040,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 2080,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a9c8023875a8cbc0a9d61239fa4de2ac",
- "recipe": 111,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.221902",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/zlib/1.2.8-r0/temp/log.do_package_setscene.10960",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe zlib-1.2.8-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 439,
- "script_type": 2
- }
-},
-{
- "pk": 2041,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.2",
- "task_executed": true,
- "disk_io": 188,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5942e41c53b0bd7423f14f437ff85dd1",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.467515",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/sqlite3-native/3080002-r0/temp/log.do_populate_sysroot_setscene.12093",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe sqlite3-native-3080002-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 534,
- "script_type": 2
- }
-},
-{
- "pk": 2042,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 696,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9659278def75b46b2370ac67a3b99aae",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.071361",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/sqlite3/3080002-r0/temp/log.do_packagedata_setscene.10983",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe sqlite3-3080002-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 441,
- "script_type": 2
- }
-},
-{
- "pk": 2043,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3",
- "task_executed": true,
- "disk_io": 208,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e2c1291d9bf9c0799e23694617d75bb8",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.599049",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xextproto/1_7.2.1-r0/temp/log.do_populate_sysroot_setscene.10995",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe xextproto-1_7.2.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 442,
- "script_type": 2
- }
-},
-{
- "pk": 2044,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 5336,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b450d5e9168919805ce44201092c7cf3",
- "recipe": 109,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "5.36138",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/sqlite3/3080002-r0/temp/log.do_package_setscene.11014",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe sqlite3-3080002-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 443,
- "script_type": 2
- }
-},
-{
- "pk": 2045,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.8",
- "task_executed": true,
- "disk_io": 264,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "37b3ab3ae2bc950fcf0173d448433001",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.25338",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xextproto/1_7.2.1-r0/temp/log.do_packagedata_setscene.11017",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe xextproto-1_7.2.1-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 444,
- "script_type": 2
- }
-},
-{
- "pk": 2046,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 452,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6917b3dd4937ae4e65bc04951a0d8b0f",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.591836",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xtrans/1_1.3.2-r0/temp/log.do_populate_sysroot_setscene.11026",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe xtrans-1_1.3.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 445,
- "script_type": 2
- }
-},
-{
- "pk": 2047,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.2",
- "task_executed": true,
- "disk_io": 284,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "289f57334ffdac922584dcb0dafd1f3d",
- "recipe": 79,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.5191",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xextproto/1_7.2.1-r0/temp/log.do_package_setscene.11034",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe xextproto-1_7.2.1-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 446,
- "script_type": 2
- }
-},
-{
- "pk": 2048,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 552,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d9216d22aab33e6f1ddcc064b23970d0",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.668702",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xtrans/1_1.3.2-r0/temp/log.do_packagedata_setscene.11052",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe xtrans-1_1.3.2-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 447,
- "script_type": 2
- }
-},
-{
- "pk": 2049,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.3",
- "task_executed": true,
- "disk_io": 972,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5c1525ad80f3c780aa7032717013df21",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.890932",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxcb/1.9.3-r0/temp/log.do_populate_sysroot_setscene.11053",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libxcb-1.9.3-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 448,
- "script_type": 2
- }
-},
-{
- "pk": 2050,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.1",
- "task_executed": true,
- "disk_io": 300,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d70bacd25e50a7714b365a9960a9e9d9",
- "recipe": 132,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.251007",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xtrans/1_1.3.2-r0/temp/log.do_package_setscene.11069",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe xtrans-1_1.3.2-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 449,
- "script_type": 2
- }
-},
-{
- "pk": 2051,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 556,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "103225c9848e342c73b451c2a83554fb",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.07107",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxcb/1.9.3-r0/temp/log.do_packagedata_setscene.11083",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libxcb-1.9.3-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 450,
- "script_type": 2
- }
-},
-{
- "pk": 2052,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 500,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a90850d43831958d8d4f8edbd78fd633",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.054209",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/kbproto/1_1.0.6-r0/temp/log.do_populate_sysroot_setscene.11084",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe kbproto-1_1.0.6-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 451,
- "script_type": 2
- }
-},
-{
- "pk": 2053,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 4196,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cf98b87045cd5b51fabccc3a1a4372c1",
- "recipe": 89,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "4.279716",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxcb/1.9.3-r0/temp/log.do_package_setscene.11114",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libxcb-1.9.3-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 452,
- "script_type": 2
- }
-},
-{
- "pk": 2054,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.7",
- "task_executed": true,
- "disk_io": 276,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "eff36368d43fd57574554fc519eeb331",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.377363",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/kbproto/1_1.0.6-r0/temp/log.do_packagedata_setscene.11116",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe kbproto-1_1.0.6-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 453,
- "script_type": 2
- }
-},
-{
- "pk": 2055,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 2036,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "33c8f6ac60d19a7ba1bf10c06cd65842",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.136852",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/inputproto/1_2.3-r0/temp/log.do_populate_sysroot_setscene.11118",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe inputproto-1_2.3-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 454,
- "script_type": 2
- }
-},
-{
- "pk": 2056,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 1028,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a5530229b846b1b29c3b2e15074be268",
- "recipe": 18,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "3.134407",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/kbproto/1_1.0.6-r0/temp/log.do_package_setscene.11138",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe kbproto-1_1.0.6-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 455,
- "script_type": 2
- }
-},
-{
- "pk": 2057,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.3",
- "task_executed": true,
- "disk_io": 772,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "845185e9b3151563f9877da4447f8f0f",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.884266",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/inputproto/1_2.3-r0/temp/log.do_packagedata_setscene.11147",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe inputproto-1_2.3-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 456,
- "script_type": 2
- }
-},
-{
- "pk": 2058,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 456,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8c8b0e9b2c88b0c5e3b33c8dfe4af55c",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.59383",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/readline-native/6.2-r4/temp/log.do_populate_sysroot_setscene.12031",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe readline-native-6.2-r4: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 531,
- "script_type": 2
- }
-},
-{
- "pk": 2059,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 944,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e75b09021e017b6fdcca5b6773e77fd2",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.998958",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/readline/6.2-r4/temp/log.do_packagedata_setscene.11157",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe readline-6.2-r4: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 458,
- "script_type": 2
- }
-},
-{
- "pk": 2060,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.8",
- "task_executed": true,
- "disk_io": 484,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8855526ec96d008c52a397bdc225f95a",
- "recipe": 128,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.763295",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/inputproto/1_2.3-r0/temp/log.do_package_setscene.11181",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe inputproto-1_2.3-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 459,
- "script_type": 2
- }
-},
-{
- "pk": 2061,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.8",
- "task_executed": true,
- "disk_io": 564,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "87395cb39ff0be8aa92e177b30a22af3",
- "recipe": 50,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.702372",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/readline/6.2-r4/temp/log.do_package_setscene.11198",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe readline-6.2-r4: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 460,
- "script_type": 2
- }
-},
-{
- "pk": 2062,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.5",
- "task_executed": true,
- "disk_io": 700,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "113c7e69d26283a872e94ebbe418714a",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.209754",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/ncurses-native/5.9-r15.1/temp/log.do_populate_sysroot_setscene.12162",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe ncurses-native-5.9-r15.1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 540,
- "script_type": 2
- }
-},
-{
- "pk": 2063,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 856,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "807c9e77eb7be89dc23cbb569a49f77a",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.605925",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/ncurses/5.9-r15.1/temp/log.do_packagedata_setscene.11210",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe ncurses-5.9-r15.1: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 462,
- "script_type": 2
- }
-},
-{
- "pk": 2064,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1252,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dd6b4d6e989e6d0f8ac6af5e1e46ef51",
- "recipe": 87,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.397181",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libxslt-native/1.1.28-r0/temp/log.do_populate_sysroot_setscene.11211",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libxslt-native-1.1.28-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 463,
- "script_type": 2
- }
-},
-{
- "pk": 2065,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 512,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ad6ef15f9368a32014fce37643d4aa87",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.693551",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/xcb-proto-native/1.9-r0/temp/log.do_populate_sysroot_setscene.11212",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe xcb-proto-native-1.9-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 465,
- "script_type": 2
- }
-},
-{
- "pk": 2066,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 816,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "73d3203945a78bff0a5a64d7f86fccf2",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.911371",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xcb-proto/1.9-r0/temp/log.do_packagedata_setscene.11244",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe xcb-proto-1.9-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 466,
- "script_type": 2
- }
-},
-{
- "pk": 2067,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1368,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "629bb92bf52a70f56b4f90d75ff0a573",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.479926",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxau/1_1.0.8-r0/temp/log.do_populate_sysroot_setscene.11245",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libxau-1_1.0.8-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 467,
- "script_type": 2
- }
-},
-{
- "pk": 2068,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.4",
- "task_executed": true,
- "disk_io": 3604,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e8bfb0baecd4b3aee0000d6bb096b2a5",
- "recipe": 47,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "4.614829",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libxml2-native/2.9.1-r0/temp/log.do_populate_sysroot_setscene.11273",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libxml2-native-2.9.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 468,
- "script_type": 2
- }
-},
-{
- "pk": 2069,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 6848,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4797530cbab090db2e39230df3aa0c46",
- "recipe": 6,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "7.074041",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/ncurses/5.9-r15.1/temp/log.do_package_setscene.11281",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe ncurses-5.9-r15.1: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 469,
- "script_type": 2
- }
-},
-{
- "pk": 2070,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.6",
- "task_executed": true,
- "disk_io": 1016,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3d207a1e87f5222e9caa440a85468bc6",
- "recipe": 41,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.257806",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xcb-proto/1.9-r0/temp/log.do_package_setscene.11291",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe xcb-proto-1.9-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 470,
- "script_type": 2
- }
-},
-{
- "pk": 2071,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 1092,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1f3a6c74ee0293d0fc2a725b31c620e9",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.255532",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxau/1_1.0.8-r0/temp/log.do_packagedata_setscene.11309",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libxau-1_1.0.8-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 471,
- "script_type": 2
- }
-},
-{
- "pk": 2072,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 700,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "16aa9cca38dd5c79ae7c7805ae452b52",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.848896",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libpthread-stubs/0.3-r0/temp/log.do_populate_sysroot_setscene.11318",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libpthread-stubs-0.3-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 472,
- "script_type": 2
- }
-},
-{
- "pk": 2073,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.3",
- "task_executed": true,
- "disk_io": 276,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f9a6d78e14cc1fbbf6e6cc81d8a35741",
- "recipe": 46,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.706722",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxau/1_1.0.8-r0/temp/log.do_package_setscene.11330",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libxau-1_1.0.8-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 473,
- "script_type": 2
- }
-},
-{
- "pk": 2074,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1",
- "task_executed": true,
- "disk_io": 724,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8aabd32b0c67a9af9d23102ecf9ca172",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.8283",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libpthread-stubs/0.3-r0/temp/log.do_packagedata_setscene.11344",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libpthread-stubs-0.3-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 474,
- "script_type": 2
- }
-},
-{
- "pk": 2075,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.3",
- "task_executed": true,
- "disk_io": 1488,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a9abcee375341399fa6b9901f0fea92d",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.314095",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxdmcp/1_1.1.1-r0/temp/log.do_populate_sysroot_setscene.11345",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libxdmcp-1_1.1.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 475,
- "script_type": 2
- }
-},
-{
- "pk": 2076,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.1",
- "task_executed": true,
- "disk_io": 352,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "efb7846615c66144d6ee50b5b5a25f4f",
- "recipe": 121,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.52582",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libpthread-stubs/0.3-r0/temp/log.do_package_setscene.11357",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libpthread-stubs-0.3-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 476,
- "script_type": 2
- }
-},
-{
- "pk": 2077,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.2",
- "task_executed": true,
- "disk_io": 288,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "28a0870d97ae9d380784c834a9603d4c",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.394546",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxdmcp/1_1.1.1-r0/temp/log.do_packagedata_setscene.11368",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libxdmcp-1_1.1.1-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 477,
- "script_type": 2
- }
-},
-{
- "pk": 2078,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.5",
- "task_executed": true,
- "disk_io": 1232,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8635b2b5ade6967db9b6c60ad1e5553d",
- "recipe": 61,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.37505",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libxdmcp/1_1.1.1-r0/temp/log.do_package_setscene.11387",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libxdmcp-1_1.1.1-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 478,
- "script_type": 2
- }
-},
-{
- "pk": 2079,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.9",
- "task_executed": true,
- "disk_io": 168,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3c71f52fffbccc9bf84af3de28776d61",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.269379",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/ocf-linux-native/20120127-r3.0/temp/log.do_populate_sysroot_setscene.12073",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe ocf-linux-native-20120127-r3.0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 532,
- "script_type": 2
- }
-},
-{
- "pk": 2080,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 448,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ad1a6d2360dc46bad311e30cc40f6afa",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.579794",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/ocf-linux/20120127-r3.0/temp/log.do_packagedata_setscene.11406",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe ocf-linux-20120127-r3.0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 480,
- "script_type": 2
- }
-},
-{
- "pk": 2081,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5.3",
- "task_executed": true,
- "disk_io": 116,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "9eb10db498f517a0bde1b534e6e8b6af",
- "recipe": 24,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.233233",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/ocf-linux/20120127-r3.0/temp/log.do_package_setscene.11440",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe ocf-linux-20120127-r3.0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 481,
- "script_type": 2
- }
-},
-{
- "pk": 2082,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 764,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "695a4ad82ca724dd325bab7b920f32c2",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.112715",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gettext-native/0.18.3.1-r0/temp/log.do_populate_sysroot_setscene.11578",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gettext-native-0.18.3.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 494,
- "script_type": 2
- }
-},
-{
- "pk": 2083,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 1456,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "2d949b4521dc59695a887187756e07b7",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.033443",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gettext/0.18.3.1-r0/temp/log.do_packagedata_setscene.11444",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe gettext-0.18.3.1-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 483,
- "script_type": 2
- }
-},
-{
- "pk": 2084,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "6.7",
- "task_executed": true,
- "disk_io": 112,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "687d1380993f266857cd39417438b1b4",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.20871",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xproto/1_7.0.25-r0/temp/log.do_packagedata_setscene.11446",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe xproto-1_7.0.25-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 485,
- "script_type": 2
- }
-},
-{
- "pk": 2085,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 828,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b1c919dc66b39d34e4ab2b88e9821b66",
- "recipe": 129,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.986359",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/xproto/1_7.0.25-r0/temp/log.do_package_setscene.11466",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe xproto-1_7.0.25-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 486,
- "script_type": 2
- }
-},
-{
- "pk": 2086,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.7",
- "task_executed": true,
- "disk_io": 428,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f26c7b66ec711d9ee75afb29bfd6d43c",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.564397",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/util-macros/1_1.18.0-r0/temp/log.do_packagedata_setscene.11489",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe util-macros-1_1.18.0-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 488,
- "script_type": 2
- }
-},
-{
- "pk": 2087,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 468,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "dd6f6306b5c543650e9ff7f1d40bd771",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.909097",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/opkg/1_0.2.0-r0/temp/log.do_packagedata_setscene.11499",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe opkg-1_0.2.0-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 490,
- "script_type": 2
- }
-},
-{
- "pk": 2088,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.2",
- "task_executed": true,
- "disk_io": 236,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cad8f5645dfc429b627786b62d4a9f22",
- "recipe": 77,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.454295",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/util-macros/1_1.18.0-r0/temp/log.do_package_setscene.11514",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe util-macros-1_1.18.0-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 491,
- "script_type": 2
- }
-},
-{
- "pk": 2089,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 4692,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "c514f52f2a31bb5c4a9d986760622bec",
- "recipe": 5,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "4.935481",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gettext/0.18.3.1-r0/temp/log.do_package_setscene.11535",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe gettext-0.18.3.1-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 492,
- "script_type": 2
- }
-},
-{
- "pk": 2090,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 1152,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "0b267f1d653b7a4bb23843aba3f5bc21",
- "recipe": 20,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.26392",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/opkg/1_0.2.0-r0/temp/log.do_package_setscene.11557",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe opkg-1_0.2.0-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 493,
- "script_type": 2
- }
-},
-{
- "pk": 2091,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.5",
- "task_executed": true,
- "disk_io": 220,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e2cd16331932b0dfbe09c9401fb1ebe0",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.339755",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/expat/2.1.0-r0/temp/log.do_packagedata_setscene.11580",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe expat-2.1.0-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 496,
- "script_type": 2
- }
-},
-{
- "pk": 2092,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.4",
- "task_executed": true,
- "disk_io": 412,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "362d191e8d6d69bdfcdbe33edf1cd4d8",
- "recipe": 117,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.724612",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/expat/2.1.0-r0/temp/log.do_package_setscene.11596",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe expat-2.1.0-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 497,
- "script_type": 2
- }
-},
-{
- "pk": 2093,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.1",
- "task_executed": true,
- "disk_io": 580,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "62613039f22da74cf3a0d4cb59160a47",
- "recipe": 81,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.125709",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/pigz-native/2.3.1-r0/temp/log.do_populate_sysroot_setscene.11614",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe pigz-native-2.3.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 498,
- "script_type": 2
- }
-},
-{
- "pk": 2094,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.4",
- "task_executed": true,
- "disk_io": 92,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "7fb5669457d7b85da8576c4b2ac1f524",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.324168",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libtool-cross/2.4.2-r6.1/temp/log.do_populate_sysroot_setscene.11637",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libtool-cross-2.4.2-r6.1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 499,
- "script_type": 2
- }
-},
-{
- "pk": 2095,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "6.2",
- "task_executed": true,
- "disk_io": 64,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cca7ef9ed173abb01b2958bbcca1a4c0",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.273147",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libtool-cross/2.4.2-r6.1/temp/log.do_packagedata_setscene.11638",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libtool-cross-2.4.2-r6.1: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 500,
- "script_type": 2
- }
-},
-{
- "pk": 2096,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "6.6",
- "task_executed": true,
- "disk_io": 80,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5af11a59f4d03f8c0afb5428e333132b",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.288115",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gcc-runtime/4.8.2-r0/temp/log.do_packagedata_setscene.11639",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe gcc-runtime-4.8.2-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 501,
- "script_type": 2
- }
-},
-{
- "pk": 2097,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "7.5",
- "task_executed": true,
- "disk_io": 32,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "777ff99bbbb39a7b72482f670c637a57",
- "recipe": 82,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.195012",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libtool-cross/2.4.2-r6.1/temp/log.do_package_setscene.11659",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libtool-cross-2.4.2-r6.1: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 502,
- "script_type": 2
- }
-},
-{
- "pk": 2098,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.6",
- "task_executed": true,
- "disk_io": 1344,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6a6a046284525e76bcace29003255a64",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.799743",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gcc-runtime/4.8.2-r0/temp/log.do_package_setscene.11673",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe gcc-runtime-4.8.2-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 503,
- "script_type": 2
- }
-},
-{
- "pk": 2099,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.6",
- "task_executed": true,
- "disk_io": 1124,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "acbde08d2a6b8a13a1366bd6b6087bb5",
- "recipe": 93,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.384183",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gcc-runtime/4.8.2-r0/temp/log.do_populate_sysroot_setscene.11687",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gcc-runtime-4.8.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 504,
- "script_type": 2
- }
-},
-{
- "pk": 2100,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 800,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "936ebc6e8e6b48ac737c20d898702f1a",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.157485",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libgcc/4.8.2-r0/temp/log.do_populate_sysroot_setscene.11704",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libgcc-4.8.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 505,
- "script_type": 2
- }
-},
-{
- "pk": 2101,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.3",
- "task_executed": true,
- "disk_io": 592,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f505f8a179455a84335eb73f65d8e99b",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.875572",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libgcc/4.8.2-r0/temp/log.do_packagedata_setscene.11705",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe libgcc-4.8.2-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 506,
- "script_type": 2
- }
-},
-{
- "pk": 2102,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "7.5",
- "task_executed": true,
- "disk_io": 104,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "663aa6d3aa0ed985b15c17d90a94e260",
- "recipe": 40,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.322441",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/libgcc/4.8.2-r0/temp/log.do_package_setscene.11721",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe libgcc-4.8.2-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 507,
- "script_type": 2
- }
-},
-{
- "pk": 2103,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "8.5",
- "task_executed": true,
- "disk_io": 68,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6b020061937b819d2b3872ee08ef5c5c",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.80416",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc/2.18-r0/temp/log.do_packagedata_setscene.11735",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe eglibc-2.18-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 508,
- "script_type": 2
- }
-},
-{
- "pk": 2104,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.1",
- "task_executed": true,
- "disk_io": 8968,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4d2fde15bea79485509f341be1302874",
- "recipe": 26,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "9.692581",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gcc-cross/4.8.2-r0/temp/log.do_populate_sysroot_setscene.11736",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gcc-cross-4.8.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 509,
- "script_type": 2
- }
-},
-{
- "pk": 2105,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2",
- "task_executed": true,
- "disk_io": 6560,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1f4ad7a90e94c13e36b43b951d6774d1",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "6.843179",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc/2.18-r0/temp/log.do_package_setscene.11752",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe eglibc-2.18-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 510,
- "script_type": 2
- }
-},
-{
- "pk": 2106,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.8",
- "task_executed": true,
- "disk_io": 164,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "d0f6e75c8ab6f71d8f8e53a2e8778f78",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.536956",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/linux-libc-headers/3.10-r0/temp/log.do_packagedata_setscene.11759",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe linux-libc-headers-3.10-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 511,
- "script_type": 2
- }
-},
-{
- "pk": 2107,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5.7",
- "task_executed": true,
- "disk_io": 204,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5ec0c9400b2489c734d9545ce821aff4",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.569126",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc-initial/2.18-r0/temp/log.do_packagedata_setscene.11760",
- "build": 1,
- "task_name": "do_packagedata_setscene",
- "message": "recipe eglibc-initial-2.18-r0: task do_packagedata_setscene: Succeeded",
- "outcome": 0,
- "order": 512,
- "script_type": 2
- }
-},
-{
- "pk": 2108,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.5",
- "task_executed": true,
- "disk_io": 732,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "19104d436e2e033cc4bd3b9cd5c44c61",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.891326",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/linux-libc-headers/3.10-r0/temp/log.do_package_setscene.11783",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe linux-libc-headers-3.10-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 513,
- "script_type": 2
- }
-},
-{
- "pk": 2109,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4",
- "task_executed": true,
- "disk_io": 316,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "e191970db8c5ed03dbc0475c70b04314",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.476032",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc-initial/2.18-r0/temp/log.do_package_setscene.11787",
- "build": 1,
- "task_name": "do_package_setscene",
- "message": "recipe eglibc-initial-2.18-r0: task do_package_setscene: Succeeded",
- "outcome": 0,
- "order": 514,
- "script_type": 2
- }
-},
-{
- "pk": 2110,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 2036,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f27c8184e3d714f225e4d39fc476b1b8",
- "recipe": 55,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.605005",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/rpm-native/5.4.9-r63/temp/log.do_populate_sysroot_setscene.11799",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe rpm-native-5.4.9-r63: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 515,
- "script_type": 2
- }
-},
-{
- "pk": 2111,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.9",
- "task_executed": true,
- "disk_io": 532,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "5226a957de785a33155f6bebd18ac3e6",
- "recipe": 36,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.087398",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/prelink-native/1.0+gitAUTOINC+6822ec76aa-r0/temp/log.do_populate_sysroot_setscene.11800",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe prelink-native-1.0+gitAUTOINC+6822ec76aa-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 516,
- "script_type": 2
- }
-},
-{
- "pk": 2112,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 11204,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "f871070e14738bb2619d4a04aee1f0f2",
- "recipe": 39,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "11.814835",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc/2.18-r0/temp/log.do_populate_sysroot_setscene.11808",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe eglibc-2.18-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 517,
- "script_type": 2
- }
-},
-{
- "pk": 2113,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.2",
- "task_executed": true,
- "disk_io": 1996,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "994c02ab97524a978055853705ea643f",
- "recipe": 43,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "2.226953",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/binutils-native/2.23.2-r4/temp/log.do_populate_sysroot_setscene.11828",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe binutils-native-2.23.2-r4: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 518,
- "script_type": 2
- }
-},
-{
- "pk": 2114,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.7",
- "task_executed": true,
- "disk_io": 200,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "ecc7e93efb4f0942d1ad17d86ff0d67d",
- "recipe": 135,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.680142",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/file-native/5.16-r0/temp/log.do_populate_sysroot_setscene.11844",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe file-native-5.16-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 519,
- "script_type": 2
- }
-},
-{
- "pk": 2115,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 464,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3ec56351104855a33e84b5a9b599c8ff",
- "recipe": 106,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.185225",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libpcre-native/8.34-r0/temp/log.do_populate_sysroot_setscene.11845",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libpcre-native-8.34-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 520,
- "script_type": 2
- }
-},
-{
- "pk": 2116,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.7",
- "task_executed": true,
- "disk_io": 360,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "354e5ad2f7f593e15a7e9bb71a526df5",
- "recipe": 134,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.731241",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/popt-native/1.16-r3/temp/log.do_populate_sysroot_setscene.11847",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe popt-native-1.16-r3: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 522,
- "script_type": 2
- }
-},
-{
- "pk": 2117,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.7",
- "task_executed": true,
- "disk_io": 520,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "35efddf9bc7618411bc28c1dddf1e1dd",
- "recipe": 99,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.203156",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/ossp-uuid-native/1.6.2-r2/temp/log.do_populate_sysroot_setscene.11848",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe ossp-uuid-native-1.6.2-r2: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 523,
- "script_type": 2
- }
-},
-{
- "pk": 2118,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.4",
- "task_executed": true,
- "disk_io": 616,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "cf79cf72946c688058997f306d74d4ae",
- "recipe": 44,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.005809",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/beecrypt-native/4.2.1-r3/temp/log.do_populate_sysroot_setscene.11849",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe beecrypt-native-4.2.1-r3: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 524,
- "script_type": 2
- }
-},
-{
- "pk": 2119,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.6",
- "task_executed": true,
- "disk_io": 636,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "99bb5743c772185f62de9f355a359379",
- "recipe": 9,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.038293",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/elfutils-native/0.155-r0/temp/log.do_populate_sysroot_setscene.11882",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe elfutils-native-0.155-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 526,
- "script_type": 2
- }
-},
-{
- "pk": 2120,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.8",
- "task_executed": true,
- "disk_io": 5636,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4ef055d92a458b827d5377bf015480f5",
- "recipe": 68,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "6.159608",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/python-native/2.7.3-r0.1/temp/log.do_populate_sysroot_setscene.11893",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe python-native-2.7.3-r0.1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 527,
- "script_type": 2
- }
-},
-{
- "pk": 2121,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.8",
- "task_executed": true,
- "disk_io": 236,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "265fbc003cf5b78e85d95b8c58c42ea9",
- "recipe": 83,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.441027",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/eglibc-initial/2.18-r0/temp/log.do_populate_sysroot_setscene.12092",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe eglibc-initial-2.18-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 533,
- "script_type": 2
- }
-},
-{
- "pk": 2122,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.8",
- "task_executed": true,
- "disk_io": 660,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b4d9b9b8e96b9074a9036c264b441d4c",
- "recipe": 34,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.058807",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/gcc-cross-initial/4.8.2-r0/temp/log.do_populate_sysroot_setscene.12127",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gcc-cross-initial-4.8.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 535,
- "script_type": 2
- }
-},
-{
- "pk": 2123,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "7.7",
- "task_executed": true,
- "disk_io": 56,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "087f6d85f21422de8fe9f09f2e29a112",
- "recipe": 90,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.243059",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/linux-libc-headers/3.10-r0/temp/log.do_populate_sysroot_setscene.12128",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe linux-libc-headers-3.10-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 536,
- "script_type": 2
- }
-},
-{
- "pk": 2124,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.6",
- "task_executed": true,
- "disk_io": 124,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "764d39eb893ccd3b6a778a1026e0d1d8",
- "recipe": 104,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.359587",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/kconfig-frontends-native/3.12.0.0-r0/temp/log.do_populate_sysroot_setscene.12129",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe kconfig-frontends-native-3.12.0.0-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 537,
- "script_type": 2
- }
-},
-{
- "pk": 2125,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.5",
- "task_executed": true,
- "disk_io": 400,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a2e87eb70b1316a3ebaf08b54ad0a00c",
- "recipe": 56,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.58763",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/unifdef-native/2.6.18+git-r1/temp/log.do_populate_sysroot_setscene.12141",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe unifdef-native-2.6.18+git-r1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 538,
- "script_type": 2
- }
-},
-{
- "pk": 2126,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "6.6",
- "task_executed": true,
- "disk_io": 72,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4535576ee16978594b2c5553f80fa823",
- "recipe": 126,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.44387",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gperf-native/3.0.4-r0/temp/log.do_populate_sysroot_setscene.12161",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gperf-native-3.0.4-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 539,
- "script_type": 2
- }
-},
-{
- "pk": 2127,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "1.9",
- "task_executed": true,
- "disk_io": 256,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "1498724ff4d0c433184d948489456c96",
- "recipe": 120,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.691951",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/pkgconfig-native/0.28-r0/temp/log.do_populate_sysroot_setscene.12163",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe pkgconfig-native-0.28-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 541,
- "script_type": 2
- }
-},
-{
- "pk": 2128,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.8",
- "task_executed": true,
- "disk_io": 692,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "de21c5a2ccd31f06e040ad3e002deeae",
- "recipe": 51,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.81956",
- "logfile": "/home/andreea/poky/build/tmp/work/i586-poky-linux/binutils-cross/2.23.2-r4/temp/log.do_populate_sysroot_setscene.12205",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe binutils-cross-2.23.2-r4: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 542,
- "script_type": 2
- }
-},
-{
- "pk": 2129,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3",
- "task_executed": true,
- "disk_io": 208,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a972c8b35d9a0294fabb3856042b6aa1",
- "recipe": 78,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.713141",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libmpc-native/1.0.1-r0/temp/log.do_populate_sysroot_setscene.12206",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libmpc-native-1.0.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 543,
- "script_type": 2
- }
-},
-{
- "pk": 2130,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 900,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "896f56ea903f96b3c248f823f15d6310",
- "recipe": 66,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.118612",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/mpfr-native/3.1.2-r0/temp/log.do_populate_sysroot_setscene.12244",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe mpfr-native-3.1.2-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 544,
- "script_type": 2
- }
-},
-{
- "pk": 2131,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.8",
- "task_executed": true,
- "disk_io": 784,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "afad5bf0d0f3d7f5a8221906f8e97bef",
- "recipe": 102,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.032201",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/bison-native/2.7.1-r0/temp/log.do_populate_sysroot_setscene.12253",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe bison-native-2.7.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 546,
- "script_type": 2
- }
-},
-{
- "pk": 2132,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "0.7",
- "task_executed": true,
- "disk_io": 928,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "3c93729bb3134a9dbe5c01481ecfb19d",
- "recipe": 60,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "1.206267",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/flex-native/2.5.37-r0/temp/log.do_populate_sysroot_setscene.12254",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe flex-native-2.5.37-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 547,
- "script_type": 2
- }
-},
-{
- "pk": 2133,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "6.5",
- "task_executed": true,
- "disk_io": 112,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "6d0bed07592b4c886e2a3d39b94f6ef0",
- "recipe": 58,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.506079",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gmp-native/5.1.1-r0/temp/log.do_populate_sysroot_setscene.12293",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gmp-native-5.1.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 548,
- "script_type": 2
- }
-},
-{
- "pk": 2134,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "7.1",
- "task_executed": true,
- "disk_io": 72,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "4dd842e2f4086be42cf09fc456133214",
- "recipe": 29,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.460927",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/xz-native/5.1.3alpha-r0/temp/log.do_populate_sysroot_setscene.12305",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe xz-native-5.1.3alpha-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 549,
- "script_type": 2
- }
-},
-{
- "pk": 2135,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4",
- "task_executed": true,
- "disk_io": 92,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8b42ecbf92b8b5d5e75b264012dad9ef",
- "recipe": 8,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.302684",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gettext-minimal-native/0.18.3.1-r0/temp/log.do_populate_sysroot_setscene.12337",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gettext-minimal-native-0.18.3.1-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 550,
- "script_type": 2
- }
-},
-{
- "pk": 2136,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "2.1",
- "task_executed": true,
- "disk_io": 376,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "a5547b740ddd455fc6fd308658d8ac78",
- "recipe": 11,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.802912",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/libtool-native/2.4.2-r6.1/temp/log.do_populate_sysroot_setscene.12348",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe libtool-native-2.4.2-r6.1: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 551,
- "script_type": 2
- }
-},
-{
- "pk": 2137,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5",
- "task_executed": true,
- "disk_io": 76,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "99c5d83ef9f6f307cb890165de15e442",
- "recipe": 33,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.682915",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/automake-native/1.14-r0/temp/log.do_populate_sysroot_setscene.12375",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe automake-native-1.14-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 552,
- "script_type": 2
- }
-},
-{
- "pk": 2138,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.4",
- "task_executed": true,
- "disk_io": 68,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "8e8b7abea6051612f4f1911d90447bb4",
- "recipe": 101,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.346553",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/autoconf-native/2.69-r11/temp/log.do_populate_sysroot_setscene.12391",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe autoconf-native-2.69-r11: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 553,
- "script_type": 2
- }
-},
-{
- "pk": 2139,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "3.4",
- "task_executed": true,
- "disk_io": 80,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "fa337aebb9b59318caf39a92b1a9506e",
- "recipe": 35,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.330358",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/m4-native/1.4.17-r0/temp/log.do_populate_sysroot_setscene.12407",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe m4-native-1.4.17-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 554,
- "script_type": 2
- }
-},
-{
- "pk": 2140,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "5.9",
- "task_executed": true,
- "disk_io": 52,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "031b409d877f3990df4f8379f4e3d7aa",
- "recipe": 88,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.314917",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/gnu-config-native/20120814-r0/temp/log.do_populate_sysroot_setscene.12419",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe gnu-config-native-20120814-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 555,
- "script_type": 2
- }
-},
-{
- "pk": 2141,
- "model": "orm.task",
- "fields": {
- "work_directory": "",
- "cpu_usage": "4.8",
- "task_executed": true,
- "disk_io": 68,
- "line_number": 0,
- "path_to_sstate_obj": "",
- "sstate_checksum": "b9d05bdf0920a2a60cdd34a3302504b6",
- "recipe": 96,
- "sstate_result": 0,
- "source_url": "",
- "elapsed_time": "0.363256",
- "logfile": "/home/andreea/poky/build/tmp/work/i686-linux/quilt-native/0.61-r0/temp/log.do_populate_sysroot_setscene.12435",
- "build": 1,
- "task_name": "do_populate_sysroot_setscene",
- "message": "recipe quilt-native-0.61-r0: task do_populate_sysroot_setscene: Succeeded",
- "outcome": 0,
- "order": 556,
- "script_type": 2
- }
-},
-{
- "pk": 1,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 2,
- "task": 1
- }
-},
-{
- "pk": 2,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 4,
- "task": 3
- }
-},
-{
- "pk": 3,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 6,
- "task": 5
- }
-},
-{
- "pk": 4,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 7,
- "task": 5
- }
-},
-{
- "pk": 5,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 8
- }
-},
-{
- "pk": 6,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 10,
- "task": 8
- }
-},
-{
- "pk": 7,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 12,
- "task": 11
- }
-},
-{
- "pk": 8,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 14,
- "task": 13
- }
-},
-{
- "pk": 9,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 15,
- "task": 13
- }
-},
-{
- "pk": 10,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 13
- }
-},
-{
- "pk": 11,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 13
- }
-},
-{
- "pk": 12,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 18,
- "task": 17
- }
-},
-{
- "pk": 13,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 17
- }
-},
-{
- "pk": 14,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 19,
- "task": 17
- }
-},
-{
- "pk": 15,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 17
- }
-},
-{
- "pk": 16,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 21,
- "task": 20
- }
-},
-{
- "pk": 17,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 22
- }
-},
-{
- "pk": 18,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 24,
- "task": 22
- }
-},
-{
- "pk": 19,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 22
- }
-},
-{
- "pk": 20,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 22
- }
-},
-{
- "pk": 21,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 22
- }
-},
-{
- "pk": 22,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 22
- }
-},
-{
- "pk": 23,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 22
- }
-},
-{
- "pk": 24,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 22
- }
-},
-{
- "pk": 25,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 22
- }
-},
-{
- "pk": 26,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 22
- }
-},
-{
- "pk": 27,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 34,
- "task": 33
- }
-},
-{
- "pk": 28,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 35
- }
-},
-{
- "pk": 29,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 36,
- "task": 35
- }
-},
-{
- "pk": 30,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 37,
- "task": 35
- }
-},
-{
- "pk": 31,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 38
- }
-},
-{
- "pk": 32,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 40,
- "task": 38
- }
-},
-{
- "pk": 33,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 42,
- "task": 41
- }
-},
-{
- "pk": 34,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 44,
- "task": 43
- }
-},
-{
- "pk": 35,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 46,
- "task": 45
- }
-},
-{
- "pk": 36,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 48,
- "task": 47
- }
-},
-{
- "pk": 37,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 18
- }
-},
-{
- "pk": 38,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 18
- }
-},
-{
- "pk": 39,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 50,
- "task": 18
- }
-},
-{
- "pk": 40,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 18
- }
-},
-{
- "pk": 41,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 18
- }
-},
-{
- "pk": 42,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 52
- }
-},
-{
- "pk": 43,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 52
- }
-},
-{
- "pk": 44,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 52
- }
-},
-{
- "pk": 45,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 52
- }
-},
-{
- "pk": 46,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 53,
- "task": 52
- }
-},
-{
- "pk": 47,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 55,
- "task": 54
- }
-},
-{
- "pk": 48,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 57,
- "task": 56
- }
-},
-{
- "pk": 49,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 59,
- "task": 58
- }
-},
-{
- "pk": 50,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 60,
- "task": 58
- }
-},
-{
- "pk": 51,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 61,
- "task": 58
- }
-},
-{
- "pk": 52,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 62,
- "task": 58
- }
-},
-{
- "pk": 53,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 63,
- "task": 58
- }
-},
-{
- "pk": 54,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 64,
- "task": 58
- }
-},
-{
- "pk": 55,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 65,
- "task": 58
- }
-},
-{
- "pk": 56,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 66,
- "task": 58
- }
-},
-{
- "pk": 57,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 58
- }
-},
-{
- "pk": 58,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 68,
- "task": 58
- }
-},
-{
- "pk": 59,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 69,
- "task": 58
- }
-},
-{
- "pk": 60,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 70,
- "task": 58
- }
-},
-{
- "pk": 61,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 71,
- "task": 58
- }
-},
-{
- "pk": 62,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 72,
- "task": 58
- }
-},
-{
- "pk": 63,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 73,
- "task": 58
- }
-},
-{
- "pk": 64,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 58
- }
-},
-{
- "pk": 65,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 74,
- "task": 58
- }
-},
-{
- "pk": 66,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 75,
- "task": 58
- }
-},
-{
- "pk": 67,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 76,
- "task": 58
- }
-},
-{
- "pk": 68,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 77,
- "task": 58
- }
-},
-{
- "pk": 69,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 78,
- "task": 58
- }
-},
-{
- "pk": 70,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 79,
- "task": 58
- }
-},
-{
- "pk": 71,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 80,
- "task": 58
- }
-},
-{
- "pk": 72,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 81,
- "task": 58
- }
-},
-{
- "pk": 73,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 82,
- "task": 58
- }
-},
-{
- "pk": 74,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 83,
- "task": 58
- }
-},
-{
- "pk": 75,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 84,
- "task": 58
- }
-},
-{
- "pk": 76,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 85,
- "task": 58
- }
-},
-{
- "pk": 77,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 86,
- "task": 58
- }
-},
-{
- "pk": 78,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 87,
- "task": 58
- }
-},
-{
- "pk": 79,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 58
- }
-},
-{
- "pk": 80,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 88,
- "task": 58
- }
-},
-{
- "pk": 81,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 89,
- "task": 58
- }
-},
-{
- "pk": 82,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 90,
- "task": 58
- }
-},
-{
- "pk": 83,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 91,
- "task": 58
- }
-},
-{
- "pk": 84,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 92,
- "task": 58
- }
-},
-{
- "pk": 85,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 93,
- "task": 58
- }
-},
-{
- "pk": 86,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 94,
- "task": 58
- }
-},
-{
- "pk": 87,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 95,
- "task": 58
- }
-},
-{
- "pk": 88,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 96,
- "task": 58
- }
-},
-{
- "pk": 89,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 97,
- "task": 58
- }
-},
-{
- "pk": 90,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 58
- }
-},
-{
- "pk": 91,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 99,
- "task": 58
- }
-},
-{
- "pk": 92,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 100,
- "task": 58
- }
-},
-{
- "pk": 93,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 101,
- "task": 58
- }
-},
-{
- "pk": 94,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 102,
- "task": 58
- }
-},
-{
- "pk": 95,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 58
- }
-},
-{
- "pk": 96,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 104,
- "task": 58
- }
-},
-{
- "pk": 97,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 105,
- "task": 58
- }
-},
-{
- "pk": 98,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 106,
- "task": 58
- }
-},
-{
- "pk": 99,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 107,
- "task": 58
- }
-},
-{
- "pk": 100,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 108,
- "task": 58
- }
-},
-{
- "pk": 101,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 109,
- "task": 58
- }
-},
-{
- "pk": 102,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 110,
- "task": 58
- }
-},
-{
- "pk": 103,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 58
- }
-},
-{
- "pk": 104,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 111,
- "task": 58
- }
-},
-{
- "pk": 105,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 112,
- "task": 58
- }
-},
-{
- "pk": 106,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 113,
- "task": 58
- }
-},
-{
- "pk": 107,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 114,
- "task": 58
- }
-},
-{
- "pk": 108,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 115,
- "task": 58
- }
-},
-{
- "pk": 109,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 116,
- "task": 58
- }
-},
-{
- "pk": 110,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 117,
- "task": 58
- }
-},
-{
- "pk": 111,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 118,
- "task": 58
- }
-},
-{
- "pk": 112,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 119,
- "task": 58
- }
-},
-{
- "pk": 113,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 120,
- "task": 58
- }
-},
-{
- "pk": 114,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 121,
- "task": 58
- }
-},
-{
- "pk": 115,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 122,
- "task": 58
- }
-},
-{
- "pk": 116,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 123,
- "task": 58
- }
-},
-{
- "pk": 117,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 58
- }
-},
-{
- "pk": 118,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 125,
- "task": 58
- }
-},
-{
- "pk": 119,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 126,
- "task": 58
- }
-},
-{
- "pk": 120,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 127,
- "task": 58
- }
-},
-{
- "pk": 121,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 128,
- "task": 58
- }
-},
-{
- "pk": 122,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 129,
- "task": 58
- }
-},
-{
- "pk": 123,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 130,
- "task": 58
- }
-},
-{
- "pk": 124,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 58
- }
-},
-{
- "pk": 125,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 132,
- "task": 58
- }
-},
-{
- "pk": 126,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 133,
- "task": 58
- }
-},
-{
- "pk": 127,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 134,
- "task": 58
- }
-},
-{
- "pk": 128,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 135,
- "task": 58
- }
-},
-{
- "pk": 129,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 136,
- "task": 58
- }
-},
-{
- "pk": 130,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 137,
- "task": 58
- }
-},
-{
- "pk": 131,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 138,
- "task": 58
- }
-},
-{
- "pk": 132,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 139,
- "task": 58
- }
-},
-{
- "pk": 133,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 140,
- "task": 58
- }
-},
-{
- "pk": 134,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 19,
- "task": 58
- }
-},
-{
- "pk": 135,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 141,
- "task": 58
- }
-},
-{
- "pk": 136,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 17,
- "task": 58
- }
-},
-{
- "pk": 137,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 142,
- "task": 58
- }
-},
-{
- "pk": 138,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 143,
- "task": 58
- }
-},
-{
- "pk": 139,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 144,
- "task": 58
- }
-},
-{
- "pk": 140,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 145,
- "task": 58
- }
-},
-{
- "pk": 141,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 146,
- "task": 58
- }
-},
-{
- "pk": 142,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 147,
- "task": 58
- }
-},
-{
- "pk": 143,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 148,
- "task": 58
- }
-},
-{
- "pk": 144,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 149,
- "task": 58
- }
-},
-{
- "pk": 145,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 150,
- "task": 58
- }
-},
-{
- "pk": 146,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 151,
- "task": 58
- }
-},
-{
- "pk": 147,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 152,
- "task": 58
- }
-},
-{
- "pk": 148,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 153,
- "task": 58
- }
-},
-{
- "pk": 149,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 154,
- "task": 58
- }
-},
-{
- "pk": 150,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 155,
- "task": 58
- }
-},
-{
- "pk": 151,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 156,
- "task": 58
- }
-},
-{
- "pk": 152,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 157,
- "task": 58
- }
-},
-{
- "pk": 153,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 158,
- "task": 58
- }
-},
-{
- "pk": 154,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 159,
- "task": 58
- }
-},
-{
- "pk": 155,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 160,
- "task": 58
- }
-},
-{
- "pk": 156,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 161,
- "task": 58
- }
-},
-{
- "pk": 157,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 162,
- "task": 58
- }
-},
-{
- "pk": 158,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 163,
- "task": 58
- }
-},
-{
- "pk": 159,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 164,
- "task": 58
- }
-},
-{
- "pk": 160,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 165,
- "task": 58
- }
-},
-{
- "pk": 161,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 166,
- "task": 58
- }
-},
-{
- "pk": 162,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 167,
- "task": 58
- }
-},
-{
- "pk": 163,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 168,
- "task": 58
- }
-},
-{
- "pk": 164,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 169,
- "task": 58
- }
-},
-{
- "pk": 165,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 170,
- "task": 58
- }
-},
-{
- "pk": 166,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 171,
- "task": 58
- }
-},
-{
- "pk": 167,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 172,
- "task": 58
- }
-},
-{
- "pk": 168,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 173,
- "task": 58
- }
-},
-{
- "pk": 169,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 174,
- "task": 58
- }
-},
-{
- "pk": 170,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 175,
- "task": 58
- }
-},
-{
- "pk": 171,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 176,
- "task": 58
- }
-},
-{
- "pk": 172,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 177,
- "task": 58
- }
-},
-{
- "pk": 173,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 178,
- "task": 58
- }
-},
-{
- "pk": 174,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 179,
- "task": 58
- }
-},
-{
- "pk": 175,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 180,
- "task": 58
- }
-},
-{
- "pk": 176,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 14,
- "task": 58
- }
-},
-{
- "pk": 177,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 13,
- "task": 58
- }
-},
-{
- "pk": 178,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 181,
- "task": 58
- }
-},
-{
- "pk": 179,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 182,
- "task": 58
- }
-},
-{
- "pk": 180,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 183,
- "task": 58
- }
-},
-{
- "pk": 181,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 184,
- "task": 58
- }
-},
-{
- "pk": 182,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 185,
- "task": 58
- }
-},
-{
- "pk": 183,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 186,
- "task": 58
- }
-},
-{
- "pk": 184,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 187,
- "task": 58
- }
-},
-{
- "pk": 185,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 188,
- "task": 58
- }
-},
-{
- "pk": 186,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 58
- }
-},
-{
- "pk": 187,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 190,
- "task": 58
- }
-},
-{
- "pk": 188,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 58
- }
-},
-{
- "pk": 189,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 192,
- "task": 58
- }
-},
-{
- "pk": 190,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 193,
- "task": 58
- }
-},
-{
- "pk": 191,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 194,
- "task": 58
- }
-},
-{
- "pk": 192,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 58
- }
-},
-{
- "pk": 193,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 196,
- "task": 58
- }
-},
-{
- "pk": 194,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 197,
- "task": 58
- }
-},
-{
- "pk": 195,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 198,
- "task": 58
- }
-},
-{
- "pk": 196,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 58
- }
-},
-{
- "pk": 197,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 200,
- "task": 58
- }
-},
-{
- "pk": 198,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 201,
- "task": 58
- }
-},
-{
- "pk": 199,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 202,
- "task": 58
- }
-},
-{
- "pk": 200,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 203,
- "task": 58
- }
-},
-{
- "pk": 201,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 204,
- "task": 58
- }
-},
-{
- "pk": 202,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 58
- }
-},
-{
- "pk": 203,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 206,
- "task": 58
- }
-},
-{
- "pk": 204,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 207,
- "task": 58
- }
-},
-{
- "pk": 205,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 208,
- "task": 58
- }
-},
-{
- "pk": 206,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 209,
- "task": 58
- }
-},
-{
- "pk": 207,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 210,
- "task": 58
- }
-},
-{
- "pk": 208,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 11,
- "task": 58
- }
-},
-{
- "pk": 209,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 211,
- "task": 58
- }
-},
-{
- "pk": 210,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 212,
- "task": 58
- }
-},
-{
- "pk": 211,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 213,
- "task": 58
- }
-},
-{
- "pk": 212,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 214,
- "task": 58
- }
-},
-{
- "pk": 213,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 215,
- "task": 58
- }
-},
-{
- "pk": 214,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 216,
- "task": 58
- }
-},
-{
- "pk": 215,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 217,
- "task": 58
- }
-},
-{
- "pk": 216,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 218,
- "task": 58
- }
-},
-{
- "pk": 217,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 220,
- "task": 219
- }
-},
-{
- "pk": 218,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 219
- }
-},
-{
- "pk": 219,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 219
- }
-},
-{
- "pk": 220,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 219
- }
-},
-{
- "pk": 221,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 219
- }
-},
-{
- "pk": 222,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 219
- }
-},
-{
- "pk": 223,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 223,
- "task": 222
- }
-},
-{
- "pk": 224,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 222
- }
-},
-{
- "pk": 225,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 224,
- "task": 222
- }
-},
-{
- "pk": 226,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 225,
- "task": 222
- }
-},
-{
- "pk": 227,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 226,
- "task": 222
- }
-},
-{
- "pk": 228,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 228,
- "task": 227
- }
-},
-{
- "pk": 229,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 229
- }
-},
-{
- "pk": 230,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 230,
- "task": 229
- }
-},
-{
- "pk": 231,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 229
- }
-},
-{
- "pk": 232,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 229
- }
-},
-{
- "pk": 233,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 229
- }
-},
-{
- "pk": 234,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 229
- }
-},
-{
- "pk": 235,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 229
- }
-},
-{
- "pk": 236,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 231,
- "task": 229
- }
-},
-{
- "pk": 237,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 229
- }
-},
-{
- "pk": 238,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 229
- }
-},
-{
- "pk": 239,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 229
- }
-},
-{
- "pk": 240,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 233,
- "task": 229
- }
-},
-{
- "pk": 241,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 229
- }
-},
-{
- "pk": 242,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 234,
- "task": 195
- }
-},
-{
- "pk": 243,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 235,
- "task": 30
- }
-},
-{
- "pk": 244,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 237,
- "task": 236
- }
-},
-{
- "pk": 245,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 238,
- "task": 236
- }
-},
-{
- "pk": 246,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 239
- }
-},
-{
- "pk": 247,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 240,
- "task": 239
- }
-},
-{
- "pk": 248,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 242,
- "task": 241
- }
-},
-{
- "pk": 249,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 175
- }
-},
-{
- "pk": 250,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 175
- }
-},
-{
- "pk": 251,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 174,
- "task": 175
- }
-},
-{
- "pk": 252,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 243,
- "task": 175
- }
-},
-{
- "pk": 253,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 245,
- "task": 244
- }
-},
-{
- "pk": 254,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 247,
- "task": 246
- }
-},
-{
- "pk": 255,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 249,
- "task": 248
- }
-},
-{
- "pk": 256,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 250,
- "task": 248
- }
-},
-{
- "pk": 257,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 251
- }
-},
-{
- "pk": 258,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 251
- }
-},
-{
- "pk": 259,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 251
- }
-},
-{
- "pk": 260,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 251
- }
-},
-{
- "pk": 261,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 256,
- "task": 251
- }
-},
-{
- "pk": 262,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 251
- }
-},
-{
- "pk": 263,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 251
- }
-},
-{
- "pk": 264,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 259,
- "task": 251
- }
-},
-{
- "pk": 265,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 260,
- "task": 251
- }
-},
-{
- "pk": 266,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 166,
- "task": 251
- }
-},
-{
- "pk": 267,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 261,
- "task": 251
- }
-},
-{
- "pk": 268,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 251
- }
-},
-{
- "pk": 269,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 251
- }
-},
-{
- "pk": 270,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 251
- }
-},
-{
- "pk": 271,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 265
- }
-},
-{
- "pk": 272,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 266,
- "task": 265
- }
-},
-{
- "pk": 273,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 267
- }
-},
-{
- "pk": 274,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 268,
- "task": 267
- }
-},
-{
- "pk": 275,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 267
- }
-},
-{
- "pk": 276,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 267
- }
-},
-{
- "pk": 277,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 267
- }
-},
-{
- "pk": 278,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 267
- }
-},
-{
- "pk": 279,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 267
- }
-},
-{
- "pk": 280,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 271,
- "task": 270
- }
-},
-{
- "pk": 281,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 272,
- "task": 270
- }
-},
-{
- "pk": 282,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 270
- }
-},
-{
- "pk": 283,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 273,
- "task": 270
- }
-},
-{
- "pk": 284,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 274,
- "task": 270
- }
-},
-{
- "pk": 285,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 275,
- "task": 270
- }
-},
-{
- "pk": 286,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 276
- }
-},
-{
- "pk": 287,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 277,
- "task": 276
- }
-},
-{
- "pk": 288,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 278,
- "task": 164
- }
-},
-{
- "pk": 289,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 280,
- "task": 279
- }
-},
-{
- "pk": 290,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 282,
- "task": 281
- }
-},
-{
- "pk": 291,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 283,
- "task": 281
- }
-},
-{
- "pk": 292,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 285,
- "task": 284
- }
-},
-{
- "pk": 293,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 6,
- "task": 284
- }
-},
-{
- "pk": 294,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 286,
- "task": 277
- }
-},
-{
- "pk": 295,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 288,
- "task": 287
- }
-},
-{
- "pk": 296,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 287
- }
-},
-{
- "pk": 297,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 209,
- "task": 289
- }
-},
-{
- "pk": 298,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 289
- }
-},
-{
- "pk": 299,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 159,
- "task": 289
- }
-},
-{
- "pk": 300,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 11,
- "task": 289
- }
-},
-{
- "pk": 301,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 289
- }
-},
-{
- "pk": 302,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 289
- }
-},
-{
- "pk": 303,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 65,
- "task": 289
- }
-},
-{
- "pk": 304,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 289
- }
-},
-{
- "pk": 305,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 289
- }
-},
-{
- "pk": 306,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 164,
- "task": 289
- }
-},
-{
- "pk": 307,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 289
- }
-},
-{
- "pk": 308,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 290,
- "task": 289
- }
-},
-{
- "pk": 309,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 215,
- "task": 289
- }
-},
-{
- "pk": 310,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 289
- }
-},
-{
- "pk": 311,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 63,
- "task": 289
- }
-},
-{
- "pk": 312,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 289
- }
-},
-{
- "pk": 313,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 291,
- "task": 289
- }
-},
-{
- "pk": 314,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 293,
- "task": 292
- }
-},
-{
- "pk": 315,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 295,
- "task": 294
- }
-},
-{
- "pk": 316,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 296
- }
-},
-{
- "pk": 317,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 11,
- "task": 296
- }
-},
-{
- "pk": 318,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 296
- }
-},
-{
- "pk": 319,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 95,
- "task": 296
- }
-},
-{
- "pk": 320,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 296
- }
-},
-{
- "pk": 321,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 296
- }
-},
-{
- "pk": 322,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 297,
- "task": 296
- }
-},
-{
- "pk": 323,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 296
- }
-},
-{
- "pk": 324,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 296
- }
-},
-{
- "pk": 325,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 296
- }
-},
-{
- "pk": 326,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 296
- }
-},
-{
- "pk": 327,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 298
- }
-},
-{
- "pk": 328,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 298
- }
-},
-{
- "pk": 329,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 298
- }
-},
-{
- "pk": 330,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 298
- }
-},
-{
- "pk": 331,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 298
- }
-},
-{
- "pk": 332,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 299,
- "task": 298
- }
-},
-{
- "pk": 333,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 298
- }
-},
-{
- "pk": 334,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 298
- }
-},
-{
- "pk": 335,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 300
- }
-},
-{
- "pk": 336,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 301,
- "task": 300
- }
-},
-{
- "pk": 337,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 101,
- "task": 302
- }
-},
-{
- "pk": 338,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 100,
- "task": 302
- }
-},
-{
- "pk": 339,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 180,
- "task": 303
- }
-},
-{
- "pk": 340,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 72,
- "task": 303
- }
-},
-{
- "pk": 341,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 304,
- "task": 74
- }
-},
-{
- "pk": 342,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 306,
- "task": 305
- }
-},
-{
- "pk": 343,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 307
- }
-},
-{
- "pk": 344,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 308,
- "task": 307
- }
-},
-{
- "pk": 345,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 291,
- "task": 290
- }
-},
-{
- "pk": 346,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 309
- }
-},
-{
- "pk": 347,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 310,
- "task": 309
- }
-},
-{
- "pk": 348,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 311
- }
-},
-{
- "pk": 349,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 312,
- "task": 311
- }
-},
-{
- "pk": 350,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 313,
- "task": 274
- }
-},
-{
- "pk": 351,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 314
- }
-},
-{
- "pk": 352,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 314
- }
-},
-{
- "pk": 353,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 315,
- "task": 314
- }
-},
-{
- "pk": 354,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 314
- }
-},
-{
- "pk": 355,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 118
- }
-},
-{
- "pk": 356,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 159,
- "task": 118
- }
-},
-{
- "pk": 357,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 316,
- "task": 118
- }
-},
-{
- "pk": 358,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 118
- }
-},
-{
- "pk": 359,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 318,
- "task": 317
- }
-},
-{
- "pk": 360,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 283,
- "task": 319
- }
-},
-{
- "pk": 361,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 320,
- "task": 319
- }
-},
-{
- "pk": 362,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 322,
- "task": 321
- }
-},
-{
- "pk": 363,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 323
- }
-},
-{
- "pk": 364,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 324,
- "task": 323
- }
-},
-{
- "pk": 365,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 69
- }
-},
-{
- "pk": 366,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 69
- }
-},
-{
- "pk": 367,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 14,
- "task": 69
- }
-},
-{
- "pk": 368,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 127,
- "task": 69
- }
-},
-{
- "pk": 369,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 177,
- "task": 69
- }
-},
-{
- "pk": 370,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 325,
- "task": 69
- }
-},
-{
- "pk": 371,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 327,
- "task": 326
- }
-},
-{
- "pk": 372,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 307,
- "task": 328
- }
-},
-{
- "pk": 373,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 113,
- "task": 329
- }
-},
-{
- "pk": 374,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 73,
- "task": 329
- }
-},
-{
- "pk": 375,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 331,
- "task": 330
- }
-},
-{
- "pk": 376,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 333,
- "task": 332
- }
-},
-{
- "pk": 377,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 332
- }
-},
-{
- "pk": 378,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 332
- }
-},
-{
- "pk": 379,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 332
- }
-},
-{
- "pk": 380,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 332
- }
-},
-{
- "pk": 381,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 334,
- "task": 332
- }
-},
-{
- "pk": 382,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 332
- }
-},
-{
- "pk": 383,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 332
- }
-},
-{
- "pk": 384,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 335
- }
-},
-{
- "pk": 385,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 336,
- "task": 335
- }
-},
-{
- "pk": 386,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 337
- }
-},
-{
- "pk": 387,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 338,
- "task": 337
- }
-},
-{
- "pk": 388,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 289,
- "task": 193
- }
-},
-{
- "pk": 389,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 339
- }
-},
-{
- "pk": 390,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 340,
- "task": 339
- }
-},
-{
- "pk": 391,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 339
- }
-},
-{
- "pk": 392,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 339
- }
-},
-{
- "pk": 393,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 234,
- "task": 339
- }
-},
-{
- "pk": 394,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 342,
- "task": 341
- }
-},
-{
- "pk": 395,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 341
- }
-},
-{
- "pk": 396,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 344,
- "task": 343
- }
-},
-{
- "pk": 397,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 345,
- "task": 343
- }
-},
-{
- "pk": 398,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 347,
- "task": 346
- }
-},
-{
- "pk": 399,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 349,
- "task": 348
- }
-},
-{
- "pk": 400,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 267
- }
-},
-{
- "pk": 401,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 267
- }
-},
-{
- "pk": 402,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 267
- }
-},
-{
- "pk": 403,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 267
- }
-},
-{
- "pk": 404,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 84,
- "task": 85
- }
-},
-{
- "pk": 405,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 350,
- "task": 85
- }
-},
-{
- "pk": 406,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 85
- }
-},
-{
- "pk": 407,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 85
- }
-},
-{
- "pk": 408,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 74,
- "task": 351
- }
-},
-{
- "pk": 409,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 75,
- "task": 351
- }
-},
-{
- "pk": 410,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 353,
- "task": 352
- }
-},
-{
- "pk": 411,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 354
- }
-},
-{
- "pk": 412,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 355,
- "task": 354
- }
-},
-{
- "pk": 413,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 357,
- "task": 356
- }
-},
-{
- "pk": 414,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 358,
- "task": 356
- }
-},
-{
- "pk": 415,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 360,
- "task": 359
- }
-},
-{
- "pk": 416,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 361
- }
-},
-{
- "pk": 417,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 362,
- "task": 361
- }
-},
-{
- "pk": 418,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 363
- }
-},
-{
- "pk": 419,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 365,
- "task": 363
- }
-},
-{
- "pk": 420,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 363
- }
-},
-{
- "pk": 421,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 363
- }
-},
-{
- "pk": 422,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 363
- }
-},
-{
- "pk": 423,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 330,
- "task": 363
- }
-},
-{
- "pk": 424,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 367,
- "task": 363
- }
-},
-{
- "pk": 425,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 76,
- "task": 363
- }
-},
-{
- "pk": 426,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 368,
- "task": 363
- }
-},
-{
- "pk": 427,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 363
- }
-},
-{
- "pk": 428,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 363
- }
-},
-{
- "pk": 429,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 363
- }
-},
-{
- "pk": 430,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 363
- }
-},
-{
- "pk": 431,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 363
- }
-},
-{
- "pk": 432,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 363
- }
-},
-{
- "pk": 433,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 363
- }
-},
-{
- "pk": 434,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 363
- }
-},
-{
- "pk": 435,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 363
- }
-},
-{
- "pk": 436,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 363
- }
-},
-{
- "pk": 437,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 363
- }
-},
-{
- "pk": 438,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 374,
- "task": 373
- }
-},
-{
- "pk": 439,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 376,
- "task": 375
- }
-},
-{
- "pk": 440,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 378,
- "task": 377
- }
-},
-{
- "pk": 441,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 379
- }
-},
-{
- "pk": 442,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 380,
- "task": 379
- }
-},
-{
- "pk": 443,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 382,
- "task": 381
- }
-},
-{
- "pk": 444,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 381
- }
-},
-{
- "pk": 445,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 384,
- "task": 383
- }
-},
-{
- "pk": 446,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 386,
- "task": 385
- }
-},
-{
- "pk": 447,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 388,
- "task": 387
- }
-},
-{
- "pk": 448,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 387
- }
-},
-{
- "pk": 449,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 147,
- "task": 389
- }
-},
-{
- "pk": 450,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 149,
- "task": 389
- }
-},
-{
- "pk": 451,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 390
- }
-},
-{
- "pk": 452,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 391,
- "task": 390
- }
-},
-{
- "pk": 453,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 393,
- "task": 392
- }
-},
-{
- "pk": 454,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 395,
- "task": 394
- }
-},
-{
- "pk": 455,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 396
- }
-},
-{
- "pk": 456,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 397,
- "task": 396
- }
-},
-{
- "pk": 457,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 398,
- "task": 147
- }
-},
-{
- "pk": 458,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 170,
- "task": 399
- }
-},
-{
- "pk": 459,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 399
- }
-},
-{
- "pk": 460,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 399
- }
-},
-{
- "pk": 461,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 399
- }
-},
-{
- "pk": 462,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 399
- }
-},
-{
- "pk": 463,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 401,
- "task": 399
- }
-},
-{
- "pk": 464,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 399
- }
-},
-{
- "pk": 465,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 399
- }
-},
-{
- "pk": 466,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 399
- }
-},
-{
- "pk": 467,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 399
- }
-},
-{
- "pk": 468,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 399
- }
-},
-{
- "pk": 469,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 399
- }
-},
-{
- "pk": 470,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 399
- }
-},
-{
- "pk": 471,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 399
- }
-},
-{
- "pk": 472,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 403,
- "task": 399
- }
-},
-{
- "pk": 473,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 399
- }
-},
-{
- "pk": 474,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 404,
- "task": 399
- }
-},
-{
- "pk": 475,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 399
- }
-},
-{
- "pk": 476,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 406
- }
-},
-{
- "pk": 477,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 406
- }
-},
-{
- "pk": 478,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 406
- }
-},
-{
- "pk": 479,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 406
- }
-},
-{
- "pk": 480,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 406
- }
-},
-{
- "pk": 481,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 408,
- "task": 406
- }
-},
-{
- "pk": 482,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 406
- }
-},
-{
- "pk": 483,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 409,
- "task": 220
- }
-},
-{
- "pk": 484,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 220
- }
-},
-{
- "pk": 485,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 410
- }
-},
-{
- "pk": 486,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 410
- }
-},
-{
- "pk": 487,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 410
- }
-},
-{
- "pk": 488,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 410
- }
-},
-{
- "pk": 489,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 410
- }
-},
-{
- "pk": 490,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 411,
- "task": 410
- }
-},
-{
- "pk": 491,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 246,
- "task": 410
- }
-},
-{
- "pk": 492,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 412,
- "task": 410
- }
-},
-{
- "pk": 493,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 125,
- "task": 410
- }
-},
-{
- "pk": 494,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 410
- }
-},
-{
- "pk": 495,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 410
- }
-},
-{
- "pk": 496,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 410
- }
-},
-{
- "pk": 497,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 410
- }
-},
-{
- "pk": 498,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 413,
- "task": 410
- }
-},
-{
- "pk": 499,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 414,
- "task": 230
- }
-},
-{
- "pk": 500,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 416,
- "task": 415
- }
-},
-{
- "pk": 501,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 418,
- "task": 417
- }
-},
-{
- "pk": 502,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 417
- }
-},
-{
- "pk": 503,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 417
- }
-},
-{
- "pk": 504,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 417
- }
-},
-{
- "pk": 505,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 417
- }
-},
-{
- "pk": 506,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 417
- }
-},
-{
- "pk": 507,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 417
- }
-},
-{
- "pk": 508,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 417
- }
-},
-{
- "pk": 509,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 420,
- "task": 419
- }
-},
-{
- "pk": 510,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 129,
- "task": 421
- }
-},
-{
- "pk": 511,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 130,
- "task": 421
- }
-},
-{
- "pk": 512,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 423,
- "task": 422
- }
-},
-{
- "pk": 513,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 424,
- "task": 203
- }
-},
-{
- "pk": 514,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 425
- }
-},
-{
- "pk": 515,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 11,
- "task": 425
- }
-},
-{
- "pk": 516,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 425
- }
-},
-{
- "pk": 517,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 121,
- "task": 425
- }
-},
-{
- "pk": 518,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 425
- }
-},
-{
- "pk": 519,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 425
- }
-},
-{
- "pk": 520,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 425
- }
-},
-{
- "pk": 521,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 425
- }
-},
-{
- "pk": 522,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 425
- }
-},
-{
- "pk": 523,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 426,
- "task": 425
- }
-},
-{
- "pk": 524,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 428,
- "task": 427
- }
-},
-{
- "pk": 525,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 164,
- "task": 169
- }
-},
-{
- "pk": 526,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 278,
- "task": 169
- }
-},
-{
- "pk": 527,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 169
- }
-},
-{
- "pk": 528,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 169
- }
-},
-{
- "pk": 529,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 430,
- "task": 429
- }
-},
-{
- "pk": 530,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 432,
- "task": 431
- }
-},
-{
- "pk": 531,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 433,
- "task": 431
- }
-},
-{
- "pk": 532,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 71,
- "task": 431
- }
-},
-{
- "pk": 533,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 434,
- "task": 431
- }
-},
-{
- "pk": 534,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 20,
- "task": 431
- }
-},
-{
- "pk": 535,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 436,
- "task": 435
- }
-},
-{
- "pk": 536,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 437
- }
-},
-{
- "pk": 537,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 437
- }
-},
-{
- "pk": 538,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 437
- }
-},
-{
- "pk": 539,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 437
- }
-},
-{
- "pk": 540,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 437
- }
-},
-{
- "pk": 541,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 437
- }
-},
-{
- "pk": 542,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 437
- }
-},
-{
- "pk": 543,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 437
- }
-},
-{
- "pk": 544,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 437
- }
-},
-{
- "pk": 545,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 437
- }
-},
-{
- "pk": 546,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 441,
- "task": 437
- }
-},
-{
- "pk": 547,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 442,
- "task": 437
- }
-},
-{
- "pk": 548,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 437
- }
-},
-{
- "pk": 549,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 123,
- "task": 437
- }
-},
-{
- "pk": 550,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 444,
- "task": 437
- }
-},
-{
- "pk": 551,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 437
- }
-},
-{
- "pk": 552,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 437
- }
-},
-{
- "pk": 553,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 437
- }
-},
-{
- "pk": 554,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 437
- }
-},
-{
- "pk": 555,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 437
- }
-},
-{
- "pk": 556,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 437
- }
-},
-{
- "pk": 557,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 437
- }
-},
-{
- "pk": 558,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 445
- }
-},
-{
- "pk": 559,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 445
- }
-},
-{
- "pk": 560,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 445
- }
-},
-{
- "pk": 561,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 446,
- "task": 445
- }
-},
-{
- "pk": 562,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 445
- }
-},
-{
- "pk": 563,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 447,
- "task": 445
- }
-},
-{
- "pk": 564,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 449,
- "task": 448
- }
-},
-{
- "pk": 565,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 450,
- "task": 448
- }
-},
-{
- "pk": 566,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 451,
- "task": 448
- }
-},
-{
- "pk": 567,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 448
- }
-},
-{
- "pk": 568,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 452,
- "task": 448
- }
-},
-{
- "pk": 569,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 448
- }
-},
-{
- "pk": 570,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 453,
- "task": 448
- }
-},
-{
- "pk": 571,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 454,
- "task": 448
- }
-},
-{
- "pk": 572,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 448
- }
-},
-{
- "pk": 573,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 448
- }
-},
-{
- "pk": 574,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 456,
- "task": 455
- }
-},
-{
- "pk": 575,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 458,
- "task": 457
- }
-},
-{
- "pk": 576,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 267,
- "task": 459
- }
-},
-{
- "pk": 577,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 461,
- "task": 460
- }
-},
-{
- "pk": 578,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 463,
- "task": 462
- }
-},
-{
- "pk": 579,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 464
- }
-},
-{
- "pk": 580,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 464
- }
-},
-{
- "pk": 581,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 465,
- "task": 464
- }
-},
-{
- "pk": 582,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 464
- }
-},
-{
- "pk": 583,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 464
- }
-},
-{
- "pk": 584,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 68,
- "task": 252
- }
-},
-{
- "pk": 585,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 252
- }
-},
-{
- "pk": 586,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 203,
- "task": 466
- }
-},
-{
- "pk": 587,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 466
- }
-},
-{
- "pk": 588,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 74,
- "task": 466
- }
-},
-{
- "pk": 589,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 466
- }
-},
-{
- "pk": 590,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 466
- }
-},
-{
- "pk": 591,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 466
- }
-},
-{
- "pk": 592,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 466
- }
-},
-{
- "pk": 593,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 396,
- "task": 466
- }
-},
-{
- "pk": 594,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 466
- }
-},
-{
- "pk": 595,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 200,
- "task": 466
- }
-},
-{
- "pk": 596,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 466
- }
-},
-{
- "pk": 597,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 466
- }
-},
-{
- "pk": 598,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 193,
- "task": 466
- }
-},
-{
- "pk": 599,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 467
- }
-},
-{
- "pk": 600,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 468,
- "task": 467
- }
-},
-{
- "pk": 601,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 470,
- "task": 469
- }
-},
-{
- "pk": 602,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 469
- }
-},
-{
- "pk": 603,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 472,
- "task": 471
- }
-},
-{
- "pk": 604,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 473,
- "task": 80
- }
-},
-{
- "pk": 605,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 475,
- "task": 474
- }
-},
-{
- "pk": 606,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 477,
- "task": 476
- }
-},
-{
- "pk": 607,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 478
- }
-},
-{
- "pk": 608,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 478
- }
-},
-{
- "pk": 609,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 479,
- "task": 478
- }
-},
-{
- "pk": 610,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 480,
- "task": 478
- }
-},
-{
- "pk": 611,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 478
- }
-},
-{
- "pk": 612,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 478
- }
-},
-{
- "pk": 613,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 478
- }
-},
-{
- "pk": 614,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 478
- }
-},
-{
- "pk": 615,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 478
- }
-},
-{
- "pk": 616,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 478
- }
-},
-{
- "pk": 617,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 478
- }
-},
-{
- "pk": 618,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 482,
- "task": 478
- }
-},
-{
- "pk": 619,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 483,
- "task": 478
- }
-},
-{
- "pk": 620,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 478
- }
-},
-{
- "pk": 621,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 478
- }
-},
-{
- "pk": 622,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 478
- }
-},
-{
- "pk": 623,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 478
- }
-},
-{
- "pk": 624,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 478
- }
-},
-{
- "pk": 625,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 486,
- "task": 478
- }
-},
-{
- "pk": 626,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 478
- }
-},
-{
- "pk": 627,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 478
- }
-},
-{
- "pk": 628,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 488,
- "task": 478
- }
-},
-{
- "pk": 629,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 478
- }
-},
-{
- "pk": 630,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 478
- }
-},
-{
- "pk": 631,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 490,
- "task": 478
- }
-},
-{
- "pk": 632,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 478
- }
-},
-{
- "pk": 633,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 478
- }
-},
-{
- "pk": 634,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 492,
- "task": 478
- }
-},
-{
- "pk": 635,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 478
- }
-},
-{
- "pk": 636,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 478
- }
-},
-{
- "pk": 637,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 367,
- "task": 478
- }
-},
-{
- "pk": 638,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 478
- }
-},
-{
- "pk": 639,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 478
- }
-},
-{
- "pk": 640,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 478
- }
-},
-{
- "pk": 641,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 478
- }
-},
-{
- "pk": 642,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 495,
- "task": 478
- }
-},
-{
- "pk": 643,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 478
- }
-},
-{
- "pk": 644,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 478
- }
-},
-{
- "pk": 645,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 478
- }
-},
-{
- "pk": 646,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 478
- }
-},
-{
- "pk": 647,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 478
- }
-},
-{
- "pk": 648,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 478
- }
-},
-{
- "pk": 649,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 478
- }
-},
-{
- "pk": 650,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 478
- }
-},
-{
- "pk": 651,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 478
- }
-},
-{
- "pk": 652,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 500,
- "task": 478
- }
-},
-{
- "pk": 653,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 501,
- "task": 478
- }
-},
-{
- "pk": 654,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 478
- }
-},
-{
- "pk": 655,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 294,
- "task": 478
- }
-},
-{
- "pk": 656,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 478
- }
-},
-{
- "pk": 657,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 78,
- "task": 478
- }
-},
-{
- "pk": 658,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 502,
- "task": 478
- }
-},
-{
- "pk": 659,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 478
- }
-},
-{
- "pk": 660,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 478
- }
-},
-{
- "pk": 661,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 505,
- "task": 478
- }
-},
-{
- "pk": 662,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 412,
- "task": 478
- }
-},
-{
- "pk": 663,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 478
- }
-},
-{
- "pk": 664,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 506,
- "task": 478
- }
-},
-{
- "pk": 665,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 507,
- "task": 478
- }
-},
-{
- "pk": 666,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 478
- }
-},
-{
- "pk": 667,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 508
- }
-},
-{
- "pk": 668,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 354,
- "task": 508
- }
-},
-{
- "pk": 669,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 508
- }
-},
-{
- "pk": 670,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 508
- }
-},
-{
- "pk": 671,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 508
- }
-},
-{
- "pk": 672,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 509
- }
-},
-{
- "pk": 673,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 510,
- "task": 509
- }
-},
-{
- "pk": 674,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 509
- }
-},
-{
- "pk": 675,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 509
- }
-},
-{
- "pk": 676,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 509
- }
-},
-{
- "pk": 677,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 511,
- "task": 509
- }
-},
-{
- "pk": 678,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 509
- }
-},
-{
- "pk": 679,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 165,
- "task": 509
- }
-},
-{
- "pk": 680,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 512,
- "task": 509
- }
-},
-{
- "pk": 681,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 509
- }
-},
-{
- "pk": 682,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 509
- }
-},
-{
- "pk": 683,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 509
- }
-},
-{
- "pk": 684,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 509
- }
-},
-{
- "pk": 685,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 509
- }
-},
-{
- "pk": 686,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 513
- }
-},
-{
- "pk": 687,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 514,
- "task": 513
- }
-},
-{
- "pk": 688,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 516,
- "task": 515
- }
-},
-{
- "pk": 689,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 518,
- "task": 517
- }
-},
-{
- "pk": 690,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 520,
- "task": 519
- }
-},
-{
- "pk": 691,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 521
- }
-},
-{
- "pk": 692,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 521
- }
-},
-{
- "pk": 693,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 521
- }
-},
-{
- "pk": 694,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 521
- }
-},
-{
- "pk": 695,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 521
- }
-},
-{
- "pk": 696,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 521
- }
-},
-{
- "pk": 697,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 326,
- "task": 521
- }
-},
-{
- "pk": 698,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 522,
- "task": 521
- }
-},
-{
- "pk": 699,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 523,
- "task": 521
- }
-},
-{
- "pk": 700,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 521
- }
-},
-{
- "pk": 701,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 521
- }
-},
-{
- "pk": 702,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 524,
- "task": 521
- }
-},
-{
- "pk": 703,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 521
- }
-},
-{
- "pk": 704,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 525,
- "task": 521
- }
-},
-{
- "pk": 705,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 521
- }
-},
-{
- "pk": 706,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 526,
- "task": 521
- }
-},
-{
- "pk": 707,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 528,
- "task": 527
- }
-},
-{
- "pk": 708,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 265,
- "task": 529
- }
-},
-{
- "pk": 709,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 531,
- "task": 530
- }
-},
-{
- "pk": 710,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 530
- }
-},
-{
- "pk": 711,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 533,
- "task": 532
- }
-},
-{
- "pk": 712,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 535,
- "task": 534
- }
-},
-{
- "pk": 713,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 537,
- "task": 536
- }
-},
-{
- "pk": 714,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 538
- }
-},
-{
- "pk": 715,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 538
- }
-},
-{
- "pk": 716,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 538
- }
-},
-{
- "pk": 717,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 539,
- "task": 538
- }
-},
-{
- "pk": 718,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 538
- }
-},
-{
- "pk": 719,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 540,
- "task": 538
- }
-},
-{
- "pk": 720,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 500,
- "task": 538
- }
-},
-{
- "pk": 721,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 144,
- "task": 538
- }
-},
-{
- "pk": 722,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 541,
- "task": 538
- }
-},
-{
- "pk": 723,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 538
- }
-},
-{
- "pk": 724,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 543,
- "task": 542
- }
-},
-{
- "pk": 725,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 544
- }
-},
-{
- "pk": 726,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 545,
- "task": 544
- }
-},
-{
- "pk": 727,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 547,
- "task": 546
- }
-},
-{
- "pk": 728,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 548,
- "task": 546
- }
-},
-{
- "pk": 729,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 162,
- "task": 439
- }
-},
-{
- "pk": 730,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 160,
- "task": 439
- }
-},
-{
- "pk": 731,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 550,
- "task": 549
- }
-},
-{
- "pk": 732,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 551
- }
-},
-{
- "pk": 733,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 551
- }
-},
-{
- "pk": 734,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 551
- }
-},
-{
- "pk": 735,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 551
- }
-},
-{
- "pk": 736,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 551
- }
-},
-{
- "pk": 737,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 551
- }
-},
-{
- "pk": 738,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 552,
- "task": 551
- }
-},
-{
- "pk": 739,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 551
- }
-},
-{
- "pk": 740,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 551
- }
-},
-{
- "pk": 741,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 553
- }
-},
-{
- "pk": 742,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 554,
- "task": 553
- }
-},
-{
- "pk": 743,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 202
- }
-},
-{
- "pk": 744,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 14,
- "task": 202
- }
-},
-{
- "pk": 745,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 213,
- "task": 202
- }
-},
-{
- "pk": 746,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 202
- }
-},
-{
- "pk": 747,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 200,
- "task": 202
- }
-},
-{
- "pk": 748,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 555,
- "task": 202
- }
-},
-{
- "pk": 749,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 202
- }
-},
-{
- "pk": 750,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 557,
- "task": 556
- }
-},
-{
- "pk": 751,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 558,
- "task": 556
- }
-},
-{
- "pk": 752,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 560,
- "task": 559
- }
-},
-{
- "pk": 753,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 562,
- "task": 561
- }
-},
-{
- "pk": 754,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 563,
- "task": 561
- }
-},
-{
- "pk": 755,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 565,
- "task": 564
- }
-},
-{
- "pk": 756,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 566
- }
-},
-{
- "pk": 757,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 566
- }
-},
-{
- "pk": 758,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 566
- }
-},
-{
- "pk": 759,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 566
- }
-},
-{
- "pk": 760,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 566
- }
-},
-{
- "pk": 761,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 567,
- "task": 566
- }
-},
-{
- "pk": 762,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 568,
- "task": 566
- }
-},
-{
- "pk": 763,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 569,
- "task": 178
- }
-},
-{
- "pk": 764,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 155,
- "task": 438
- }
-},
-{
- "pk": 765,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 157,
- "task": 438
- }
-},
-{
- "pk": 766,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 513,
- "task": 570
- }
-},
-{
- "pk": 767,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 572,
- "task": 571
- }
-},
-{
- "pk": 768,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 574,
- "task": 573
- }
-},
-{
- "pk": 769,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 575,
- "task": 266
- }
-},
-{
- "pk": 770,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 305,
- "task": 576
- }
-},
-{
- "pk": 771,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 578,
- "task": 577
- }
-},
-{
- "pk": 772,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 579,
- "task": 577
- }
-},
-{
- "pk": 773,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 581,
- "task": 580
- }
-},
-{
- "pk": 774,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 209,
- "task": 194
- }
-},
-{
- "pk": 775,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 194
- }
-},
-{
- "pk": 776,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 193,
- "task": 194
- }
-},
-{
- "pk": 777,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 194
- }
-},
-{
- "pk": 778,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 289,
- "task": 194
- }
-},
-{
- "pk": 779,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 583,
- "task": 582
- }
-},
-{
- "pk": 780,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 585,
- "task": 584
- }
-},
-{
- "pk": 781,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 587,
- "task": 586
- }
-},
-{
- "pk": 782,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 586
- }
-},
-{
- "pk": 783,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 588,
- "task": 586
- }
-},
-{
- "pk": 784,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 586
- }
-},
-{
- "pk": 785,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 586
- }
-},
-{
- "pk": 786,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 586
- }
-},
-{
- "pk": 787,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 586
- }
-},
-{
- "pk": 788,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 586
- }
-},
-{
- "pk": 789,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 590,
- "task": 589
- }
-},
-{
- "pk": 790,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 591,
- "task": 55
- }
-},
-{
- "pk": 791,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 55
- }
-},
-{
- "pk": 792,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 55
- }
-},
-{
- "pk": 793,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 55
- }
-},
-{
- "pk": 794,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 55
- }
-},
-{
- "pk": 795,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 55
- }
-},
-{
- "pk": 796,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 593,
- "task": 592
- }
-},
-{
- "pk": 797,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 595,
- "task": 594
- }
-},
-{
- "pk": 798,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 547
- }
-},
-{
- "pk": 799,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 547
- }
-},
-{
- "pk": 800,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 547
- }
-},
-{
- "pk": 801,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 547
- }
-},
-{
- "pk": 802,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 287,
- "task": 547
- }
-},
-{
- "pk": 803,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 379,
- "task": 596
- }
-},
-{
- "pk": 804,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 598,
- "task": 597
- }
-},
-{
- "pk": 805,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 35,
- "task": 597
- }
-},
-{
- "pk": 806,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 599,
- "task": 119
- }
-},
-{
- "pk": 807,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 35,
- "task": 598
- }
-},
-{
- "pk": 808,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 70,
- "task": 182
- }
-},
-{
- "pk": 809,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 600,
- "task": 182
- }
-},
-{
- "pk": 810,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 114,
- "task": 489
- }
-},
-{
- "pk": 811,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 116,
- "task": 489
- }
-},
-{
- "pk": 812,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 601,
- "task": 139
- }
-},
-{
- "pk": 813,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 603,
- "task": 602
- }
-},
-{
- "pk": 814,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 605,
- "task": 604
- }
-},
-{
- "pk": 815,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 607,
- "task": 606
- }
-},
-{
- "pk": 816,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 608,
- "task": 606
- }
-},
-{
- "pk": 817,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 610,
- "task": 609
- }
-},
-{
- "pk": 818,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 611,
- "task": 609
- }
-},
-{
- "pk": 819,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 613,
- "task": 612
- }
-},
-{
- "pk": 820,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 268,
- "task": 614
- }
-},
-{
- "pk": 821,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 616,
- "task": 615
- }
-},
-{
- "pk": 822,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 617,
- "task": 82
- }
-},
-{
- "pk": 823,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 618,
- "task": 526
- }
-},
-{
- "pk": 824,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 620,
- "task": 619
- }
-},
-{
- "pk": 825,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 621,
- "task": 48
- }
-},
-{
- "pk": 826,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 623,
- "task": 622
- }
-},
-{
- "pk": 827,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 576,
- "task": 111
- }
-},
-{
- "pk": 828,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 624,
- "task": 86
- }
-},
-{
- "pk": 829,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 625
- }
-},
-{
- "pk": 830,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 626,
- "task": 625
- }
-},
-{
- "pk": 831,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 628,
- "task": 627
- }
-},
-{
- "pk": 832,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 629
- }
-},
-{
- "pk": 833,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 630,
- "task": 629
- }
-},
-{
- "pk": 834,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 188,
- "task": 631
- }
-},
-{
- "pk": 835,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 158,
- "task": 631
- }
-},
-{
- "pk": 836,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 632,
- "task": 578
- }
-},
-{
- "pk": 837,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 634,
- "task": 633
- }
-},
-{
- "pk": 838,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 636,
- "task": 635
- }
-},
-{
- "pk": 839,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 638,
- "task": 637
- }
-},
-{
- "pk": 840,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 518
- }
-},
-{
- "pk": 841,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 42,
- "task": 518
- }
-},
-{
- "pk": 842,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 518
- }
-},
-{
- "pk": 843,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 518
- }
-},
-{
- "pk": 844,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 518
- }
-},
-{
- "pk": 845,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 518
- }
-},
-{
- "pk": 846,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 518
- }
-},
-{
- "pk": 847,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 518
- }
-},
-{
- "pk": 848,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 518
- }
-},
-{
- "pk": 849,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 274,
- "task": 518
- }
-},
-{
- "pk": 850,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 518
- }
-},
-{
- "pk": 851,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 640,
- "task": 639
- }
-},
-{
- "pk": 852,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 641,
- "task": 324
- }
-},
-{
- "pk": 853,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 642
- }
-},
-{
- "pk": 854,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 331,
- "task": 642
- }
-},
-{
- "pk": 855,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 642
- }
-},
-{
- "pk": 856,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 642
- }
-},
-{
- "pk": 857,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 642
- }
-},
-{
- "pk": 858,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 642
- }
-},
-{
- "pk": 859,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 365,
- "task": 642
- }
-},
-{
- "pk": 860,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 642
- }
-},
-{
- "pk": 861,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 642
- }
-},
-{
- "pk": 862,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 642
- }
-},
-{
- "pk": 863,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 642
- }
-},
-{
- "pk": 864,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 642
- }
-},
-{
- "pk": 865,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 512
- }
-},
-{
- "pk": 866,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 512
- }
-},
-{
- "pk": 867,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 644,
- "task": 512
- }
-},
-{
- "pk": 868,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 512
- }
-},
-{
- "pk": 869,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 512
- }
-},
-{
- "pk": 870,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 512
- }
-},
-{
- "pk": 871,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 512
- }
-},
-{
- "pk": 872,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 512
- }
-},
-{
- "pk": 873,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 512
- }
-},
-{
- "pk": 874,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 645
- }
-},
-{
- "pk": 875,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 646,
- "task": 645
- }
-},
-{
- "pk": 876,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 647,
- "task": 585
- }
-},
-{
- "pk": 877,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 82,
- "task": 83
- }
-},
-{
- "pk": 878,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 83
- }
-},
-{
- "pk": 879,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 617,
- "task": 83
- }
-},
-{
- "pk": 880,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 83
- }
-},
-{
- "pk": 881,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 648
- }
-},
-{
- "pk": 882,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 649,
- "task": 648
- }
-},
-{
- "pk": 883,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 651,
- "task": 650
- }
-},
-{
- "pk": 884,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 255
- }
-},
-{
- "pk": 885,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 201,
- "task": 255
- }
-},
-{
- "pk": 886,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 652
- }
-},
-{
- "pk": 887,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 653,
- "task": 652
- }
-},
-{
- "pk": 888,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 654
- }
-},
-{
- "pk": 889,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 655,
- "task": 654
- }
-},
-{
- "pk": 890,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 171,
- "task": 148
- }
-},
-{
- "pk": 891,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 146,
- "task": 148
- }
-},
-{
- "pk": 892,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 656,
- "task": 148
- }
-},
-{
- "pk": 893,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 187,
- "task": 148
- }
-},
-{
- "pk": 894,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 161,
- "task": 148
- }
-},
-{
- "pk": 895,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 14,
- "task": 148
- }
-},
-{
- "pk": 896,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 148
- }
-},
-{
- "pk": 897,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 71,
- "task": 148
- }
-},
-{
- "pk": 898,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 148
- }
-},
-{
- "pk": 899,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 174,
- "task": 148
- }
-},
-{
- "pk": 900,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 166,
- "task": 148
- }
-},
-{
- "pk": 901,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 148
- }
-},
-{
- "pk": 902,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 96,
- "task": 148
- }
-},
-{
- "pk": 903,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 183,
- "task": 148
- }
-},
-{
- "pk": 904,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 177,
- "task": 148
- }
-},
-{
- "pk": 905,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 657,
- "task": 644
- }
-},
-{
- "pk": 906,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 644
- }
-},
-{
- "pk": 907,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 654,
- "task": 365
- }
-},
-{
- "pk": 908,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 658,
- "task": 558
- }
-},
-{
- "pk": 909,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 659
- }
-},
-{
- "pk": 910,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 660,
- "task": 659
- }
-},
-{
- "pk": 911,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 662,
- "task": 661
- }
-},
-{
- "pk": 912,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 663,
- "task": 539
- }
-},
-{
- "pk": 913,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 665,
- "task": 664
- }
-},
-{
- "pk": 914,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 667,
- "task": 666
- }
-},
-{
- "pk": 915,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 666
- }
-},
-{
- "pk": 916,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 666
- }
-},
-{
- "pk": 917,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 666
- }
-},
-{
- "pk": 918,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 666
- }
-},
-{
- "pk": 919,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 668,
- "task": 666
- }
-},
-{
- "pk": 920,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 666
- }
-},
-{
- "pk": 921,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 121,
- "task": 666
- }
-},
-{
- "pk": 922,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 669,
- "task": 666
- }
-},
-{
- "pk": 923,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 666
- }
-},
-{
- "pk": 924,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 666
- }
-},
-{
- "pk": 925,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 666
- }
-},
-{
- "pk": 926,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 666
- }
-},
-{
- "pk": 927,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 666
- }
-},
-{
- "pk": 928,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 666
- }
-},
-{
- "pk": 929,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 666
- }
-},
-{
- "pk": 930,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 666
- }
-},
-{
- "pk": 931,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 666
- }
-},
-{
- "pk": 932,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 670,
- "task": 666
- }
-},
-{
- "pk": 933,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 666
- }
-},
-{
- "pk": 934,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 672,
- "task": 671
- }
-},
-{
- "pk": 935,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 671
- }
-},
-{
- "pk": 936,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 674,
- "task": 673
- }
-},
-{
- "pk": 937,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 676,
- "task": 675
- }
-},
-{
- "pk": 938,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 677
- }
-},
-{
- "pk": 939,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 678,
- "task": 677
- }
-},
-{
- "pk": 940,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 679,
- "task": 98
- }
-},
-{
- "pk": 941,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 681,
- "task": 680
- }
-},
-{
- "pk": 942,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 143,
- "task": 680
- }
-},
-{
- "pk": 943,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 682,
- "task": 88
- }
-},
-{
- "pk": 944,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 683,
- "task": 593
- }
-},
-{
- "pk": 945,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 430,
- "task": 240
- }
-},
-{
- "pk": 946,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 684,
- "task": 301
- }
-},
-{
- "pk": 947,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 686,
- "task": 685
- }
-},
-{
- "pk": 948,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 688,
- "task": 687
- }
-},
-{
- "pk": 949,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 689,
- "task": 687
- }
-},
-{
- "pk": 950,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 109,
- "task": 110
- }
-},
-{
- "pk": 951,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 690,
- "task": 110
- }
-},
-{
- "pk": 952,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 110
- }
-},
-{
- "pk": 953,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 110
- }
-},
-{
- "pk": 954,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 651,
- "task": 691
- }
-},
-{
- "pk": 955,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 691
- }
-},
-{
- "pk": 956,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 691
- }
-},
-{
- "pk": 957,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 275,
- "task": 691
- }
-},
-{
- "pk": 958,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 691
- }
-},
-{
- "pk": 959,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 691
- }
-},
-{
- "pk": 960,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 692,
- "task": 275
- }
-},
-{
- "pk": 961,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 693,
- "task": 4
- }
-},
-{
- "pk": 962,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 695,
- "task": 694
- }
-},
-{
- "pk": 963,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 335,
- "task": 696
- }
-},
-{
- "pk": 964,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 270,
- "task": 697
- }
-},
-{
- "pk": 965,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 135,
- "task": 137
- }
-},
-{
- "pk": 966,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 698,
- "task": 137
- }
-},
-{
- "pk": 967,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 137
- }
-},
-{
- "pk": 968,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 137
- }
-},
-{
- "pk": 969,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 700,
- "task": 699
- }
-},
-{
- "pk": 970,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 580,
- "task": 699
- }
-},
-{
- "pk": 971,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 702,
- "task": 701
- }
-},
-{
- "pk": 972,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 395,
- "task": 291
- }
-},
-{
- "pk": 973,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 394,
- "task": 291
- }
-},
-{
- "pk": 974,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 291
- }
-},
-{
- "pk": 975,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 704,
- "task": 703
- }
-},
-{
- "pk": 976,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 703
- }
-},
-{
- "pk": 977,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 703
- }
-},
-{
- "pk": 978,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 703
- }
-},
-{
- "pk": 979,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 703
- }
-},
-{
- "pk": 980,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 274,
- "task": 703
- }
-},
-{
- "pk": 981,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 703
- }
-},
-{
- "pk": 982,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 706,
- "task": 705
- }
-},
-{
- "pk": 983,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 101
- }
-},
-{
- "pk": 984,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 101
- }
-},
-{
- "pk": 985,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 100,
- "task": 101
- }
-},
-{
- "pk": 986,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 296,
- "task": 101
- }
-},
-{
- "pk": 987,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 357,
- "task": 358
- }
-},
-{
- "pk": 988,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 707
- }
-},
-{
- "pk": 989,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 707
- }
-},
-{
- "pk": 990,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 707
- }
-},
-{
- "pk": 991,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 631,
- "task": 707
- }
-},
-{
- "pk": 992,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 707
- }
-},
-{
- "pk": 993,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 708,
- "task": 707
- }
-},
-{
- "pk": 994,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 707
- }
-},
-{
- "pk": 995,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 296,
- "task": 707
- }
-},
-{
- "pk": 996,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 707
- }
-},
-{
- "pk": 997,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 707
- }
-},
-{
- "pk": 998,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 709,
- "task": 707
- }
-},
-{
- "pk": 999,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 707
- }
-},
-{
- "pk": 1000,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 710,
- "task": 707
- }
-},
-{
- "pk": 1001,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 302,
- "task": 707
- }
-},
-{
- "pk": 1002,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 100,
- "task": 707
- }
-},
-{
- "pk": 1003,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 707
- }
-},
-{
- "pk": 1004,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 707
- }
-},
-{
- "pk": 1005,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 707
- }
-},
-{
- "pk": 1006,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 707
- }
-},
-{
- "pk": 1007,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 707
- }
-},
-{
- "pk": 1008,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 287,
- "task": 562
- }
-},
-{
- "pk": 1009,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 711,
- "task": 171
- }
-},
-{
- "pk": 1010,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 43,
- "task": 712
- }
-},
-{
- "pk": 1011,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 415,
- "task": 712
- }
-},
-{
- "pk": 1012,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 714,
- "task": 713
- }
-},
-{
- "pk": 1013,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 715,
- "task": 713
- }
-},
-{
- "pk": 1014,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 717,
- "task": 716
- }
-},
-{
- "pk": 1015,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 719,
- "task": 718
- }
-},
-{
- "pk": 1016,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 134
- }
-},
-{
- "pk": 1017,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 176,
- "task": 134
- }
-},
-{
- "pk": 1018,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 720,
- "task": 134
- }
-},
-{
- "pk": 1019,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 134
- }
-},
-{
- "pk": 1020,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 722,
- "task": 721
- }
-},
-{
- "pk": 1021,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 723,
- "task": 6
- }
-},
-{
- "pk": 1022,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 416,
- "task": 724
- }
-},
-{
- "pk": 1023,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 726,
- "task": 725
- }
-},
-{
- "pk": 1024,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 727
- }
-},
-{
- "pk": 1025,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 727
- }
-},
-{
- "pk": 1026,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 728,
- "task": 727
- }
-},
-{
- "pk": 1027,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 727
- }
-},
-{
- "pk": 1028,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 729,
- "task": 727
- }
-},
-{
- "pk": 1029,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 584,
- "task": 727
- }
-},
-{
- "pk": 1030,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 727
- }
-},
-{
- "pk": 1031,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 731,
- "task": 730
- }
-},
-{
- "pk": 1032,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 733,
- "task": 732
- }
-},
-{
- "pk": 1033,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 520,
- "task": 734
- }
-},
-{
- "pk": 1034,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 736,
- "task": 735
- }
-},
-{
- "pk": 1035,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 18,
- "task": 19
- }
-},
-{
- "pk": 1036,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 333,
- "task": 737
- }
-},
-{
- "pk": 1037,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 739,
- "task": 738
- }
-},
-{
- "pk": 1038,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 740
- }
-},
-{
- "pk": 1039,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 740
- }
-},
-{
- "pk": 1040,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 740
- }
-},
-{
- "pk": 1041,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 741,
- "task": 740
- }
-},
-{
- "pk": 1042,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 740
- }
-},
-{
- "pk": 1043,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 740
- }
-},
-{
- "pk": 1044,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 743,
- "task": 742
- }
-},
-{
- "pk": 1045,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 745,
- "task": 744
- }
-},
-{
- "pk": 1046,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 716,
- "task": 744
- }
-},
-{
- "pk": 1047,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 746
- }
-},
-{
- "pk": 1048,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 747,
- "task": 746
- }
-},
-{
- "pk": 1049,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 748
- }
-},
-{
- "pk": 1050,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 748
- }
-},
-{
- "pk": 1051,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 748
- }
-},
-{
- "pk": 1052,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 748
- }
-},
-{
- "pk": 1053,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 748
- }
-},
-{
- "pk": 1054,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 748
- }
-},
-{
- "pk": 1055,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 645,
- "task": 748
- }
-},
-{
- "pk": 1056,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 748
- }
-},
-{
- "pk": 1057,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 748
- }
-},
-{
- "pk": 1058,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 748
- }
-},
-{
- "pk": 1059,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 449,
- "task": 749
- }
-},
-{
- "pk": 1060,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 750,
- "task": 749
- }
-},
-{
- "pk": 1061,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 752,
- "task": 751
- }
-},
-{
- "pk": 1062,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 753,
- "task": 668
- }
-},
-{
- "pk": 1063,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 664,
- "task": 754
- }
-},
-{
- "pk": 1064,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 755
- }
-},
-{
- "pk": 1065,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 756,
- "task": 755
- }
-},
-{
- "pk": 1066,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 757,
- "task": 136
- }
-},
-{
- "pk": 1067,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 759,
- "task": 758
- }
-},
-{
- "pk": 1068,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 761,
- "task": 760
- }
-},
-{
- "pk": 1069,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 521,
- "task": 397
- }
-},
-{
- "pk": 1070,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 763,
- "task": 762
- }
-},
-{
- "pk": 1071,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 764,
- "task": 762
- }
-},
-{
- "pk": 1072,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 734,
- "task": 765
- }
-},
-{
- "pk": 1073,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 766,
- "task": 765
- }
-},
-{
- "pk": 1074,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 712
- }
-},
-{
- "pk": 1075,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 712
- }
-},
-{
- "pk": 1076,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 712
- }
-},
-{
- "pk": 1077,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 712
- }
-},
-{
- "pk": 1078,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 712
- }
-},
-{
- "pk": 1079,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 712
- }
-},
-{
- "pk": 1080,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 712
- }
-},
-{
- "pk": 1081,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 88,
- "task": 712
- }
-},
-{
- "pk": 1082,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 682,
- "task": 712
- }
-},
-{
- "pk": 1083,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 712
- }
-},
-{
- "pk": 1084,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 712
- }
-},
-{
- "pk": 1085,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 76,
- "task": 367
- }
-},
-{
- "pk": 1086,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 77,
- "task": 367
- }
-},
-{
- "pk": 1087,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 768,
- "task": 767
- }
-},
-{
- "pk": 1088,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 183,
- "task": 132
- }
-},
-{
- "pk": 1089,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 769,
- "task": 132
- }
-},
-{
- "pk": 1090,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 132
- }
-},
-{
- "pk": 1091,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 132
- }
-},
-{
- "pk": 1092,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 132
- }
-},
-{
- "pk": 1093,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 12,
- "task": 211
- }
-},
-{
- "pk": 1094,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 211
- }
-},
-{
- "pk": 1095,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 176,
- "task": 211
- }
-},
-{
- "pk": 1096,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 11,
- "task": 211
- }
-},
-{
- "pk": 1097,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 211
- }
-},
-{
- "pk": 1098,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 771,
- "task": 770
- }
-},
-{
- "pk": 1099,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 773,
- "task": 772
- }
-},
-{
- "pk": 1100,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 38,
- "task": 259
- }
-},
-{
- "pk": 1101,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 775,
- "task": 774
- }
-},
-{
- "pk": 1102,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 777,
- "task": 776
- }
-},
-{
- "pk": 1103,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 776
- }
-},
-{
- "pk": 1104,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 208,
- "task": 776
- }
-},
-{
- "pk": 1105,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 778,
- "task": 776
- }
-},
-{
- "pk": 1106,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 47,
- "task": 776
- }
-},
-{
- "pk": 1107,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 779,
- "task": 312
- }
-},
-{
- "pk": 1108,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 781,
- "task": 780
- }
-},
-{
- "pk": 1109,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 588,
- "task": 780
- }
-},
-{
- "pk": 1110,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 550,
- "task": 782
- }
-},
-{
- "pk": 1111,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 784,
- "task": 783
- }
-},
-{
- "pk": 1112,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 730,
- "task": 783
- }
-},
-{
- "pk": 1113,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 786,
- "task": 785
- }
-},
-{
- "pk": 1114,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 282,
- "task": 787
- }
-},
-{
- "pk": 1115,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 788,
- "task": 540
- }
-},
-{
- "pk": 1116,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 789,
- "task": 320
- }
-},
-{
- "pk": 1117,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 779
- }
-},
-{
- "pk": 1118,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 779
- }
-},
-{
- "pk": 1119,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 390,
- "task": 779
- }
-},
-{
- "pk": 1120,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 779
- }
-},
-{
- "pk": 1121,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 274,
- "task": 779
- }
-},
-{
- "pk": 1122,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 779
- }
-},
-{
- "pk": 1123,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 401,
- "task": 170
- }
-},
-{
- "pk": 1124,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 791,
- "task": 790
- }
-},
-{
- "pk": 1125,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 790
- }
-},
-{
- "pk": 1126,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 793,
- "task": 792
- }
-},
-{
- "pk": 1127,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 795,
- "task": 794
- }
-},
-{
- "pk": 1128,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 797,
- "task": 796
- }
-},
-{
- "pk": 1129,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 241,
- "task": 796
- }
-},
-{
- "pk": 1130,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 799,
- "task": 798
- }
-},
-{
- "pk": 1131,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 800
- }
-},
-{
- "pk": 1132,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 800
- }
-},
-{
- "pk": 1133,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 800
- }
-},
-{
- "pk": 1134,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 800
- }
-},
-{
- "pk": 1135,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 801,
- "task": 800
- }
-},
-{
- "pk": 1136,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 803,
- "task": 802
- }
-},
-{
- "pk": 1137,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 353
- }
-},
-{
- "pk": 1138,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 804,
- "task": 353
- }
-},
-{
- "pk": 1139,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 806,
- "task": 805
- }
-},
-{
- "pk": 1140,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 805
- }
-},
-{
- "pk": 1141,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 808,
- "task": 807
- }
-},
-{
- "pk": 1142,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 810,
- "task": 809
- }
-},
-{
- "pk": 1143,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 812,
- "task": 811
- }
-},
-{
- "pk": 1144,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 813,
- "task": 811
- }
-},
-{
- "pk": 1145,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 815,
- "task": 814
- }
-},
-{
- "pk": 1146,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 171,
- "task": 814
- }
-},
-{
- "pk": 1147,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 711,
- "task": 814
- }
-},
-{
- "pk": 1148,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 814
- }
-},
-{
- "pk": 1149,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 816,
- "task": 814
- }
-},
-{
- "pk": 1150,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 814
- }
-},
-{
- "pk": 1151,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 814
- }
-},
-{
- "pk": 1152,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 814
- }
-},
-{
- "pk": 1153,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 814
- }
-},
-{
- "pk": 1154,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 814
- }
-},
-{
- "pk": 1155,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 814
- }
-},
-{
- "pk": 1156,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 814
- }
-},
-{
- "pk": 1157,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 817,
- "task": 814
- }
-},
-{
- "pk": 1158,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 814
- }
-},
-{
- "pk": 1159,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 818,
- "task": 814
- }
-},
-{
- "pk": 1160,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 230,
- "task": 819
- }
-},
-{
- "pk": 1161,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 820,
- "task": 819
- }
-},
-{
- "pk": 1162,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 171,
- "task": 815
- }
-},
-{
- "pk": 1163,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 173,
- "task": 815
- }
-},
-{
- "pk": 1164,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 566,
- "task": 821
- }
-},
-{
- "pk": 1165,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 822,
- "task": 525
- }
-},
-{
- "pk": 1166,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 176,
- "task": 496
- }
-},
-{
- "pk": 1167,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 134,
- "task": 496
- }
-},
-{
- "pk": 1168,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 824,
- "task": 823
- }
-},
-{
- "pk": 1169,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 823
- }
-},
-{
- "pk": 1170,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 823
- }
-},
-{
- "pk": 1171,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 825,
- "task": 823
- }
-},
-{
- "pk": 1172,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 823
- }
-},
-{
- "pk": 1173,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 160,
- "task": 823
- }
-},
-{
- "pk": 1174,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 823
- }
-},
-{
- "pk": 1175,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 823
- }
-},
-{
- "pk": 1176,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 826,
- "task": 823
- }
-},
-{
- "pk": 1177,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 823
- }
-},
-{
- "pk": 1178,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 823
- }
-},
-{
- "pk": 1179,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 823
- }
-},
-{
- "pk": 1180,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 823
- }
-},
-{
- "pk": 1181,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 823
- }
-},
-{
- "pk": 1182,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 823
- }
-},
-{
- "pk": 1183,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 823
- }
-},
-{
- "pk": 1184,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 823
- }
-},
-{
- "pk": 1185,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 823
- }
-},
-{
- "pk": 1186,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 656
- }
-},
-{
- "pk": 1187,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 656
- }
-},
-{
- "pk": 1188,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 656
- }
-},
-{
- "pk": 1189,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 656
- }
-},
-{
- "pk": 1190,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 656
- }
-},
-{
- "pk": 1191,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 656
- }
-},
-{
- "pk": 1192,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 656
- }
-},
-{
- "pk": 1193,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 560,
- "task": 656
- }
-},
-{
- "pk": 1194,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 828,
- "task": 827
- }
-},
-{
- "pk": 1195,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 609,
- "task": 829
- }
-},
-{
- "pk": 1196,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 831,
- "task": 830
- }
-},
-{
- "pk": 1197,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 833,
- "task": 832
- }
-},
-{
- "pk": 1198,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 834
- }
-},
-{
- "pk": 1199,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 834
- }
-},
-{
- "pk": 1200,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 563,
- "task": 834
- }
-},
-{
- "pk": 1201,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 834
- }
-},
-{
- "pk": 1202,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 283,
- "task": 834
- }
-},
-{
- "pk": 1203,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 688,
- "task": 834
- }
-},
-{
- "pk": 1204,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 834
- }
-},
-{
- "pk": 1205,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 835,
- "task": 834
- }
-},
-{
- "pk": 1206,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 335,
- "task": 834
- }
-},
-{
- "pk": 1207,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 834
- }
-},
-{
- "pk": 1208,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 381,
- "task": 836
- }
-},
-{
- "pk": 1209,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 466,
- "task": 156
- }
-},
-{
- "pk": 1210,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 156
- }
-},
-{
- "pk": 1211,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 193,
- "task": 156
- }
-},
-{
- "pk": 1212,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 156
- }
-},
-{
- "pk": 1213,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 154,
- "task": 156
- }
-},
-{
- "pk": 1214,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 768
- }
-},
-{
- "pk": 1215,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 837,
- "task": 768
- }
-},
-{
- "pk": 1216,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 839,
- "task": 838
- }
-},
-{
- "pk": 1217,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 838
- }
-},
-{
- "pk": 1218,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 841,
- "task": 840
- }
-},
-{
- "pk": 1219,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 842,
- "task": 25
- }
-},
-{
- "pk": 1220,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 844,
- "task": 843
- }
-},
-{
- "pk": 1221,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 845,
- "task": 731
- }
-},
-{
- "pk": 1222,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 846,
- "task": 50
- }
-},
-{
- "pk": 1223,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 50
- }
-},
-{
- "pk": 1224,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 848,
- "task": 847
- }
-},
-{
- "pk": 1225,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 849,
- "task": 847
- }
-},
-{
- "pk": 1226,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 519,
- "task": 850
- }
-},
-{
- "pk": 1227,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 502,
- "task": 78
- }
-},
-{
- "pk": 1228,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 544,
- "task": 851
- }
-},
-{
- "pk": 1229,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 599
- }
-},
-{
- "pk": 1230,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 599
- }
-},
-{
- "pk": 1231,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 599
- }
-},
-{
- "pk": 1232,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 599
- }
-},
-{
- "pk": 1233,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 599
- }
-},
-{
- "pk": 1234,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 599
- }
-},
-{
- "pk": 1235,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 599
- }
-},
-{
- "pk": 1236,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 599
- }
-},
-{
- "pk": 1237,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 599
- }
-},
-{
- "pk": 1238,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 599
- }
-},
-{
- "pk": 1239,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 852,
- "task": 599
- }
-},
-{
- "pk": 1240,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 854,
- "task": 853
- }
-},
-{
- "pk": 1241,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 522
- }
-},
-{
- "pk": 1242,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 622,
- "task": 522
- }
-},
-{
- "pk": 1243,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 855
- }
-},
-{
- "pk": 1244,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 855
- }
-},
-{
- "pk": 1245,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 855
- }
-},
-{
- "pk": 1246,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 855
- }
-},
-{
- "pk": 1247,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 855
- }
-},
-{
- "pk": 1248,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 661,
- "task": 855
- }
-},
-{
- "pk": 1249,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 855
- }
-},
-{
- "pk": 1250,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 855
- }
-},
-{
- "pk": 1251,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 856,
- "task": 855
- }
-},
-{
- "pk": 1252,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 855
- }
-},
-{
- "pk": 1253,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 855
- }
-},
-{
- "pk": 1254,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 855
- }
-},
-{
- "pk": 1255,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 857
- }
-},
-{
- "pk": 1256,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 857
- }
-},
-{
- "pk": 1257,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 858,
- "task": 857
- }
-},
-{
- "pk": 1258,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 730,
- "task": 857
- }
-},
-{
- "pk": 1259,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 857
- }
-},
-{
- "pk": 1260,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 857
- }
-},
-{
- "pk": 1261,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 857
- }
-},
-{
- "pk": 1262,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 857
- }
-},
-{
- "pk": 1263,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 857
- }
-},
-{
- "pk": 1264,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 857
- }
-},
-{
- "pk": 1265,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 857
- }
-},
-{
- "pk": 1266,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 859
- }
-},
-{
- "pk": 1267,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 536,
- "task": 859
- }
-},
-{
- "pk": 1268,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 860
- }
-},
-{
- "pk": 1269,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 861,
- "task": 860
- }
-},
-{
- "pk": 1270,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 741
- }
-},
-{
- "pk": 1271,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 862,
- "task": 741
- }
-},
-{
- "pk": 1272,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 863
- }
-},
-{
- "pk": 1273,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 775,
- "task": 863
- }
-},
-{
- "pk": 1274,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 863
- }
-},
-{
- "pk": 1275,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 863
- }
-},
-{
- "pk": 1276,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 863
- }
-},
-{
- "pk": 1277,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 863
- }
-},
-{
- "pk": 1278,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 863
- }
-},
-{
- "pk": 1279,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 863
- }
-},
-{
- "pk": 1280,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 863
- }
-},
-{
- "pk": 1281,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 863
- }
-},
-{
- "pk": 1282,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 864,
- "task": 863
- }
-},
-{
- "pk": 1283,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 866,
- "task": 865
- }
-},
-{
- "pk": 1284,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 867,
- "task": 865
- }
-},
-{
- "pk": 1285,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 809,
- "task": 333
- }
-},
-{
- "pk": 1286,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 333
- }
-},
-{
- "pk": 1287,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 281,
- "task": 868
- }
-},
-{
- "pk": 1288,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 869,
- "task": 477
- }
-},
-{
- "pk": 1289,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 870,
- "task": 630
- }
-},
-{
- "pk": 1290,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 872,
- "task": 871
- }
-},
-{
- "pk": 1291,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 307,
- "task": 873
- }
-},
-{
- "pk": 1292,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 875,
- "task": 874
- }
-},
-{
- "pk": 1293,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 876
- }
-},
-{
- "pk": 1294,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 74,
- "task": 876
- }
-},
-{
- "pk": 1295,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 876
- }
-},
-{
- "pk": 1296,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 876
- }
-},
-{
- "pk": 1297,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 876
- }
-},
-{
- "pk": 1298,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 876
- }
-},
-{
- "pk": 1299,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 876
- }
-},
-{
- "pk": 1300,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 876
- }
-},
-{
- "pk": 1301,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 876
- }
-},
-{
- "pk": 1302,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 685,
- "task": 876
- }
-},
-{
- "pk": 1303,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 702
- }
-},
-{
- "pk": 1304,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 877,
- "task": 702
- }
-},
-{
- "pk": 1305,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 691,
- "task": 878
- }
-},
-{
- "pk": 1306,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 879,
- "task": 184
- }
-},
-{
- "pk": 1307,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 881,
- "task": 880
- }
-},
-{
- "pk": 1308,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 880
- }
-},
-{
- "pk": 1309,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 177,
- "task": 882
- }
-},
-{
- "pk": 1310,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 69,
- "task": 882
- }
-},
-{
- "pk": 1311,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 243
- }
-},
-{
- "pk": 1312,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 243
- }
-},
-{
- "pk": 1313,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 755,
- "task": 243
- }
-},
-{
- "pk": 1314,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 243
- }
-},
-{
- "pk": 1315,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 243
- }
-},
-{
- "pk": 1316,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 243
- }
-},
-{
- "pk": 1317,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 243
- }
-},
-{
- "pk": 1318,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 243
- }
-},
-{
- "pk": 1319,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 718,
- "task": 552
- }
-},
-{
- "pk": 1320,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 883,
- "task": 342
- }
-},
-{
- "pk": 1321,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 885,
- "task": 884
- }
-},
-{
- "pk": 1322,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 887,
- "task": 886
- }
-},
-{
- "pk": 1323,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 888,
- "task": 837
- }
-},
-{
- "pk": 1324,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 650,
- "task": 889
- }
-},
-{
- "pk": 1325,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 889
- }
-},
-{
- "pk": 1326,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 74,
- "task": 889
- }
-},
-{
- "pk": 1327,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 304,
- "task": 889
- }
-},
-{
- "pk": 1328,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 889
- }
-},
-{
- "pk": 1329,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 889
- }
-},
-{
- "pk": 1330,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 889
- }
-},
-{
- "pk": 1331,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 889
- }
-},
-{
- "pk": 1332,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 889
- }
-},
-{
- "pk": 1333,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 889
- }
-},
-{
- "pk": 1334,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 889
- }
-},
-{
- "pk": 1335,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 889
- }
-},
-{
- "pk": 1336,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 526,
- "task": 889
- }
-},
-{
- "pk": 1337,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 889
- }
-},
-{
- "pk": 1338,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 890
- }
-},
-{
- "pk": 1339,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 890
- }
-},
-{
- "pk": 1340,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 890
- }
-},
-{
- "pk": 1341,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 890
- }
-},
-{
- "pk": 1342,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 891,
- "task": 890
- }
-},
-{
- "pk": 1343,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 890
- }
-},
-{
- "pk": 1344,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 890
- }
-},
-{
- "pk": 1345,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 892,
- "task": 890
- }
-},
-{
- "pk": 1346,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 893,
- "task": 890
- }
-},
-{
- "pk": 1347,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 86,
- "task": 890
- }
-},
-{
- "pk": 1348,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 624,
- "task": 890
- }
-},
-{
- "pk": 1349,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 890
- }
-},
-{
- "pk": 1350,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 890
- }
-},
-{
- "pk": 1351,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 890
- }
-},
-{
- "pk": 1352,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 890
- }
-},
-{
- "pk": 1353,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 890
- }
-},
-{
- "pk": 1354,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 890
- }
-},
-{
- "pk": 1355,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 890
- }
-},
-{
- "pk": 1356,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 890
- }
-},
-{
- "pk": 1357,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 894,
- "task": 890
- }
-},
-{
- "pk": 1358,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 896,
- "task": 895
- }
-},
-{
- "pk": 1359,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 897,
- "task": 92
- }
-},
-{
- "pk": 1360,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 898
- }
-},
-{
- "pk": 1361,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 459,
- "task": 898
- }
-},
-{
- "pk": 1362,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 321,
- "task": 407
- }
-},
-{
- "pk": 1363,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 322,
- "task": 407
- }
-},
-{
- "pk": 1364,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 900,
- "task": 899
- }
-},
-{
- "pk": 1365,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 801,
- "task": 901
- }
-},
-{
- "pk": 1366,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 306
- }
-},
-{
- "pk": 1367,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 306
- }
-},
-{
- "pk": 1368,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 306
- }
-},
-{
- "pk": 1369,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 902,
- "task": 306
- }
-},
-{
- "pk": 1370,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 381,
- "task": 306
- }
-},
-{
- "pk": 1371,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 306
- }
-},
-{
- "pk": 1372,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 306
- }
-},
-{
- "pk": 1373,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 451,
- "task": 636
- }
-},
-{
- "pk": 1374,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 636
- }
-},
-{
- "pk": 1375,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 452,
- "task": 636
- }
-},
-{
- "pk": 1376,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 636
- }
-},
-{
- "pk": 1377,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 625,
- "task": 636
- }
-},
-{
- "pk": 1378,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 636
- }
-},
-{
- "pk": 1379,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 454,
- "task": 636
- }
-},
-{
- "pk": 1380,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 636
- }
-},
-{
- "pk": 1381,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 903,
- "task": 567
- }
-},
-{
- "pk": 1382,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 904,
- "task": 129
- }
-},
-{
- "pk": 1383,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 905
- }
-},
-{
- "pk": 1384,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 906,
- "task": 905
- }
-},
-{
- "pk": 1385,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 591,
- "task": 7
- }
-},
-{
- "pk": 1386,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 6,
- "task": 308
- }
-},
-{
- "pk": 1387,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 907,
- "task": 308
- }
-},
-{
- "pk": 1388,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 908,
- "task": 191
- }
-},
-{
- "pk": 1389,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 909,
- "task": 93
- }
-},
-{
- "pk": 1390,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 53
- }
-},
-{
- "pk": 1391,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 910,
- "task": 53
- }
-},
-{
- "pk": 1392,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 434
- }
-},
-{
- "pk": 1393,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 21,
- "task": 434
- }
-},
-{
- "pk": 1394,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 434
- }
-},
-{
- "pk": 1395,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 434
- }
-},
-{
- "pk": 1396,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 434
- }
-},
-{
- "pk": 1397,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 695
- }
-},
-{
- "pk": 1398,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 695
- }
-},
-{
- "pk": 1399,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 695
- }
-},
-{
- "pk": 1400,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 695
- }
-},
-{
- "pk": 1401,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 695
- }
-},
-{
- "pk": 1402,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 911,
- "task": 695
- }
-},
-{
- "pk": 1403,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 695
- }
-},
-{
- "pk": 1404,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 912,
- "task": 695
- }
-},
-{
- "pk": 1405,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 418,
- "task": 913
- }
-},
-{
- "pk": 1406,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 915,
- "task": 914
- }
-},
-{
- "pk": 1407,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 766,
- "task": 916
- }
-},
-{
- "pk": 1408,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 917,
- "task": 916
- }
-},
-{
- "pk": 1409,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 919,
- "task": 918
- }
-},
-{
- "pk": 1410,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 24
- }
-},
-{
- "pk": 1411,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 582,
- "task": 24
- }
-},
-{
- "pk": 1412,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 921,
- "task": 920
- }
-},
-{
- "pk": 1413,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 414
- }
-},
-{
- "pk": 1414,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 751,
- "task": 414
- }
-},
-{
- "pk": 1415,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 231
- }
-},
-{
- "pk": 1416,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 922,
- "task": 231
- }
-},
-{
- "pk": 1417,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 832,
- "task": 728
- }
-},
-{
- "pk": 1418,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 924,
- "task": 923
- }
-},
-{
- "pk": 1419,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 736
- }
-},
-{
- "pk": 1420,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 798,
- "task": 736
- }
-},
-{
- "pk": 1421,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 926,
- "task": 925
- }
-},
-{
- "pk": 1422,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 925
- }
-},
-{
- "pk": 1423,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 530,
- "task": 927
- }
-},
-{
- "pk": 1424,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 929,
- "task": 928
- }
-},
-{
- "pk": 1425,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 612,
- "task": 930
- }
-},
-{
- "pk": 1426,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 613,
- "task": 930
- }
-},
-{
- "pk": 1427,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 743,
- "task": 931
- }
-},
-{
- "pk": 1428,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 742,
- "task": 931
- }
-},
-{
- "pk": 1429,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 933,
- "task": 932
- }
-},
-{
- "pk": 1430,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 934,
- "task": 436
- }
-},
-{
- "pk": 1431,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 936,
- "task": 935
- }
-},
-{
- "pk": 1432,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 938,
- "task": 937
- }
-},
-{
- "pk": 1433,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 465,
- "task": 939
- }
-},
-{
- "pk": 1434,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 6,
- "task": 940
- }
-},
-{
- "pk": 1435,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 941,
- "task": 940
- }
-},
-{
- "pk": 1436,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 400
- }
-},
-{
- "pk": 1437,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 105,
- "task": 400
- }
-},
-{
- "pk": 1438,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 942,
- "task": 393
- }
-},
-{
- "pk": 1439,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 393
- }
-},
-{
- "pk": 1440,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 763,
- "task": 393
- }
-},
-{
- "pk": 1441,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 181
- }
-},
-{
- "pk": 1442,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 92,
- "task": 181
- }
-},
-{
- "pk": 1443,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 897,
- "task": 181
- }
-},
-{
- "pk": 1444,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 181
- }
-},
-{
- "pk": 1445,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 943
- }
-},
-{
- "pk": 1446,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 944,
- "task": 943
- }
-},
-{
- "pk": 1447,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 943
- }
-},
-{
- "pk": 1448,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 943
- }
-},
-{
- "pk": 1449,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 943
- }
-},
-{
- "pk": 1450,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 945,
- "task": 943
- }
-},
-{
- "pk": 1451,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 943
- }
-},
-{
- "pk": 1452,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 900
- }
-},
-{
- "pk": 1453,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 317,
- "task": 900
- }
-},
-{
- "pk": 1454,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 164,
- "task": 487
- }
-},
-{
- "pk": 1455,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 169,
- "task": 487
- }
-},
-{
- "pk": 1456,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 728,
- "task": 946
- }
-},
-{
- "pk": 1457,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 947,
- "task": 946
- }
-},
-{
- "pk": 1458,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 190
- }
-},
-{
- "pk": 1459,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 508,
- "task": 190
- }
-},
-{
- "pk": 1460,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 190
- }
-},
-{
- "pk": 1461,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 190
- }
-},
-{
- "pk": 1462,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 948
- }
-},
-{
- "pk": 1463,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 948
- }
-},
-{
- "pk": 1464,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 948
- }
-},
-{
- "pk": 1465,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 948
- }
-},
-{
- "pk": 1466,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 948
- }
-},
-{
- "pk": 1467,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 949,
- "task": 948
- }
-},
-{
- "pk": 1468,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 948
- }
-},
-{
- "pk": 1469,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 948
- }
-},
-{
- "pk": 1470,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 950,
- "task": 948
- }
-},
-{
- "pk": 1471,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 948
- }
-},
-{
- "pk": 1472,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 951,
- "task": 948
- }
-},
-{
- "pk": 1473,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 948
- }
-},
-{
- "pk": 1474,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 141,
- "task": 948
- }
-},
-{
- "pk": 1475,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 948
- }
-},
-{
- "pk": 1476,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 948
- }
-},
-{
- "pk": 1477,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 948
- }
-},
-{
- "pk": 1478,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 948
- }
-},
-{
- "pk": 1479,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 948
- }
-},
-{
- "pk": 1480,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 948
- }
-},
-{
- "pk": 1481,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 372
- }
-},
-{
- "pk": 1482,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 192,
- "task": 372
- }
-},
-{
- "pk": 1483,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 547,
- "task": 548
- }
-},
-{
- "pk": 1484,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 94,
- "task": 366
- }
-},
-{
- "pk": 1485,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 93,
- "task": 366
- }
-},
-{
- "pk": 1486,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 555
- }
-},
-{
- "pk": 1487,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 74,
- "task": 555
- }
-},
-{
- "pk": 1488,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 555
- }
-},
-{
- "pk": 1489,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 76,
- "task": 555
- }
-},
-{
- "pk": 1490,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 555
- }
-},
-{
- "pk": 1491,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 555
- }
-},
-{
- "pk": 1492,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 555
- }
-},
-{
- "pk": 1493,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 327,
- "task": 555
- }
-},
-{
- "pk": 1494,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 555
- }
-},
-{
- "pk": 1495,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 555
- }
-},
-{
- "pk": 1496,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 84,
- "task": 555
- }
-},
-{
- "pk": 1497,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 555
- }
-},
-{
- "pk": 1498,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 96,
- "task": 555
- }
-},
-{
- "pk": 1499,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 555
- }
-},
-{
- "pk": 1500,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 70,
- "task": 555
- }
-},
-{
- "pk": 1501,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 80,
- "task": 555
- }
-},
-{
- "pk": 1502,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 184,
- "task": 263
- }
-},
-{
- "pk": 1503,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 186,
- "task": 263
- }
-},
-{
- "pk": 1504,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 953,
- "task": 952
- }
-},
-{
- "pk": 1505,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 955,
- "task": 954
- }
-},
-{
- "pk": 1506,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 957,
- "task": 956
- }
-},
-{
- "pk": 1507,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 958,
- "task": 688
- }
-},
-{
- "pk": 1508,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 960,
- "task": 959
- }
-},
-{
- "pk": 1509,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 239
- }
-},
-{
- "pk": 1510,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 239
- }
-},
-{
- "pk": 1511,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 508,
- "task": 239
- }
-},
-{
- "pk": 1512,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 962,
- "task": 961
- }
-},
-{
- "pk": 1513,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 356,
- "task": 961
- }
-},
-{
- "pk": 1514,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 963
- }
-},
-{
- "pk": 1515,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 589,
- "task": 963
- }
-},
-{
- "pk": 1516,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 965,
- "task": 964
- }
-},
-{
- "pk": 1517,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 967,
- "task": 966
- }
-},
-{
- "pk": 1518,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 835,
- "task": 966
- }
-},
-{
- "pk": 1519,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 184,
- "task": 186
- }
-},
-{
- "pk": 1520,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 879,
- "task": 186
- }
-},
-{
- "pk": 1521,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 969,
- "task": 968
- }
-},
-{
- "pk": 1522,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 970
- }
-},
-{
- "pk": 1523,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 970
- }
-},
-{
- "pk": 1524,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 479,
- "task": 970
- }
-},
-{
- "pk": 1525,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 480,
- "task": 970
- }
-},
-{
- "pk": 1526,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 970
- }
-},
-{
- "pk": 1527,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 970
- }
-},
-{
- "pk": 1528,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 970
- }
-},
-{
- "pk": 1529,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 971,
- "task": 970
- }
-},
-{
- "pk": 1530,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 972,
- "task": 970
- }
-},
-{
- "pk": 1531,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 970
- }
-},
-{
- "pk": 1532,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 154,
- "task": 970
- }
-},
-{
- "pk": 1533,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 970
- }
-},
-{
- "pk": 1534,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 970
- }
-},
-{
- "pk": 1535,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 482,
- "task": 970
- }
-},
-{
- "pk": 1536,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 483,
- "task": 970
- }
-},
-{
- "pk": 1537,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 970
- }
-},
-{
- "pk": 1538,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 970
- }
-},
-{
- "pk": 1539,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 970
- }
-},
-{
- "pk": 1540,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 970
- }
-},
-{
- "pk": 1541,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 970
- }
-},
-{
- "pk": 1542,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 970
- }
-},
-{
- "pk": 1543,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 486,
- "task": 970
- }
-},
-{
- "pk": 1544,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 970
- }
-},
-{
- "pk": 1545,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 970
- }
-},
-{
- "pk": 1546,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 488,
- "task": 970
- }
-},
-{
- "pk": 1547,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 970
- }
-},
-{
- "pk": 1548,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 970
- }
-},
-{
- "pk": 1549,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 490,
- "task": 970
- }
-},
-{
- "pk": 1550,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 970
- }
-},
-{
- "pk": 1551,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 970
- }
-},
-{
- "pk": 1552,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 492,
- "task": 970
- }
-},
-{
- "pk": 1553,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 970
- }
-},
-{
- "pk": 1554,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 970
- }
-},
-{
- "pk": 1555,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 367,
- "task": 970
- }
-},
-{
- "pk": 1556,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 970
- }
-},
-{
- "pk": 1557,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 970
- }
-},
-{
- "pk": 1558,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 970
- }
-},
-{
- "pk": 1559,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 970
- }
-},
-{
- "pk": 1560,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 970
- }
-},
-{
- "pk": 1561,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 495,
- "task": 970
- }
-},
-{
- "pk": 1562,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 970
- }
-},
-{
- "pk": 1563,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 970
- }
-},
-{
- "pk": 1564,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 970
- }
-},
-{
- "pk": 1565,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 970
- }
-},
-{
- "pk": 1566,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 505,
- "task": 970
- }
-},
-{
- "pk": 1567,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 970
- }
-},
-{
- "pk": 1568,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 970
- }
-},
-{
- "pk": 1569,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 970
- }
-},
-{
- "pk": 1570,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 970
- }
-},
-{
- "pk": 1571,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 500,
- "task": 970
- }
-},
-{
- "pk": 1572,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 970
- }
-},
-{
- "pk": 1573,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 970
- }
-},
-{
- "pk": 1574,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 970
- }
-},
-{
- "pk": 1575,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 970
- }
-},
-{
- "pk": 1576,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 970
- }
-},
-{
- "pk": 1577,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 412,
- "task": 970
- }
-},
-{
- "pk": 1578,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 970
- }
-},
-{
- "pk": 1579,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 506,
- "task": 970
- }
-},
-{
- "pk": 1580,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 507,
- "task": 970
- }
-},
-{
- "pk": 1581,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 466,
- "task": 970
- }
-},
-{
- "pk": 1582,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 973
- }
-},
-{
- "pk": 1583,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 974,
- "task": 973
- }
-},
-{
- "pk": 1584,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 976,
- "task": 975
- }
-},
-{
- "pk": 1585,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 977,
- "task": 452
- }
-},
-{
- "pk": 1586,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 978,
- "task": 766
- }
-},
-{
- "pk": 1587,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 690,
- "task": 109
- }
-},
-{
- "pk": 1588,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 392,
- "task": 979
- }
-},
-{
- "pk": 1589,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 981,
- "task": 980
- }
-},
-{
- "pk": 1590,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 651
- }
-},
-{
- "pk": 1591,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 982,
- "task": 651
- }
-},
-{
- "pk": 1592,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 605
- }
-},
-{
- "pk": 1593,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 605
- }
-},
-{
- "pk": 1594,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 476,
- "task": 605
- }
-},
-{
- "pk": 1595,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 983,
- "task": 605
- }
-},
-{
- "pk": 1596,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 605
- }
-},
-{
- "pk": 1597,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 605
- }
-},
-{
- "pk": 1598,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 605
- }
-},
-{
- "pk": 1599,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 605
- }
-},
-{
- "pk": 1600,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 605
- }
-},
-{
- "pk": 1601,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 326,
- "task": 605
- }
-},
-{
- "pk": 1602,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 605
- }
-},
-{
- "pk": 1603,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 605
- }
-},
-{
- "pk": 1604,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 525,
- "task": 605
- }
-},
-{
- "pk": 1605,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 605
- }
-},
-{
- "pk": 1606,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 985,
- "task": 984
- }
-},
-{
- "pk": 1607,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 986,
- "task": 152
- }
-},
-{
- "pk": 1608,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 648,
- "task": 987
- }
-},
-{
- "pk": 1609,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 989,
- "task": 988
- }
-},
-{
- "pk": 1610,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 988
- }
-},
-{
- "pk": 1611,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 990,
- "task": 797
- }
-},
-{
- "pk": 1612,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 991
- }
-},
-{
- "pk": 1613,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 992,
- "task": 991
- }
-},
-{
- "pk": 1614,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 451,
- "task": 991
- }
-},
-{
- "pk": 1615,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 991
- }
-},
-{
- "pk": 1616,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 991
- }
-},
-{
- "pk": 1617,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 991
- }
-},
-{
- "pk": 1618,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 579,
- "task": 991
- }
-},
-{
- "pk": 1619,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 991
- }
-},
-{
- "pk": 1620,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 993,
- "task": 991
- }
-},
-{
- "pk": 1621,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 47,
- "task": 991
- }
-},
-{
- "pk": 1622,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 991
- }
-},
-{
- "pk": 1623,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 994,
- "task": 991
- }
-},
-{
- "pk": 1624,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 995
- }
-},
-{
- "pk": 1625,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 996,
- "task": 995
- }
-},
-{
- "pk": 1626,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 998,
- "task": 997
- }
-},
-{
- "pk": 1627,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 999,
- "task": 704
- }
-},
-{
- "pk": 1628,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 704
- }
-},
-{
- "pk": 1629,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1000,
- "task": 283
- }
-},
-{
- "pk": 1630,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 805,
- "task": 1001
- }
-},
-{
- "pk": 1631,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1003,
- "task": 1002
- }
-},
-{
- "pk": 1632,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 945,
- "task": 1002
- }
-},
-{
- "pk": 1633,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 624
- }
-},
-{
- "pk": 1634,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 619,
- "task": 624
- }
-},
-{
- "pk": 1635,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 624
- }
-},
-{
- "pk": 1636,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 115,
- "task": 624
- }
-},
-{
- "pk": 1637,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 624
- }
-},
-{
- "pk": 1638,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 624
- }
-},
-{
- "pk": 1639,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 624
- }
-},
-{
- "pk": 1640,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 624
- }
-},
-{
- "pk": 1641,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 624
- }
-},
-{
- "pk": 1642,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 624
- }
-},
-{
- "pk": 1643,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 624
- }
-},
-{
- "pk": 1644,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 430
- }
-},
-{
- "pk": 1645,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1004,
- "task": 430
- }
-},
-{
- "pk": 1646,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 778,
- "task": 208
- }
-},
-{
- "pk": 1647,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1006,
- "task": 1005
- }
-},
-{
- "pk": 1648,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1007,
- "task": 1005
- }
-},
-{
- "pk": 1649,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 187,
- "task": 1005
- }
-},
-{
- "pk": 1650,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1008,
- "task": 1005
- }
-},
-{
- "pk": 1651,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1005
- }
-},
-{
- "pk": 1652,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1005
- }
-},
-{
- "pk": 1653,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1005
- }
-},
-{
- "pk": 1654,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 1005
- }
-},
-{
- "pk": 1655,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1005
- }
-},
-{
- "pk": 1656,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1009,
- "task": 1005
- }
-},
-{
- "pk": 1657,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1010,
- "task": 1005
- }
-},
-{
- "pk": 1658,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1005
- }
-},
-{
- "pk": 1659,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1011,
- "task": 1005
- }
-},
-{
- "pk": 1660,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1005
- }
-},
-{
- "pk": 1661,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 532,
- "task": 1005
- }
-},
-{
- "pk": 1662,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1005
- }
-},
-{
- "pk": 1663,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1005
- }
-},
-{
- "pk": 1664,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1012
- }
-},
-{
- "pk": 1665,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1013,
- "task": 1012
- }
-},
-{
- "pk": 1666,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 276,
- "task": 820
- }
-},
-{
- "pk": 1667,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1015,
- "task": 1014
- }
-},
-{
- "pk": 1668,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1014
- }
-},
-{
- "pk": 1669,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 184,
- "task": 1014
- }
-},
-{
- "pk": 1670,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 879,
- "task": 1014
- }
-},
-{
- "pk": 1671,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 453,
- "task": 1014
- }
-},
-{
- "pk": 1672,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1017,
- "task": 1016
- }
-},
-{
- "pk": 1673,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1018,
- "task": 501
- }
-},
-{
- "pk": 1674,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 619,
- "task": 891
- }
-},
-{
- "pk": 1675,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1019,
- "task": 409
- }
-},
-{
- "pk": 1676,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1021,
- "task": 1020
- }
-},
-{
- "pk": 1677,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 843,
- "task": 268
- }
-},
-{
- "pk": 1678,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 268
- }
-},
-{
- "pk": 1679,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 72
- }
-},
-{
- "pk": 1680,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 180,
- "task": 72
- }
-},
-{
- "pk": 1681,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1022,
- "task": 72
- }
-},
-{
- "pk": 1682,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 72
- }
-},
-{
- "pk": 1683,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 573,
- "task": 563
- }
-},
-{
- "pk": 1684,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 574,
- "task": 563
- }
-},
-{
- "pk": 1685,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 309,
- "task": 1023
- }
-},
-{
- "pk": 1686,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 541,
- "task": 144
- }
-},
-{
- "pk": 1687,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1024
- }
-},
-{
- "pk": 1688,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1025,
- "task": 1024
- }
-},
-{
- "pk": 1689,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 592,
- "task": 1026
- }
-},
-{
- "pk": 1690,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1027,
- "task": 1026
- }
-},
-{
- "pk": 1691,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 469,
- "task": 1028
- }
-},
-{
- "pk": 1692,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1029,
- "task": 861
- }
-},
-{
- "pk": 1693,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 159,
- "task": 484
- }
-},
-{
- "pk": 1694,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 118,
- "task": 484
- }
-},
-{
- "pk": 1695,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 350
- }
-},
-{
- "pk": 1696,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 350
- }
-},
-{
- "pk": 1697,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 141,
- "task": 350
- }
-},
-{
- "pk": 1698,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 350
- }
-},
-{
- "pk": 1699,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 109,
- "task": 350
- }
-},
-{
- "pk": 1700,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 350
- }
-},
-{
- "pk": 1701,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 119,
- "task": 350
- }
-},
-{
- "pk": 1702,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 350
- }
-},
-{
- "pk": 1703,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 350
- }
-},
-{
- "pk": 1704,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 350
- }
-},
-{
- "pk": 1705,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 350
- }
-},
-{
- "pk": 1706,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 147,
- "task": 350
- }
-},
-{
- "pk": 1707,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 350
- }
-},
-{
- "pk": 1708,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 900,
- "task": 350
- }
-},
-{
- "pk": 1709,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1030
- }
-},
-{
- "pk": 1710,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 787,
- "task": 1030
- }
-},
-{
- "pk": 1711,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 677,
- "task": 1031
- }
-},
-{
- "pk": 1712,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 107
- }
-},
-{
- "pk": 1713,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 106,
- "task": 107
- }
-},
-{
- "pk": 1714,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 425,
- "task": 107
- }
-},
-{
- "pk": 1715,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 107
- }
-},
-{
- "pk": 1716,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 591
- }
-},
-{
- "pk": 1717,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1032,
- "task": 591
- }
-},
-{
- "pk": 1718,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 703,
- "task": 845
- }
-},
-{
- "pk": 1719,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1033
- }
-},
-{
- "pk": 1720,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1033
- }
-},
-{
- "pk": 1721,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1034,
- "task": 1033
- }
-},
-{
- "pk": 1722,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1033
- }
-},
-{
- "pk": 1723,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1033
- }
-},
-{
- "pk": 1724,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1035,
- "task": 1033
- }
-},
-{
- "pk": 1725,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1033
- }
-},
-{
- "pk": 1726,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1033
- }
-},
-{
- "pk": 1727,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1033
- }
-},
-{
- "pk": 1728,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1037,
- "task": 1036
- }
-},
-{
- "pk": 1729,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1038
- }
-},
-{
- "pk": 1730,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 526,
- "task": 1038
- }
-},
-{
- "pk": 1731,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 265,
- "task": 1038
- }
-},
-{
- "pk": 1732,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1038
- }
-},
-{
- "pk": 1733,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1038
- }
-},
-{
- "pk": 1734,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 1038
- }
-},
-{
- "pk": 1735,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 1038
- }
-},
-{
- "pk": 1736,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1038
- }
-},
-{
- "pk": 1737,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1038
- }
-},
-{
- "pk": 1738,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1039,
- "task": 693
- }
-},
-{
- "pk": 1739,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1040,
- "task": 667
- }
-},
-{
- "pk": 1740,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1041,
- "task": 667
- }
-},
-{
- "pk": 1741,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1042,
- "task": 468
- }
-},
-{
- "pk": 1742,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 59,
- "task": 500
- }
-},
-{
- "pk": 1743,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 144,
- "task": 500
- }
-},
-{
- "pk": 1744,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1044,
- "task": 1043
- }
-},
-{
- "pk": 1745,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 790,
- "task": 1045
- }
-},
-{
- "pk": 1746,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1047,
- "task": 1046
- }
-},
-{
- "pk": 1747,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 959,
- "task": 334
- }
-},
-{
- "pk": 1748,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 960,
- "task": 334
- }
-},
-{
- "pk": 1749,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 470,
- "task": 1048
- }
-},
-{
- "pk": 1750,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1050,
- "task": 1049
- }
-},
-{
- "pk": 1751,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 586,
- "task": 1051
- }
-},
-{
- "pk": 1752,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 354,
- "task": 124
- }
-},
-{
- "pk": 1753,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1052,
- "task": 910
- }
-},
-{
- "pk": 1754,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 564,
- "task": 1053
- }
-},
-{
- "pk": 1755,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1053
- }
-},
-{
- "pk": 1756,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 426,
- "task": 1054
- }
-},
-{
- "pk": 1757,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1056,
- "task": 1055
- }
-},
-{
- "pk": 1758,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1022
- }
-},
-{
- "pk": 1759,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1022
- }
-},
-{
- "pk": 1760,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 1022
- }
-},
-{
- "pk": 1761,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1022
- }
-},
-{
- "pk": 1762,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1022
- }
-},
-{
- "pk": 1763,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1022
- }
-},
-{
- "pk": 1764,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1022
- }
-},
-{
- "pk": 1765,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 313,
- "task": 1022
- }
-},
-{
- "pk": 1766,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1022
- }
-},
-{
- "pk": 1767,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1022
- }
-},
-{
- "pk": 1768,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1057,
- "task": 215
- }
-},
-{
- "pk": 1769,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 319
- }
-},
-{
- "pk": 1770,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 319
- }
-},
-{
- "pk": 1771,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1058,
- "task": 319
- }
-},
-{
- "pk": 1772,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 319
- }
-},
-{
- "pk": 1773,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 319
- }
-},
-{
- "pk": 1774,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 319
- }
-},
-{
- "pk": 1775,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 319
- }
-},
-{
- "pk": 1776,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 319
- }
-},
-{
- "pk": 1777,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 319
- }
-},
-{
- "pk": 1778,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 65,
- "task": 319
- }
-},
-{
- "pk": 1779,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 319
- }
-},
-{
- "pk": 1780,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 319
- }
-},
-{
- "pk": 1781,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 319
- }
-},
-{
- "pk": 1782,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 319
- }
-},
-{
- "pk": 1783,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 319
- }
-},
-{
- "pk": 1784,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 319
- }
-},
-{
- "pk": 1785,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 752
- }
-},
-{
- "pk": 1786,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 276,
- "task": 752
- }
-},
-{
- "pk": 1787,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 752
- }
-},
-{
- "pk": 1788,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 752
- }
-},
-{
- "pk": 1789,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 752
- }
-},
-{
- "pk": 1790,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 752
- }
-},
-{
- "pk": 1791,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 752
- }
-},
-{
- "pk": 1792,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 1059
- }
-},
-{
- "pk": 1793,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 11,
- "task": 1059
- }
-},
-{
- "pk": 1794,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1059
- }
-},
-{
- "pk": 1795,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 1059
- }
-},
-{
- "pk": 1796,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1059
- }
-},
-{
- "pk": 1797,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1059
- }
-},
-{
- "pk": 1798,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1059
- }
-},
-{
- "pk": 1799,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1059
- }
-},
-{
- "pk": 1800,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1012,
- "task": 1059
- }
-},
-{
- "pk": 1801,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1059
- }
-},
-{
- "pk": 1802,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1059
- }
-},
-{
- "pk": 1803,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1059
- }
-},
-{
- "pk": 1804,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 180,
- "task": 1059
- }
-},
-{
- "pk": 1805,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 344
- }
-},
-{
- "pk": 1806,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 449,
- "task": 344
- }
-},
-{
- "pk": 1807,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 987,
- "task": 344
- }
-},
-{
- "pk": 1808,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 344
- }
-},
-{
- "pk": 1809,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 902,
- "task": 344
- }
-},
-{
- "pk": 1810,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 344
- }
-},
-{
- "pk": 1811,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 667,
- "task": 344
- }
-},
-{
- "pk": 1812,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 344
- }
-},
-{
- "pk": 1813,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1060,
- "task": 344
- }
-},
-{
- "pk": 1814,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 344
- }
-},
-{
- "pk": 1815,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 344
- }
-},
-{
- "pk": 1816,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 513,
- "task": 344
- }
-},
-{
- "pk": 1817,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 344
- }
-},
-{
- "pk": 1818,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 709,
- "task": 344
- }
-},
-{
- "pk": 1819,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 344
- }
-},
-{
- "pk": 1820,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 344
- }
-},
-{
- "pk": 1821,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 334,
- "task": 344
- }
-},
-{
- "pk": 1822,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 344
- }
-},
-{
- "pk": 1823,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1054,
- "task": 344
- }
-},
-{
- "pk": 1824,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 891,
- "task": 344
- }
-},
-{
- "pk": 1825,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 348,
- "task": 1061
- }
-},
-{
- "pk": 1826,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1061
- }
-},
-{
- "pk": 1827,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1062
- }
-},
-{
- "pk": 1828,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1062
- }
-},
-{
- "pk": 1829,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1062
- }
-},
-{
- "pk": 1830,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1062
- }
-},
-{
- "pk": 1831,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1062
- }
-},
-{
- "pk": 1832,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 903,
- "task": 1062
- }
-},
-{
- "pk": 1833,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 567,
- "task": 1062
- }
-},
-{
- "pk": 1834,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1062
- }
-},
-{
- "pk": 1835,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1062
- }
-},
-{
- "pk": 1836,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1062
- }
-},
-{
- "pk": 1837,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 203,
- "task": 492
- }
-},
-{
- "pk": 1838,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 204,
- "task": 492
- }
-},
-{
- "pk": 1839,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 309,
- "task": 1063
- }
-},
-{
- "pk": 1840,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1065,
- "task": 1064
- }
-},
-{
- "pk": 1841,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 472
- }
-},
-{
- "pk": 1842,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 472
- }
-},
-{
- "pk": 1843,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 472
- }
-},
-{
- "pk": 1844,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 472
- }
-},
-{
- "pk": 1845,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 472
- }
-},
-{
- "pk": 1846,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 472
- }
-},
-{
- "pk": 1847,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 472
- }
-},
-{
- "pk": 1848,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 337,
- "task": 472
- }
-},
-{
- "pk": 1849,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 472
- }
-},
-{
- "pk": 1850,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 472
- }
-},
-{
- "pk": 1851,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 472
- }
-},
-{
- "pk": 1852,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 6,
- "task": 1066
- }
-},
-{
- "pk": 1853,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1067,
- "task": 1066
- }
-},
-{
- "pk": 1854,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1069,
- "task": 1068
- }
-},
-{
- "pk": 1855,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1068
- }
-},
-{
- "pk": 1856,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1070,
- "task": 1068
- }
-},
-{
- "pk": 1857,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1071,
- "task": 1068
- }
-},
-{
- "pk": 1858,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1068
- }
-},
-{
- "pk": 1859,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1068
- }
-},
-{
- "pk": 1860,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1068
- }
-},
-{
- "pk": 1861,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1072,
- "task": 965
- }
-},
-{
- "pk": 1862,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 965
- }
-},
-{
- "pk": 1863,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1073,
- "task": 115
- }
-},
-{
- "pk": 1864,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 8,
- "task": 272
- }
-},
-{
- "pk": 1865,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 278
- }
-},
-{
- "pk": 1866,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 278
- }
-},
-{
- "pk": 1867,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1074,
- "task": 278
- }
-},
-{
- "pk": 1868,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 278
- }
-},
-{
- "pk": 1869,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 278
- }
-},
-{
- "pk": 1870,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 278
- }
-},
-{
- "pk": 1871,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 278
- }
-},
-{
- "pk": 1872,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 278
- }
-},
-{
- "pk": 1873,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 278
- }
-},
-{
- "pk": 1874,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 278
- }
-},
-{
- "pk": 1875,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 78,
- "task": 108
- }
-},
-{
- "pk": 1876,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 502,
- "task": 108
- }
-},
-{
- "pk": 1877,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 108
- }
-},
-{
- "pk": 1878,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 108
- }
-},
-{
- "pk": 1879,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1075
- }
-},
-{
- "pk": 1880,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1076,
- "task": 1075
- }
-},
-{
- "pk": 1881,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 104,
- "task": 371
- }
-},
-{
- "pk": 1882,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 96,
- "task": 371
- }
-},
-{
- "pk": 1883,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 229,
- "task": 1077
- }
-},
-{
- "pk": 1884,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 702,
- "task": 1078
- }
-},
-{
- "pk": 1885,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1079,
- "task": 990
- }
-},
-{
- "pk": 1886,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 990
- }
-},
-{
- "pk": 1887,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1081,
- "task": 1080
- }
-},
-{
- "pk": 1888,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1080
- }
-},
-{
- "pk": 1889,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 1080
- }
-},
-{
- "pk": 1890,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1080
- }
-},
-{
- "pk": 1891,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1080
- }
-},
-{
- "pk": 1892,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1080
- }
-},
-{
- "pk": 1893,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1080
- }
-},
-{
- "pk": 1894,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1080
- }
-},
-{
- "pk": 1895,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1080
- }
-},
-{
- "pk": 1896,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 876,
- "task": 1080
- }
-},
-{
- "pk": 1897,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1080
- }
-},
-{
- "pk": 1898,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1080
- }
-},
-{
- "pk": 1899,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1080
- }
-},
-{
- "pk": 1900,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1080
- }
-},
-{
- "pk": 1901,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1080
- }
-},
-{
- "pk": 1902,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1082,
- "task": 773
- }
-},
-{
- "pk": 1903,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 773
- }
-},
-{
- "pk": 1904,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1084,
- "task": 1083
- }
-},
-{
- "pk": 1905,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 298,
- "task": 1085
- }
-},
-{
- "pk": 1906,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1087,
- "task": 1086
- }
-},
-{
- "pk": 1907,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1088,
- "task": 756
- }
-},
-{
- "pk": 1908,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 629,
- "task": 511
- }
-},
-{
- "pk": 1909,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 656,
- "task": 146
- }
-},
-{
- "pk": 1910,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 111,
- "task": 1089
- }
-},
-{
- "pk": 1911,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 836,
- "task": 1089
- }
-},
-{
- "pk": 1912,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 691
- }
-},
-{
- "pk": 1913,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 691
- }
-},
-{
- "pk": 1914,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 691
- }
-},
-{
- "pk": 1915,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 691
- }
-},
-{
- "pk": 1916,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 856
- }
-},
-{
- "pk": 1917,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 856
- }
-},
-{
- "pk": 1918,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 387,
- "task": 856
- }
-},
-{
- "pk": 1919,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 856
- }
-},
-{
- "pk": 1920,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 856
- }
-},
-{
- "pk": 1921,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 139,
- "task": 856
- }
-},
-{
- "pk": 1922,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 856
- }
-},
-{
- "pk": 1923,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1035
- }
-},
-{
- "pk": 1924,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1090,
- "task": 1035
- }
-},
-{
- "pk": 1925,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1091,
- "task": 1035
- }
-},
-{
- "pk": 1926,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 746,
- "task": 1035
- }
-},
-{
- "pk": 1927,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 92,
- "task": 1035
- }
-},
-{
- "pk": 1928,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1035
- }
-},
-{
- "pk": 1929,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1035
- }
-},
-{
- "pk": 1930,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1035
- }
-},
-{
- "pk": 1931,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 184,
- "task": 1035
- }
-},
-{
- "pk": 1932,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 178,
- "task": 1035
- }
-},
-{
- "pk": 1933,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 783
- }
-},
-{
- "pk": 1934,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 783
- }
-},
-{
- "pk": 1935,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 783
- }
-},
-{
- "pk": 1936,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 783
- }
-},
-{
- "pk": 1937,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 783
- }
-},
-{
- "pk": 1938,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 115,
- "task": 783
- }
-},
-{
- "pk": 1939,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1073,
- "task": 783
- }
-},
-{
- "pk": 1940,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 783
- }
-},
-{
- "pk": 1941,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 783
- }
-},
-{
- "pk": 1942,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 783
- }
-},
-{
- "pk": 1943,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 783
- }
-},
-{
- "pk": 1944,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 783
- }
-},
-{
- "pk": 1945,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 783
- }
-},
-{
- "pk": 1946,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 783
- }
-},
-{
- "pk": 1947,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 783
- }
-},
-{
- "pk": 1948,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 894,
- "task": 783
- }
-},
-{
- "pk": 1949,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 783
- }
-},
-{
- "pk": 1950,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1092,
- "task": 112
- }
-},
-{
- "pk": 1951,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1093,
- "task": 653
- }
-},
-{
- "pk": 1952,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1057
- }
-},
-{
- "pk": 1953,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1057
- }
-},
-{
- "pk": 1954,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 574,
- "task": 1057
- }
-},
-{
- "pk": 1955,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 573,
- "task": 1057
- }
-},
-{
- "pk": 1956,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1057
- }
-},
-{
- "pk": 1957,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1057
- }
-},
-{
- "pk": 1958,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1057
- }
-},
-{
- "pk": 1959,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1057
- }
-},
-{
- "pk": 1960,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1057
- }
-},
-{
- "pk": 1961,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 1057
- }
-},
-{
- "pk": 1962,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1057
- }
-},
-{
- "pk": 1963,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1095,
- "task": 1094
- }
-},
-{
- "pk": 1964,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1097,
- "task": 1096
- }
-},
-{
- "pk": 1965,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1098
- }
-},
-{
- "pk": 1966,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1099,
- "task": 1098
- }
-},
-{
- "pk": 1967,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1100
- }
-},
-{
- "pk": 1968,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1100
- }
-},
-{
- "pk": 1969,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1100
- }
-},
-{
- "pk": 1970,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1100
- }
-},
-{
- "pk": 1971,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1100
- }
-},
-{
- "pk": 1972,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1100
- }
-},
-{
- "pk": 1973,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1100
- }
-},
-{
- "pk": 1974,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 768,
- "task": 1100
- }
-},
-{
- "pk": 1975,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1100
- }
-},
-{
- "pk": 1976,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 471,
- "task": 1097
- }
-},
-{
- "pk": 1977,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1097
- }
-},
-{
- "pk": 1978,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1101,
- "task": 581
- }
-},
-{
- "pk": 1979,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 347
- }
-},
-{
- "pk": 1980,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 347
- }
-},
-{
- "pk": 1981,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 347
- }
-},
-{
- "pk": 1982,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 347
- }
-},
-{
- "pk": 1983,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 347
- }
-},
-{
- "pk": 1984,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 347
- }
-},
-{
- "pk": 1985,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 347
- }
-},
-{
- "pk": 1986,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 835,
- "task": 347
- }
-},
-{
- "pk": 1987,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 347
- }
-},
-{
- "pk": 1988,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 347
- }
-},
-{
- "pk": 1989,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 274,
- "task": 347
- }
-},
-{
- "pk": 1990,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 789,
- "task": 347
- }
-},
-{
- "pk": 1991,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 416
- }
-},
-{
- "pk": 1992,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1102,
- "task": 416
- }
-},
-{
- "pk": 1993,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 665
- }
-},
-{
- "pk": 1994,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 883,
- "task": 665
- }
-},
-{
- "pk": 1995,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 665
- }
-},
-{
- "pk": 1996,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 665
- }
-},
-{
- "pk": 1997,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 730,
- "task": 665
- }
-},
-{
- "pk": 1998,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 557,
- "task": 665
- }
-},
-{
- "pk": 1999,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1070,
- "task": 665
- }
-},
-{
- "pk": 2000,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1103,
- "task": 665
- }
-},
-{
- "pk": 2001,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 665
- }
-},
-{
- "pk": 2002,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 891,
- "task": 665
- }
-},
-{
- "pk": 2003,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 688,
- "task": 665
- }
-},
-{
- "pk": 2004,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1104,
- "task": 665
- }
-},
-{
- "pk": 2005,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 961,
- "task": 665
- }
-},
-{
- "pk": 2006,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1105,
- "task": 665
- }
-},
-{
- "pk": 2007,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 665
- }
-},
-{
- "pk": 2008,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 665
- }
-},
-{
- "pk": 2009,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 665
- }
-},
-{
- "pk": 2010,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 665
- }
-},
-{
- "pk": 2011,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 602,
- "task": 665
- }
-},
-{
- "pk": 2012,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1106,
- "task": 662
- }
-},
-{
- "pk": 2013,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 662
- }
-},
-{
- "pk": 2014,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1108,
- "task": 1107
- }
-},
-{
- "pk": 2015,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 6,
- "task": 1107
- }
-},
-{
- "pk": 2016,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 826,
- "task": 160
- }
-},
-{
- "pk": 2017,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1110,
- "task": 1109
- }
-},
-{
- "pk": 2018,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 318
- }
-},
-{
- "pk": 2019,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 230,
- "task": 318
- }
-},
-{
- "pk": 2020,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 318
- }
-},
-{
- "pk": 2021,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 318
- }
-},
-{
- "pk": 2022,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 318
- }
-},
-{
- "pk": 2023,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 318
- }
-},
-{
- "pk": 2024,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 318
- }
-},
-{
- "pk": 2025,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 318
- }
-},
-{
- "pk": 2026,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 950,
- "task": 318
- }
-},
-{
- "pk": 2027,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 318
- }
-},
-{
- "pk": 2028,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 318
- }
-},
-{
- "pk": 2029,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 318
- }
-},
-{
- "pk": 2030,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1111,
- "task": 318
- }
-},
-{
- "pk": 2031,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 233,
- "task": 318
- }
-},
-{
- "pk": 2032,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 111,
- "task": 318
- }
-},
-{
- "pk": 2033,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1113,
- "task": 1112
- }
-},
-{
- "pk": 2034,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1114,
- "task": 1112
- }
-},
-{
- "pk": 2035,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1116,
- "task": 1115
- }
-},
-{
- "pk": 2036,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1118,
- "task": 1117
- }
-},
-{
- "pk": 2037,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1120,
- "task": 1119
- }
-},
-{
- "pk": 2038,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 359,
- "task": 269
- }
-},
-{
- "pk": 2039,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 979,
- "task": 27
- }
-},
-{
- "pk": 2040,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1121
- }
-},
-{
- "pk": 2041,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1122,
- "task": 1121
- }
-},
-{
- "pk": 2042,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1123,
- "task": 1072
- }
-},
-{
- "pk": 2043,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 754,
- "task": 16
- }
-},
-{
- "pk": 2044,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 878,
- "task": 618
- }
-},
-{
- "pk": 2045,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1125,
- "task": 1124
- }
-},
-{
- "pk": 2046,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 773,
- "task": 1126
- }
-},
-{
- "pk": 2047,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 728,
- "task": 1126
- }
-},
-{
- "pk": 2048,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1128,
- "task": 1127
- }
-},
-{
- "pk": 2049,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1130,
- "task": 1129
- }
-},
-{
- "pk": 2050,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1131,
- "task": 999
- }
-},
-{
- "pk": 2051,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1132,
- "task": 1027
- }
-},
-{
- "pk": 2052,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 1133
- }
-},
-{
- "pk": 2053,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 960,
- "task": 1133
- }
-},
-{
- "pk": 2054,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 11,
- "task": 1133
- }
-},
-{
- "pk": 2055,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1133
- }
-},
-{
- "pk": 2056,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1133
- }
-},
-{
- "pk": 2057,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1133
- }
-},
-{
- "pk": 2058,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1133
- }
-},
-{
- "pk": 2059,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1133
- }
-},
-{
- "pk": 2060,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 959,
- "task": 1133
- }
-},
-{
- "pk": 2061,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1133
- }
-},
-{
- "pk": 2062,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1133
- }
-},
-{
- "pk": 2063,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 125,
- "task": 1133
- }
-},
-{
- "pk": 2064,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1133
- }
-},
-{
- "pk": 2065,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 43,
- "task": 1134
- }
-},
-{
- "pk": 2066,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1134
- }
-},
-{
- "pk": 2067,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1135,
- "task": 1134
- }
-},
-{
- "pk": 2068,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1136,
- "task": 996
- }
-},
-{
- "pk": 2069,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1137
- }
-},
-{
- "pk": 2070,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1137
- }
-},
-{
- "pk": 2071,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 1137
- }
-},
-{
- "pk": 2072,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1137
- }
-},
-{
- "pk": 2073,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1137
- }
-},
-{
- "pk": 2074,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1137
- }
-},
-{
- "pk": 2075,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1137
- }
-},
-{
- "pk": 2076,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1137
- }
-},
-{
- "pk": 2077,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1138,
- "task": 1137
- }
-},
-{
- "pk": 2078,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1139,
- "task": 1137
- }
-},
-{
- "pk": 2079,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1140
- }
-},
-{
- "pk": 2080,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1140
- }
-},
-{
- "pk": 2081,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1140
- }
-},
-{
- "pk": 2082,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 1140
- }
-},
-{
- "pk": 2083,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 530,
- "task": 1140
- }
-},
-{
- "pk": 2084,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1140
- }
-},
-{
- "pk": 2085,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1140
- }
-},
-{
- "pk": 2086,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1140
- }
-},
-{
- "pk": 2087,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1140
- }
-},
-{
- "pk": 2088,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1140
- }
-},
-{
- "pk": 2089,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 1140
- }
-},
-{
- "pk": 2090,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 829,
- "task": 945
- }
-},
-{
- "pk": 2091,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 609,
- "task": 945
- }
-},
-{
- "pk": 2092,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1142,
- "task": 1141
- }
-},
-{
- "pk": 2093,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 417,
- "task": 196
- }
-},
-{
- "pk": 2094,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 1143
- }
-},
-{
- "pk": 2095,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1144,
- "task": 1143
- }
-},
-{
- "pk": 2096,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 1143
- }
-},
-{
- "pk": 2097,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1145,
- "task": 533
- }
-},
-{
- "pk": 2098,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 533
- }
-},
-{
- "pk": 2099,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1146
- }
-},
-{
- "pk": 2100,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1146
- }
-},
-{
- "pk": 2101,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1146
- }
-},
-{
- "pk": 2102,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1146
- }
-},
-{
- "pk": 2103,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1146
- }
-},
-{
- "pk": 2104,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1146
- }
-},
-{
- "pk": 2105,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1146
- }
-},
-{
- "pk": 2106,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 1146
- }
-},
-{
- "pk": 2107,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1146
- }
-},
-{
- "pk": 2108,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 379,
- "task": 1146
- }
-},
-{
- "pk": 2109,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1146
- }
-},
-{
- "pk": 2110,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1146
- }
-},
-{
- "pk": 2111,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 274,
- "task": 1146
- }
-},
-{
- "pk": 2112,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1146
- }
-},
-{
- "pk": 2113,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1148,
- "task": 1147
- }
-},
-{
- "pk": 2114,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1150,
- "task": 1149
- }
-},
-{
- "pk": 2115,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 958
- }
-},
-{
- "pk": 2116,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1151,
- "task": 958
- }
-},
-{
- "pk": 2117,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1100,
- "task": 1152
- }
-},
-{
- "pk": 2118,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 659,
- "task": 715
- }
-},
-{
- "pk": 2119,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1043,
- "task": 812
- }
-},
-{
- "pk": 2120,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 429,
- "task": 355
- }
-},
-{
- "pk": 2121,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 261,
- "task": 166
- }
-},
-{
- "pk": 2122,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1153,
- "task": 936
- }
-},
-{
- "pk": 2123,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 857,
- "task": 620
- }
-},
-{
- "pk": 2124,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1154,
- "task": 781
- }
-},
-{
- "pk": 2125,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 698,
- "task": 135
- }
-},
-{
- "pk": 2126,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 193,
- "task": 79
- }
-},
-{
- "pk": 2127,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 79
- }
-},
-{
- "pk": 2128,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1155,
- "task": 79
- }
-},
-{
- "pk": 2129,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 150,
- "task": 79
- }
-},
-{
- "pk": 2130,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 79
- }
-},
-{
- "pk": 2131,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1157,
- "task": 1156
- }
-},
-{
- "pk": 2132,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 524,
- "task": 1158
- }
-},
-{
- "pk": 2133,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 1158
- }
-},
-{
- "pk": 2134,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1158
- }
-},
-{
- "pk": 2135,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1159,
- "task": 1158
- }
-},
-{
- "pk": 2136,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 483,
- "task": 1158
- }
-},
-{
- "pk": 2137,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 193,
- "task": 1158
- }
-},
-{
- "pk": 2138,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 289,
- "task": 1158
- }
-},
-{
- "pk": 2139,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 1158
- }
-},
-{
- "pk": 2140,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 1158
- }
-},
-{
- "pk": 2141,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1158
- }
-},
-{
- "pk": 2142,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1158
- }
-},
-{
- "pk": 2143,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1158
- }
-},
-{
- "pk": 2144,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 1158
- }
-},
-{
- "pk": 2145,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1158
- }
-},
-{
- "pk": 2146,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1158
- }
-},
-{
- "pk": 2147,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1158
- }
-},
-{
- "pk": 2148,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1158
- }
-},
-{
- "pk": 2149,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1158
- }
-},
-{
- "pk": 2150,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1158
- }
-},
-{
- "pk": 2151,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 1158
- }
-},
-{
- "pk": 2152,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1158
- }
-},
-{
- "pk": 2153,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1158
- }
-},
-{
- "pk": 2154,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1158
- }
-},
-{
- "pk": 2155,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1158
- }
-},
-{
- "pk": 2156,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1158
- }
-},
-{
- "pk": 2157,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 1158
- }
-},
-{
- "pk": 2158,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 1158
- }
-},
-{
- "pk": 2159,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1158
- }
-},
-{
- "pk": 2160,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 866,
- "task": 867
- }
-},
-{
- "pk": 2161,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 568,
- "task": 1160
- }
-},
-{
- "pk": 2162,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1162,
- "task": 1161
- }
-},
-{
- "pk": 2163,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 121,
- "task": 670
- }
-},
-{
- "pk": 2164,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 122,
- "task": 670
- }
-},
-{
- "pk": 2165,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1164,
- "task": 1163
- }
-},
-{
- "pk": 2166,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1165,
- "task": 299
- }
-},
-{
- "pk": 2167,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 299
- }
-},
-{
- "pk": 2168,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1040,
- "task": 669
- }
-},
-{
- "pk": 2169,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 669
- }
-},
-{
- "pk": 2170,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 11,
- "task": 669
- }
-},
-{
- "pk": 2171,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 669
- }
-},
-{
- "pk": 2172,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 669
- }
-},
-{
- "pk": 2173,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 669
- }
-},
-{
- "pk": 2174,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 669
- }
-},
-{
- "pk": 2175,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 669
- }
-},
-{
- "pk": 2176,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 669
- }
-},
-{
- "pk": 2177,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 669
- }
-},
-{
- "pk": 2178,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 669
- }
-},
-{
- "pk": 2179,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1041,
- "task": 669
- }
-},
-{
- "pk": 2180,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 973,
- "task": 1003
- }
-},
-{
- "pk": 2181,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1167,
- "task": 1166
- }
-},
-{
- "pk": 2182,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 386
- }
-},
-{
- "pk": 2183,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 386
- }
-},
-{
- "pk": 2184,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1168,
- "task": 386
- }
-},
-{
- "pk": 2185,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 386
- }
-},
-{
- "pk": 2186,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 386
- }
-},
-{
- "pk": 2187,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 386
- }
-},
-{
- "pk": 2188,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1169
- }
-},
-{
- "pk": 2189,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1169
- }
-},
-{
- "pk": 2190,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 990,
- "task": 1169
- }
-},
-{
- "pk": 2191,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1169
- }
-},
-{
- "pk": 2192,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1169
- }
-},
-{
- "pk": 2193,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1169
- }
-},
-{
- "pk": 2194,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 444,
- "task": 123
- }
-},
-{
- "pk": 2195,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 167
- }
-},
-{
- "pk": 2196,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 165,
- "task": 167
- }
-},
-{
- "pk": 2197,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 512,
- "task": 167
- }
-},
-{
- "pk": 2198,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 167
- }
-},
-{
- "pk": 2199,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1170,
- "task": 1101
- }
-},
-{
- "pk": 2200,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1171
- }
-},
-{
- "pk": 2201,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 230,
- "task": 1171
- }
-},
-{
- "pk": 2202,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1171
- }
-},
-{
- "pk": 2203,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1171
- }
-},
-{
- "pk": 2204,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1171
- }
-},
-{
- "pk": 2205,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1171
- }
-},
-{
- "pk": 2206,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1171
- }
-},
-{
- "pk": 2207,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1171
- }
-},
-{
- "pk": 2208,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1171
- }
-},
-{
- "pk": 2209,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1171
- }
-},
-{
- "pk": 2210,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 1171
- }
-},
-{
- "pk": 2211,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1171
- }
-},
-{
- "pk": 2212,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 995,
- "task": 1171
- }
-},
-{
- "pk": 2213,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1172,
- "task": 1106
- }
-},
-{
- "pk": 2214,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 300,
- "task": 710
- }
-},
-{
- "pk": 2215,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1173
- }
-},
-{
- "pk": 2216,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1174,
- "task": 1173
- }
-},
-{
- "pk": 2217,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1173
- }
-},
-{
- "pk": 2218,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1173
- }
-},
-{
- "pk": 2219,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1175,
- "task": 877
- }
-},
-{
- "pk": 2220,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1177,
- "task": 1176
- }
-},
-{
- "pk": 2221,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1176
- }
-},
-{
- "pk": 2222,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1176
- }
-},
-{
- "pk": 2223,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1176
- }
-},
-{
- "pk": 2224,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1176
- }
-},
-{
- "pk": 2225,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1012,
- "task": 902
- }
-},
-{
- "pk": 2226,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1179,
- "task": 1178
- }
-},
-{
- "pk": 2227,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1180,
- "task": 1178
- }
-},
-{
- "pk": 2228,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1181,
- "task": 1178
- }
-},
-{
- "pk": 2229,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 58,
- "task": 1178
- }
-},
-{
- "pk": 2230,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1182,
- "task": 1178
- }
-},
-{
- "pk": 2231,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1183,
- "task": 1178
- }
-},
-{
- "pk": 2232,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 60,
- "task": 1178
- }
-},
-{
- "pk": 2233,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 880,
- "task": 1178
- }
-},
-{
- "pk": 2234,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 819,
- "task": 1178
- }
-},
-{
- "pk": 2235,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 796,
- "task": 1178
- }
-},
-{
- "pk": 2236,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1184,
- "task": 1178
- }
-},
-{
- "pk": 2237,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1185,
- "task": 1178
- }
-},
-{
- "pk": 2238,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1186,
- "task": 1178
- }
-},
-{
- "pk": 2239,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 966,
- "task": 1178
- }
-},
-{
- "pk": 2240,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 847,
- "task": 1178
- }
-},
-{
- "pk": 2241,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1187,
- "task": 1178
- }
-},
-{
- "pk": 2242,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1188,
- "task": 1178
- }
-},
-{
- "pk": 2243,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 712,
- "task": 1178
- }
-},
-{
- "pk": 2244,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 606,
- "task": 1178
- }
-},
-{
- "pk": 2245,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1033,
- "task": 1178
- }
-},
-{
- "pk": 2246,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 561,
- "task": 1178
- }
-},
-{
- "pk": 2247,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1189,
- "task": 1178
- }
-},
-{
- "pk": 2248,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1190,
- "task": 1178
- }
-},
-{
- "pk": 2249,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 410,
- "task": 1178
- }
-},
-{
- "pk": 2250,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1191,
- "task": 1178
- }
-},
-{
- "pk": 2251,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 889,
- "task": 1178
- }
-},
-{
- "pk": 2252,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1030,
- "task": 1178
- }
-},
-{
- "pk": 2253,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1192,
- "task": 1178
- }
-},
-{
- "pk": 2254,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 363,
- "task": 1178
- }
-},
-{
- "pk": 2255,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 783,
- "task": 1178
- }
-},
-{
- "pk": 2256,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1193,
- "task": 1178
- }
-},
-{
- "pk": 2257,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 890,
- "task": 1178
- }
-},
-{
- "pk": 2258,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1010,
- "task": 1178
- }
-},
-{
- "pk": 2259,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1194,
- "task": 1178
- }
-},
-{
- "pk": 2260,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1195,
- "task": 1178
- }
-},
-{
- "pk": 2261,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1196,
- "task": 1178
- }
-},
-{
- "pk": 2262,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1197,
- "task": 1178
- }
-},
-{
- "pk": 2263,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1198,
- "task": 1178
- }
-},
-{
- "pk": 2264,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 580,
- "task": 1178
- }
-},
-{
- "pk": 2265,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 556,
- "task": 1178
- }
-},
-{
- "pk": 2266,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1199,
- "task": 1178
- }
-},
-{
- "pk": 2267,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 699,
- "task": 1178
- }
-},
-{
- "pk": 2268,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1114,
- "task": 1178
- }
-},
-{
- "pk": 2269,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1200,
- "task": 1178
- }
-},
-{
- "pk": 2270,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1201,
- "task": 1178
- }
-},
-{
- "pk": 2271,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1112,
- "task": 1178
- }
-},
-{
- "pk": 2272,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1202,
- "task": 1178
- }
-},
-{
- "pk": 2273,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1203,
- "task": 1178
- }
-},
-{
- "pk": 2274,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1204,
- "task": 1178
- }
-},
-{
- "pk": 2275,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1205,
- "task": 1178
- }
-},
-{
- "pk": 2276,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1206,
- "task": 1178
- }
-},
-{
- "pk": 2277,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1207,
- "task": 1178
- }
-},
-{
- "pk": 2278,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1208,
- "task": 1178
- }
-},
-{
- "pk": 2279,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 687,
- "task": 1178
- }
-},
-{
- "pk": 2280,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 970,
- "task": 1178
- }
-},
-{
- "pk": 2281,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 707,
- "task": 1178
- }
-},
-{
- "pk": 2282,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1209,
- "task": 1178
- }
-},
-{
- "pk": 2283,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1210,
- "task": 1178
- }
-},
-{
- "pk": 2284,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1211,
- "task": 1178
- }
-},
-{
- "pk": 2285,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1212,
- "task": 1178
- }
-},
-{
- "pk": 2286,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1213,
- "task": 1178
- }
-},
-{
- "pk": 2287,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1214,
- "task": 1178
- }
-},
-{
- "pk": 2288,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1215,
- "task": 1178
- }
-},
-{
- "pk": 2289,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1216,
- "task": 1178
- }
-},
-{
- "pk": 2290,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1217,
- "task": 1178
- }
-},
-{
- "pk": 2291,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1218,
- "task": 1178
- }
-},
-{
- "pk": 2292,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1002,
- "task": 1178
- }
-},
-{
- "pk": 2293,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1219,
- "task": 1178
- }
-},
-{
- "pk": 2294,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1220,
- "task": 1178
- }
-},
-{
- "pk": 2295,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1221,
- "task": 1178
- }
-},
-{
- "pk": 2296,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 319,
- "task": 1178
- }
-},
-{
- "pk": 2297,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 666,
- "task": 1178
- }
-},
-{
- "pk": 2298,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 780,
- "task": 1178
- }
-},
-{
- "pk": 2299,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1222,
- "task": 1178
- }
-},
-{
- "pk": 2300,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 437,
- "task": 1178
- }
-},
-{
- "pk": 2301,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 239,
- "task": 1178
- }
-},
-{
- "pk": 2302,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 236,
- "task": 1178
- }
-},
-{
- "pk": 2303,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1223,
- "task": 1178
- }
-},
-{
- "pk": 2304,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1224,
- "task": 1178
- }
-},
-{
- "pk": 2305,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1225,
- "task": 1178
- }
-},
-{
- "pk": 2306,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 341,
- "task": 1178
- }
-},
-{
- "pk": 2307,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1080,
- "task": 1178
- }
-},
-{
- "pk": 2308,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1226,
- "task": 1178
- }
-},
-{
- "pk": 2309,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1227,
- "task": 1178
- }
-},
-{
- "pk": 2310,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1228,
- "task": 1178
- }
-},
-{
- "pk": 2311,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1229,
- "task": 1178
- }
-},
-{
- "pk": 2312,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1230,
- "task": 1178
- }
-},
-{
- "pk": 2313,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 948,
- "task": 1178
- }
-},
-{
- "pk": 2314,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 538,
- "task": 1178
- }
-},
-{
- "pk": 2315,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1231,
- "task": 1178
- }
-},
-{
- "pk": 2316,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1089,
- "task": 1178
- }
-},
-{
- "pk": 2317,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 431,
- "task": 1178
- }
-},
-{
- "pk": 2318,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1232,
- "task": 1178
- }
-},
-{
- "pk": 2319,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1233,
- "task": 1178
- }
-},
-{
- "pk": 2320,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1234,
- "task": 1178
- }
-},
-{
- "pk": 2321,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1235,
- "task": 1178
- }
-},
-{
- "pk": 2322,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 823,
- "task": 1178
- }
-},
-{
- "pk": 2323,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1236,
- "task": 1178
- }
-},
-{
- "pk": 2324,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1005,
- "task": 1178
- }
-},
-{
- "pk": 2325,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1237,
- "task": 1178
- }
-},
-{
- "pk": 2326,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1238,
- "task": 1178
- }
-},
-{
- "pk": 2327,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1239,
- "task": 1178
- }
-},
-{
- "pk": 2328,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 251,
- "task": 1178
- }
-},
-{
- "pk": 2329,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1240,
- "task": 1178
- }
-},
-{
- "pk": 2330,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1241,
- "task": 1178
- }
-},
-{
- "pk": 2331,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 509,
- "task": 1178
- }
-},
-{
- "pk": 2332,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 399,
- "task": 1178
- }
-},
-{
- "pk": 2333,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 814,
- "task": 1178
- }
-},
-{
- "pk": 2334,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1242,
- "task": 1178
- }
-},
-{
- "pk": 2335,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1243,
- "task": 1178
- }
-},
-{
- "pk": 2336,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1244,
- "task": 1178
- }
-},
-{
- "pk": 2337,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1245,
- "task": 1178
- }
-},
-{
- "pk": 2338,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 671,
- "task": 1178
- }
-},
-{
- "pk": 2339,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1246,
- "task": 1178
- }
-},
-{
- "pk": 2340,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1247,
- "task": 1178
- }
-},
-{
- "pk": 2341,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1248,
- "task": 1178
- }
-},
-{
- "pk": 2342,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1249,
- "task": 1178
- }
-},
-{
- "pk": 2343,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1250,
- "task": 1178
- }
-},
-{
- "pk": 2344,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 5,
- "task": 1178
- }
-},
-{
- "pk": 2345,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1251,
- "task": 1178
- }
-},
-{
- "pk": 2346,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1014,
- "task": 1178
- }
-},
-{
- "pk": 2347,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 680,
- "task": 1178
- }
-},
-{
- "pk": 2348,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1252,
- "task": 1178
- }
-},
-{
- "pk": 2349,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 749,
- "task": 1178
- }
-},
-{
- "pk": 2350,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1253,
- "task": 1178
- }
-},
-{
- "pk": 2351,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 838,
- "task": 1178
- }
-},
-{
- "pk": 2352,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1254,
- "task": 1178
- }
-},
-{
- "pk": 2353,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 765,
- "task": 1178
- }
-},
-{
- "pk": 2354,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1255,
- "task": 1178
- }
-},
-{
- "pk": 2355,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 762,
- "task": 1178
- }
-},
-{
- "pk": 2356,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1158,
- "task": 1178
- }
-},
-{
- "pk": 2357,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 339,
- "task": 1178
- }
-},
-{
- "pk": 2358,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 478,
- "task": 1178
- }
-},
-{
- "pk": 2359,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 577,
- "task": 1178
- }
-},
-{
- "pk": 2360,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 855,
- "task": 1178
- }
-},
-{
- "pk": 2361,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1256,
- "task": 1178
- }
-},
-{
- "pk": 2362,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1257,
- "task": 1178
- }
-},
-{
- "pk": 2363,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1258,
- "task": 1178
- }
-},
-{
- "pk": 2364,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1259,
- "task": 1178
- }
-},
-{
- "pk": 2365,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 713,
- "task": 1178
- }
-},
-{
- "pk": 2366,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 946,
- "task": 1178
- }
-},
-{
- "pk": 2367,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1026,
- "task": 1178
- }
-},
-{
- "pk": 2368,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1260,
- "task": 1178
- }
-},
-{
- "pk": 2369,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 776,
- "task": 1178
- }
-},
-{
- "pk": 2370,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 744,
- "task": 1178
- }
-},
-{
- "pk": 2371,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1261,
- "task": 1178
- }
-},
-{
- "pk": 2372,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1262,
- "task": 1178
- }
-},
-{
- "pk": 2373,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1263,
- "task": 1178
- }
-},
-{
- "pk": 2374,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1264,
- "task": 1178
- }
-},
-{
- "pk": 2375,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 811,
- "task": 1265
- }
-},
-{
- "pk": 2376,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 954,
- "task": 879
- }
-},
-{
- "pk": 2377,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 879
- }
-},
-{
- "pk": 2378,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 955,
- "task": 879
- }
-},
-{
- "pk": 2379,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1266,
- "task": 879
- }
-},
-{
- "pk": 2380,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 56,
- "task": 10
- }
-},
-{
- "pk": 2381,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 304
- }
-},
-{
- "pk": 2382,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 304
- }
-},
-{
- "pk": 2383,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 304
- }
-},
-{
- "pk": 2384,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 304
- }
-},
-{
- "pk": 2385,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 304
- }
-},
-{
- "pk": 2386,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 304
- }
-},
-{
- "pk": 2387,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 304
- }
-},
-{
- "pk": 2388,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 304
- }
-},
-{
- "pk": 2389,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 618,
- "task": 304
- }
-},
-{
- "pk": 2390,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 931,
- "task": 1267
- }
-},
-{
- "pk": 2391,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 423
- }
-},
-{
- "pk": 2392,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 247,
- "task": 423
- }
-},
-{
- "pk": 2393,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 423
- }
-},
-{
- "pk": 2394,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 423
- }
-},
-{
- "pk": 2395,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 423
- }
-},
-{
- "pk": 2396,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1035,
- "task": 67
- }
-},
-{
- "pk": 2397,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 171,
- "task": 173
- }
-},
-{
- "pk": 2398,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 173
- }
-},
-{
- "pk": 2399,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 711,
- "task": 173
- }
-},
-{
- "pk": 2400,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 174,
- "task": 173
- }
-},
-{
- "pk": 2401,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 173
- }
-},
-{
- "pk": 2402,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 173
- }
-},
-{
- "pk": 2403,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 21
- }
-},
-{
- "pk": 2404,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1268,
- "task": 21
- }
-},
-{
- "pk": 2405,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 782,
- "task": 1269
- }
-},
-{
- "pk": 2406,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1161,
- "task": 1270
- }
-},
-{
- "pk": 2407,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 146,
- "task": 1271
- }
-},
-{
- "pk": 2408,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 148,
- "task": 1271
- }
-},
-{
- "pk": 2409,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 75
- }
-},
-{
- "pk": 2410,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 74,
- "task": 75
- }
-},
-{
- "pk": 2411,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 304,
- "task": 75
- }
-},
-{
- "pk": 2412,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 75
- }
-},
-{
- "pk": 2413,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1273,
- "task": 1272
- }
-},
-{
- "pk": 2414,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 517,
- "task": 313
- }
-},
-{
- "pk": 2415,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 955
- }
-},
-{
- "pk": 2416,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 635,
- "task": 955
- }
-},
-{
- "pk": 2417,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 120
- }
-},
-{
- "pk": 2418,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 599,
- "task": 120
- }
-},
-{
- "pk": 2419,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 119,
- "task": 120
- }
-},
-{
- "pk": 2420,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 120
- }
-},
-{
- "pk": 2421,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1109,
- "task": 1198
- }
-},
-{
- "pk": 2422,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1274,
- "task": 1198
- }
-},
-{
- "pk": 2423,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1155,
- "task": 150
- }
-},
-{
- "pk": 2424,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 258
- }
-},
-{
- "pk": 2425,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 190,
- "task": 258
- }
-},
-{
- "pk": 2426,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 50,
- "task": 273
- }
-},
-{
- "pk": 2427,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 413,
- "task": 125
- }
-},
-{
- "pk": 2428,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1275
- }
-},
-{
- "pk": 2429,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1275
- }
-},
-{
- "pk": 2430,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1275
- }
-},
-{
- "pk": 2431,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1275
- }
-},
-{
- "pk": 2432,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 525,
- "task": 1275
- }
-},
-{
- "pk": 2433,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1275
- }
-},
-{
- "pk": 2434,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1275
- }
-},
-{
- "pk": 2435,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1275
- }
-},
-{
- "pk": 2436,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 326,
- "task": 1275
- }
-},
-{
- "pk": 2437,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1275
- }
-},
-{
- "pk": 2438,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1275
- }
-},
-{
- "pk": 2439,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 544,
- "task": 1275
- }
-},
-{
- "pk": 2440,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 334,
- "task": 1275
- }
-},
-{
- "pk": 2441,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1275
- }
-},
-{
- "pk": 2442,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 526,
- "task": 1275
- }
-},
-{
- "pk": 2443,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 925,
- "task": 777
- }
-},
-{
- "pk": 2444,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1018
- }
-},
-{
- "pk": 2445,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1276,
- "task": 1018
- }
-},
-{
- "pk": 2446,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1277,
- "task": 808
- }
-},
-{
- "pk": 2447,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 669,
- "task": 121
- }
-},
-{
- "pk": 2448,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 714,
- "task": 919
- }
-},
-{
- "pk": 2449,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 905,
- "task": 919
- }
-},
-{
- "pk": 2450,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1134
- }
-},
-{
- "pk": 2451,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1134
- }
-},
-{
- "pk": 2452,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1134
- }
-},
-{
- "pk": 2453,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1008,
- "task": 187
- }
-},
-{
- "pk": 2454,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1279,
- "task": 1278
- }
-},
-{
- "pk": 2455,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 91
- }
-},
-{
- "pk": 2456,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 150,
- "task": 91
- }
-},
-{
- "pk": 2457,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 144,
- "task": 91
- }
-},
-{
- "pk": 2458,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 78,
- "task": 91
- }
-},
-{
- "pk": 2459,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 212,
- "task": 91
- }
-},
-{
- "pk": 2460,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 91
- }
-},
-{
- "pk": 2461,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 154,
- "task": 91
- }
-},
-{
- "pk": 2462,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 90,
- "task": 91
- }
-},
-{
- "pk": 2463,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1133,
- "task": 91
- }
-},
-{
- "pk": 2464,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1281,
- "task": 1280
- }
-},
-{
- "pk": 2465,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 515,
- "task": 942
- }
-},
-{
- "pk": 2466,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 942
- }
-},
-{
- "pk": 2467,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 203,
- "task": 204
- }
-},
-{
- "pk": 2468,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 424,
- "task": 204
- }
-},
-{
- "pk": 2469,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 200,
- "task": 204
- }
-},
-{
- "pk": 2470,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 204
- }
-},
-{
- "pk": 2471,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 204
- }
-},
-{
- "pk": 2472,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 789
- }
-},
-{
- "pk": 2473,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1282,
- "task": 789
- }
-},
-{
- "pk": 2474,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 852,
- "task": 233
- }
-},
-{
- "pk": 2475,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 473
- }
-},
-{
- "pk": 2476,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 473
- }
-},
-{
- "pk": 2477,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 473
- }
-},
-{
- "pk": 2478,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 473
- }
-},
-{
- "pk": 2479,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 109,
- "task": 473
- }
-},
-{
- "pk": 2480,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 136,
- "task": 473
- }
-},
-{
- "pk": 2481,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 473
- }
-},
-{
- "pk": 2482,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 119,
- "task": 473
- }
-},
-{
- "pk": 2483,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 969,
- "task": 473
- }
-},
-{
- "pk": 2484,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 123,
- "task": 473
- }
-},
-{
- "pk": 2485,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 473
- }
-},
-{
- "pk": 2486,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 473
- }
-},
-{
- "pk": 2487,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 473
- }
-},
-{
- "pk": 2488,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 473
- }
-},
-{
- "pk": 2489,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 473
- }
-},
-{
- "pk": 2490,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 129,
- "task": 473
- }
-},
-{
- "pk": 2491,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 73,
- "task": 473
- }
-},
-{
- "pk": 2492,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1284,
- "task": 1283
- }
-},
-{
- "pk": 2493,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1078,
- "task": 1285
- }
-},
-{
- "pk": 2494,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 6,
- "task": 1286
- }
-},
-{
- "pk": 2495,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1287,
- "task": 1286
- }
-},
-{
- "pk": 2496,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1289,
- "task": 1288
- }
-},
-{
- "pk": 2497,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 149
- }
-},
-{
- "pk": 2498,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 147,
- "task": 149
- }
-},
-{
- "pk": 2499,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 398,
- "task": 149
- }
-},
-{
- "pk": 2500,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 149
- }
-},
-{
- "pk": 2501,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 125,
- "task": 185
- }
-},
-{
- "pk": 2502,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 413,
- "task": 185
- }
-},
-{
- "pk": 2503,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 185
- }
-},
-{
- "pk": 2504,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 185
- }
-},
-{
- "pk": 2505,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1290
- }
-},
-{
- "pk": 2506,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1291,
- "task": 1290
- }
-},
-{
- "pk": 2507,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1292
- }
-},
-{
- "pk": 2508,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1292
- }
-},
-{
- "pk": 2509,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1292
- }
-},
-{
- "pk": 2510,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1292
- }
-},
-{
- "pk": 2511,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1293,
- "task": 1292
- }
-},
-{
- "pk": 2512,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1292
- }
-},
-{
- "pk": 2513,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1292
- }
-},
-{
- "pk": 2514,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 563,
- "task": 1292
- }
-},
-{
- "pk": 2515,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 835,
- "task": 1292
- }
-},
-{
- "pk": 2516,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1294,
- "task": 1292
- }
-},
-{
- "pk": 2517,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1292
- }
-},
-{
- "pk": 2518,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1292
- }
-},
-{
- "pk": 2519,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 688,
- "task": 1292
- }
-},
-{
- "pk": 2520,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 1292
- }
-},
-{
- "pk": 2521,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1292
- }
-},
-{
- "pk": 2522,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 602,
- "task": 1292
- }
-},
-{
- "pk": 2523,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 283,
- "task": 1292
- }
-},
-{
- "pk": 2524,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1296,
- "task": 1295
- }
-},
-{
- "pk": 2525,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 121,
- "task": 122
- }
-},
-{
- "pk": 2526,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 669,
- "task": 122
- }
-},
-{
- "pk": 2527,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 122
- }
-},
-{
- "pk": 2528,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 122
- }
-},
-{
- "pk": 2529,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 673,
- "task": 1104
- }
-},
-{
- "pk": 2530,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 617
- }
-},
-{
- "pk": 2531,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 617
- }
-},
-{
- "pk": 2532,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 617
- }
-},
-{
- "pk": 2533,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 222,
- "task": 617
- }
-},
-{
- "pk": 2534,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 617
- }
-},
-{
- "pk": 2535,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 19,
- "task": 617
- }
-},
-{
- "pk": 2536,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 617
- }
-},
-{
- "pk": 2537,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 208,
- "task": 617
- }
-},
-{
- "pk": 2538,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1297,
- "task": 1190
- }
-},
-{
- "pk": 2539,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 1190
- }
-},
-{
- "pk": 2540,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 3,
- "task": 221
- }
-},
-{
- "pk": 2541,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1298,
- "task": 846
- }
-},
-{
- "pk": 2542,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1137,
- "task": 163
- }
-},
-{
- "pk": 2543,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 163
- }
-},
-{
- "pk": 2544,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 163
- }
-},
-{
- "pk": 2545,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 163
- }
-},
-{
- "pk": 2546,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 161,
- "task": 163
- }
-},
-{
- "pk": 2547,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1144
- }
-},
-{
- "pk": 2548,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1299,
- "task": 1144
- }
-},
-{
- "pk": 2549,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1301,
- "task": 1300
- }
-},
-{
- "pk": 2550,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1303,
- "task": 1302
- }
-},
-{
- "pk": 2551,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 644,
- "task": 510
- }
-},
-{
- "pk": 2552,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 942,
- "task": 1304
- }
-},
-{
- "pk": 2553,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 163,
- "task": 1305
- }
-},
-{
- "pk": 2554,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 161,
- "task": 1305
- }
-},
-{
- "pk": 2555,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1306,
- "task": 207
- }
-},
-{
- "pk": 2556,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1308,
- "task": 1307
- }
-},
-{
- "pk": 2557,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1310,
- "task": 1309
- }
-},
-{
- "pk": 2558,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1225
- }
-},
-{
- "pk": 2559,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1311,
- "task": 1225
- }
-},
-{
- "pk": 2560,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1225
- }
-},
-{
- "pk": 2561,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1225
- }
-},
-{
- "pk": 2562,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1225
- }
-},
-{
- "pk": 2563,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1225
- }
-},
-{
- "pk": 2564,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1096,
- "task": 1225
- }
-},
-{
- "pk": 2565,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1225
- }
-},
-{
- "pk": 2566,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1225
- }
-},
-{
- "pk": 2567,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1225
- }
-},
-{
- "pk": 2568,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1225
- }
-},
-{
- "pk": 2569,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 1225
- }
-},
-{
- "pk": 2570,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 129,
- "task": 1225
- }
-},
-{
- "pk": 2571,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 904,
- "task": 1225
- }
-},
-{
- "pk": 2572,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1225
- }
-},
-{
- "pk": 2573,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1312,
- "task": 1032
- }
-},
-{
- "pk": 2574,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1294
- }
-},
-{
- "pk": 2575,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 792,
- "task": 1294
- }
-},
-{
- "pk": 2576,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1313,
- "task": 646
- }
-},
-{
- "pk": 2577,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 527,
- "task": 1314
- }
-},
-{
- "pk": 2578,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 965,
- "task": 1315
- }
-},
-{
- "pk": 2579,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1315
- }
-},
-{
- "pk": 2580,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1315
- }
-},
-{
- "pk": 2581,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1315
- }
-},
-{
- "pk": 2582,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1315
- }
-},
-{
- "pk": 2583,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1316
- }
-},
-{
- "pk": 2584,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 805,
- "task": 1316
- }
-},
-{
- "pk": 2585,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1316
- }
-},
-{
- "pk": 2586,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1316
- }
-},
-{
- "pk": 2587,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1316
- }
-},
-{
- "pk": 2588,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1316
- }
-},
-{
- "pk": 2589,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1316
- }
-},
-{
- "pk": 2590,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1316
- }
-},
-{
- "pk": 2591,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1316
- }
-},
-{
- "pk": 2592,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1316
- }
-},
-{
- "pk": 2593,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 1316
- }
-},
-{
- "pk": 2594,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1316
- }
-},
-{
- "pk": 2595,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1318,
- "task": 1317
- }
-},
-{
- "pk": 2596,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1320,
- "task": 1319
- }
-},
-{
- "pk": 2597,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 78,
- "task": 486
- }
-},
-{
- "pk": 2598,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 108,
- "task": 486
- }
-},
-{
- "pk": 2599,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 748,
- "task": 1321
- }
-},
-{
- "pk": 2600,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1322
- }
-},
-{
- "pk": 2601,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1322
- }
-},
-{
- "pk": 2602,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1322
- }
-},
-{
- "pk": 2603,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1322
- }
-},
-{
- "pk": 2604,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1322
- }
-},
-{
- "pk": 2605,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1322
- }
-},
-{
- "pk": 2606,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1322
- }
-},
-{
- "pk": 2607,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 461,
- "task": 1322
- }
-},
-{
- "pk": 2608,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1322
- }
-},
-{
- "pk": 2609,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1322
- }
-},
-{
- "pk": 2610,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 1322
- }
-},
-{
- "pk": 2611,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1322
- }
-},
-{
- "pk": 2612,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1168
- }
-},
-{
- "pk": 2613,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 920,
- "task": 1168
- }
-},
-{
- "pk": 2614,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1323,
- "task": 327
- }
-},
-{
- "pk": 2615,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 327
- }
-},
-{
- "pk": 2616,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1325,
- "task": 1324
- }
-},
-{
- "pk": 2617,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 139,
- "task": 257
- }
-},
-{
- "pk": 2618,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 140,
- "task": 257
- }
-},
-{
- "pk": 2619,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1316,
- "task": 362
- }
-},
-{
- "pk": 2620,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 450
- }
-},
-{
- "pk": 2621,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1326,
- "task": 450
- }
-},
-{
- "pk": 2622,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 106,
- "task": 1327
- }
-},
-{
- "pk": 2623,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 107,
- "task": 1327
- }
-},
-{
- "pk": 2624,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 414,
- "task": 690
- }
-},
-{
- "pk": 2625,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 690
- }
-},
-{
- "pk": 2626,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 690
- }
-},
-{
- "pk": 2627,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 690
- }
-},
-{
- "pk": 2628,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 690
- }
-},
-{
- "pk": 2629,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 690
- }
-},
-{
- "pk": 2630,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 690
- }
-},
-{
- "pk": 2631,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 690
- }
-},
-{
- "pk": 2632,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 690
- }
-},
-{
- "pk": 2633,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 690
- }
-},
-{
- "pk": 2634,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1328,
- "task": 426
- }
-},
-{
- "pk": 2635,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 426
- }
-},
-{
- "pk": 2636,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 390,
- "task": 967
- }
-},
-{
- "pk": 2637,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 219,
- "task": 686
- }
-},
-{
- "pk": 2638,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1329,
- "task": 288
- }
-},
-{
- "pk": 2639,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 464,
- "task": 212
- }
-},
-{
- "pk": 2640,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1330
- }
-},
-{
- "pk": 2641,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1330
- }
-},
-{
- "pk": 2642,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1330
- }
-},
-{
- "pk": 2643,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1331,
- "task": 1330
- }
-},
-{
- "pk": 2644,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 1330
- }
-},
-{
- "pk": 2645,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1330
- }
-},
-{
- "pk": 2646,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1199
- }
-},
-{
- "pk": 2647,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1332,
- "task": 1199
- }
-},
-{
- "pk": 2648,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1199
- }
-},
-{
- "pk": 2649,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1199
- }
-},
-{
- "pk": 2650,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1333,
- "task": 1199
- }
-},
-{
- "pk": 2651,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1199
- }
-},
-{
- "pk": 2652,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 986,
- "task": 1199
- }
-},
-{
- "pk": 2653,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 1199
- }
-},
-{
- "pk": 2654,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1199
- }
-},
-{
- "pk": 2655,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 802,
- "task": 1199
- }
-},
-{
- "pk": 2656,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1199
- }
-},
-{
- "pk": 2657,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1199
- }
-},
-{
- "pk": 2658,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 152,
- "task": 1199
- }
-},
-{
- "pk": 2659,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1199
- }
-},
-{
- "pk": 2660,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 292,
- "task": 143
- }
-},
-{
- "pk": 2661,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1334
- }
-},
-{
- "pk": 2662,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1335,
- "task": 1334
- }
-},
-{
- "pk": 2663,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1336,
- "task": 226
- }
-},
-{
- "pk": 2664,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1338,
- "task": 1337
- }
-},
-{
- "pk": 2665,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 370
- }
-},
-{
- "pk": 2666,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 206,
- "task": 370
- }
-},
-{
- "pk": 2667,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1339
- }
-},
-{
- "pk": 2668,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1340,
- "task": 1339
- }
-},
-{
- "pk": 2669,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 81,
- "task": 495
- }
-},
-{
- "pk": 2670,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 80,
- "task": 495
- }
-},
-{
- "pk": 2671,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 447
- }
-},
-{
- "pk": 2672,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 279,
- "task": 447
- }
-},
-{
- "pk": 2673,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1341,
- "task": 906
- }
-},
-{
- "pk": 2674,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1008
- }
-},
-{
- "pk": 2675,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1008
- }
-},
-{
- "pk": 2676,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1008
- }
-},
-{
- "pk": 2677,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1008
- }
-},
-{
- "pk": 2678,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1008
- }
-},
-{
- "pk": 2679,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1008
- }
-},
-{
- "pk": 2680,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1008
- }
-},
-{
- "pk": 2681,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 82,
- "task": 1008
- }
-},
-{
- "pk": 2682,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 533,
- "task": 1008
- }
-},
-{
- "pk": 2683,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 741,
- "task": 1342
- }
-},
-{
- "pk": 2684,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1024,
- "task": 839
- }
-},
-{
- "pk": 2685,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1060,
- "task": 1215
- }
-},
-{
- "pk": 2686,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1343,
- "task": 1215
- }
-},
-{
- "pk": 2687,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 886,
- "task": 1193
- }
-},
-{
- "pk": 2688,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 964,
- "task": 1193
- }
-},
-{
- "pk": 2689,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 1344
- }
-},
-{
- "pk": 2690,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1344
- }
-},
-{
- "pk": 2691,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1344
- }
-},
-{
- "pk": 2692,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1320,
- "task": 1344
- }
-},
-{
- "pk": 2693,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 935,
- "task": 1235
- }
-},
-{
- "pk": 2694,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1345,
- "task": 1235
- }
-},
-{
- "pk": 2695,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 943,
- "task": 761
- }
-},
-{
- "pk": 2696,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1347,
- "task": 1346
- }
-},
-{
- "pk": 2697,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 719
- }
-},
-{
- "pk": 2698,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 719
- }
-},
-{
- "pk": 2699,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 719
- }
-},
-{
- "pk": 2700,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 719
- }
-},
-{
- "pk": 2701,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 719
- }
-},
-{
- "pk": 2702,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 719
- }
-},
-{
- "pk": 2703,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 719
- }
-},
-{
- "pk": 2704,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 34,
- "task": 719
- }
-},
-{
- "pk": 2705,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 719
- }
-},
-{
- "pk": 2706,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 719
- }
-},
-{
- "pk": 2707,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1348,
- "task": 579
- }
-},
-{
- "pk": 2708,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 261
- }
-},
-{
- "pk": 2709,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 261
- }
-},
-{
- "pk": 2710,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 261
- }
-},
-{
- "pk": 2711,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1053,
- "task": 261
- }
-},
-{
- "pk": 2712,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 261
- }
-},
-{
- "pk": 2713,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 261
- }
-},
-{
- "pk": 2714,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 261
- }
-},
-{
- "pk": 2715,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 261
- }
-},
-{
- "pk": 2716,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1350,
- "task": 1349
- }
-},
-{
- "pk": 2717,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1029
- }
-},
-{
- "pk": 2718,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 1029
- }
-},
-{
- "pk": 2719,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1029
- }
-},
-{
- "pk": 2720,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1029
- }
-},
-{
- "pk": 2721,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 803,
- "task": 1029
- }
-},
-{
- "pk": 2722,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1352,
- "task": 1351
- }
-},
-{
- "pk": 2723,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 316
- }
-},
-{
- "pk": 2724,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 316
- }
-},
-{
- "pk": 2725,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 316
- }
-},
-{
- "pk": 2726,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 316
- }
-},
-{
- "pk": 2727,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 316
- }
-},
-{
- "pk": 2728,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 316
- }
-},
-{
- "pk": 2729,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 316
- }
-},
-{
- "pk": 2730,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 316
- }
-},
-{
- "pk": 2731,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 603,
- "task": 316
- }
-},
-{
- "pk": 2732,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1353,
- "task": 1260
- }
-},
-{
- "pk": 2733,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1354,
- "task": 1260
- }
-},
-{
- "pk": 2734,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 170,
- "task": 172
- }
-},
-{
- "pk": 2735,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 401,
- "task": 172
- }
-},
-{
- "pk": 2736,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 172
- }
-},
-{
- "pk": 2737,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 172
- }
-},
-{
- "pk": 2738,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1356,
- "task": 1355
- }
-},
-{
- "pk": 2739,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1331
- }
-},
-{
- "pk": 2740,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1141,
- "task": 1331
- }
-},
-{
- "pk": 2741,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 418
- }
-},
-{
- "pk": 2742,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1357,
- "task": 418
- }
-},
-{
- "pk": 2743,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1358,
- "task": 849
- }
-},
-{
- "pk": 2744,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 408,
- "task": 848
- }
-},
-{
- "pk": 2745,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1105,
- "task": 1197
- }
-},
-{
- "pk": 2746,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1359,
- "task": 1197
- }
-},
-{
- "pk": 2747,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 243,
- "task": 174
- }
-},
-{
- "pk": 2748,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 522,
- "task": 972
- }
-},
-{
- "pk": 2749,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1361,
- "task": 1360
- }
-},
-{
- "pk": 2750,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1362
- }
-},
-{
- "pk": 2751,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 997,
- "task": 1362
- }
-},
-{
- "pk": 2752,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 779
- }
-},
-{
- "pk": 2753,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 779
- }
-},
-{
- "pk": 2754,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 779
- }
-},
-{
- "pk": 2755,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 779
- }
-},
-{
- "pk": 2756,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1121,
- "task": 15
- }
-},
-{
- "pk": 2757,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 15
- }
-},
-{
- "pk": 2758,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 15
- }
-},
-{
- "pk": 2759,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 15
- }
-},
-{
- "pk": 2760,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 15
- }
-},
-{
- "pk": 2761,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 15
- }
-},
-{
- "pk": 2762,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1135,
- "task": 689
- }
-},
-{
- "pk": 2763,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 546,
- "task": 1363
- }
-},
-{
- "pk": 2764,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1137,
- "task": 161
- }
-},
-{
- "pk": 2765,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1364,
- "task": 1099
- }
-},
-{
- "pk": 2766,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 883
- }
-},
-{
- "pk": 2767,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1365,
- "task": 883
- }
-},
-{
- "pk": 2768,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1367,
- "task": 1366
- }
-},
-{
- "pk": 2769,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 197,
- "task": 253
- }
-},
-{
- "pk": 2770,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 253
- }
-},
-{
- "pk": 2771,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1368,
- "task": 804
- }
-},
-{
- "pk": 2772,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 316,
- "task": 159
- }
-},
-{
- "pk": 2773,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1369,
- "task": 213
- }
-},
-{
- "pk": 2774,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1371,
- "task": 1370
- }
-},
-{
- "pk": 2775,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 6,
- "task": 1370
- }
-},
-{
- "pk": 2776,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 822
- }
-},
-{
- "pk": 2777,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1372,
- "task": 822
- }
-},
-{
- "pk": 2778,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1374,
- "task": 1373
- }
-},
-{
- "pk": 2779,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1143,
- "task": 1122
- }
-},
-{
- "pk": 2780,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 857
- }
-},
-{
- "pk": 2781,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1355,
- "task": 885
- }
-},
-{
- "pk": 2782,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 885
- }
-},
-{
- "pk": 2783,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 675,
- "task": 885
- }
-},
-{
- "pk": 2784,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 885
- }
-},
-{
- "pk": 2785,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1375,
- "task": 885
- }
-},
-{
- "pk": 2786,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1376,
- "task": 885
- }
-},
-{
- "pk": 2787,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 885
- }
-},
-{
- "pk": 2788,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1377,
- "task": 885
- }
-},
-{
- "pk": 2789,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 885
- }
-},
-{
- "pk": 2790,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 467,
- "task": 1378
- }
-},
-{
- "pk": 2791,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 373,
- "task": 523
- }
-},
-{
- "pk": 2792,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1380,
- "task": 1379
- }
-},
-{
- "pk": 2793,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 724,
- "task": 1381
- }
-},
-{
- "pk": 2794,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 866
- }
-},
-{
- "pk": 2795,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 866
- }
-},
-{
- "pk": 2796,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 866
- }
-},
-{
- "pk": 2797,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 866
- }
-},
-{
- "pk": 2798,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 866
- }
-},
-{
- "pk": 2799,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 866
- }
-},
-{
- "pk": 2800,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 866
- }
-},
-{
- "pk": 2801,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 866
- }
-},
-{
- "pk": 2802,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 866
- }
-},
-{
- "pk": 2803,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 866
- }
-},
-{
- "pk": 2804,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 911,
- "task": 866
- }
-},
-{
- "pk": 2805,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 866
- }
-},
-{
- "pk": 2806,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 753,
- "task": 866
- }
-},
-{
- "pk": 2807,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1148
- }
-},
-{
- "pk": 2808,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1148
- }
-},
-{
- "pk": 2809,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1148
- }
-},
-{
- "pk": 2810,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1148
- }
-},
-{
- "pk": 2811,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 658,
- "task": 1148
- }
-},
-{
- "pk": 2812,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1382,
- "task": 158
- }
-},
-{
- "pk": 2813,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 332,
- "task": 869
- }
-},
-{
- "pk": 2814,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1384,
- "task": 1383
- }
-},
-{
- "pk": 2815,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1386,
- "task": 1385
- }
-},
-{
- "pk": 2816,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1133,
- "task": 90
- }
-},
-{
- "pk": 2817,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 109,
- "task": 402
- }
-},
-{
- "pk": 2818,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 110,
- "task": 402
- }
-},
-{
- "pk": 2819,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1130
- }
-},
-{
- "pk": 2820,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1387,
- "task": 1130
- }
-},
-{
- "pk": 2821,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1388
- }
-},
-{
- "pk": 2822,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1388
- }
-},
-{
- "pk": 2823,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1103,
- "task": 1388
- }
-},
-{
- "pk": 2824,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1388
- }
-},
-{
- "pk": 2825,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 925,
- "task": 1388
- }
-},
-{
- "pk": 2826,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 592,
- "task": 1388
- }
-},
-{
- "pk": 2827,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1389,
- "task": 545
- }
-},
-{
- "pk": 2828,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 992,
- "task": 1258
- }
-},
-{
- "pk": 2829,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1378,
- "task": 1258
- }
-},
-{
- "pk": 2830,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1347,
- "task": 1354
- }
-},
-{
- "pk": 2831,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 142
- }
-},
-{
- "pk": 2832,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 141,
- "task": 142
- }
-},
-{
- "pk": 2833,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 142
- }
-},
-{
- "pk": 2834,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 949,
- "task": 142
- }
-},
-{
- "pk": 2835,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 953
- }
-},
-{
- "pk": 2836,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 953
- }
-},
-{
- "pk": 2837,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 953
- }
-},
-{
- "pk": 2838,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1339,
- "task": 953
- }
-},
-{
- "pk": 2839,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 953
- }
-},
-{
- "pk": 2840,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 953
- }
-},
-{
- "pk": 2841,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1390,
- "task": 9
- }
-},
-{
- "pk": 2842,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 738,
- "task": 331
- }
-},
-{
- "pk": 2843,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 331
- }
-},
-{
- "pk": 2844,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 994
- }
-},
-{
- "pk": 2845,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 705,
- "task": 994
- }
-},
-{
- "pk": 2846,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1391,
- "task": 23
- }
-},
-{
- "pk": 2847,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 770,
- "task": 49
- }
-},
-{
- "pk": 2848,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 224,
- "task": 225
- }
-},
-{
- "pk": 2849,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 874,
- "task": 449
- }
-},
-{
- "pk": 2850,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 633,
- "task": 1230
- }
-},
-{
- "pk": 2851,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1009,
- "task": 1230
- }
-},
-{
- "pk": 2852,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 19,
- "task": 1230
- }
-},
-{
- "pk": 2853,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 18,
- "task": 1230
- }
-},
-{
- "pk": 2854,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 273,
- "task": 1230
- }
-},
-{
- "pk": 2855,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1045,
- "task": 1223
- }
-},
-{
- "pk": 2856,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1223
- }
-},
-{
- "pk": 2857,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 60,
- "task": 1183
- }
-},
-{
- "pk": 2858,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 61,
- "task": 1183
- }
-},
-{
- "pk": 2859,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 871,
- "task": 102
- }
-},
-{
- "pk": 2860,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1392,
- "task": 1250
- }
-},
-{
- "pk": 2861,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1250
- }
-},
-{
- "pk": 2862,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1393,
- "task": 1250
- }
-},
-{
- "pk": 2863,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 1250
- }
-},
-{
- "pk": 2864,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1250
- }
-},
-{
- "pk": 2865,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 15,
- "task": 1250
- }
-},
-{
- "pk": 2866,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1250
- }
-},
-{
- "pk": 2867,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1250
- }
-},
-{
- "pk": 2868,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1250
- }
-},
-{
- "pk": 2869,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1250
- }
-},
-{
- "pk": 2870,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 14,
- "task": 1250
- }
-},
-{
- "pk": 2871,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1250
- }
-},
-{
- "pk": 2872,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1250
- }
-},
-{
- "pk": 2873,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1250
- }
-},
-{
- "pk": 2874,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1250
- }
-},
-{
- "pk": 2875,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1250
- }
-},
-{
- "pk": 2876,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 858,
- "task": 892
- }
-},
-{
- "pk": 2877,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 901,
- "task": 1233
- }
-},
-{
- "pk": 2878,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1023,
- "task": 1233
- }
-},
-{
- "pk": 2879,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1394,
- "task": 1233
- }
-},
-{
- "pk": 2880,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 127,
- "task": 1233
- }
-},
-{
- "pk": 2881,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 800,
- "task": 1233
- }
-},
-{
- "pk": 2882,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 228
- }
-},
-{
- "pk": 2883,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 284,
- "task": 228
- }
-},
-{
- "pk": 2884,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1024,
- "task": 1395
- }
-},
-{
- "pk": 2885,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1395
- }
-},
-{
- "pk": 2886,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1395
- }
-},
-{
- "pk": 2887,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1395
- }
-},
-{
- "pk": 2888,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1396,
- "task": 1191
- }
-},
-{
- "pk": 2889,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1104,
- "task": 1191
- }
-},
-{
- "pk": 2890,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1245
- }
-},
-{
- "pk": 2891,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 816,
- "task": 1245
- }
-},
-{
- "pk": 2892,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1397,
- "task": 1245
- }
-},
-{
- "pk": 2893,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1245
- }
-},
-{
- "pk": 2894,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1300,
- "task": 1245
- }
-},
-{
- "pk": 2895,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1245
- }
-},
-{
- "pk": 2896,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 174,
- "task": 1245
- }
-},
-{
- "pk": 2897,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1245
- }
-},
-{
- "pk": 2898,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1245
- }
-},
-{
- "pk": 2899,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1245
- }
-},
-{
- "pk": 2900,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1245
- }
-},
-{
- "pk": 2901,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 243,
- "task": 1245
- }
-},
-{
- "pk": 2902,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1245
- }
-},
-{
- "pk": 2903,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1399,
- "task": 1398
- }
-},
-{
- "pk": 2904,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 788
- }
-},
-{
- "pk": 2905,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1036,
- "task": 788
- }
-},
-{
- "pk": 2906,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 645,
- "task": 1400
- }
-},
-{
- "pk": 2907,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1402,
- "task": 1401
- }
-},
-{
- "pk": 2908,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1403,
- "task": 947
- }
-},
-{
- "pk": 2909,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1404
- }
-},
-{
- "pk": 2910,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 594,
- "task": 1404
- }
-},
-{
- "pk": 2911,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1226
- }
-},
-{
- "pk": 2912,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1226
- }
-},
-{
- "pk": 2913,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1226
- }
-},
-{
- "pk": 2914,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 720,
- "task": 1226
- }
-},
-{
- "pk": 2915,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1226
- }
-},
-{
- "pk": 2916,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1405,
- "task": 1226
- }
-},
-{
- "pk": 2917,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1226
- }
-},
-{
- "pk": 2918,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1226
- }
-},
-{
- "pk": 2919,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1226
- }
-},
-{
- "pk": 2920,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1226
- }
-},
-{
- "pk": 2921,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 176,
- "task": 1226
- }
-},
-{
- "pk": 2922,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1226
- }
-},
-{
- "pk": 2923,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1226
- }
-},
-{
- "pk": 2924,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1226
- }
-},
-{
- "pk": 2925,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1226
- }
-},
-{
- "pk": 2926,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 975,
- "task": 1226
- }
-},
-{
- "pk": 2927,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1401,
- "task": 976
- }
-},
-{
- "pk": 2928,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 976
- }
-},
-{
- "pk": 2929,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 247
- }
-},
-{
- "pk": 2930,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 830,
- "task": 247
- }
-},
-{
- "pk": 2931,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1406,
- "task": 1153
- }
-},
-{
- "pk": 2932,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1174,
- "task": 1407
- }
-},
-{
- "pk": 2933,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1409,
- "task": 1408
- }
-},
-{
- "pk": 2934,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 63,
- "task": 64
- }
-},
-{
- "pk": 2935,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1410,
- "task": 64
- }
-},
-{
- "pk": 2936,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 64
- }
-},
-{
- "pk": 2937,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 64
- }
-},
-{
- "pk": 2938,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 209,
- "task": 210
- }
-},
-{
- "pk": 2939,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1411,
- "task": 210
- }
-},
-{
- "pk": 2940,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 210
- }
-},
-{
- "pk": 2941,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 210
- }
-},
-{
- "pk": 2942,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1280,
- "task": 1222
- }
-},
-{
- "pk": 2943,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1412,
- "task": 1222
- }
-},
-{
- "pk": 2944,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 458
- }
-},
-{
- "pk": 2945,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1295,
- "task": 458
- }
-},
-{
- "pk": 2946,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1147,
- "task": 1413
- }
-},
-{
- "pk": 2947,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1177,
- "task": 1414
- }
-},
-{
- "pk": 2948,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1117,
- "task": 1348
- }
-},
-{
- "pk": 2949,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1110
- }
-},
-{
- "pk": 2950,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 840,
- "task": 1110
- }
-},
-{
- "pk": 2951,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1415,
- "task": 1356
- }
-},
-{
- "pk": 2952,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 450,
- "task": 1034
- }
-},
-{
- "pk": 2953,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1139,
- "task": 1138
- }
-},
-{
- "pk": 2954,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 156,
- "task": 479
- }
-},
-{
- "pk": 2955,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 154,
- "task": 479
- }
-},
-{
- "pk": 2956,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 92,
- "task": 254
- }
-},
-{
- "pk": 2957,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 181,
- "task": 254
- }
-},
-{
- "pk": 2958,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1417,
- "task": 1416
- }
-},
-{
- "pk": 2959,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 296,
- "task": 100
- }
-},
-{
- "pk": 2960,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1410
- }
-},
-{
- "pk": 2961,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1410
- }
-},
-{
- "pk": 2962,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1410
- }
-},
-{
- "pk": 2963,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1410
- }
-},
-{
- "pk": 2964,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1410
- }
-},
-{
- "pk": 2965,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 311,
- "task": 1410
- }
-},
-{
- "pk": 2966,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1410
- }
-},
-{
- "pk": 2967,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1410
- }
-},
-{
- "pk": 2968,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1410
- }
-},
-{
- "pk": 2969,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 180,
- "task": 1410
- }
-},
-{
- "pk": 2970,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 553,
- "task": 1418
- }
-},
-{
- "pk": 2971,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 456,
- "task": 357
- }
-},
-{
- "pk": 2972,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 455,
- "task": 357
- }
-},
-{
- "pk": 2973,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1419,
- "task": 1220
- }
-},
-{
- "pk": 2974,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1220
- }
-},
-{
- "pk": 2975,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 119,
- "task": 1220
- }
-},
-{
- "pk": 2976,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 599,
- "task": 1220
- }
-},
-{
- "pk": 2977,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1220
- }
-},
-{
- "pk": 2978,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 1220
- }
-},
-{
- "pk": 2979,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1220
- }
-},
-{
- "pk": 2980,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1220
- }
-},
-{
- "pk": 2981,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1220
- }
-},
-{
- "pk": 2982,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1220
- }
-},
-{
- "pk": 2983,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1220
- }
-},
-{
- "pk": 2984,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1220
- }
-},
-{
- "pk": 2985,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1220
- }
-},
-{
- "pk": 2986,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1220
- }
-},
-{
- "pk": 2987,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1220
- }
-},
-{
- "pk": 2988,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 233,
- "task": 1220
- }
-},
-{
- "pk": 2989,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1220
- }
-},
-{
- "pk": 2990,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 821,
- "task": 1284
- }
-},
-{
- "pk": 2991,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1284
- }
-},
-{
- "pk": 2992,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 57
- }
-},
-{
- "pk": 2993,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1420,
- "task": 57
- }
-},
-{
- "pk": 2994,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 679
- }
-},
-{
- "pk": 2995,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1421,
- "task": 679
- }
-},
-{
- "pk": 2996,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1362,
- "task": 1422
- }
-},
-{
- "pk": 2997,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1424,
- "task": 1423
- }
-},
-{
- "pk": 2998,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 731
- }
-},
-{
- "pk": 2999,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 881,
- "task": 1180
- }
-},
-{
- "pk": 3000,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1425
- }
-},
-{
- "pk": 3001,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1425
- }
-},
-{
- "pk": 3002,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1425
- }
-},
-{
- "pk": 3003,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 679,
- "task": 1425
- }
-},
-{
- "pk": 3004,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1425
- }
-},
-{
- "pk": 3005,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1425
- }
-},
-{
- "pk": 3006,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1425
- }
-},
-{
- "pk": 3007,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1425
- }
-},
-{
- "pk": 3008,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1425
- }
-},
-{
- "pk": 3009,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1427,
- "task": 1426
- }
-},
-{
- "pk": 3010,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 219
- }
-},
-{
- "pk": 3011,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 219
- }
-},
-{
- "pk": 3012,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 219
- }
-},
-{
- "pk": 3013,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 219
- }
-},
-{
- "pk": 3014,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 219
- }
-},
-{
- "pk": 3015,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 526,
- "task": 219
- }
-},
-{
- "pk": 3016,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 274,
- "task": 1237
- }
-},
-{
- "pk": 3017,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 41,
- "task": 1237
- }
-},
-{
- "pk": 3018,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1093
- }
-},
-{
- "pk": 3019,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1428,
- "task": 1093
- }
-},
-{
- "pk": 3020,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 1093
- }
-},
-{
- "pk": 3021,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1093
- }
-},
-{
- "pk": 3022,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1093
- }
-},
-{
- "pk": 3023,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1429,
- "task": 1102
- }
-},
-{
- "pk": 3024,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 753
- }
-},
-{
- "pk": 3025,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1430,
- "task": 753
- }
-},
-{
- "pk": 3026,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 445,
- "task": 1145
- }
-},
-{
- "pk": 3027,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 865,
- "task": 1431
- }
-},
-{
- "pk": 3028,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 896,
- "task": 1113
- }
-},
-{
- "pk": 3029,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 396,
- "task": 971
- }
-},
-{
- "pk": 3030,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1058,
- "task": 65
- }
-},
-{
- "pk": 3031,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1432,
- "task": 610
- }
-},
-{
- "pk": 3032,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1433,
- "task": 610
- }
-},
-{
- "pk": 3033,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1434,
- "task": 380
- }
-},
-{
- "pk": 3034,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1432,
- "task": 1433
- }
-},
-{
- "pk": 3035,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 183,
- "task": 1435
- }
-},
-{
- "pk": 3036,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 132,
- "task": 1435
- }
-},
-{
- "pk": 3037,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 48,
- "task": 778
- }
-},
-{
- "pk": 3038,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1337,
- "task": 1249
- }
-},
-{
- "pk": 3039,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1324,
- "task": 1249
- }
-},
-{
- "pk": 3040,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1403
- }
-},
-{
- "pk": 3041,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1436,
- "task": 1403
- }
-},
-{
- "pk": 3042,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1377,
- "task": 1241
- }
-},
-{
- "pk": 3043,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1437,
- "task": 1241
- }
-},
-{
- "pk": 3044,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1438,
- "task": 1391
- }
-},
-{
- "pk": 3045,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 213,
- "task": 482
- }
-},
-{
- "pk": 3046,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 214,
- "task": 482
- }
-},
-{
- "pk": 3047,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1439,
- "task": 926
- }
-},
-{
- "pk": 3048,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1366,
- "task": 217
- }
-},
-{
- "pk": 3049,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 401
- }
-},
-{
- "pk": 3050,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 401
- }
-},
-{
- "pk": 3051,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 109,
- "task": 401
- }
-},
-{
- "pk": 3052,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 401
- }
-},
-{
- "pk": 3053,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 401
- }
-},
-{
- "pk": 3054,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 401
- }
-},
-{
- "pk": 3055,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 401
- }
-},
-{
- "pk": 3056,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 401
- }
-},
-{
- "pk": 3057,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 401
- }
-},
-{
- "pk": 3058,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 401
- }
-},
-{
- "pk": 3059,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1440,
- "task": 401
- }
-},
-{
- "pk": 3060,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 401
- }
-},
-{
- "pk": 3061,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1441,
- "task": 922
- }
-},
-{
- "pk": 3062,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1443,
- "task": 1442
- }
-},
-{
- "pk": 3063,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1444,
- "task": 1070
- }
-},
-{
- "pk": 3064,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1445,
- "task": 382
- }
-},
-{
- "pk": 3065,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1414,
- "task": 1179
- }
-},
-{
- "pk": 3066,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 911,
- "task": 1179
- }
-},
-{
- "pk": 3067,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 314,
- "task": 1446
- }
-},
-{
- "pk": 3068,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1292,
- "task": 395
- }
-},
-{
- "pk": 3069,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1447,
- "task": 395
- }
-},
-{
- "pk": 3070,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 196,
- "task": 369
- }
-},
-{
- "pk": 3071,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 198,
- "task": 369
- }
-},
-{
- "pk": 3072,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1126,
- "task": 1065
- }
-},
-{
- "pk": 3073,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1068,
- "task": 771
- }
-},
-{
- "pk": 3074,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 917,
- "task": 1448
- }
-},
-{
- "pk": 3075,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 423
- }
-},
-{
- "pk": 3076,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 423
- }
-},
-{
- "pk": 3077,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 423
- }
-},
-{
- "pk": 3078,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 423
- }
-},
-{
- "pk": 3079,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1239
- }
-},
-{
- "pk": 3080,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1239
- }
-},
-{
- "pk": 3081,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1239
- }
-},
-{
- "pk": 3082,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1239
- }
-},
-{
- "pk": 3083,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1293,
- "task": 1239
- }
-},
-{
- "pk": 3084,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1239
- }
-},
-{
- "pk": 3085,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1239
- }
-},
-{
- "pk": 3086,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1373,
- "task": 1239
- }
-},
-{
- "pk": 3087,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 1239
- }
-},
-{
- "pk": 3088,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 164,
- "task": 1239
- }
-},
-{
- "pk": 3089,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 278,
- "task": 1239
- }
-},
-{
- "pk": 3090,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1239
- }
-},
-{
- "pk": 3091,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1239
- }
-},
-{
- "pk": 3092,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1239
- }
-},
-{
- "pk": 3093,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1239
- }
-},
-{
- "pk": 3094,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1239
- }
-},
-{
- "pk": 3095,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1048,
- "task": 1240
- }
-},
-{
- "pk": 3096,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1240
- }
-},
-{
- "pk": 3097,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 14,
- "task": 498
- }
-},
-{
- "pk": 3098,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 13,
- "task": 498
- }
-},
-{
- "pk": 3099,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1449,
- "task": 1105
- }
-},
-{
- "pk": 3100,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 704,
- "task": 784
- }
-},
-{
- "pk": 3101,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1144,
- "task": 1393
- }
-},
-{
- "pk": 3102,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1229
- }
-},
-{
- "pk": 3103,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1229
- }
-},
-{
- "pk": 3104,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1229
- }
-},
-{
- "pk": 3105,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1450,
- "task": 1229
- }
-},
-{
- "pk": 3106,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1229
- }
-},
-{
- "pk": 3107,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 139,
- "task": 1229
- }
-},
-{
- "pk": 3108,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 601,
- "task": 1229
- }
-},
-{
- "pk": 3109,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1229
- }
-},
-{
- "pk": 3110,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1229
- }
-},
-{
- "pk": 3111,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1229
- }
-},
-{
- "pk": 3112,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 930,
- "task": 1229
- }
-},
-{
- "pk": 3113,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1452,
- "task": 1451
- }
-},
-{
- "pk": 3114,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 834,
- "task": 360
- }
-},
-{
- "pk": 3115,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 54,
- "task": 723
- }
-},
-{
- "pk": 3116,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1454,
- "task": 1453
- }
-},
-{
- "pk": 3117,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 1209
- }
-},
-{
- "pk": 3118,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 696,
- "task": 1209
- }
-},
-{
- "pk": 3119,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 66
- }
-},
-{
- "pk": 3120,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 66
- }
-},
-{
- "pk": 3121,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 65,
- "task": 66
- }
-},
-{
- "pk": 3122,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1058,
- "task": 66
- }
-},
-{
- "pk": 3123,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 614,
- "task": 1208
- }
-},
-{
- "pk": 3124,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1455,
- "task": 1208
- }
-},
-{
- "pk": 3125,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1456
- }
-},
-{
- "pk": 3126,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 987,
- "task": 1456
- }
-},
-{
- "pk": 3127,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1456
- }
-},
-{
- "pk": 3128,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1456
- }
-},
-{
- "pk": 3129,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1456
- }
-},
-{
- "pk": 3130,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1456
- }
-},
-{
- "pk": 3131,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 300,
- "task": 1456
- }
-},
-{
- "pk": 3132,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1456
- }
-},
-{
- "pk": 3133,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1456
- }
-},
-{
- "pk": 3134,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1456
- }
-},
-{
- "pk": 3135,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1456
- }
-},
-{
- "pk": 3136,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 166,
- "task": 260
- }
-},
-{
- "pk": 3137,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 168,
- "task": 260
- }
-},
-{
- "pk": 3138,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1457
- }
-},
-{
- "pk": 3139,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1457
- }
-},
-{
- "pk": 3140,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1457
- }
-},
-{
- "pk": 3141,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1457
- }
-},
-{
- "pk": 3142,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1457
- }
-},
-{
- "pk": 3143,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1457
- }
-},
-{
- "pk": 3144,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 295,
- "task": 1457
- }
-},
-{
- "pk": 3145,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1457
- }
-},
-{
- "pk": 3146,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 334,
- "task": 1457
- }
-},
-{
- "pk": 3147,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1457
- }
-},
-{
- "pk": 3148,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1457
- }
-},
-{
- "pk": 3149,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1070,
- "task": 1210
- }
-},
-{
- "pk": 3150,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1423,
- "task": 1210
- }
-},
-{
- "pk": 3151,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 220,
- "task": 1081
- }
-},
-{
- "pk": 3152,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1458
- }
-},
-{
- "pk": 3153,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1416,
- "task": 1458
- }
-},
-{
- "pk": 3154,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1459
- }
-},
-{
- "pk": 3155,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1077,
- "task": 1459
- }
-},
-{
- "pk": 3156,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1301
- }
-},
-{
- "pk": 3157,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 827,
- "task": 1301
- }
-},
-{
- "pk": 3158,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1020,
- "task": 1460
- }
-},
-{
- "pk": 3159,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1292,
- "task": 1447
- }
-},
-{
- "pk": 3160,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 170,
- "task": 405
- }
-},
-{
- "pk": 3161,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 172,
- "task": 405
- }
-},
-{
- "pk": 3162,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 983,
- "task": 1461
- }
-},
-{
- "pk": 3163,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 224,
- "task": 223
- }
-},
-{
- "pk": 3164,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1462,
- "task": 897
- }
-},
-{
- "pk": 3165,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 897
- }
-},
-{
- "pk": 3166,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 897
- }
-},
-{
- "pk": 3167,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 897
- }
-},
-{
- "pk": 3168,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 897
- }
-},
-{
- "pk": 3169,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1121,
- "task": 1392
- }
-},
-{
- "pk": 3170,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 323,
- "task": 924
- }
-},
-{
- "pk": 3171,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1309,
- "task": 34
- }
-},
-{
- "pk": 3172,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 34
- }
-},
-{
- "pk": 3173,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1463,
- "task": 391
- }
-},
-{
- "pk": 3174,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1464,
- "task": 681
- }
-},
-{
- "pk": 3175,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1424
- }
-},
-{
- "pk": 3176,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1465,
- "task": 1424
- }
-},
-{
- "pk": 3177,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 956,
- "task": 1375
- }
-},
-{
- "pk": 3178,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1375
- }
-},
-{
- "pk": 3179,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 859,
- "task": 1466
- }
-},
-{
- "pk": 3180,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1467,
- "task": 1282
- }
-},
-{
- "pk": 3181,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 207,
- "task": 1214
- }
-},
-{
- "pk": 3182,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1468,
- "task": 1214
- }
-},
-{
- "pk": 3183,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 364
- }
-},
-{
- "pk": 3184,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 133,
- "task": 364
- }
-},
-{
- "pk": 3185,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 648,
- "task": 1469
- }
-},
-{
- "pk": 3186,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 158,
- "task": 1469
- }
-},
-{
- "pk": 3187,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1469
- }
-},
-{
- "pk": 3188,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1469
- }
-},
-{
- "pk": 3189,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1469
- }
-},
-{
- "pk": 3190,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1469
- }
-},
-{
- "pk": 3191,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1469
- }
-},
-{
- "pk": 3192,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1469
- }
-},
-{
- "pk": 3193,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1469
- }
-},
-{
- "pk": 3194,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1469
- }
-},
-{
- "pk": 3195,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 724
- }
-},
-{
- "pk": 3196,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 724
- }
-},
-{
- "pk": 3197,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 724
- }
-},
-{
- "pk": 3198,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1399
- }
-},
-{
- "pk": 3199,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1399
- }
-},
-{
- "pk": 3200,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1399
- }
-},
-{
- "pk": 3201,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1399
- }
-},
-{
- "pk": 3202,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1399
- }
-},
-{
- "pk": 3203,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1399
- }
-},
-{
- "pk": 3204,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1399
- }
-},
-{
- "pk": 3205,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1399
- }
-},
-{
- "pk": 3206,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1399
- }
-},
-{
- "pk": 3207,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 1399
- }
-},
-{
- "pk": 3208,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1470,
- "task": 1399
- }
-},
-{
- "pk": 3209,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1399
- }
-},
-{
- "pk": 3210,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1088
- }
-},
-{
- "pk": 3211,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1088
- }
-},
-{
- "pk": 3212,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1088
- }
-},
-{
- "pk": 3213,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1301,
- "task": 1088
- }
-},
-{
- "pk": 3214,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 550
- }
-},
-{
- "pk": 3215,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1471,
- "task": 550
- }
-},
-{
- "pk": 3216,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1473,
- "task": 1472
- }
-},
-{
- "pk": 3217,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1474,
- "task": 1472
- }
-},
-{
- "pk": 3218,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1464,
- "task": 1475
- }
-},
-{
- "pk": 3219,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1475
- }
-},
-{
- "pk": 3220,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 873,
- "task": 1476
- }
-},
-{
- "pk": 3221,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1478,
- "task": 1477
- }
-},
-{
- "pk": 3222,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 63,
- "task": 481
- }
-},
-{
- "pk": 3223,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 64,
- "task": 481
- }
-},
-{
- "pk": 3224,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1479
- }
-},
-{
- "pk": 3225,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 662,
- "task": 1479
- }
-},
-{
- "pk": 3226,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1479
- }
-},
-{
- "pk": 3227,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 930,
- "task": 1479
- }
-},
-{
- "pk": 3228,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1479
- }
-},
-{
- "pk": 3229,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1479
- }
-},
-{
- "pk": 3230,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1479
- }
-},
-{
- "pk": 3231,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1288,
- "task": 1273
- }
-},
-{
- "pk": 3232,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1273
- }
-},
-{
- "pk": 3233,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 732,
- "task": 569
- }
-},
-{
- "pk": 3234,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 86,
- "task": 893
- }
-},
-{
- "pk": 3235,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 87,
- "task": 893
- }
-},
-{
- "pk": 3236,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 682
- }
-},
-{
- "pk": 3237,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 682
- }
-},
-{
- "pk": 3238,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 682
- }
-},
-{
- "pk": 3239,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 682
- }
-},
-{
- "pk": 3240,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 682
- }
-},
-{
- "pk": 3241,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 44,
- "task": 682
- }
-},
-{
- "pk": 3242,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 682
- }
-},
-{
- "pk": 3243,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 682
- }
-},
-{
- "pk": 3244,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 695,
- "task": 1480
- }
-},
-{
- "pk": 3245,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 694,
- "task": 1480
- }
-},
-{
- "pk": 3246,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 88,
- "task": 494
- }
-},
-{
- "pk": 3247,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 89,
- "task": 494
- }
-},
-{
- "pk": 3248,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1482,
- "task": 1481
- }
-},
-{
- "pk": 3249,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1196
- }
-},
-{
- "pk": 3250,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1196
- }
-},
-{
- "pk": 3251,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1196
- }
-},
-{
- "pk": 3252,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 794,
- "task": 1196
- }
-},
-{
- "pk": 3253,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1196
- }
-},
-{
- "pk": 3254,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 446,
- "task": 1196
- }
-},
-{
- "pk": 3255,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1009,
- "task": 1196
- }
-},
-{
- "pk": 3256,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1010,
- "task": 1196
- }
-},
-{
- "pk": 3257,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 82,
- "task": 1196
- }
-},
-{
- "pk": 3258,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1011,
- "task": 1196
- }
-},
-{
- "pk": 3259,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1196
- }
-},
-{
- "pk": 3260,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 617,
- "task": 1196
- }
-},
-{
- "pk": 3261,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1196
- }
-},
-{
- "pk": 3262,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 406,
- "task": 1483
- }
-},
-{
- "pk": 3263,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 639,
- "task": 588
- }
-},
-{
- "pk": 3264,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1382
- }
-},
-{
- "pk": 3265,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1382
- }
-},
-{
- "pk": 3266,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1382
- }
-},
-{
- "pk": 3267,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1382
- }
-},
-{
- "pk": 3268,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1382
- }
-},
-{
- "pk": 3269,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1382
- }
-},
-{
- "pk": 3270,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1382
- }
-},
-{
- "pk": 3271,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1382
- }
-},
-{
- "pk": 3272,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1484,
- "task": 1382
- }
-},
-{
- "pk": 3273,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1485,
- "task": 775
- }
-},
-{
- "pk": 3274,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 775
- }
-},
-{
- "pk": 3275,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1152,
- "task": 603
- }
-},
-{
- "pk": 3276,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 603
- }
-},
-{
- "pk": 3277,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1486,
- "task": 554
- }
-},
-{
- "pk": 3278,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 337,
- "task": 1311
- }
-},
-{
- "pk": 3279,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1487
- }
-},
-{
- "pk": 3280,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1487
- }
-},
-{
- "pk": 3281,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1487
- }
-},
-{
- "pk": 3282,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 353,
- "task": 1487
- }
-},
-{
- "pk": 3283,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1487
- }
-},
-{
- "pk": 3284,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1488,
- "task": 1471
- }
-},
-{
- "pk": 3285,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1150
- }
-},
-{
- "pk": 3286,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 567,
- "task": 1150
- }
-},
-{
- "pk": 3287,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 458,
- "task": 1150
- }
-},
-{
- "pk": 3288,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1150
- }
-},
-{
- "pk": 3289,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1150
- }
-},
-{
- "pk": 3290,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1489,
- "task": 700
- }
-},
-{
- "pk": 3291,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 196,
- "task": 206
- }
-},
-{
- "pk": 3292,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 206
- }
-},
-{
- "pk": 3293,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1425,
- "task": 206
- }
-},
-{
- "pk": 3294,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 206
- }
-},
-{
- "pk": 3295,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 206
- }
-},
-{
- "pk": 3296,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 295
- }
-},
-{
- "pk": 3297,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1286,
- "task": 295
- }
-},
-{
- "pk": 3298,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 119,
- "task": 493
- }
-},
-{
- "pk": 3299,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 120,
- "task": 493
- }
-},
-{
- "pk": 3300,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1344,
- "task": 1367
- }
-},
-{
- "pk": 3301,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1111,
- "task": 1490
- }
-},
-{
- "pk": 3302,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 427,
- "task": 1489
- }
-},
-{
- "pk": 3303,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 428,
- "task": 1489
- }
-},
-{
- "pk": 3304,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1489
- }
-},
-{
- "pk": 3305,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1492,
- "task": 1491
- }
-},
-{
- "pk": 3306,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 858
- }
-},
-{
- "pk": 3307,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 419,
- "task": 858
- }
-},
-{
- "pk": 3308,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 136,
- "task": 138
- }
-},
-{
- "pk": 3309,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 757,
- "task": 138
- }
-},
-{
- "pk": 3310,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 138
- }
-},
-{
- "pk": 3311,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 138
- }
-},
-{
- "pk": 3312,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1130,
- "task": 1289
- }
-},
-{
- "pk": 3313,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1494,
- "task": 1493
- }
-},
-{
- "pk": 3314,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1495,
- "task": 322
- }
-},
-{
- "pk": 3315,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1496,
- "task": 322
- }
-},
-{
- "pk": 3316,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 322
- }
-},
-{
- "pk": 3317,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1285,
- "task": 1497
- }
-},
-{
- "pk": 3318,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 194,
- "task": 483
- }
-},
-{
- "pk": 3319,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 193,
- "task": 483
- }
-},
-{
- "pk": 3320,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 42
- }
-},
-{
- "pk": 3321,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1094,
- "task": 42
- }
-},
-{
- "pk": 3322,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1406
- }
-},
-{
- "pk": 3323,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1061,
- "task": 1406
- }
-},
-{
- "pk": 3324,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1103,
- "task": 1406
- }
-},
-{
- "pk": 3325,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1406
- }
-},
-{
- "pk": 3326,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 592,
- "task": 1406
- }
-},
-{
- "pk": 3327,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1406
- }
-},
-{
- "pk": 3328,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1406
- }
-},
-{
- "pk": 3329,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1498,
- "task": 982
- }
-},
-{
- "pk": 3330,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 275,
- "task": 982
- }
-},
-{
- "pk": 3331,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 909
- }
-},
-{
- "pk": 3332,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 909
- }
-},
-{
- "pk": 3333,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1273,
- "task": 909
- }
-},
-{
- "pk": 3334,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 909
- }
-},
-{
- "pk": 3335,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 909
- }
-},
-{
- "pk": 3336,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 200,
- "task": 488
- }
-},
-{
- "pk": 3337,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 202,
- "task": 488
- }
-},
-{
- "pk": 3338,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1499,
- "task": 1231
- }
-},
-{
- "pk": 3339,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 492,
- "task": 1231
- }
-},
-{
- "pk": 3340,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 146,
- "task": 1231
- }
-},
-{
- "pk": 3341,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 656,
- "task": 1231
- }
-},
-{
- "pk": 3342,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 1231
- }
-},
-{
- "pk": 3343,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 479,
- "task": 1231
- }
-},
-{
- "pk": 3344,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1271,
- "task": 1231
- }
-},
-{
- "pk": 3345,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 708,
- "task": 1231
- }
-},
-{
- "pk": 3346,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 480,
- "task": 1231
- }
-},
-{
- "pk": 3347,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 1231
- }
-},
-{
- "pk": 3348,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 1231
- }
-},
-{
- "pk": 3349,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1231
- }
-},
-{
- "pk": 3350,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 1231
- }
-},
-{
- "pk": 3351,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1435,
- "task": 1231
- }
-},
-{
- "pk": 3352,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 302,
- "task": 1231
- }
-},
-{
- "pk": 3353,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 1231
- }
-},
-{
- "pk": 3354,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 1231
- }
-},
-{
- "pk": 3355,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1231
- }
-},
-{
- "pk": 3356,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1007,
- "task": 1231
- }
-},
-{
- "pk": 3357,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1231
- }
-},
-{
- "pk": 3358,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 482,
- "task": 1231
- }
-},
-{
- "pk": 3359,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 483,
- "task": 1231
- }
-},
-{
- "pk": 3360,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1327,
- "task": 1231
- }
-},
-{
- "pk": 3361,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 1231
- }
-},
-{
- "pk": 3362,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 1231
- }
-},
-{
- "pk": 3363,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 1231
- }
-},
-{
- "pk": 3364,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1305,
- "task": 1231
- }
-},
-{
- "pk": 3365,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1231
- }
-},
-{
- "pk": 3366,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 631,
- "task": 1231
- }
-},
-{
- "pk": 3367,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1231
- }
-},
-{
- "pk": 3368,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 490,
- "task": 1231
- }
-},
-{
- "pk": 3369,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 1231
- }
-},
-{
- "pk": 3370,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1231
- }
-},
-{
- "pk": 3371,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 1231
- }
-},
-{
- "pk": 3372,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 260,
- "task": 1231
- }
-},
-{
- "pk": 3373,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 1231
- }
-},
-{
- "pk": 3374,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 433,
- "task": 1231
- }
-},
-{
- "pk": 3375,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 1231
- }
-},
-{
- "pk": 3376,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1009,
- "task": 1231
- }
-},
-{
- "pk": 3377,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1231
- }
-},
-{
- "pk": 3378,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 1231
- }
-},
-{
- "pk": 3379,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 1231
- }
-},
-{
- "pk": 3380,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 815,
- "task": 1231
- }
-},
-{
- "pk": 3381,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 1231
- }
-},
-{
- "pk": 3382,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1231
- }
-},
-{
- "pk": 3383,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 367,
- "task": 1231
- }
-},
-{
- "pk": 3384,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 670,
- "task": 1231
- }
-},
-{
- "pk": 3385,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 505,
- "task": 1231
- }
-},
-{
- "pk": 3386,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 1231
- }
-},
-{
- "pk": 3387,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 1231
- }
-},
-{
- "pk": 3388,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 1231
- }
-},
-{
- "pk": 3389,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 816,
- "task": 1231
- }
-},
-{
- "pk": 3390,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 495,
- "task": 1231
- }
-},
-{
- "pk": 3391,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1394,
- "task": 1231
- }
-},
-{
- "pk": 3392,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1010,
- "task": 1231
- }
-},
-{
- "pk": 3393,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1231
- }
-},
-{
- "pk": 3394,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1011,
- "task": 1231
- }
-},
-{
- "pk": 3395,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 882,
- "task": 1231
- }
-},
-{
- "pk": 3396,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 1231
- }
-},
-{
- "pk": 3397,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1231
- }
-},
-{
- "pk": 3398,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1231
- }
-},
-{
- "pk": 3399,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 559,
- "task": 1231
- }
-},
-{
- "pk": 3400,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1231
- }
-},
-{
- "pk": 3401,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1231
- }
-},
-{
- "pk": 3402,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 488,
- "task": 1231
- }
-},
-{
- "pk": 3403,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1231
- }
-},
-{
- "pk": 3404,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 1231
- }
-},
-{
- "pk": 3405,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 1231
- }
-},
-{
- "pk": 3406,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 500,
- "task": 1231
- }
-},
-{
- "pk": 3407,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1231
- }
-},
-{
- "pk": 3408,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 893,
- "task": 1231
- }
-},
-{
- "pk": 3409,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 486,
- "task": 1231
- }
-},
-{
- "pk": 3410,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1231
- }
-},
-{
- "pk": 3411,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 1231
- }
-},
-{
- "pk": 3412,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 1231
- }
-},
-{
- "pk": 3413,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 412,
- "task": 1231
- }
-},
-{
- "pk": 3414,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1231
- }
-},
-{
- "pk": 3415,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 506,
- "task": 1231
- }
-},
-{
- "pk": 3416,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 507,
- "task": 1231
- }
-},
-{
- "pk": 3417,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 894,
- "task": 1231
- }
-},
-{
- "pk": 3418,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1155
- }
-},
-{
- "pk": 3419,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 477,
- "task": 1155
- }
-},
-{
- "pk": 3420,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1155
- }
-},
-{
- "pk": 3421,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1155
- }
-},
-{
- "pk": 3422,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1155
- }
-},
-{
- "pk": 3423,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1155
- }
-},
-{
- "pk": 3424,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1155
- }
-},
-{
- "pk": 3425,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1155
- }
-},
-{
- "pk": 3426,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1155
- }
-},
-{
- "pk": 3427,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 90,
- "task": 1155
- }
-},
-{
- "pk": 3428,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 193,
- "task": 1155
- }
-},
-{
- "pk": 3429,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1500,
- "task": 428
- }
-},
-{
- "pk": 3430,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 424
- }
-},
-{
- "pk": 3431,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 74,
- "task": 424
- }
-},
-{
- "pk": 3432,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 424
- }
-},
-{
- "pk": 3433,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 424
- }
-},
-{
- "pk": 3434,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 424
- }
-},
-{
- "pk": 3435,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 424
- }
-},
-{
- "pk": 3436,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 424
- }
-},
-{
- "pk": 3437,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 424
- }
-},
-{
- "pk": 3438,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 200,
- "task": 424
- }
-},
-{
- "pk": 3439,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 424
- }
-},
-{
- "pk": 3440,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 424
- }
-},
-{
- "pk": 3441,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 822,
- "task": 424
- }
-},
-{
- "pk": 3442,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 90,
- "task": 424
- }
-},
-{
- "pk": 3443,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 105
- }
-},
-{
- "pk": 3444,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 105
- }
-},
-{
- "pk": 3445,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 551,
- "task": 105
- }
-},
-{
- "pk": 3446,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 105
- }
-},
-{
- "pk": 3447,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1346,
- "task": 1087
- }
-},
-{
- "pk": 3448,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1402
- }
-},
-{
- "pk": 3449,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1402
- }
-},
-{
- "pk": 3450,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1402
- }
-},
-{
- "pk": 3451,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1402
- }
-},
-{
- "pk": 3452,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1402
- }
-},
-{
- "pk": 3453,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1402
- }
-},
-{
- "pk": 3454,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1402
- }
-},
-{
- "pk": 3455,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1402
- }
-},
-{
- "pk": 3456,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1458,
- "task": 1402
- }
-},
-{
- "pk": 3457,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1402
- }
-},
-{
- "pk": 3458,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1501,
- "task": 969
- }
-},
-{
- "pk": 3459,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 969
- }
-},
-{
- "pk": 3460,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1279,
- "task": 1380
- }
-},
-{
- "pk": 3461,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 728,
- "task": 1380
- }
-},
-{
- "pk": 3462,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 59
- }
-},
-{
- "pk": 3463,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 59
- }
-},
-{
- "pk": 3464,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 144,
- "task": 59
- }
-},
-{
- "pk": 3465,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 541,
- "task": 59
- }
-},
-{
- "pk": 3466,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1502,
- "task": 1202
- }
-},
-{
- "pk": 3467,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 961,
- "task": 1202
- }
-},
-{
- "pk": 3468,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 860,
- "task": 1332
- }
-},
-{
- "pk": 3469,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 898,
- "task": 1455
- }
-},
-{
- "pk": 3470,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 549,
- "task": 1243
- }
-},
-{
- "pk": 3471,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1243
- }
-},
-{
- "pk": 3472,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1503,
- "task": 514
- }
-},
-{
- "pk": 3473,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 165,
- "task": 440
- }
-},
-{
- "pk": 3474,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 167,
- "task": 440
- }
-},
-{
- "pk": 3475,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1504,
- "task": 1039
- }
-},
-{
- "pk": 3476,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1039
- }
-},
-{
- "pk": 3477,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 596,
- "task": 1212
- }
-},
-{
- "pk": 3478,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 902,
- "task": 1212
- }
-},
-{
- "pk": 3479,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 1089
- }
-},
-{
- "pk": 3480,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 147,
- "task": 1089
- }
-},
-{
- "pk": 3481,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 398,
- "task": 1089
- }
-},
-{
- "pk": 3482,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1089
- }
-},
-{
- "pk": 3483,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1089
- }
-},
-{
- "pk": 3484,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1089
- }
-},
-{
- "pk": 3485,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1089
- }
-},
-{
- "pk": 3486,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1089
- }
-},
-{
- "pk": 3487,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 1089
- }
-},
-{
- "pk": 3488,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1089
- }
-},
-{
- "pk": 3489,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1089
- }
-},
-{
- "pk": 3490,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1089
- }
-},
-{
- "pk": 3491,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1089
- }
-},
-{
- "pk": 3492,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1089
- }
-},
-{
- "pk": 3493,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1089
- }
-},
-{
- "pk": 3494,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1089
- }
-},
-{
- "pk": 3495,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1089
- }
-},
-{
- "pk": 3496,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1089
- }
-},
-{
- "pk": 3497,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1089
- }
-},
-{
- "pk": 3498,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1089
- }
-},
-{
- "pk": 3499,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1505,
- "task": 1465
- }
-},
-{
- "pk": 3500,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1279
- }
-},
-{
- "pk": 3501,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1506,
- "task": 1279
- }
-},
-{
- "pk": 3502,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1507,
- "task": 1436
- }
-},
-{
- "pk": 3503,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 928,
- "task": 993
- }
-},
-{
- "pk": 3504,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1385,
- "task": 911
- }
-},
-{
- "pk": 3505,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 949,
- "task": 141
- }
-},
-{
- "pk": 3506,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1481,
- "task": 28
- }
-},
-{
- "pk": 3507,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 271,
- "task": 1182
- }
-},
-{
- "pk": 3508,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1508
- }
-},
-{
- "pk": 3509,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 230,
- "task": 1508
- }
-},
-{
- "pk": 3510,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1509,
- "task": 1508
- }
-},
-{
- "pk": 3511,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1508
- }
-},
-{
- "pk": 3512,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1508
- }
-},
-{
- "pk": 3513,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1508
- }
-},
-{
- "pk": 3514,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1508
- }
-},
-{
- "pk": 3515,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1508
- }
-},
-{
- "pk": 3516,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1510,
- "task": 1508
- }
-},
-{
- "pk": 3517,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1508
- }
-},
-{
- "pk": 3518,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1508
- }
-},
-{
- "pk": 3519,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1508
- }
-},
-{
- "pk": 3520,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 1508
- }
-},
-{
- "pk": 3521,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1096,
- "task": 1508
- }
-},
-{
- "pk": 3522,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 441,
- "task": 1508
- }
-},
-{
- "pk": 3523,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 927,
- "task": 1508
- }
-},
-{
- "pk": 3524,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 233,
- "task": 1508
- }
-},
-{
- "pk": 3525,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1508
- }
-},
-{
- "pk": 3526,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1338,
- "task": 1443
- }
-},
-{
- "pk": 3527,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1443
- }
-},
-{
- "pk": 3528,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1443
- }
-},
-{
- "pk": 3529,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1443
- }
-},
-{
- "pk": 3530,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1443
- }
-},
-{
- "pk": 3531,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 1261
- }
-},
-{
- "pk": 3532,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 1261
- }
-},
-{
- "pk": 3533,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 479,
- "task": 1261
- }
-},
-{
- "pk": 3534,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 480,
- "task": 1261
- }
-},
-{
- "pk": 3535,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 1261
- }
-},
-{
- "pk": 3536,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1261
- }
-},
-{
- "pk": 3537,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 1261
- }
-},
-{
- "pk": 3538,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 1261
- }
-},
-{
- "pk": 3539,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 1261
- }
-},
-{
- "pk": 3540,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1261
- }
-},
-{
- "pk": 3541,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1261
- }
-},
-{
- "pk": 3542,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 482,
- "task": 1261
- }
-},
-{
- "pk": 3543,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 483,
- "task": 1261
- }
-},
-{
- "pk": 3544,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 1261
- }
-},
-{
- "pk": 3545,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 1261
- }
-},
-{
- "pk": 3546,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 1261
- }
-},
-{
- "pk": 3547,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1261
- }
-},
-{
- "pk": 3548,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1261
- }
-},
-{
- "pk": 3549,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 486,
- "task": 1261
- }
-},
-{
- "pk": 3550,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 1261
- }
-},
-{
- "pk": 3551,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 1261
- }
-},
-{
- "pk": 3552,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 488,
- "task": 1261
- }
-},
-{
- "pk": 3553,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 1261
- }
-},
-{
- "pk": 3554,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 1261
- }
-},
-{
- "pk": 3555,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 490,
- "task": 1261
- }
-},
-{
- "pk": 3556,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 1261
- }
-},
-{
- "pk": 3557,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 1261
- }
-},
-{
- "pk": 3558,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 492,
- "task": 1261
- }
-},
-{
- "pk": 3559,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 1261
- }
-},
-{
- "pk": 3560,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1261
- }
-},
-{
- "pk": 3561,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 1261
- }
-},
-{
- "pk": 3562,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 367,
- "task": 1261
- }
-},
-{
- "pk": 3563,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1261
- }
-},
-{
- "pk": 3564,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 1261
- }
-},
-{
- "pk": 3565,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 1261
- }
-},
-{
- "pk": 3566,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1261
- }
-},
-{
- "pk": 3567,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 495,
- "task": 1261
- }
-},
-{
- "pk": 3568,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1261
- }
-},
-{
- "pk": 3569,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 1261
- }
-},
-{
- "pk": 3570,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1261
- }
-},
-{
- "pk": 3571,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1261
- }
-},
-{
- "pk": 3572,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1261
- }
-},
-{
- "pk": 3573,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1261
- }
-},
-{
- "pk": 3574,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1261
- }
-},
-{
- "pk": 3575,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 1261
- }
-},
-{
- "pk": 3576,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 1261
- }
-},
-{
- "pk": 3577,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 500,
- "task": 1261
- }
-},
-{
- "pk": 3578,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1261
- }
-},
-{
- "pk": 3579,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 1261
- }
-},
-{
- "pk": 3580,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1461,
- "task": 1261
- }
-},
-{
- "pk": 3581,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1261
- }
-},
-{
- "pk": 3582,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 213,
- "task": 1261
- }
-},
-{
- "pk": 3583,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 597,
- "task": 1261
- }
-},
-{
- "pk": 3584,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1369,
- "task": 1261
- }
-},
-{
- "pk": 3585,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 1261
- }
-},
-{
- "pk": 3586,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 505,
- "task": 1261
- }
-},
-{
- "pk": 3587,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 412,
- "task": 1261
- }
-},
-{
- "pk": 3588,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1261
- }
-},
-{
- "pk": 3589,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 506,
- "task": 1261
- }
-},
-{
- "pk": 3590,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 507,
- "task": 1261
- }
-},
-{
- "pk": 3591,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 222,
- "task": 1511
- }
-},
-{
- "pk": 3592,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 222,
- "task": 446
- }
-},
-{
- "pk": 3593,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 819
- }
-},
-{
- "pk": 3594,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 819
- }
-},
-{
- "pk": 3595,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 109,
- "task": 819
- }
-},
-{
- "pk": 3596,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 690,
- "task": 819
- }
-},
-{
- "pk": 3597,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 819
- }
-},
-{
- "pk": 3598,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 819
- }
-},
-{
- "pk": 3599,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 819
- }
-},
-{
- "pk": 3600,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 819
- }
-},
-{
- "pk": 3601,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 819
- }
-},
-{
- "pk": 3602,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 819
- }
-},
-{
- "pk": 3603,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 819
- }
-},
-{
- "pk": 3604,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 819
- }
-},
-{
- "pk": 3605,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 819
- }
-},
-{
- "pk": 3606,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1512,
- "task": 896
- }
-},
-{
- "pk": 3607,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 896
- }
-},
-{
- "pk": 3608,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1212
- }
-},
-{
- "pk": 3609,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1212
- }
-},
-{
- "pk": 3610,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1212
- }
-},
-{
- "pk": 3611,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1212
- }
-},
-{
- "pk": 3612,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1212
- }
-},
-{
- "pk": 3613,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1212
- }
-},
-{
- "pk": 3614,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1212
- }
-},
-{
- "pk": 3615,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1212
- }
-},
-{
- "pk": 3616,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1212
- }
-},
-{
- "pk": 3617,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1212
- }
-},
-{
- "pk": 3618,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1212
- }
-},
-{
- "pk": 3619,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1212
- }
-},
-{
- "pk": 3620,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1212
- }
-},
-{
- "pk": 3621,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1212
- }
-},
-{
- "pk": 3622,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 1212
- }
-},
-{
- "pk": 3623,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 114,
- "task": 1212
- }
-},
-{
- "pk": 3624,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1059,
- "task": 1212
- }
-},
-{
- "pk": 3625,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1212
- }
-},
-{
- "pk": 3626,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1212
- }
-},
-{
- "pk": 3627,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1513
- }
-},
-{
- "pk": 3628,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1513
- }
-},
-{
- "pk": 3629,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1513
- }
-},
-{
- "pk": 3630,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1513
- }
-},
-{
- "pk": 3631,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1403,
- "task": 1513
- }
-},
-{
- "pk": 3632,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 508,
- "task": 189
- }
-},
-{
- "pk": 3633,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1480,
- "task": 1514
- }
-},
-{
- "pk": 3634,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 886,
- "task": 1167
- }
-},
-{
- "pk": 3635,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 47,
- "task": 1167
- }
-},
-{
- "pk": 3636,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 788,
- "task": 1167
- }
-},
-{
- "pk": 3637,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1103,
- "task": 1201
- }
-},
-{
- "pk": 3638,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1477,
- "task": 1201
- }
-},
-{
- "pk": 3639,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 45,
- "task": 1377
- }
-},
-{
- "pk": 3640,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1508,
- "task": 1501
- }
-},
-{
- "pk": 3641,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 133
- }
-},
-{
- "pk": 3642,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 876,
- "task": 133
- }
-},
-{
- "pk": 3643,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 133
- }
-},
-{
- "pk": 3644,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 133
- }
-},
-{
- "pk": 3645,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1515,
- "task": 626
- }
-},
-{
- "pk": 3646,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 477
- }
-},
-{
- "pk": 3647,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 216,
- "task": 504
- }
-},
-{
- "pk": 3648,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 215,
- "task": 504
- }
-},
-{
- "pk": 3649,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 732,
- "task": 454
- }
-},
-{
- "pk": 3650,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 912
- }
-},
-{
- "pk": 3651,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1046,
- "task": 912
- }
-},
-{
- "pk": 3652,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 22,
- "task": 1421
- }
-},
-{
- "pk": 3653,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 197
- }
-},
-{
- "pk": 3654,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 234,
- "task": 197
- }
-},
-{
- "pk": 3655,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 102,
- "task": 1256
- }
-},
-{
- "pk": 3656,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1418,
- "task": 1256
- }
-},
-{
- "pk": 3657,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 743
- }
-},
-{
- "pk": 3658,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 411,
- "task": 743
- }
-},
-{
- "pk": 3659,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 743
- }
-},
-{
- "pk": 3660,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 743
- }
-},
-{
- "pk": 3661,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 743
- }
-},
-{
- "pk": 3662,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 743
- }
-},
-{
- "pk": 3663,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 743
- }
-},
-{
- "pk": 3664,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 228,
- "task": 743
- }
-},
-{
- "pk": 3665,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 911,
- "task": 743
- }
-},
-{
- "pk": 3666,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 743
- }
-},
-{
- "pk": 3667,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 703
- }
-},
-{
- "pk": 3668,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 703
- }
-},
-{
- "pk": 3669,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 703
- }
-},
-{
- "pk": 3670,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 703
- }
-},
-{
- "pk": 3671,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 703
- }
-},
-{
- "pk": 3672,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 1224
- }
-},
-{
- "pk": 3673,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 893,
- "task": 1224
- }
-},
-{
- "pk": 3674,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 1224
- }
-},
-{
- "pk": 3675,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 479,
- "task": 1224
- }
-},
-{
- "pk": 3676,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 708,
- "task": 1224
- }
-},
-{
- "pk": 3677,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 480,
- "task": 1224
- }
-},
-{
- "pk": 3678,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 1224
- }
-},
-{
- "pk": 3679,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1224
- }
-},
-{
- "pk": 3680,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 1224
- }
-},
-{
- "pk": 3681,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1435,
- "task": 1224
- }
-},
-{
- "pk": 3682,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 302,
- "task": 1224
- }
-},
-{
- "pk": 3683,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 1224
- }
-},
-{
- "pk": 3684,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 1224
- }
-},
-{
- "pk": 3685,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1224
- }
-},
-{
- "pk": 3686,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 631,
- "task": 1224
- }
-},
-{
- "pk": 3687,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1224
- }
-},
-{
- "pk": 3688,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 482,
- "task": 1224
- }
-},
-{
- "pk": 3689,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 483,
- "task": 1224
- }
-},
-{
- "pk": 3690,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1327,
- "task": 1224
- }
-},
-{
- "pk": 3691,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 1224
- }
-},
-{
- "pk": 3692,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 1224
- }
-},
-{
- "pk": 3693,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 1224
- }
-},
-{
- "pk": 3694,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1224
- }
-},
-{
- "pk": 3695,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1224
- }
-},
-{
- "pk": 3696,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1224
- }
-},
-{
- "pk": 3697,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 1224
- }
-},
-{
- "pk": 3698,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1224
- }
-},
-{
- "pk": 3699,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 1224
- }
-},
-{
- "pk": 3700,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 488,
- "task": 1224
- }
-},
-{
- "pk": 3701,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 1224
- }
-},
-{
- "pk": 3702,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 1224
- }
-},
-{
- "pk": 3703,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1224
- }
-},
-{
- "pk": 3704,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 1224
- }
-},
-{
- "pk": 3705,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 1224
- }
-},
-{
- "pk": 3706,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 492,
- "task": 1224
- }
-},
-{
- "pk": 3707,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 1224
- }
-},
-{
- "pk": 3708,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1224
- }
-},
-{
- "pk": 3709,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 367,
- "task": 1224
- }
-},
-{
- "pk": 3710,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 670,
- "task": 1224
- }
-},
-{
- "pk": 3711,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 1224
- }
-},
-{
- "pk": 3712,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 1224
- }
-},
-{
- "pk": 3713,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 769,
- "task": 1224
- }
-},
-{
- "pk": 3714,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 495,
- "task": 1224
- }
-},
-{
- "pk": 3715,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1224
- }
-},
-{
- "pk": 3716,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 1224
- }
-},
-{
- "pk": 3717,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 490,
- "task": 1224
- }
-},
-{
- "pk": 3718,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1224
- }
-},
-{
- "pk": 3719,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1224
- }
-},
-{
- "pk": 3720,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1224
- }
-},
-{
- "pk": 3721,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1224
- }
-},
-{
- "pk": 3722,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 1224
- }
-},
-{
- "pk": 3723,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 1224
- }
-},
-{
- "pk": 3724,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 500,
- "task": 1224
- }
-},
-{
- "pk": 3725,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1224
- }
-},
-{
- "pk": 3726,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 1224
- }
-},
-{
- "pk": 3727,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 486,
- "task": 1224
- }
-},
-{
- "pk": 3728,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1224
- }
-},
-{
- "pk": 3729,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1516,
- "task": 1224
- }
-},
-{
- "pk": 3730,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 1224
- }
-},
-{
- "pk": 3731,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 1224
- }
-},
-{
- "pk": 3732,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 505,
- "task": 1224
- }
-},
-{
- "pk": 3733,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 570,
- "task": 1224
- }
-},
-{
- "pk": 3734,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 412,
- "task": 1224
- }
-},
-{
- "pk": 3735,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 183,
- "task": 1224
- }
-},
-{
- "pk": 3736,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1224
- }
-},
-{
- "pk": 3737,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 506,
- "task": 1224
- }
-},
-{
- "pk": 3738,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 507,
- "task": 1224
- }
-},
-{
- "pk": 3739,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 894,
- "task": 1224
- }
-},
-{
- "pk": 3740,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 685,
- "task": 643
- }
-},
-{
- "pk": 3741,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1086,
- "task": 1353
- }
-},
-{
- "pk": 3742,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1208
- }
-},
-{
- "pk": 3743,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1208
- }
-},
-{
- "pk": 3744,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 155,
- "task": 1208
- }
-},
-{
- "pk": 3745,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1208
- }
-},
-{
- "pk": 3746,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1208
- }
-},
-{
- "pk": 3747,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 1208
- }
-},
-{
- "pk": 3748,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1208
- }
-},
-{
- "pk": 3749,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1208
- }
-},
-{
- "pk": 3750,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1208
- }
-},
-{
- "pk": 3751,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1208
- }
-},
-{
- "pk": 3752,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1517,
- "task": 1208
- }
-},
-{
- "pk": 3753,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1208
- }
-},
-{
- "pk": 3754,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1138,
- "task": 1518
- }
-},
-{
- "pk": 3755,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1139,
- "task": 1518
- }
-},
-{
- "pk": 3756,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1061,
- "task": 1345
- }
-},
-{
- "pk": 3757,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 88,
- "task": 89
- }
-},
-{
- "pk": 3758,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 682,
- "task": 89
- }
-},
-{
- "pk": 3759,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 89
- }
-},
-{
- "pk": 3760,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 89
- }
-},
-{
- "pk": 3761,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1510
- }
-},
-{
- "pk": 3762,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1519,
- "task": 1510
- }
-},
-{
- "pk": 3763,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1520,
- "task": 791
- }
-},
-{
- "pk": 3764,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1521,
- "task": 51
- }
-},
-{
- "pk": 3765,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 126,
- "task": 443
- }
-},
-{
- "pk": 3766,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 123,
- "task": 443
- }
-},
-{
- "pk": 3767,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 332
- }
-},
-{
- "pk": 3768,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 476,
- "task": 332
- }
-},
-{
- "pk": 3769,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 332
- }
-},
-{
- "pk": 3770,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 332
- }
-},
-{
- "pk": 3771,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 332
- }
-},
-{
- "pk": 3772,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 524,
- "task": 332
- }
-},
-{
- "pk": 3773,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1247
- }
-},
-{
- "pk": 3774,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1247
- }
-},
-{
- "pk": 3775,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1247
- }
-},
-{
- "pk": 3776,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1247
- }
-},
-{
- "pk": 3777,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 1247
- }
-},
-{
- "pk": 3778,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1247
- }
-},
-{
- "pk": 3779,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1160,
- "task": 1247
- }
-},
-{
- "pk": 3780,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1247
- }
-},
-{
- "pk": 3781,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1247
- }
-},
-{
- "pk": 3782,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1283,
- "task": 1247
- }
-},
-{
- "pk": 3783,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 1247
- }
-},
-{
- "pk": 3784,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1247
- }
-},
-{
- "pk": 3785,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1247
- }
-},
-{
- "pk": 3786,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1247
- }
-},
-{
- "pk": 3787,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 882,
- "task": 1247
- }
-},
-{
- "pk": 3788,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 177,
- "task": 1247
- }
-},
-{
- "pk": 3789,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 325,
- "task": 1247
- }
-},
-{
- "pk": 3790,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1247
- }
-},
-{
- "pk": 3791,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1394,
- "task": 1247
- }
-},
-{
- "pk": 3792,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 555,
- "task": 200
- }
-},
-{
- "pk": 3793,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1056
- }
-},
-{
- "pk": 3794,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1056
- }
-},
-{
- "pk": 3795,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1056
- }
-},
-{
- "pk": 3796,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1377,
- "task": 1056
- }
-},
-{
- "pk": 3797,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1110,
- "task": 1056
- }
-},
-{
- "pk": 3798,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1324,
- "task": 1056
- }
-},
-{
- "pk": 3799,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1056
- }
-},
-{
- "pk": 3800,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 81
- }
-},
-{
- "pk": 3801,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 473,
- "task": 81
- }
-},
-{
- "pk": 3802,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 80,
- "task": 81
- }
-},
-{
- "pk": 3803,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 81
- }
-},
-{
- "pk": 3804,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1523,
- "task": 1522
- }
-},
-{
- "pk": 3805,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 652,
- "task": 817
- }
-},
-{
- "pk": 3806,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1524,
- "task": 1504
- }
-},
-{
- "pk": 3807,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1228
- }
-},
-{
- "pk": 3808,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1228
- }
-},
-{
- "pk": 3809,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1228
- }
-},
-{
- "pk": 3810,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1001,
- "task": 1228
- }
-},
-{
- "pk": 3811,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 1228
- }
-},
-{
- "pk": 3812,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 136,
- "task": 1228
- }
-},
-{
- "pk": 3813,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1228
- }
-},
-{
- "pk": 3814,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 757,
- "task": 1228
- }
-},
-{
- "pk": 3815,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1228
- }
-},
-{
- "pk": 3816,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1228
- }
-},
-{
- "pk": 3817,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1228
- }
-},
-{
- "pk": 3818,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1509,
- "task": 1228
- }
-},
-{
- "pk": 3819,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1228
- }
-},
-{
- "pk": 3820,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1228
- }
-},
-{
- "pk": 3821,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1228
- }
-},
-{
- "pk": 3822,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1228
- }
-},
-{
- "pk": 3823,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1228
- }
-},
-{
- "pk": 3824,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1525,
- "task": 608
- }
-},
-{
- "pk": 3825,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1526,
- "task": 238
- }
-},
-{
- "pk": 3826,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1528,
- "task": 1527
- }
-},
-{
- "pk": 3827,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 90,
- "task": 506
- }
-},
-{
- "pk": 3828,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 91,
- "task": 506
- }
-},
-{
- "pk": 3829,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 642
- }
-},
-{
- "pk": 3830,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 905,
- "task": 1529
- }
-},
-{
- "pk": 3831,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 746,
- "task": 1091
- }
-},
-{
- "pk": 3832,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1320
- }
-},
-{
- "pk": 3833,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 474,
- "task": 1320
- }
-},
-{
- "pk": 3834,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 408
- }
-},
-{
- "pk": 3835,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1370,
- "task": 408
- }
-},
-{
- "pk": 3836,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1381,
- "task": 44
- }
-},
-{
- "pk": 3837,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1391,
- "task": 234
- }
-},
-{
- "pk": 3838,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 203,
- "task": 1369
- }
-},
-{
- "pk": 3839,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1369
- }
-},
-{
- "pk": 3840,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1369
- }
-},
-{
- "pk": 3841,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 598,
- "task": 1369
- }
-},
-{
- "pk": 3842,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 35,
- "task": 1369
- }
-},
-{
- "pk": 3843,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 150,
- "task": 1369
- }
-},
-{
- "pk": 3844,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1369
- }
-},
-{
- "pk": 3845,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 1369
- }
-},
-{
- "pk": 3846,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1369
- }
-},
-{
- "pk": 3847,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1369
- }
-},
-{
- "pk": 3848,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1369
- }
-},
-{
- "pk": 3849,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 200,
- "task": 1369
- }
-},
-{
- "pk": 3850,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1369
- }
-},
-{
- "pk": 3851,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1369
- }
-},
-{
- "pk": 3852,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1530,
- "task": 872
- }
-},
-{
- "pk": 3853,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 523,
- "task": 1259
- }
-},
-{
- "pk": 3854,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1531,
- "task": 1259
- }
-},
-{
- "pk": 3855,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1532,
- "task": 1326
- }
-},
-{
- "pk": 3856,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1533,
- "task": 1387
- }
-},
-{
- "pk": 3857,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1395,
- "task": 543
- }
-},
-{
- "pk": 3858,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1535,
- "task": 1534
- }
-},
-{
- "pk": 3859,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1334,
- "task": 824
- }
-},
-{
- "pk": 3860,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1063,
- "task": 1536
- }
-},
-{
- "pk": 3861,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 534,
- "task": 977
- }
-},
-{
- "pk": 3862,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 576
- }
-},
-{
- "pk": 3863,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1255
- }
-},
-{
- "pk": 3864,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1255
- }
-},
-{
- "pk": 3865,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 908,
- "task": 1255
- }
-},
-{
- "pk": 3866,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1255
- }
-},
-{
- "pk": 3867,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1537,
- "task": 1255
- }
-},
-{
- "pk": 3868,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 746,
- "task": 1090
- }
-},
-{
- "pk": 3869,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1538,
- "task": 862
- }
-},
-{
- "pk": 3870,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1459,
- "task": 950
- }
-},
-{
- "pk": 3871,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 987,
- "task": 1205
- }
-},
-{
- "pk": 3872,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 631,
- "task": 1205
- }
-},
-{
- "pk": 3873,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1205
- }
-},
-{
- "pk": 3874,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 774,
- "task": 1205
- }
-},
-{
- "pk": 3875,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 708,
- "task": 1205
- }
-},
-{
- "pk": 3876,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 95,
- "task": 1205
- }
-},
-{
- "pk": 3877,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1469,
- "task": 1205
- }
-},
-{
- "pk": 3878,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1205
- }
-},
-{
- "pk": 3879,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1205
- }
-},
-{
- "pk": 3880,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1205
- }
-},
-{
- "pk": 3881,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1205
- }
-},
-{
- "pk": 3882,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1205
- }
-},
-{
- "pk": 3883,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1205
- }
-},
-{
- "pk": 3884,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1205
- }
-},
-{
- "pk": 3885,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1205
- }
-},
-{
- "pk": 3886,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1539,
- "task": 411
- }
-},
-{
- "pk": 3887,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 175,
- "task": 816
- }
-},
-{
- "pk": 3888,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 174,
- "task": 816
- }
-},
-{
- "pk": 3889,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 368,
- "task": 76
- }
-},
-{
- "pk": 3890,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 325,
- "task": 177
- }
-},
-{
- "pk": 3891,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1038,
- "task": 1323
- }
-},
-{
- "pk": 3892,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 449,
- "task": 535
- }
-},
-{
- "pk": 3893,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 535
- }
-},
-{
- "pk": 3894,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1017,
- "task": 535
- }
-},
-{
- "pk": 3895,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1103,
- "task": 535
- }
-},
-{
- "pk": 3896,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 535
- }
-},
-{
- "pk": 3897,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 535
- }
-},
-{
- "pk": 3898,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 592,
- "task": 535
- }
-},
-{
- "pk": 3899,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 535
- }
-},
-{
- "pk": 3900,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 274,
- "task": 535
- }
-},
-{
- "pk": 3901,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 535
- }
-},
-{
- "pk": 3902,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1539
- }
-},
-{
- "pk": 3903,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 422,
- "task": 1539
- }
-},
-{
- "pk": 3904,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 729
- }
-},
-{
- "pk": 3905,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1540,
- "task": 729
- }
-},
-{
- "pk": 3906,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1541
- }
-},
-{
- "pk": 3907,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1542,
- "task": 1541
- }
-},
-{
- "pk": 3908,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1517
- }
-},
-{
- "pk": 3909,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1517
- }
-},
-{
- "pk": 3910,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1517
- }
-},
-{
- "pk": 3911,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1517
- }
-},
-{
- "pk": 3912,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1517
- }
-},
-{
- "pk": 3913,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 898,
- "task": 1517
- }
-},
-{
- "pk": 3914,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1517
- }
-},
-{
- "pk": 3915,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1517
- }
-},
-{
- "pk": 3916,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1517
- }
-},
-{
- "pk": 3917,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1543,
- "task": 985
- }
-},
-{
- "pk": 3918,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 859,
- "task": 1128
- }
-},
-{
- "pk": 3919,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1544,
- "task": 1079
- }
-},
-{
- "pk": 3920,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 434,
- "task": 71
- }
-},
-{
- "pk": 3921,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1470,
- "task": 1419
- }
-},
-{
- "pk": 3922,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 908
- }
-},
-{
- "pk": 3923,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 235,
- "task": 908
- }
-},
-{
- "pk": 3924,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1157,
- "task": 224
- }
-},
-{
- "pk": 3925,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1156,
- "task": 224
- }
-},
-{
- "pk": 3926,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1487,
- "task": 929
- }
-},
-{
- "pk": 3927,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1127,
- "task": 1545
- }
-},
-{
- "pk": 3928,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 1275
- }
-},
-{
- "pk": 3929,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 613
- }
-},
-{
- "pk": 3930,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 385,
- "task": 613
- }
-},
-{
- "pk": 3931,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 435,
- "task": 714
- }
-},
-{
- "pk": 3932,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 916,
- "task": 1546
- }
-},
-{
- "pk": 3933,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 70,
- "task": 490
- }
-},
-{
- "pk": 3934,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 182,
- "task": 490
- }
-},
-{
- "pk": 3935,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 457,
- "task": 1251
- }
-},
-{
- "pk": 3936,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 490,
- "task": 1251
- }
-},
-{
- "pk": 3937,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 70,
- "task": 1251
- }
-},
-{
- "pk": 3938,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 600,
- "task": 1251
- }
-},
-{
- "pk": 3939,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1547,
- "task": 1251
- }
-},
-{
- "pk": 3940,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 1252
- }
-},
-{
- "pk": 3941,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1252
- }
-},
-{
- "pk": 3942,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1252
- }
-},
-{
- "pk": 3943,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1252
- }
-},
-{
- "pk": 3944,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 1252
- }
-},
-{
- "pk": 3945,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1425,
- "task": 1252
- }
-},
-{
- "pk": 3946,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1548,
- "task": 1252
- }
-},
-{
- "pk": 3947,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1252
- }
-},
-{
- "pk": 3948,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1252
- }
-},
-{
- "pk": 3949,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1252
- }
-},
-{
- "pk": 3950,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1252
- }
-},
-{
- "pk": 3951,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1252
- }
-},
-{
- "pk": 3952,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1252
- }
-},
-{
- "pk": 3953,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1252
- }
-},
-{
- "pk": 3954,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1252
- }
-},
-{
- "pk": 3955,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 311,
- "task": 835
- }
-},
-{
- "pk": 3956,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 326,
- "task": 1232
- }
-},
-{
- "pk": 3957,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 529,
- "task": 1232
- }
-},
-{
- "pk": 3958,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1355,
- "task": 1242
- }
-},
-{
- "pk": 3959,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1031,
- "task": 1242
- }
-},
-{
- "pk": 3960,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1269,
- "task": 842
- }
-},
-{
- "pk": 3961,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1549,
- "task": 1420
- }
-},
-{
- "pk": 3962,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 297
- }
-},
-{
- "pk": 3963,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1550,
- "task": 297
- }
-},
-{
- "pk": 3964,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1280,
- "task": 1551
- }
-},
-{
- "pk": 3965,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 677,
- "task": 1551
- }
-},
-{
- "pk": 3966,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 346,
- "task": 1000
- }
-},
-{
- "pk": 3967,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 135,
- "task": 1552
- }
-},
-{
- "pk": 3968,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 137,
- "task": 1552
- }
-},
-{
- "pk": 3969,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 904
- }
-},
-{
- "pk": 3970,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 904
- }
-},
-{
- "pk": 3971,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 904
- }
-},
-{
- "pk": 3972,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 904
- }
-},
-{
- "pk": 3973,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 904
- }
-},
-{
- "pk": 3974,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 904
- }
-},
-{
- "pk": 3975,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1097,
- "task": 904
- }
-},
-{
- "pk": 3976,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 904
- }
-},
-{
- "pk": 3977,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 904
- }
-},
-{
- "pk": 3978,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 904
- }
-},
-{
- "pk": 3979,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 811,
- "task": 1523
- }
-},
-{
- "pk": 3980,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1265,
- "task": 1523
- }
-},
-{
- "pk": 3981,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 24,
- "task": 1548
- }
-},
-{
- "pk": 3982,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 701,
- "task": 1219
- }
-},
-{
- "pk": 3983,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 117,
- "task": 1219
- }
-},
-{
- "pk": 3984,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 1195
- }
-},
-{
- "pk": 3985,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1195
- }
-},
-{
- "pk": 3986,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1195
- }
-},
-{
- "pk": 3987,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1195
- }
-},
-{
- "pk": 3988,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1195
- }
-},
-{
- "pk": 3989,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1195
- }
-},
-{
- "pk": 3990,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1195
- }
-},
-{
- "pk": 3991,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 1195
- }
-},
-{
- "pk": 3992,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1195
- }
-},
-{
- "pk": 3993,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 1195
- }
-},
-{
- "pk": 3994,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1195
- }
-},
-{
- "pk": 3995,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1195
- }
-},
-{
- "pk": 3996,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1195
- }
-},
-{
- "pk": 3997,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 84,
- "task": 1195
- }
-},
-{
- "pk": 3998,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1195
- }
-},
-{
- "pk": 3999,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 899,
- "task": 1195
- }
-},
-{
- "pk": 4000,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1195
- }
-},
-{
- "pk": 4001,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1490,
- "task": 1195
- }
-},
-{
- "pk": 4002,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 505,
- "task": 1195
- }
-},
-{
- "pk": 4003,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1195
- }
-},
-{
- "pk": 4004,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 350,
- "task": 1195
- }
-},
-{
- "pk": 4005,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1195
- }
-},
-{
- "pk": 4006,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1195
- }
-},
-{
- "pk": 4007,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 1195
- }
-},
-{
- "pk": 4008,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1195
- }
-},
-{
- "pk": 4009,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 1195
- }
-},
-{
- "pk": 4010,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1195
- }
-},
-{
- "pk": 4011,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1553,
- "task": 1076
- }
-},
-{
- "pk": 4012,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 618
- }
-},
-{
- "pk": 4013,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1073
- }
-},
-{
- "pk": 4014,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 731,
- "task": 1073
- }
-},
-{
- "pk": 4015,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1073
- }
-},
-{
- "pk": 4016,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1073
- }
-},
-{
- "pk": 4017,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 1073
- }
-},
-{
- "pk": 4018,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1073
- }
-},
-{
- "pk": 4019,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1073
- }
-},
-{
- "pk": 4020,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1073
- }
-},
-{
- "pk": 4021,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1073
- }
-},
-{
- "pk": 4022,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1073
- }
-},
-{
- "pk": 4023,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 180,
- "task": 1073
- }
-},
-{
- "pk": 4024,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 949
- }
-},
-{
- "pk": 4025,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 949
- }
-},
-{
- "pk": 4026,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 949
- }
-},
-{
- "pk": 4027,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 109,
- "task": 949
- }
-},
-{
- "pk": 4028,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 949
- }
-},
-{
- "pk": 4029,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 119,
- "task": 949
- }
-},
-{
- "pk": 4030,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 949
- }
-},
-{
- "pk": 4031,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1459,
- "task": 949
- }
-},
-{
- "pk": 4032,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 949
- }
-},
-{
- "pk": 4033,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 949
- }
-},
-{
- "pk": 4034,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 949
- }
-},
-{
- "pk": 4035,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 949
- }
-},
-{
- "pk": 4036,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 448,
- "task": 747
- }
-},
-{
- "pk": 4037,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 201
- }
-},
-{
- "pk": 4038,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 201
- }
-},
-{
- "pk": 4039,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 856,
- "task": 201
- }
-},
-{
- "pk": 4040,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 201
- }
-},
-{
- "pk": 4041,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 201
- }
-},
-{
- "pk": 4042,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1495,
- "task": 1496
- }
-},
-{
- "pk": 4043,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 155,
- "task": 157
- }
-},
-{
- "pk": 4044,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1517,
- "task": 157
- }
-},
-{
- "pk": 4045,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 157
- }
-},
-{
- "pk": 4046,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 157
- }
-},
-{
- "pk": 4047,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 196,
- "task": 198
- }
-},
-{
- "pk": 4048,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 417,
- "task": 198
- }
-},
-{
- "pk": 4049,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 198
- }
-},
-{
- "pk": 4050,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 198
- }
-},
-{
- "pk": 4051,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 546,
- "task": 574
- }
-},
-{
- "pk": 4052,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1363,
- "task": 574
- }
-},
-{
- "pk": 4053,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1554,
- "task": 683
- }
-},
-{
- "pk": 4054,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 512,
- "task": 165
- }
-},
-{
- "pk": 4055,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1055,
- "task": 1555
- }
-},
-{
- "pk": 4056,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 909,
- "task": 94
- }
-},
-{
- "pk": 4057,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 94
- }
-},
-{
- "pk": 4058,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 93,
- "task": 94
- }
-},
-{
- "pk": 4059,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 94
- }
-},
-{
- "pk": 4060,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1388,
- "task": 621
- }
-},
-{
- "pk": 4061,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 769
- }
-},
-{
- "pk": 4062,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 106,
- "task": 769
- }
-},
-{
- "pk": 4063,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 100,
- "task": 769
- }
-},
-{
- "pk": 4064,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 769
- }
-},
-{
- "pk": 4065,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 121,
- "task": 769
- }
-},
-{
- "pk": 4066,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 86,
- "task": 769
- }
-},
-{
- "pk": 4067,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 769
- }
-},
-{
- "pk": 4068,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 637,
- "task": 769
- }
-},
-{
- "pk": 4069,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 638,
- "task": 769
- }
-},
-{
- "pk": 4070,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 769
- }
-},
-{
- "pk": 4071,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 769
- }
-},
-{
- "pk": 4072,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 769
- }
-},
-{
- "pk": 4073,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 769
- }
-},
-{
- "pk": 4074,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 95,
- "task": 769
- }
-},
-{
- "pk": 4075,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 114,
- "task": 769
- }
-},
-{
- "pk": 4076,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 769
- }
-},
-{
- "pk": 4077,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 90,
- "task": 769
- }
-},
-{
- "pk": 4078,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 425,
- "task": 106
- }
-},
-{
- "pk": 4079,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1557,
- "task": 1556
- }
-},
-{
- "pk": 4080,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 275,
- "task": 1556
- }
-},
-{
- "pk": 4081,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1558
- }
-},
-{
- "pk": 4082,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1163,
- "task": 1558
- }
-},
-{
- "pk": 4083,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 659,
- "task": 934
- }
-},
-{
- "pk": 4084,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1040,
- "task": 1041
- }
-},
-{
- "pk": 4085,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1559,
- "task": 806
- }
-},
-{
- "pk": 4086,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1339,
- "task": 672
- }
-},
-{
- "pk": 4087,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 954,
- "task": 453
- }
-},
-{
- "pk": 4088,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1266,
- "task": 453
- }
-},
-{
- "pk": 4089,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 955,
- "task": 453
- }
-},
-{
- "pk": 4090,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1270,
- "task": 1560
- }
-},
-{
- "pk": 4091,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 82,
- "task": 1011
- }
-},
-{
- "pk": 4092,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 83,
- "task": 1011
- }
-},
-{
- "pk": 4093,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1038
- }
-},
-{
- "pk": 4094,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 365,
- "task": 1038
- }
-},
-{
- "pk": 4095,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1038
- }
-},
-{
- "pk": 4096,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1038
- }
-},
-{
- "pk": 4097,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1038
- }
-},
-{
- "pk": 4098,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 968,
- "task": 1038
- }
-},
-{
- "pk": 4099,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 567,
- "task": 1038
- }
-},
-{
- "pk": 4100,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1038
- }
-},
-{
- "pk": 4101,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1547,
- "task": 1038
- }
-},
-{
- "pk": 4102,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 899,
- "task": 1038
- }
-},
-{
- "pk": 4103,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 711
- }
-},
-{
- "pk": 4104,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 711
- }
-},
-{
- "pk": 4105,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 711
- }
-},
-{
- "pk": 4106,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 711
- }
-},
-{
- "pk": 4107,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 711
- }
-},
-{
- "pk": 4108,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 711
- }
-},
-{
- "pk": 4109,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 711
- }
-},
-{
- "pk": 4110,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 652,
- "task": 711
- }
-},
-{
- "pk": 4111,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1562,
- "task": 1561
- }
-},
-{
- "pk": 4112,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 595
- }
-},
-{
- "pk": 4113,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 824,
- "task": 595
- }
-},
-{
- "pk": 4114,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 230,
- "task": 595
- }
-},
-{
- "pk": 4115,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 595
- }
-},
-{
- "pk": 4116,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1075,
- "task": 595
- }
-},
-{
- "pk": 4117,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 595
- }
-},
-{
- "pk": 4118,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1455,
- "task": 595
- }
-},
-{
- "pk": 4119,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1060,
- "task": 595
- }
-},
-{
- "pk": 4120,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 595
- }
-},
-{
- "pk": 4121,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 595
- }
-},
-{
- "pk": 4122,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 595
- }
-},
-{
- "pk": 4123,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 510,
- "task": 595
- }
-},
-{
- "pk": 4124,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 595
- }
-},
-{
- "pk": 4125,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 595
- }
-},
-{
- "pk": 4126,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 403,
- "task": 595
- }
-},
-{
- "pk": 4127,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 595
- }
-},
-{
- "pk": 4128,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 595
- }
-},
-{
- "pk": 4129,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1554
- }
-},
-{
- "pk": 4130,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1554
- }
-},
-{
- "pk": 4131,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1132,
- "task": 1554
- }
-},
-{
- "pk": 4132,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 1554
- }
-},
-{
- "pk": 4133,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1554
- }
-},
-{
- "pk": 4134,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1554
- }
-},
-{
- "pk": 4135,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1382,
- "task": 188
- }
-},
-{
- "pk": 4136,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 188
- }
-},
-{
- "pk": 4137,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 158,
- "task": 188
- }
-},
-{
- "pk": 4138,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 188
- }
-},
-{
- "pk": 4139,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1410,
- "task": 63
- }
-},
-{
- "pk": 4140,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1315,
- "task": 1563
- }
-},
-{
- "pk": 4141,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1564,
- "task": 722
- }
-},
-{
- "pk": 4142,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1565,
- "task": 992
- }
-},
-{
- "pk": 4143,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1566,
- "task": 674
- }
-},
-{
- "pk": 4144,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 115,
- "task": 894
- }
-},
-{
- "pk": 4145,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 99,
- "task": 894
- }
-},
-{
- "pk": 4146,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 36,
- "task": 37
- }
-},
-{
- "pk": 4147,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1541,
- "task": 1567
- }
-},
-{
- "pk": 4148,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 966
- }
-},
-{
- "pk": 4149,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 966
- }
-},
-{
- "pk": 4150,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 966
- }
-},
-{
- "pk": 4151,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 966
- }
-},
-{
- "pk": 4152,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 966
- }
-},
-{
- "pk": 4153,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 966
- }
-},
-{
- "pk": 4154,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 966
- }
-},
-{
- "pk": 4155,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 63,
- "task": 966
- }
-},
-{
- "pk": 4156,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 966
- }
-},
-{
- "pk": 4157,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 966
- }
-},
-{
- "pk": 4158,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 966
- }
-},
-{
- "pk": 4159,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1410,
- "task": 966
- }
-},
-{
- "pk": 4160,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 966
- }
-},
-{
- "pk": 4161,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 966
- }
-},
-{
- "pk": 4162,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 966
- }
-},
-{
- "pk": 4163,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 759
- }
-},
-{
- "pk": 4164,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 759
- }
-},
-{
- "pk": 4165,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 759
- }
-},
-{
- "pk": 4166,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 759
- }
-},
-{
- "pk": 4167,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1374,
- "task": 759
- }
-},
-{
- "pk": 4168,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 759
- }
-},
-{
- "pk": 4169,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 759
- }
-},
-{
- "pk": 4170,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 759
- }
-},
-{
- "pk": 4171,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 759
- }
-},
-{
- "pk": 4172,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 759
- }
-},
-{
- "pk": 4173,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 803
- }
-},
-{
- "pk": 4174,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1568,
- "task": 803
- }
-},
-{
- "pk": 4175,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 917
- }
-},
-{
- "pk": 4176,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1,
- "task": 917
- }
-},
-{
- "pk": 4177,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 128,
- "task": 1394
- }
-},
-{
- "pk": 4178,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 127,
- "task": 1394
- }
-},
-{
- "pk": 4179,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1275,
- "task": 1372
- }
-},
-{
- "pk": 4180,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1569,
- "task": 1044
- }
-},
-{
- "pk": 4181,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 568
- }
-},
-{
- "pk": 4182,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1561,
- "task": 568
- }
-},
-{
- "pk": 4183,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1460,
- "task": 237
- }
-},
-{
- "pk": 4184,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 245
- }
-},
-{
- "pk": 4185,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 245
- }
-},
-{
- "pk": 4186,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 579,
- "task": 245
- }
-},
-{
- "pk": 4187,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 245
- }
-},
-{
- "pk": 4188,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 993,
- "task": 245
- }
-},
-{
- "pk": 4189,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 245
- }
-},
-{
- "pk": 4190,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 467,
- "task": 245
- }
-},
-{
- "pk": 4191,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 12
- }
-},
-{
- "pk": 4192,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 12
- }
-},
-{
- "pk": 4193,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 12
- }
-},
-{
- "pk": 4194,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 12
- }
-},
-{
- "pk": 4195,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 12
- }
-},
-{
- "pk": 4196,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 12
- }
-},
-{
- "pk": 4197,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 12
- }
-},
-{
- "pk": 4198,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 321,
- "task": 12
- }
-},
-{
- "pk": 4199,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 322,
- "task": 12
- }
-},
-{
- "pk": 4200,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 727,
- "task": 46
- }
-},
-{
- "pk": 4201,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 632
- }
-},
-{
- "pk": 4202,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1570,
- "task": 632
- }
-},
-{
- "pk": 4203,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1174
- }
-},
-{
- "pk": 4204,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 377,
- "task": 1174
- }
-},
-{
- "pk": 4205,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 15,
- "task": 14
- }
-},
-{
- "pk": 4206,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 297,
- "task": 709
- }
-},
-{
- "pk": 4207,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 918,
- "task": 1462
- }
-},
-{
- "pk": 4208,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1462
- }
-},
-{
- "pk": 4209,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1571,
- "task": 1004
- }
-},
-{
- "pk": 4210,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 1187
- }
-},
-{
- "pk": 4211,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 1187
- }
-},
-{
- "pk": 4212,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 479,
- "task": 1187
- }
-},
-{
- "pk": 4213,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 480,
- "task": 1187
- }
-},
-{
- "pk": 4214,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 1187
- }
-},
-{
- "pk": 4215,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1187
- }
-},
-{
- "pk": 4216,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 1187
- }
-},
-{
- "pk": 4217,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 1187
- }
-},
-{
- "pk": 4218,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 1187
- }
-},
-{
- "pk": 4219,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1187
- }
-},
-{
- "pk": 4220,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1187
- }
-},
-{
- "pk": 4221,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 482,
- "task": 1187
- }
-},
-{
- "pk": 4222,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 483,
- "task": 1187
- }
-},
-{
- "pk": 4223,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 500,
- "task": 1187
- }
-},
-{
- "pk": 4224,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 1187
- }
-},
-{
- "pk": 4225,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 1187
- }
-},
-{
- "pk": 4226,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1187
- }
-},
-{
- "pk": 4227,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1187
- }
-},
-{
- "pk": 4228,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 486,
- "task": 1187
- }
-},
-{
- "pk": 4229,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 1187
- }
-},
-{
- "pk": 4230,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 1187
- }
-},
-{
- "pk": 4231,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 488,
- "task": 1187
- }
-},
-{
- "pk": 4232,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 1187
- }
-},
-{
- "pk": 4233,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 1187
- }
-},
-{
- "pk": 4234,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 334,
- "task": 1187
- }
-},
-{
- "pk": 4235,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 490,
- "task": 1187
- }
-},
-{
- "pk": 4236,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 1187
- }
-},
-{
- "pk": 4237,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 1187
- }
-},
-{
- "pk": 4238,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 492,
- "task": 1187
- }
-},
-{
- "pk": 4239,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 1187
- }
-},
-{
- "pk": 4240,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1187
- }
-},
-{
- "pk": 4241,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 367,
- "task": 1187
- }
-},
-{
- "pk": 4242,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1187
- }
-},
-{
- "pk": 4243,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 1187
- }
-},
-{
- "pk": 4244,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 1187
- }
-},
-{
- "pk": 4245,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 1187
- }
-},
-{
- "pk": 4246,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1187
- }
-},
-{
- "pk": 4247,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 495,
- "task": 1187
- }
-},
-{
- "pk": 4248,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1187
- }
-},
-{
- "pk": 4249,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 1187
- }
-},
-{
- "pk": 4250,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1187
- }
-},
-{
- "pk": 4251,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1187
- }
-},
-{
- "pk": 4252,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1187
- }
-},
-{
- "pk": 4253,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1187
- }
-},
-{
- "pk": 4254,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1187
- }
-},
-{
- "pk": 4255,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 1187
- }
-},
-{
- "pk": 4256,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 1187
- }
-},
-{
- "pk": 4257,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 90,
- "task": 1187
- }
-},
-{
- "pk": 4258,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1187
- }
-},
-{
- "pk": 4259,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 1187
- }
-},
-{
- "pk": 4260,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1187
- }
-},
-{
- "pk": 4261,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 1187
- }
-},
-{
- "pk": 4262,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 1187
- }
-},
-{
- "pk": 4263,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 505,
- "task": 1187
- }
-},
-{
- "pk": 4264,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 412,
- "task": 1187
- }
-},
-{
- "pk": 4265,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1187
- }
-},
-{
- "pk": 4266,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 227,
- "task": 1187
- }
-},
-{
- "pk": 4267,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 506,
- "task": 1187
- }
-},
-{
- "pk": 4268,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 507,
- "task": 1187
- }
-},
-{
- "pk": 4269,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1133,
- "task": 1187
- }
-},
-{
- "pk": 4270,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1184
- }
-},
-{
- "pk": 4271,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 33,
- "task": 1184
- }
-},
-{
- "pk": 4272,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1184
- }
-},
-{
- "pk": 4273,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1184
- }
-},
-{
- "pk": 4274,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1184
- }
-},
-{
- "pk": 4275,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1184
- }
-},
-{
- "pk": 4276,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 1184
- }
-},
-{
- "pk": 4277,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1184
- }
-},
-{
- "pk": 4278,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1184
- }
-},
-{
- "pk": 4279,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1184
- }
-},
-{
- "pk": 4280,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1184
- }
-},
-{
- "pk": 4281,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 1184
- }
-},
-{
- "pk": 4282,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 551,
- "task": 1184
- }
-},
-{
- "pk": 4283,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1184
- }
-},
-{
- "pk": 4284,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1237
- }
-},
-{
- "pk": 4285,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1237
- }
-},
-{
- "pk": 4286,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1237
- }
-},
-{
- "pk": 4287,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1237
- }
-},
-{
- "pk": 4288,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1237
- }
-},
-{
- "pk": 4289,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1237
- }
-},
-{
- "pk": 4290,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1237
- }
-},
-{
- "pk": 4291,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1237
- }
-},
-{
- "pk": 4292,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1237
- }
-},
-{
- "pk": 4293,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1237
- }
-},
-{
- "pk": 4294,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 180,
- "task": 1237
- }
-},
-{
- "pk": 4295,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1022,
- "task": 1237
- }
-},
-{
- "pk": 4296,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1237
- }
-},
-{
- "pk": 4297,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1237
- }
-},
-{
- "pk": 4298,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1572,
- "task": 660
- }
-},
-{
- "pk": 4299,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 315,
- "task": 1499
- }
-},
-{
- "pk": 4300,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 729,
- "task": 1437
- }
-},
-{
- "pk": 4301,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1171,
- "task": 1335
- }
-},
-{
- "pk": 4302,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 71,
- "task": 151
- }
-},
-{
- "pk": 4303,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 434,
- "task": 151
- }
-},
-{
- "pk": 4304,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 151
- }
-},
-{
- "pk": 4305,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 151
- }
-},
-{
- "pk": 4306,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 452,
- "task": 1254
- }
-},
-{
- "pk": 4307,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1016,
- "task": 1254
- }
-},
-{
- "pk": 4308,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1413,
- "task": 557
- }
-},
-{
- "pk": 4309,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 807,
- "task": 1069
- }
-},
-{
- "pk": 4310,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1573,
- "task": 242
- }
-},
-{
- "pk": 4311,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1448,
- "task": 1262
- }
-},
-{
- "pk": 4312,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 507,
- "task": 1262
- }
-},
-{
- "pk": 4313,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 212,
- "task": 1262
- }
-},
-{
- "pk": 4314,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 464,
- "task": 1262
- }
-},
-{
- "pk": 4315,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 939,
- "task": 1262
- }
-},
-{
- "pk": 4316,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1491,
- "task": 1574
- }
-},
-{
- "pk": 4317,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1574
- }
-},
-{
- "pk": 4318,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1575,
- "task": 1568
- }
-},
-{
- "pk": 4319,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1422,
- "task": 1213
- }
-},
-{
- "pk": 4320,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1213
- }
-},
-{
- "pk": 4321,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1213
- }
-},
-{
- "pk": 4322,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1213
- }
-},
-{
- "pk": 4323,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1213
- }
-},
-{
- "pk": 4324,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1213
- }
-},
-{
- "pk": 4325,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 670,
- "task": 1213
- }
-},
-{
- "pk": 4326,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1213
- }
-},
-{
- "pk": 4327,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1213
- }
-},
-{
- "pk": 4328,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1327,
- "task": 1213
- }
-},
-{
- "pk": 4329,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1213
- }
-},
-{
- "pk": 4330,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 425,
- "task": 1213
- }
-},
-{
- "pk": 4331,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1213
- }
-},
-{
- "pk": 4332,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 106,
- "task": 1213
- }
-},
-{
- "pk": 4333,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1213
- }
-},
-{
- "pk": 4334,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1213
- }
-},
-{
- "pk": 4335,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1213
- }
-},
-{
- "pk": 4336,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1213
- }
-},
-{
- "pk": 4337,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1213
- }
-},
-{
- "pk": 4338,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1213
- }
-},
-{
- "pk": 4339,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1054,
- "task": 1213
- }
-},
-{
- "pk": 4340,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 313
- }
-},
-{
- "pk": 4341,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 663
- }
-},
-{
- "pk": 4342,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 663
- }
-},
-{
- "pk": 4343,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1166,
- "task": 663
- }
-},
-{
- "pk": 4344,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 547
- }
-},
-{
- "pk": 4345,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 547
- }
-},
-{
- "pk": 4346,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 547
- }
-},
-{
- "pk": 4347,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 547
- }
-},
-{
- "pk": 4348,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 547
- }
-},
-{
- "pk": 4349,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1411
- }
-},
-{
- "pk": 4350,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1411
- }
-},
-{
- "pk": 4351,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1411
- }
-},
-{
- "pk": 4352,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1411
- }
-},
-{
- "pk": 4353,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1411
- }
-},
-{
- "pk": 4354,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1411
- }
-},
-{
- "pk": 4355,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1411
- }
-},
-{
- "pk": 4356,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 88,
- "task": 1411
- }
-},
-{
- "pk": 4357,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 958,
- "task": 1411
- }
-},
-{
- "pk": 4358,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1576,
- "task": 1470
- }
-},
-{
- "pk": 4359,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1470
- }
-},
-{
- "pk": 4360,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1425,
- "task": 205
- }
-},
-{
- "pk": 4361,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 565
- }
-},
-{
- "pk": 4362,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 565
- }
-},
-{
- "pk": 4363,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 38,
- "task": 565
- }
-},
-{
- "pk": 4364,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 565
- }
-},
-{
- "pk": 4365,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 565
- }
-},
-{
- "pk": 4366,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 914,
- "task": 1428
- }
-},
-{
- "pk": 4367,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1428
- }
-},
-{
- "pk": 4368,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 66,
- "task": 485
- }
-},
-{
- "pk": 4369,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 65,
- "task": 485
- }
-},
-{
- "pk": 4370,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 224,
- "task": 1577
- }
-},
-{
- "pk": 4371,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1578,
- "task": 733
- }
-},
-{
- "pk": 4372,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 955,
- "task": 1266
- }
-},
-{
- "pk": 4373,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1517,
- "task": 155
- }
-},
-{
- "pk": 4374,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 130
- }
-},
-{
- "pk": 4375,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 129,
- "task": 130
- }
-},
-{
- "pk": 4376,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 904,
- "task": 130
- }
-},
-{
- "pk": 4377,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 130
- }
-},
-{
- "pk": 4378,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 99
- }
-},
-{
- "pk": 4379,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 115,
- "task": 99
- }
-},
-{
- "pk": 4380,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1073,
- "task": 99
- }
-},
-{
- "pk": 4381,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 99
- }
-},
-{
- "pk": 4382,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1057,
- "task": 216
- }
-},
-{
- "pk": 4383,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 216
- }
-},
-{
- "pk": 4384,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 215,
- "task": 216
- }
-},
-{
- "pk": 4385,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 216
- }
-},
-{
- "pk": 4386,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 178,
- "task": 179
- }
-},
-{
- "pk": 4387,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 569,
- "task": 179
- }
-},
-{
- "pk": 4388,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 95,
- "task": 708
- }
-},
-{
- "pk": 4389,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 97,
- "task": 708
- }
-},
-{
- "pk": 4390,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1579,
- "task": 336
- }
-},
-{
- "pk": 4391,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 880,
- "task": 60
- }
-},
-{
- "pk": 4392,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1464
- }
-},
-{
- "pk": 4393,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1580,
- "task": 1464
- }
-},
-{
- "pk": 4394,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1064,
- "task": 1376
- }
-},
-{
- "pk": 4395,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 323,
- "task": 1412
- }
-},
-{
- "pk": 4396,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 587,
- "task": 1468
- }
-},
-{
- "pk": 4397,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1563,
- "task": 887
- }
-},
-{
- "pk": 4398,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 1192
- }
-},
-{
- "pk": 4399,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 476,
- "task": 1192
- }
-},
-{
- "pk": 4400,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 479,
- "task": 1192
- }
-},
-{
- "pk": 4401,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 737,
- "task": 1192
- }
-},
-{
- "pk": 4402,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 480,
- "task": 1192
- }
-},
-{
- "pk": 4403,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 150,
- "task": 1192
- }
-},
-{
- "pk": 4404,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1155,
- "task": 1192
- }
-},
-{
- "pk": 4405,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 1192
- }
-},
-{
- "pk": 4406,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1192
- }
-},
-{
- "pk": 4407,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 1192
- }
-},
-{
- "pk": 4408,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 1192
- }
-},
-{
- "pk": 4409,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 1192
- }
-},
-{
- "pk": 4410,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1192
- }
-},
-{
- "pk": 4411,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 1192
- }
-},
-{
- "pk": 4412,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1192
- }
-},
-{
- "pk": 4413,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 482,
- "task": 1192
- }
-},
-{
- "pk": 4414,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 483,
- "task": 1192
- }
-},
-{
- "pk": 4415,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 1192
- }
-},
-{
- "pk": 4416,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 1192
- }
-},
-{
- "pk": 4417,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 1192
- }
-},
-{
- "pk": 4418,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1192
- }
-},
-{
- "pk": 4419,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 367,
- "task": 1192
- }
-},
-{
- "pk": 4420,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1192
- }
-},
-{
- "pk": 4421,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 486,
- "task": 1192
- }
-},
-{
- "pk": 4422,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 1192
- }
-},
-{
- "pk": 4423,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 1192
- }
-},
-{
- "pk": 4424,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 488,
- "task": 1192
- }
-},
-{
- "pk": 4425,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 1192
- }
-},
-{
- "pk": 4426,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 1192
- }
-},
-{
- "pk": 4427,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 490,
- "task": 1192
- }
-},
-{
- "pk": 4428,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 1192
- }
-},
-{
- "pk": 4429,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 1192
- }
-},
-{
- "pk": 4430,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 492,
- "task": 1192
- }
-},
-{
- "pk": 4431,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 1192
- }
-},
-{
- "pk": 4432,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1192
- }
-},
-{
- "pk": 4433,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1192
- }
-},
-{
- "pk": 4434,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1192
- }
-},
-{
- "pk": 4435,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 412,
- "task": 1192
- }
-},
-{
- "pk": 4436,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 1192
- }
-},
-{
- "pk": 4437,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1192
- }
-},
-{
- "pk": 4438,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 495,
- "task": 1192
- }
-},
-{
- "pk": 4439,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1192
- }
-},
-{
- "pk": 4440,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 1192
- }
-},
-{
- "pk": 4441,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1192
- }
-},
-{
- "pk": 4442,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1192
- }
-},
-{
- "pk": 4443,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 505,
- "task": 1192
- }
-},
-{
- "pk": 4444,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1192
- }
-},
-{
- "pk": 4445,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1192
- }
-},
-{
- "pk": 4446,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 1192
- }
-},
-{
- "pk": 4447,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 1192
- }
-},
-{
- "pk": 4448,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 500,
- "task": 1192
- }
-},
-{
- "pk": 4449,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1192
- }
-},
-{
- "pk": 4450,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 1192
- }
-},
-{
- "pk": 4451,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1192
- }
-},
-{
- "pk": 4452,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 1192
- }
-},
-{
- "pk": 4453,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 1192
- }
-},
-{
- "pk": 4454,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 1192
- }
-},
-{
- "pk": 4455,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1192
- }
-},
-{
- "pk": 4456,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 506,
- "task": 1192
- }
-},
-{
- "pk": 4457,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 507,
- "task": 1192
- }
-},
-{
- "pk": 4458,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1581,
- "task": 1570
- }
-},
-{
- "pk": 4459,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 6,
- "task": 1570
- }
-},
-{
- "pk": 4460,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 884,
- "task": 1582
- }
-},
-{
- "pk": 4461,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1331,
- "task": 1359
- }
-},
-{
- "pk": 4462,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1376,
- "task": 1246
- }
-},
-{
- "pk": 4463,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 772,
- "task": 1246
- }
-},
-{
- "pk": 4464,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1050
- }
-},
-{
- "pk": 4465,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1050
- }
-},
-{
- "pk": 4466,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1424,
- "task": 1050
- }
-},
-{
- "pk": 4467,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1050
- }
-},
-{
- "pk": 4468,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 1050
- }
-},
-{
- "pk": 4469,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1050
- }
-},
-{
- "pk": 4470,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1050
- }
-},
-{
- "pk": 4471,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 343,
- "task": 1583
- }
-},
-{
- "pk": 4472,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1582,
- "task": 1584
- }
-},
-{
- "pk": 4473,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1558,
- "task": 1396
- }
-},
-{
- "pk": 4474,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 552,
- "task": 232
- }
-},
-{
- "pk": 4475,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1585,
- "task": 1430
- }
-},
-{
- "pk": 4476,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 383,
- "task": 1114
- }
-},
-{
- "pk": 4477,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 988,
- "task": 432
- }
-},
-{
- "pk": 4478,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1049,
- "task": 1444
- }
-},
-{
- "pk": 4479,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1526,
- "task": 1021
- }
-},
-{
- "pk": 4480,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1021
- }
-},
-{
- "pk": 4481,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1021
- }
-},
-{
- "pk": 4482,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1021
- }
-},
-{
- "pk": 4483,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1021
- }
-},
-{
- "pk": 4484,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1586
- }
-},
-{
- "pk": 4485,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 667,
- "task": 1586
- }
-},
-{
- "pk": 4486,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1586
- }
-},
-{
- "pk": 4487,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1586
- }
-},
-{
- "pk": 4488,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1362,
- "task": 1586
- }
-},
-{
- "pk": 4489,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1586
- }
-},
-{
- "pk": 4490,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 208,
- "task": 262
- }
-},
-{
- "pk": 4491,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 218,
- "task": 262
- }
-},
-{
- "pk": 4492,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1098,
- "task": 1587
- }
-},
-{
- "pk": 4493,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1217
- }
-},
-{
- "pk": 4494,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1217
- }
-},
-{
- "pk": 4495,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1217
- }
-},
-{
- "pk": 4496,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1217
- }
-},
-{
- "pk": 4497,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1217
- }
-},
-{
- "pk": 4498,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1217
- }
-},
-{
- "pk": 4499,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1217
- }
-},
-{
- "pk": 4500,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 460,
- "task": 1217
- }
-},
-{
- "pk": 4501,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 1217
- }
-},
-{
- "pk": 4502,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 73,
- "task": 1217
- }
-},
-{
- "pk": 4503,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1140,
- "task": 1217
- }
-},
-{
- "pk": 4504,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1217
- }
-},
-{
- "pk": 4505,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1217
- }
-},
-{
- "pk": 4506,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1217
- }
-},
-{
- "pk": 4507,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1217
- }
-},
-{
- "pk": 4508,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 927,
- "task": 1217
- }
-},
-{
- "pk": 4509,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1217
- }
-},
-{
- "pk": 4510,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1479,
- "task": 388
- }
-},
-{
- "pk": 4511,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1458,
- "task": 1405
- }
-},
-{
- "pk": 4512,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1551,
- "task": 1415
- }
-},
-{
- "pk": 4513,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 466,
- "task": 154
- }
-},
-{
- "pk": 4514,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1589,
- "task": 1588
- }
-},
-{
- "pk": 4515,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 600,
- "task": 70
- }
-},
-{
- "pk": 4516,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 852
- }
-},
-{
- "pk": 4517,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1398,
- "task": 852
- }
-},
-{
- "pk": 4518,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1543
- }
-},
-{
- "pk": 4519,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1478,
- "task": 1543
- }
-},
-{
- "pk": 4520,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1543
- }
-},
-{
- "pk": 4521,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1543
- }
-},
-{
- "pk": 4522,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 1543
- }
-},
-{
- "pk": 4523,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1543
- }
-},
-{
- "pk": 4524,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1590,
- "task": 404
- }
-},
-{
- "pk": 4525,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 986,
- "task": 153
- }
-},
-{
- "pk": 4526,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 153
- }
-},
-{
- "pk": 4527,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 153
- }
-},
-{
- "pk": 4528,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 153
- }
-},
-{
- "pk": 4529,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 152,
- "task": 153
- }
-},
-{
- "pk": 4530,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 244,
- "task": 1565
- }
-},
-{
- "pk": 4531,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 290,
- "task": 524
- }
-},
-{
- "pk": 4532,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 291,
- "task": 524
- }
-},
-{
- "pk": 4533,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1592,
- "task": 1591
- }
-},
-{
- "pk": 4534,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 299,
- "task": 1537
- }
-},
-{
- "pk": 4535,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1593,
- "task": 40
- }
-},
-{
- "pk": 4536,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1442,
- "task": 1325
- }
-},
-{
- "pk": 4537,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1525
- }
-},
-{
- "pk": 4538,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1594,
- "task": 1525
- }
-},
-{
- "pk": 4539,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 863,
- "task": 649
- }
-},
-{
- "pk": 4540,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1595,
- "task": 338
- }
-},
-{
- "pk": 4541,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 145,
- "task": 507
- }
-},
-{
- "pk": 4542,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 212,
- "task": 507
- }
-},
-{
- "pk": 4543,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1596,
- "task": 1547
- }
-},
-{
- "pk": 4544,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 913,
- "task": 1264
- }
-},
-{
- "pk": 4545,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1264
- }
-},
-{
- "pk": 4546,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1407,
- "task": 1264
- }
-},
-{
- "pk": 4547,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1264
- }
-},
-{
- "pk": 4548,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 196,
- "task": 1264
- }
-},
-{
- "pk": 4549,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 417,
- "task": 1264
- }
-},
-{
- "pk": 4550,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1264
- }
-},
-{
- "pk": 4551,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1264
- }
-},
-{
- "pk": 4552,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1264
- }
-},
-{
- "pk": 4553,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1264
- }
-},
-{
- "pk": 4554,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1264
- }
-},
-{
- "pk": 4555,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1264
- }
-},
-{
- "pk": 4556,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1264
- }
-},
-{
- "pk": 4557,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 551,
- "task": 103
- }
-},
-{
- "pk": 4558,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 217,
- "task": 1206
- }
-},
-{
- "pk": 4559,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1319,
- "task": 1206
- }
-},
-{
- "pk": 4560,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 769,
- "task": 183
- }
-},
-{
- "pk": 4561,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 223,
- "task": 1336
- }
-},
-{
- "pk": 4562,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1577,
- "task": 1336
- }
-},
-{
- "pk": 4563,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1556,
- "task": 271
- }
-},
-{
- "pk": 4564,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 271
- }
-},
-{
- "pk": 4565,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 873,
- "task": 1495
- }
-},
-{
- "pk": 4566,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1476,
- "task": 1495
- }
-},
-{
- "pk": 4567,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 619
- }
-},
-{
- "pk": 4568,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 983
- }
-},
-{
- "pk": 4569,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1115,
- "task": 983
- }
-},
-{
- "pk": 4570,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 720
- }
-},
-{
- "pk": 4571,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 720
- }
-},
-{
- "pk": 4572,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 720
- }
-},
-{
- "pk": 4573,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 720
- }
-},
-{
- "pk": 4574,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 720
- }
-},
-{
- "pk": 4575,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 720
- }
-},
-{
- "pk": 4576,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 720
- }
-},
-{
- "pk": 4577,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 720
- }
-},
-{
- "pk": 4578,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 720
- }
-},
-{
- "pk": 4579,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 976,
- "task": 720
- }
-},
-{
- "pk": 4580,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 413
- }
-},
-{
- "pk": 4581,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 413
- }
-},
-{
- "pk": 4582,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 413
- }
-},
-{
- "pk": 4583,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 413
- }
-},
-{
- "pk": 4584,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 413
- }
-},
-{
- "pk": 4585,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1539,
- "task": 413
- }
-},
-{
- "pk": 4586,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 413
- }
-},
-{
- "pk": 4587,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 413
- }
-},
-{
- "pk": 4588,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 413
- }
-},
-{
- "pk": 4589,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 209,
- "task": 687
- }
-},
-{
- "pk": 4590,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1411,
- "task": 687
- }
-},
-{
- "pk": 4591,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 687
- }
-},
-{
- "pk": 4592,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 687
- }
-},
-{
- "pk": 4593,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 687
- }
-},
-{
- "pk": 4594,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 687
- }
-},
-{
- "pk": 4595,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 687
- }
-},
-{
- "pk": 4596,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 687
- }
-},
-{
- "pk": 4597,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 687
- }
-},
-{
- "pk": 4598,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 687
- }
-},
-{
- "pk": 4599,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 687
- }
-},
-{
- "pk": 4600,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 687
- }
-},
-{
- "pk": 4601,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1400,
- "task": 1253
- }
-},
-{
- "pk": 4602,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 631,
- "task": 1253
- }
-},
-{
- "pk": 4603,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 158,
- "task": 1253
- }
-},
-{
- "pk": 4604,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1382,
- "task": 1253
- }
-},
-{
- "pk": 4605,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1253
- }
-},
-{
- "pk": 4606,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1253
- }
-},
-{
- "pk": 4607,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1253
- }
-},
-{
- "pk": 4608,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1253
- }
-},
-{
- "pk": 4609,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1253
- }
-},
-{
- "pk": 4610,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1253
- }
-},
-{
- "pk": 4611,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1253
- }
-},
-{
- "pk": 4612,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 864,
- "task": 1253
- }
-},
-{
- "pk": 4613,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1253
- }
-},
-{
- "pk": 4614,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1253
- }
-},
-{
- "pk": 4615,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 398
- }
-},
-{
- "pk": 4616,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 398
- }
-},
-{
- "pk": 4617,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 398
- }
-},
-{
- "pk": 4618,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 398
- }
-},
-{
- "pk": 4619,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 398
- }
-},
-{
- "pk": 4620,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 398
- }
-},
-{
- "pk": 4621,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 398
- }
-},
-{
- "pk": 4622,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 398
- }
-},
-{
- "pk": 4623,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 398
- }
-},
-{
- "pk": 4624,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 114,
- "task": 398
- }
-},
-{
- "pk": 4625,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 576,
- "task": 398
- }
-},
-{
- "pk": 4626,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 574
- }
-},
-{
- "pk": 4627,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1129,
- "task": 1204
- }
-},
-{
- "pk": 4628,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 1204
- }
-},
-{
- "pk": 4629,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 93,
- "task": 1204
- }
-},
-{
- "pk": 4630,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 909,
- "task": 1204
- }
-},
-{
- "pk": 4631,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1272,
- "task": 1204
- }
-},
-{
- "pk": 4632,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 250,
- "task": 249
- }
-},
-{
- "pk": 4633,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1586,
- "task": 1328
- }
-},
-{
- "pk": 4634,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 812,
- "task": 813
- }
-},
-{
- "pk": 4635,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 53,
- "task": 750
- }
-},
-{
- "pk": 4636,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 142,
- "task": 503
- }
-},
-{
- "pk": 4637,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 141,
- "task": 503
- }
-},
-{
- "pk": 4638,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 145
- }
-},
-{
- "pk": 4639,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 145
- }
-},
-{
- "pk": 4640,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 212,
- "task": 145
- }
-},
-{
- "pk": 4641,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 464,
- "task": 145
- }
-},
-{
- "pk": 4642,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1134,
- "task": 1151
- }
-},
-{
- "pk": 4643,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 444,
- "task": 126
- }
-},
-{
- "pk": 4644,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 126
- }
-},
-{
- "pk": 4645,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 126
- }
-},
-{
- "pk": 4646,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 123,
- "task": 126
- }
-},
-{
- "pk": 4647,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 1597
- }
-},
-{
- "pk": 4648,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1598,
- "task": 1597
- }
-},
-{
- "pk": 4649,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1599,
- "task": 989
- }
-},
-{
- "pk": 4650,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 71,
- "task": 433
- }
-},
-{
- "pk": 4651,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 151,
- "task": 433
- }
-},
-{
- "pk": 4652,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1321,
- "task": 1484
- }
-},
-{
- "pk": 4653,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1484
- }
-},
-{
- "pk": 4654,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 944,
- "task": 1343
- }
-},
-{
- "pk": 4655,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1440
- }
-},
-{
- "pk": 4656,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 571,
- "task": 1440
- }
-},
-{
- "pk": 4657,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 153,
- "task": 1333
- }
-},
-{
- "pk": 4658,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 152,
- "task": 1333
- }
-},
-{
- "pk": 4659,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1146,
- "task": 1013
- }
-},
-{
- "pk": 4660,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1574,
- "task": 456
- }
-},
-{
- "pk": 4661,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 456
- }
-},
-{
- "pk": 4662,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 456
- }
-},
-{
- "pk": 4663,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 456
- }
-},
-{
- "pk": 4664,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 456
- }
-},
-{
- "pk": 4665,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1428,
- "task": 818
- }
-},
-{
- "pk": 4666,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 991,
- "task": 1438
- }
-},
-{
- "pk": 4667,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1600
- }
-},
-{
- "pk": 4668,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1525,
- "task": 1600
- }
-},
-{
- "pk": 4669,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1600
- }
-},
-{
- "pk": 4670,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1600
- }
-},
-{
- "pk": 4671,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1600
- }
-},
-{
- "pk": 4672,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 1600
- }
-},
-{
- "pk": 4673,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1600
- }
-},
-{
- "pk": 4674,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 849,
- "task": 1600
- }
-},
-{
- "pk": 4675,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1600
- }
-},
-{
- "pk": 4676,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 895,
- "task": 384
- }
-},
-{
- "pk": 4677,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 736,
- "task": 376
- }
-},
-{
- "pk": 4678,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1342,
- "task": 1263
- }
-},
-{
- "pk": 4679,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 584,
- "task": 1263
- }
-},
-{
- "pk": 4680,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 62
- }
-},
-{
- "pk": 4681,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 187,
- "task": 62
- }
-},
-{
- "pk": 4682,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1008,
- "task": 62
- }
-},
-{
- "pk": 4683,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 62
- }
-},
-{
- "pk": 4684,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 62
- }
-},
-{
- "pk": 4685,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 82,
- "task": 62
- }
-},
-{
- "pk": 4686,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1408,
- "task": 1071
- }
-},
-{
- "pk": 4687,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1071
- }
-},
-{
- "pk": 4688,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 60,
- "task": 61
- }
-},
-{
- "pk": 4689,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 880,
- "task": 61
- }
-},
-{
- "pk": 4690,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 931,
- "task": 960
- }
-},
-{
- "pk": 4691,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1267,
- "task": 960
- }
-},
-{
- "pk": 4692,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 960
- }
-},
-{
- "pk": 4693,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 552
- }
-},
-{
- "pk": 4694,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 952,
- "task": 1521
- }
-},
-{
- "pk": 4695,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 461
- }
-},
-{
- "pk": 4696,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1083,
- "task": 461
- }
-},
-{
- "pk": 4697,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 1232
- }
-},
-{
- "pk": 4698,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 1232
- }
-},
-{
- "pk": 4699,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 479,
- "task": 1232
- }
-},
-{
- "pk": 4700,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 480,
- "task": 1232
- }
-},
-{
- "pk": 4701,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 1232
- }
-},
-{
- "pk": 4702,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 1232
- }
-},
-{
- "pk": 4703,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 1232
- }
-},
-{
- "pk": 4704,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 1232
- }
-},
-{
- "pk": 4705,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 1232
- }
-},
-{
- "pk": 4706,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 1232
- }
-},
-{
- "pk": 4707,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 505,
- "task": 1232
- }
-},
-{
- "pk": 4708,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1232
- }
-},
-{
- "pk": 4709,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1232
- }
-},
-{
- "pk": 4710,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 482,
- "task": 1232
- }
-},
-{
- "pk": 4711,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 483,
- "task": 1232
- }
-},
-{
- "pk": 4712,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 1232
- }
-},
-{
- "pk": 4713,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 1232
- }
-},
-{
- "pk": 4714,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1232
- }
-},
-{
- "pk": 4715,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 1232
- }
-},
-{
- "pk": 4716,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1232
- }
-},
-{
- "pk": 4717,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1232
- }
-},
-{
- "pk": 4718,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 486,
- "task": 1232
- }
-},
-{
- "pk": 4719,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 1232
- }
-},
-{
- "pk": 4720,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 488,
- "task": 1232
- }
-},
-{
- "pk": 4721,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 1232
- }
-},
-{
- "pk": 4722,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 555,
- "task": 1232
- }
-},
-{
- "pk": 4723,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 1232
- }
-},
-{
- "pk": 4724,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 200,
- "task": 1232
- }
-},
-{
- "pk": 4725,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 490,
- "task": 1232
- }
-},
-{
- "pk": 4726,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 1232
- }
-},
-{
- "pk": 4727,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 492,
- "task": 1232
- }
-},
-{
- "pk": 4728,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 1232
- }
-},
-{
- "pk": 4729,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1232
- }
-},
-{
- "pk": 4730,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 367,
- "task": 1232
- }
-},
-{
- "pk": 4731,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1232
- }
-},
-{
- "pk": 4732,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 412,
- "task": 1232
- }
-},
-{
- "pk": 4733,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 1232
- }
-},
-{
- "pk": 4734,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1232
- }
-},
-{
- "pk": 4735,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 495,
- "task": 1232
- }
-},
-{
- "pk": 4736,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1232
- }
-},
-{
- "pk": 4737,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 1232
- }
-},
-{
- "pk": 4738,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1232
- }
-},
-{
- "pk": 4739,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 1232
- }
-},
-{
- "pk": 4740,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1232
- }
-},
-{
- "pk": 4741,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1232
- }
-},
-{
- "pk": 4742,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1232
- }
-},
-{
- "pk": 4743,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 1232
- }
-},
-{
- "pk": 4744,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 1232
- }
-},
-{
- "pk": 4745,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 500,
- "task": 1232
- }
-},
-{
- "pk": 4746,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1232
- }
-},
-{
- "pk": 4747,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1232
- }
-},
-{
- "pk": 4748,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1232
- }
-},
-{
- "pk": 4749,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 1232
- }
-},
-{
- "pk": 4750,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 1232
- }
-},
-{
- "pk": 4751,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 1232
- }
-},
-{
- "pk": 4752,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1232
- }
-},
-{
- "pk": 4753,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 506,
- "task": 1232
- }
-},
-{
- "pk": 4754,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 507,
- "task": 1232
- }
-},
-{
- "pk": 4755,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 282
- }
-},
-{
- "pk": 4756,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1124,
- "task": 282
- }
-},
-{
- "pk": 4757,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 856,
- "task": 199
- }
-},
-{
- "pk": 4758,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 767,
- "task": 1203
- }
-},
-{
- "pk": 4759,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 1203
- }
-},
-{
- "pk": 4760,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 159,
- "task": 1203
- }
-},
-{
- "pk": 4761,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 316,
- "task": 1203
- }
-},
-{
- "pk": 4762,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1203
- }
-},
-{
- "pk": 4763,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1203
- }
-},
-{
- "pk": 4764,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1203
- }
-},
-{
- "pk": 4765,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1203
- }
-},
-{
- "pk": 4766,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1203
- }
-},
-{
- "pk": 4767,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1203
- }
-},
-{
- "pk": 4768,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1203
- }
-},
-{
- "pk": 4769,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1203
- }
-},
-{
- "pk": 4770,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 602,
- "task": 1203
- }
-},
-{
- "pk": 4771,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1203
- }
-},
-{
- "pk": 4772,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1071,
- "task": 1601
- }
-},
-{
- "pk": 4773,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 168
- }
-},
-{
- "pk": 4774,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 166,
- "task": 168
- }
-},
-{
- "pk": 4775,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 261,
- "task": 168
- }
-},
-{
- "pk": 4776,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 168
- }
-},
-{
- "pk": 4777,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 189,
- "task": 168
- }
-},
-{
- "pk": 4778,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1600,
- "task": 1384
- }
-},
-{
- "pk": 4779,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 162
- }
-},
-{
- "pk": 4780,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 162
- }
-},
-{
- "pk": 4781,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 160,
- "task": 162
- }
-},
-{
- "pk": 4782,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 826,
- "task": 162
- }
-},
-{
- "pk": 4783,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1473,
- "task": 1474
- }
-},
-{
- "pk": 4784,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1510,
- "task": 1602
- }
-},
-{
- "pk": 4785,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 642,
- "task": 655
- }
-},
-{
- "pk": 4786,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1529,
- "task": 1207
- }
-},
-{
- "pk": 4787,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1207
- }
-},
-{
- "pk": 4788,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 92,
- "task": 1207
- }
-},
-{
- "pk": 4789,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 897,
- "task": 1207
- }
-},
-{
- "pk": 4790,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 451,
- "task": 1207
- }
-},
-{
- "pk": 4791,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1456,
- "task": 1550
- }
-},
-{
- "pk": 4792,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 638
- }
-},
-{
- "pk": 4793,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 343,
- "task": 638
- }
-},
-{
- "pk": 4794,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1583,
- "task": 638
- }
-},
-{
- "pk": 4795,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1411,
- "task": 209
- }
-},
-{
- "pk": 4796,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1040
- }
-},
-{
- "pk": 4797,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 865,
- "task": 1040
- }
-},
-{
- "pk": 4798,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1431,
- "task": 1040
- }
-},
-{
- "pk": 4799,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 993,
- "task": 1257
- }
-},
-{
- "pk": 4800,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 352,
- "task": 1257
- }
-},
-{
- "pk": 4801,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 192
- }
-},
-{
- "pk": 4802,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 908,
- "task": 192
- }
-},
-{
- "pk": 4803,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1051,
- "task": 1306
- }
-},
-{
- "pk": 4804,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 627,
- "task": 692
- }
-},
-{
- "pk": 4805,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1090,
- "task": 26
- }
-},
-{
- "pk": 4806,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1091,
- "task": 26
- }
-},
-{
- "pk": 4807,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 746,
- "task": 26
- }
-},
-{
- "pk": 4808,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 994,
- "task": 340
- }
-},
-{
- "pk": 4809,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1457,
- "task": 1276
- }
-},
-{
- "pk": 4810,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 208,
- "task": 218
- }
-},
-{
- "pk": 4811,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 778,
- "task": 218
- }
-},
-{
- "pk": 4812,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1590
- }
-},
-{
- "pk": 4813,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 785,
- "task": 1590
- }
-},
-{
- "pk": 4814,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 986
- }
-},
-{
- "pk": 4815,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 986
- }
-},
-{
- "pk": 4816,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 860,
- "task": 986
- }
-},
-{
- "pk": 4817,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 986
- }
-},
-{
- "pk": 4818,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 986
- }
-},
-{
- "pk": 4819,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 986
- }
-},
-{
- "pk": 4820,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 986
- }
-},
-{
- "pk": 4821,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 986
- }
-},
-{
- "pk": 4822,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1603
- }
-},
-{
- "pk": 4823,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1603
- }
-},
-{
- "pk": 4824,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1603
- }
-},
-{
- "pk": 4825,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1603
- }
-},
-{
- "pk": 4826,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 629,
- "task": 1603
- }
-},
-{
- "pk": 4827,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1603
- }
-},
-{
- "pk": 4828,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1603
- }
-},
-{
- "pk": 4829,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1603
- }
-},
-{
- "pk": 4830,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1603
- }
-},
-{
- "pk": 4831,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1603
- }
-},
-{
- "pk": 4832,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1483,
- "task": 1358
- }
-},
-{
- "pk": 4833,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 795,
- "task": 1604
- }
-},
-{
- "pk": 4834,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1605,
- "task": 1340
- }
-},
-{
- "pk": 4835,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1322,
- "task": 531
- }
-},
-{
- "pk": 4836,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1170
- }
-},
-{
- "pk": 4837,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1489,
- "task": 1170
- }
-},
-{
- "pk": 4838,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 935,
- "task": 1170
- }
-},
-{
- "pk": 4839,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1170
- }
-},
-{
- "pk": 4840,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1170
- }
-},
-{
- "pk": 4841,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 241,
- "task": 1170
- }
-},
-{
- "pk": 4842,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 607,
- "task": 1170
- }
-},
-{
- "pk": 4843,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1170
- }
-},
-{
- "pk": 4844,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 334,
- "task": 1170
- }
-},
-{
- "pk": 4845,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1170
- }
-},
-{
- "pk": 4846,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1383,
- "task": 607
- }
-},
-{
- "pk": 4847,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 561
- }
-},
-{
- "pk": 4848,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 561
- }
-},
-{
- "pk": 4849,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 561
- }
-},
-{
- "pk": 4850,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 561
- }
-},
-{
- "pk": 4851,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 561
- }
-},
-{
- "pk": 4852,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 561
- }
-},
-{
- "pk": 4853,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 561
- }
-},
-{
- "pk": 4854,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 215,
- "task": 561
- }
-},
-{
- "pk": 4855,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1057,
- "task": 561
- }
-},
-{
- "pk": 4856,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 561
- }
-},
-{
- "pk": 4857,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 561
- }
-},
-{
- "pk": 4858,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 561
- }
-},
-{
- "pk": 4859,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 561
- }
-},
-{
- "pk": 4860,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 561
- }
-},
-{
- "pk": 4861,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 752
- }
-},
-{
- "pk": 4862,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 752
- }
-},
-{
- "pk": 4863,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 752
- }
-},
-{
- "pk": 4864,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 752
- }
-},
-{
- "pk": 4865,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 755,
- "task": 1397
- }
-},
-{
- "pk": 4866,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1555,
- "task": 1274
- }
-},
-{
- "pk": 4867,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 356,
- "task": 962
- }
-},
-{
- "pk": 4868,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 462,
- "task": 1177
- }
-},
-{
- "pk": 4869,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1177
- }
-},
-{
- "pk": 4870,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1314,
- "task": 763
- }
-},
-{
- "pk": 4871,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 213,
- "task": 214
- }
-},
-{
- "pk": 4872,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1369,
- "task": 214
- }
-},
-{
- "pk": 4873,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 214
- }
-},
-{
- "pk": 4874,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 176,
- "task": 214
- }
-},
-{
- "pk": 4875,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 214
- }
-},
-{
- "pk": 4876,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1606,
- "task": 1186
- }
-},
-{
- "pk": 4877,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1186
- }
-},
-{
- "pk": 4878,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1607,
- "task": 1165
- }
-},
-{
- "pk": 4879,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1603,
- "task": 657
- }
-},
-{
- "pk": 4880,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 350,
- "task": 84
- }
-},
-{
- "pk": 4881,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1522,
- "task": 39
- }
-},
-{
- "pk": 4882,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1523,
- "task": 39
- }
-},
-{
- "pk": 4883,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1608,
- "task": 974
- }
-},
-{
- "pk": 4884,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 139,
- "task": 140
- }
-},
-{
- "pk": 4885,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 601,
- "task": 140
- }
-},
-{
- "pk": 4886,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 140
- }
-},
-{
- "pk": 4887,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 140
- }
-},
-{
- "pk": 4888,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 140
- }
-},
-{
- "pk": 4889,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 211,
- "task": 497
- }
-},
-{
- "pk": 4890,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 11,
- "task": 497
- }
-},
-{
- "pk": 4891,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1534,
- "task": 315
- }
-},
-{
- "pk": 4892,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 315
- }
-},
-{
- "pk": 4893,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 542,
- "task": 32
- }
-},
-{
- "pk": 4894,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1043,
- "task": 1606
- }
-},
-{
- "pk": 4895,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1609,
- "task": 1540
- }
-},
-{
- "pk": 4896,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1610,
- "task": 1594
- }
-},
-{
- "pk": 4897,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 605,
- "task": 36
- }
-},
-{
- "pk": 4898,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 604,
- "task": 36
- }
-},
-{
- "pk": 4899,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 654,
- "task": 368
- }
-},
-{
- "pk": 4900,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 368
- }
-},
-{
- "pk": 4901,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 368
- }
-},
-{
- "pk": 4902,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 368
- }
-},
-{
- "pk": 4903,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 368
- }
-},
-{
- "pk": 4904,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 368
- }
-},
-{
- "pk": 4905,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 368
- }
-},
-{
- "pk": 4906,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 368
- }
-},
-{
- "pk": 4907,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 368
- }
-},
-{
- "pk": 4908,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 368
- }
-},
-{
- "pk": 4909,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 368
- }
-},
-{
- "pk": 4910,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 923,
- "task": 1281
- }
-},
-{
- "pk": 4911,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1564
- }
-},
-{
- "pk": 4912,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 717,
- "task": 1564
- }
-},
-{
- "pk": 4913,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1564
- }
-},
-{
- "pk": 4914,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 592,
- "task": 1564
- }
-},
-{
- "pk": 4915,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1564
- }
-},
-{
- "pk": 4916,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1564
- }
-},
-{
- "pk": 4917,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 881
- }
-},
-{
- "pk": 4918,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 697,
- "task": 881
- }
-},
-{
- "pk": 4919,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 984,
- "task": 1103
- }
-},
-{
- "pk": 4920,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1560,
- "task": 795
- }
-},
-{
- "pk": 4921,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1353,
- "task": 795
- }
-},
-{
- "pk": 4922,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1161,
- "task": 795
- }
-},
-{
- "pk": 4923,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1270,
- "task": 795
- }
-},
-{
- "pk": 4924,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 8,
- "task": 698
- }
-},
-{
- "pk": 4925,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 698
- }
-},
-{
- "pk": 4926,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 698
- }
-},
-{
- "pk": 4927,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 698
- }
-},
-{
- "pk": 4928,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 698
- }
-},
-{
- "pk": 4929,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1294,
- "task": 1159
- }
-},
-{
- "pk": 4930,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 610,
- "task": 611
- }
-},
-{
- "pk": 4931,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1238
- }
-},
-{
- "pk": 4932,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1304,
- "task": 1238
- }
-},
-{
- "pk": 4933,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 658
- }
-},
-{
- "pk": 4934,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 980,
- "task": 658
- }
-},
-{
- "pk": 4935,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 725,
- "task": 1374
- }
-},
-{
- "pk": 4936,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1374
- }
-},
-{
- "pk": 4937,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1360,
- "task": 717
- }
-},
-{
- "pk": 4938,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 717
- }
-},
-{
- "pk": 4939,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 136,
- "task": 499
- }
-},
-{
- "pk": 4940,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 138,
- "task": 499
- }
-},
-{
- "pk": 4941,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1497,
- "task": 117
- }
-},
-{
- "pk": 4942,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 209,
- "task": 491
- }
-},
-{
- "pk": 4943,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 210,
- "task": 491
- }
-},
-{
- "pk": 4944,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1017
- }
-},
-{
- "pk": 4945,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1066,
- "task": 1017
- }
-},
-{
- "pk": 4946,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1154
- }
-},
-{
- "pk": 4947,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1107,
- "task": 1154
- }
-},
-{
- "pk": 4948,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 932,
- "task": 1111
- }
-},
-{
- "pk": 4949,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1111
- }
-},
-{
- "pk": 4950,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1062,
- "task": 104
- }
-},
-{
- "pk": 4951,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 104
- }
-},
-{
- "pk": 4952,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 104
- }
-},
-{
- "pk": 4953,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 96,
- "task": 104
- }
-},
-{
- "pk": 4954,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 560
- }
-},
-{
- "pk": 4955,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1446,
- "task": 560
- }
-},
-{
- "pk": 4956,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1611,
- "task": 1580
- }
-},
-{
- "pk": 4957,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1462,
- "task": 451
- }
-},
-{
- "pk": 4958,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 868,
- "task": 1390
- }
-},
-{
- "pk": 4959,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 502
- }
-},
-{
- "pk": 4960,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 502
- }
-},
-{
- "pk": 4961,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1018,
- "task": 502
- }
-},
-{
- "pk": 4962,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 502
- }
-},
-{
- "pk": 4963,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 502
- }
-},
-{
- "pk": 4964,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 502
- }
-},
-{
- "pk": 4965,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 502
- }
-},
-{
- "pk": 4966,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 502
- }
-},
-{
- "pk": 4967,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 502
- }
-},
-{
- "pk": 4968,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 90,
- "task": 502
- }
-},
-{
- "pk": 4969,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 541
- }
-},
-{
- "pk": 4970,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 541
- }
-},
-{
- "pk": 4971,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 541
- }
-},
-{
- "pk": 4972,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 541
- }
-},
-{
- "pk": 4973,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 663,
- "task": 541
- }
-},
-{
- "pk": 4974,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 208,
- "task": 541
- }
-},
-{
- "pk": 4975,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 344,
- "task": 345
- }
-},
-{
- "pk": 4976,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 600
- }
-},
-{
- "pk": 4977,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1596,
- "task": 600
- }
-},
-{
- "pk": 4978,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1074
- }
-},
-{
- "pk": 4979,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 758,
- "task": 1074
- }
-},
-{
- "pk": 4980,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 235
- }
-},
-{
- "pk": 4981,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1085,
- "task": 235
- }
-},
-{
- "pk": 4982,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 743
- }
-},
-{
- "pk": 4983,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 743
- }
-},
-{
- "pk": 4984,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 743
- }
-},
-{
- "pk": 4985,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 743
- }
-},
-{
- "pk": 4986,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 743
- }
-},
-{
- "pk": 4987,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 334,
- "task": 743
- }
-},
-{
- "pk": 4988,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 721,
- "task": 745
- }
-},
-{
- "pk": 4989,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 625,
- "task": 1015
- }
-},
-{
- "pk": 4990,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1566
- }
-},
-{
- "pk": 4991,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1566
- }
-},
-{
- "pk": 4992,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1566
- }
-},
-{
- "pk": 4993,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1566
- }
-},
-{
- "pk": 4994,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1558,
- "task": 1566
- }
-},
-{
- "pk": 4995,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1566
- }
-},
-{
- "pk": 4996,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1157
- }
-},
-{
- "pk": 4997,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 6,
- "task": 1157
- }
-},
-{
- "pk": 4998,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 745,
- "task": 1157
- }
-},
-{
- "pk": 4999,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1161,
- "task": 1157
- }
-},
-{
- "pk": 5000,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 795,
- "task": 1157
- }
-},
-{
- "pk": 5001,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 248,
- "task": 1157
- }
-},
-{
- "pk": 5002,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 273,
- "task": 1157
- }
-},
-{
- "pk": 5003,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 47,
- "task": 1157
- }
-},
-{
- "pk": 5004,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1604,
- "task": 1157
- }
-},
-{
- "pk": 5005,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 77
- }
-},
-{
- "pk": 5006,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 93,
- "task": 77
- }
-},
-{
- "pk": 5007,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 76,
- "task": 77
- }
-},
-{
- "pk": 5008,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 368,
- "task": 77
- }
-},
-{
- "pk": 5009,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 77
- }
-},
-{
- "pk": 5010,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 96,
- "task": 77
- }
-},
-{
- "pk": 5011,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 62,
- "task": 1007
- }
-},
-{
- "pk": 5012,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 187,
- "task": 1007
- }
-},
-{
- "pk": 5013,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1404,
- "task": 441
- }
-},
-{
- "pk": 5014,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1440,
- "task": 403
- }
-},
-{
- "pk": 5015,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 634,
- "task": 1298
- }
-},
-{
- "pk": 5016,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 222,
- "task": 1010
- }
-},
-{
- "pk": 5017,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1511,
- "task": 1010
- }
-},
-{
- "pk": 5018,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1432
- }
-},
-{
- "pk": 5019,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1432
- }
-},
-{
- "pk": 5020,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1432
- }
-},
-{
- "pk": 5021,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 973,
- "task": 1432
- }
-},
-{
- "pk": 5022,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1432
- }
-},
-{
- "pk": 5023,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 269,
- "task": 1432
- }
-},
-{
- "pk": 5024,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1432
- }
-},
-{
- "pk": 5025,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 57,
- "task": 1612
- }
-},
-{
- "pk": 5026,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1140,
- "task": 73
- }
-},
-{
- "pk": 5027,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1039,
- "task": 1297
- }
-},
-{
- "pk": 5028,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 801
- }
-},
-{
- "pk": 5029,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1536,
- "task": 801
- }
-},
-{
- "pk": 5030,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 601
- }
-},
-{
- "pk": 5031,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 601
- }
-},
-{
- "pk": 5032,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 612,
- "task": 601
- }
-},
-{
- "pk": 5033,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 613,
- "task": 601
- }
-},
-{
- "pk": 5034,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 601
- }
-},
-{
- "pk": 5035,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 601
- }
-},
-{
- "pk": 5036,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 601
- }
-},
-{
- "pk": 5037,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 601
- }
-},
-{
- "pk": 5038,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 903
- }
-},
-{
- "pk": 5039,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1493,
- "task": 903
- }
-},
-{
- "pk": 5040,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 944
- }
-},
-{
- "pk": 5041,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 937,
- "task": 944
- }
-},
-{
- "pk": 5042,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 988,
- "task": 1613
- }
-},
-{
- "pk": 5043,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1598,
- "task": 1531
- }
-},
-{
- "pk": 5044,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1578
- }
-},
-{
- "pk": 5045,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 992,
- "task": 1578
- }
-},
-{
- "pk": 5046,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 579,
- "task": 1578
- }
-},
-{
- "pk": 5047,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 47,
- "task": 1578
- }
-},
-{
- "pk": 5048,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1589,
- "task": 1578
- }
-},
-{
- "pk": 5049,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 993,
- "task": 1578
- }
-},
-{
- "pk": 5050,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 52,
- "task": 875
- }
-},
-{
- "pk": 5051,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1173,
- "task": 1357
- }
-},
-{
- "pk": 5052,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1069,
- "task": 1221
- }
-},
-{
- "pk": 5053,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1587,
- "task": 1221
- }
-},
-{
- "pk": 5054,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1614,
- "task": 1512
- }
-},
-{
- "pk": 5055,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1139
- }
-},
-{
- "pk": 5056,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1472,
- "task": 1139
- }
-},
-{
- "pk": 5057,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1615,
- "task": 1139
- }
-},
-{
- "pk": 5058,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 826
- }
-},
-{
- "pk": 5059,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 826
- }
-},
-{
- "pk": 5060,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 109,
- "task": 826
- }
-},
-{
- "pk": 5061,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 826
- }
-},
-{
- "pk": 5062,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 826
- }
-},
-{
- "pk": 5063,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 826
- }
-},
-{
- "pk": 5064,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 826
- }
-},
-{
- "pk": 5065,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 826
- }
-},
-{
- "pk": 5066,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 826
- }
-},
-{
- "pk": 5067,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 826
- }
-},
-{
- "pk": 5068,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 826
- }
-},
-{
- "pk": 5069,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1334,
- "task": 826
- }
-},
-{
- "pk": 5070,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1616,
- "task": 1299
- }
-},
-{
- "pk": 5071,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1598
- }
-},
-{
- "pk": 5072,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1426,
- "task": 1598
- }
-},
-{
- "pk": 5073,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1347
- }
-},
-{
- "pk": 5074,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1302,
- "task": 1347
- }
-},
-{
- "pk": 5075,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1234
- }
-},
-{
- "pk": 5076,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1234
- }
-},
-{
- "pk": 5077,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1234
- }
-},
-{
- "pk": 5078,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 96,
- "task": 1234
- }
-},
-{
- "pk": 5079,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1234
- }
-},
-{
- "pk": 5080,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1234
- }
-},
-{
- "pk": 5081,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 567,
- "task": 1234
- }
-},
-{
- "pk": 5082,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1234
- }
-},
-{
- "pk": 5083,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1119,
- "task": 1234
- }
-},
-{
- "pk": 5084,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 1234
- }
-},
-{
- "pk": 5085,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1234
- }
-},
-{
- "pk": 5086,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1062,
- "task": 1234
- }
-},
-{
- "pk": 5087,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1234
- }
-},
-{
- "pk": 5088,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1234
- }
-},
-{
- "pk": 5089,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 361,
- "task": 757
- }
-},
-{
- "pk": 5090,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 757
- }
-},
-{
- "pk": 5091,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 757
- }
-},
-{
- "pk": 5092,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 757
- }
-},
-{
- "pk": 5093,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 757
- }
-},
-{
- "pk": 5094,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 757
- }
-},
-{
- "pk": 5095,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 757
- }
-},
-{
- "pk": 5096,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 757
- }
-},
-{
- "pk": 5097,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 757
- }
-},
-{
- "pk": 5098,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 131,
- "task": 757
- }
-},
-{
- "pk": 5099,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 103,
- "task": 757
- }
-},
-{
- "pk": 5100,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1365
- }
-},
-{
- "pk": 5101,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1617,
- "task": 1365
- }
-},
-{
- "pk": 5102,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1618,
- "task": 1542
- }
-},
-{
- "pk": 5103,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 17,
- "task": 1009
- }
-},
-{
- "pk": 5104,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 19,
- "task": 1009
- }
-},
-{
- "pk": 5105,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1118
- }
-},
-{
- "pk": 5106,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1118
- }
-},
-{
- "pk": 5107,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 632,
- "task": 1118
- }
-},
-{
- "pk": 5108,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1118
- }
-},
-{
- "pk": 5109,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 993,
- "task": 1118
- }
-},
-{
- "pk": 5110,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1118
- }
-},
-{
- "pk": 5111,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 375,
- "task": 1092
- }
-},
-{
- "pk": 5112,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 387,
- "task": 29
- }
-},
-{
- "pk": 5113,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1379,
- "task": 676
- }
-},
-{
- "pk": 5114,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 615,
- "task": 470
- }
-},
-{
- "pk": 5115,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 470
- }
-},
-{
- "pk": 5116,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 389,
- "task": 1200
- }
-},
-{
- "pk": 5117,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 366,
- "task": 1200
- }
-},
-{
- "pk": 5118,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 479,
- "task": 1200
- }
-},
-{
- "pk": 5119,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 203,
- "task": 1200
- }
-},
-{
- "pk": 5120,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 480,
- "task": 1200
- }
-},
-{
- "pk": 5121,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 1200
- }
-},
-{
- "pk": 5122,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1200
- }
-},
-{
- "pk": 5123,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 1200
- }
-},
-{
- "pk": 5124,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 851,
- "task": 1200
- }
-},
-{
- "pk": 5125,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 371,
- "task": 1200
- }
-},
-{
- "pk": 5126,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 481,
- "task": 1200
- }
-},
-{
- "pk": 5127,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1200
- }
-},
-{
- "pk": 5128,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1200
- }
-},
-{
- "pk": 5129,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 482,
- "task": 1200
- }
-},
-{
- "pk": 5130,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 483,
- "task": 1200
- }
-},
-{
- "pk": 5131,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 484,
- "task": 1200
- }
-},
-{
- "pk": 5132,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 485,
- "task": 1200
- }
-},
-{
- "pk": 5133,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 1200
- }
-},
-{
- "pk": 5134,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1200
- }
-},
-{
- "pk": 5135,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1200
- }
-},
-{
- "pk": 5136,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 486,
- "task": 1200
- }
-},
-{
- "pk": 5137,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 487,
- "task": 1200
- }
-},
-{
- "pk": 5138,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 1200
- }
-},
-{
- "pk": 5139,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 488,
- "task": 1200
- }
-},
-{
- "pk": 5140,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 1200
- }
-},
-{
- "pk": 5141,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 489,
- "task": 1200
- }
-},
-{
- "pk": 5142,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 490,
- "task": 1200
- }
-},
-{
- "pk": 5143,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 525,
- "task": 1200
- }
-},
-{
- "pk": 5144,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 1200
- }
-},
-{
- "pk": 5145,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 492,
- "task": 1200
- }
-},
-{
- "pk": 5146,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 1200
- }
-},
-{
- "pk": 5147,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 424,
- "task": 1200
- }
-},
-{
- "pk": 5148,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1200
- }
-},
-{
- "pk": 5149,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 367,
- "task": 1200
- }
-},
-{
- "pk": 5150,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1200
- }
-},
-{
- "pk": 5151,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 494,
- "task": 1200
- }
-},
-{
- "pk": 5152,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 1200
- }
-},
-{
- "pk": 5153,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 303,
- "task": 1200
- }
-},
-{
- "pk": 5154,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 495,
- "task": 1200
- }
-},
-{
- "pk": 5155,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 491,
- "task": 1200
- }
-},
-{
- "pk": 5156,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1200
- }
-},
-{
- "pk": 5157,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 1200
- }
-},
-{
- "pk": 5158,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1200
- }
-},
-{
- "pk": 5159,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1200
- }
-},
-{
- "pk": 5160,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1200
- }
-},
-{
- "pk": 5161,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1200
- }
-},
-{
- "pk": 5162,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1200
- }
-},
-{
- "pk": 5163,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 498,
- "task": 1200
- }
-},
-{
- "pk": 5164,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 1200
- }
-},
-{
- "pk": 5165,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 500,
- "task": 1200
- }
-},
-{
- "pk": 5166,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1200
- }
-},
-{
- "pk": 5167,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 1200
- }
-},
-{
- "pk": 5168,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1200
- }
-},
-{
- "pk": 5169,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 503,
- "task": 1200
- }
-},
-{
- "pk": 5170,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 504,
- "task": 1200
- }
-},
-{
- "pk": 5171,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 505,
- "task": 1200
- }
-},
-{
- "pk": 5172,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 412,
- "task": 1200
- }
-},
-{
- "pk": 5173,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1200
- }
-},
-{
- "pk": 5174,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 506,
- "task": 1200
- }
-},
-{
- "pk": 5175,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 507,
- "task": 1200
- }
-},
-{
- "pk": 5176,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1277
- }
-},
-{
- "pk": 5177,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1277
- }
-},
-{
- "pk": 5178,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1103,
- "task": 1277
- }
-},
-{
- "pk": 5179,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1277
- }
-},
-{
- "pk": 5180,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 592,
- "task": 1277
- }
-},
-{
- "pk": 5181,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 1277
- }
-},
-{
- "pk": 5182,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1277
- }
-},
-{
- "pk": 5183,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1277
- }
-},
-{
- "pk": 5184,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1098,
- "task": 1277
- }
-},
-{
- "pk": 5185,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1589
- }
-},
-{
- "pk": 5186,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1451,
- "task": 1589
- }
-},
-{
- "pk": 5187,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 84,
- "task": 505
- }
-},
-{
- "pk": 5188,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 85,
- "task": 505
- }
-},
-{
- "pk": 5189,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 44
- }
-},
-{
- "pk": 5190,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1135
- }
-},
-{
- "pk": 5191,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1307,
- "task": 1135
- }
-},
-{
- "pk": 5192,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 68
- }
-},
-{
- "pk": 5193,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 68
- }
-},
-{
- "pk": 5194,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 68
- }
-},
-{
- "pk": 5195,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1035,
- "task": 68
- }
-},
-{
- "pk": 5196,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1619,
- "task": 1291
- }
-},
-{
- "pk": 5197,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1149,
- "task": 1596
- }
-},
-{
- "pk": 5198,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1596
- }
-},
-{
- "pk": 5199,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 447,
- "task": 1006
- }
-},
-{
- "pk": 5200,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 438,
- "task": 1194
- }
-},
-{
- "pk": 5201,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1194
- }
-},
-{
- "pk": 5202,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 400,
- "task": 1194
- }
-},
-{
- "pk": 5203,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 439,
- "task": 1194
- }
-},
-{
- "pk": 5204,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 402,
- "task": 1194
- }
-},
-{
- "pk": 5205,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1194
- }
-},
-{
- "pk": 5206,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1194
- }
-},
-{
- "pk": 5207,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 440,
- "task": 1194
- }
-},
-{
- "pk": 5208,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 329,
- "task": 1194
- }
-},
-{
- "pk": 5209,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 405,
- "task": 1194
- }
-},
-{
- "pk": 5210,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 493,
- "task": 1194
- }
-},
-{
- "pk": 5211,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1194
- }
-},
-{
- "pk": 5212,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 443,
- "task": 1194
- }
-},
-{
- "pk": 5213,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 968,
- "task": 1194
- }
-},
-{
- "pk": 5214,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1602,
- "task": 1194
- }
-},
-{
- "pk": 5215,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 495,
- "task": 1194
- }
-},
-{
- "pk": 5216,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 80,
- "task": 1194
- }
-},
-{
- "pk": 5217,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 473,
- "task": 1194
- }
-},
-{
- "pk": 5218,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1194
- }
-},
-{
- "pk": 5219,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 421,
- "task": 1194
- }
-},
-{
- "pk": 5220,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1194
- }
-},
-{
- "pk": 5221,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1194
- }
-},
-{
- "pk": 5222,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1194
- }
-},
-{
- "pk": 5223,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 499,
- "task": 1194
- }
-},
-{
- "pk": 5224,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1194
- }
-},
-{
- "pk": 5225,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1194
- }
-},
-{
- "pk": 5226,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1194
- }
-},
-{
- "pk": 5227,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 850,
- "task": 978
- }
-},
-{
- "pk": 5228,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1176,
- "task": 1386
- }
-},
-{
- "pk": 5229,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1028,
- "task": 1620
- }
-},
-{
- "pk": 5230,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 995,
- "task": 825
- }
-},
-{
- "pk": 5231,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 231,
- "task": 951
- }
-},
-{
- "pk": 5232,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 465
- }
-},
-{
- "pk": 5233,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1546,
- "task": 465
- }
-},
-{
- "pk": 5234,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1621,
- "task": 1519
- }
-},
-{
- "pk": 5235,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 720,
- "task": 176
- }
-},
-{
- "pk": 5236,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 170,
- "task": 444
- }
-},
-{
- "pk": 5237,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 444
- }
-},
-{
- "pk": 5238,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 160,
- "task": 444
- }
-},
-{
- "pk": 5239,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 444
- }
-},
-{
- "pk": 5240,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 109,
- "task": 444
- }
-},
-{
- "pk": 5241,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 444
- }
-},
-{
- "pk": 5242,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 444
- }
-},
-{
- "pk": 5243,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 444
- }
-},
-{
- "pk": 5244,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 444
- }
-},
-{
- "pk": 5245,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1404,
- "task": 444
- }
-},
-{
- "pk": 5246,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 165,
- "task": 444
- }
-},
-{
- "pk": 5247,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 444
- }
-},
-{
- "pk": 5248,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 155,
- "task": 444
- }
-},
-{
- "pk": 5249,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 444
- }
-},
-{
- "pk": 5250,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1622,
- "task": 1449
- }
-},
-{
- "pk": 5251,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1053,
- "task": 256
- }
-},
-{
- "pk": 5252,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 306
- }
-},
-{
- "pk": 5253,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 306
- }
-},
-{
- "pk": 5254,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 306
- }
-},
-{
- "pk": 5255,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 306
- }
-},
-{
- "pk": 5256,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 306
- }
-},
-{
- "pk": 5257,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 237,
- "task": 1146
- }
-},
-{
- "pk": 5258,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 1146
- }
-},
-{
- "pk": 5259,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 675,
- "task": 1244
- }
-},
-{
- "pk": 5260,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1278,
- "task": 1244
- }
-},
-{
- "pk": 5261,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 790,
- "task": 1623
- }
-},
-{
- "pk": 5262,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1623
- }
-},
-{
- "pk": 5263,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1623
- }
-},
-{
- "pk": 5264,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1623
- }
-},
-{
- "pk": 5265,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1623
- }
-},
-{
- "pk": 5266,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1624,
- "task": 1181
- }
-},
-{
- "pk": 5267,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1466,
- "task": 1181
- }
-},
-{
- "pk": 5268,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1469,
- "task": 95
- }
-},
-{
- "pk": 5269,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1058
- }
-},
-{
- "pk": 5270,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 1058
- }
-},
-{
- "pk": 5271,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1058
- }
-},
-{
- "pk": 5272,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 1058
- }
-},
-{
- "pk": 5273,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 1058
- }
-},
-{
- "pk": 5274,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 1058
- }
-},
-{
- "pk": 5275,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1058
- }
-},
-{
- "pk": 5276,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 63,
- "task": 1058
- }
-},
-{
- "pk": 5277,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 191,
- "task": 1058
- }
-},
-{
- "pk": 5278,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 180,
- "task": 1058
- }
-},
-{
- "pk": 5279,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1000,
- "task": 1058
- }
-},
-{
- "pk": 5280,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 740,
- "task": 647
- }
-},
-{
- "pk": 5281,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1625,
- "task": 310
- }
-},
-{
- "pk": 5282,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 963,
- "task": 764
- }
-},
-{
- "pk": 5283,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 873
- }
-},
-{
- "pk": 5284,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 873
- }
-},
-{
- "pk": 5285,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 873
- }
-},
-{
- "pk": 5286,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 1000
- }
-},
-{
- "pk": 5287,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 572
- }
-},
-{
- "pk": 5288,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 230,
- "task": 572
- }
-},
-{
- "pk": 5289,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 572
- }
-},
-{
- "pk": 5290,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 572
- }
-},
-{
- "pk": 5291,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 572
- }
-},
-{
- "pk": 5292,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 572
- }
-},
-{
- "pk": 5293,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 572
- }
-},
-{
- "pk": 5294,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 572
- }
-},
-{
- "pk": 5295,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 572
- }
-},
-{
- "pk": 5296,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 572
- }
-},
-{
- "pk": 5297,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 232,
- "task": 572
- }
-},
-{
- "pk": 5298,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1590,
- "task": 572
- }
-},
-{
- "pk": 5299,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 572
- }
-},
-{
- "pk": 5300,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 128
- }
-},
-{
- "pk": 5301,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 127,
- "task": 128
- }
-},
-{
- "pk": 5302,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 128
- }
-},
-{
- "pk": 5303,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 800,
- "task": 128
- }
-},
-{
- "pk": 5304,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1494
- }
-},
-{
- "pk": 5305,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1494
- }
-},
-{
- "pk": 5306,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1494
- }
-},
-{
- "pk": 5307,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1494
- }
-},
-{
- "pk": 5308,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1494
- }
-},
-{
- "pk": 5309,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1120,
- "task": 1494
- }
-},
-{
- "pk": 5310,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 30,
- "task": 1494
- }
-},
-{
- "pk": 5311,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1584,
- "task": 1494
- }
-},
-{
- "pk": 5312,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1494
- }
-},
-{
- "pk": 5313,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1494
- }
-},
-{
- "pk": 5314,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1274,
- "task": 1494
- }
-},
-{
- "pk": 5315,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1626,
- "task": 1506
- }
-},
-{
- "pk": 5316,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 23,
- "task": 1473
- }
-},
-{
- "pk": 5317,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 1473
- }
-},
-{
- "pk": 5318,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 26,
- "task": 1473
- }
-},
-{
- "pk": 5319,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 29,
- "task": 1473
- }
-},
-{
- "pk": 5320,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 124,
- "task": 1473
- }
-},
-{
- "pk": 5321,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1353,
- "task": 1473
- }
-},
-{
- "pk": 5322,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1542,
- "task": 1473
- }
-},
-{
- "pk": 5323,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1541,
- "task": 1473
- }
-},
-{
- "pk": 5324,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 114,
- "task": 116
- }
-},
-{
- "pk": 5325,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 116
- }
-},
-{
- "pk": 5326,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 180,
- "task": 116
- }
-},
-{
- "pk": 5327,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1059,
- "task": 116
- }
-},
-{
- "pk": 5328,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 116
- }
-},
-{
- "pk": 5329,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1613,
- "task": 1268
- }
-},
-{
- "pk": 5330,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1574,
- "task": 1502
- }
-},
-{
- "pk": 5331,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 454,
- "task": 1248
- }
-},
-{
- "pk": 5332,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1588,
- "task": 1248
- }
-},
-{
- "pk": 5333,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1248
- }
-},
-{
- "pk": 5334,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 178,
- "task": 1248
- }
-},
-{
- "pk": 5335,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 569,
- "task": 1248
- }
-},
-{
- "pk": 5336,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 179,
- "task": 264
- }
-},
-{
- "pk": 5337,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 178,
- "task": 264
- }
-},
-{
- "pk": 5338,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1620,
- "task": 31
- }
-},
-{
- "pk": 5339,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1330,
- "task": 1622
- }
-},
-{
- "pk": 5340,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1475,
- "task": 293
- }
-},
-{
- "pk": 5341,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1022,
- "task": 180
- }
-},
-{
- "pk": 5342,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 370,
- "task": 1236
- }
-},
-{
- "pk": 5343,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1567,
- "task": 1236
- }
-},
-{
- "pk": 5344,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1305,
- "task": 1236
- }
-},
-{
- "pk": 5345,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 161,
- "task": 1236
- }
-},
-{
- "pk": 5346,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1137,
- "task": 1236
- }
-},
-{
- "pk": 5347,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1236
- }
-},
-{
- "pk": 5348,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1236
- }
-},
-{
- "pk": 5349,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 369,
- "task": 1236
- }
-},
-{
- "pk": 5350,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1236
- }
-},
-{
- "pk": 5351,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1236
- }
-},
-{
- "pk": 5352,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 258,
- "task": 1236
- }
-},
-{
- "pk": 5353,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1236
- }
-},
-{
- "pk": 5354,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1236
- }
-},
-{
- "pk": 5355,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1236
- }
-},
-{
- "pk": 5356,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1236
- }
-},
-{
- "pk": 5357,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1236
- }
-},
-{
- "pk": 5358,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1518,
- "task": 1236
- }
-},
-{
- "pk": 5359,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 853,
- "task": 1526
- }
-},
-{
- "pk": 5360,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1526
- }
-},
-{
- "pk": 5361,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 628
- }
-},
-{
- "pk": 5362,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1290,
- "task": 628
- }
-},
-{
- "pk": 5363,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1211
- }
-},
-{
- "pk": 5364,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 328,
- "task": 1211
- }
-},
-{
- "pk": 5365,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1627,
- "task": 1576
- }
-},
-{
- "pk": 5366,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1628,
- "task": 1188
- }
-},
-{
- "pk": 5367,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 275,
- "task": 1188
- }
-},
-{
- "pk": 5368,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 150,
- "task": 480
- }
-},
-{
- "pk": 5369,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 79,
- "task": 480
- }
-},
-{
- "pk": 5370,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1484,
- "task": 864
- }
-},
-{
- "pk": 5371,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1629,
- "task": 678
- }
-},
-{
- "pk": 5372,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1630,
- "task": 1189
- }
-},
-{
- "pk": 5373,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 248,
- "task": 1189
- }
-},
-{
- "pk": 5374,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1480,
- "task": 250
- }
-},
-{
- "pk": 5375,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1514,
- "task": 250
- }
-},
-{
- "pk": 5376,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1169,
- "task": 1573
- }
-},
-{
- "pk": 5377,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 637,
- "task": 1516
- }
-},
-{
- "pk": 5378,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 638,
- "task": 1516
- }
-},
-{
- "pk": 5379,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1062,
- "task": 96
- }
-},
-{
- "pk": 5380,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 95,
- "task": 97
- }
-},
-{
- "pk": 5381,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1469,
- "task": 97
- }
-},
-{
- "pk": 5382,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 97
- }
-},
-{
- "pk": 5383,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 97
- }
-},
-{
- "pk": 5384,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1478
- }
-},
-{
- "pk": 5385,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 940,
- "task": 1478
- }
-},
-{
- "pk": 5386,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1453,
- "task": 520
- }
-},
-{
- "pk": 5387,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 520
- }
-},
-{
- "pk": 5388,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1472,
- "task": 1615
- }
-},
-{
- "pk": 5389,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 361,
- "task": 1509
- }
-},
-{
- "pk": 5390,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 528
- }
-},
-{
- "pk": 5391,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 963,
- "task": 528
- }
-},
-{
- "pk": 5392,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1631,
- "task": 1185
- }
-},
-{
- "pk": 5393,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1584,
- "task": 1185
- }
-},
-{
- "pk": 5394,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1632,
- "task": 1025
- }
-},
-{
- "pk": 5395,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 325
- }
-},
-{
- "pk": 5396,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 195,
- "task": 325
- }
-},
-{
- "pk": 5397,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 205,
- "task": 325
- }
-},
-{
- "pk": 5398,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 325
- }
-},
-{
- "pk": 5399,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 67,
- "task": 325
- }
-},
-{
- "pk": 5400,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 51,
- "task": 325
- }
-},
-{
- "pk": 5401,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 199,
- "task": 325
- }
-},
-{
- "pk": 5402,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1284,
- "task": 325
- }
-},
-{
- "pk": 5403,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 325
- }
-},
-{
- "pk": 5404,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 96,
- "task": 325
- }
-},
-{
- "pk": 5405,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1633,
- "task": 640
- }
-},
-{
- "pk": 5406,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1624,
- "task": 1082
- }
-},
-{
- "pk": 5407,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1634,
- "task": 1082
- }
-},
-{
- "pk": 5408,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 364,
- "task": 1211
- }
-},
-{
- "pk": 5409,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 496,
- "task": 1211
- }
-},
-{
- "pk": 5410,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 351,
- "task": 1211
- }
-},
-{
- "pk": 5411,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 497,
- "task": 1211
- }
-},
-{
- "pk": 5412,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 253,
- "task": 1211
- }
-},
-{
- "pk": 5413,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 12,
- "task": 1211
- }
-},
-{
- "pk": 5414,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 254,
- "task": 1211
- }
-},
-{
- "pk": 5415,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 252,
- "task": 1211
- }
-},
-{
- "pk": 5416,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 257,
- "task": 1211
- }
-},
-{
- "pk": 5417,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 255,
- "task": 1211
- }
-},
-{
- "pk": 5418,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 264,
- "task": 1211
- }
-},
-{
- "pk": 5419,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 262,
- "task": 1211
- }
-},
-{
- "pk": 5420,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 372,
- "task": 1211
- }
-},
-{
- "pk": 5421,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 263,
- "task": 1211
- }
-},
-{
- "pk": 5422,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 11,
- "task": 1211
- }
-},
-{
- "pk": 5423,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 876,
- "task": 131
- }
-},
-{
- "pk": 5424,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 407,
- "task": 1633
- }
-},
-{
- "pk": 5425,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 643,
- "task": 1633
- }
-},
-{
- "pk": 5426,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1154,
- "task": 1633
- }
-},
-{
- "pk": 5427,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 25,
- "task": 1633
- }
-},
-{
- "pk": 5428,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1280,
- "task": 1633
- }
-},
-{
- "pk": 5429,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 27,
- "task": 1633
- }
-},
-{
- "pk": 5430,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 28,
- "task": 1633
- }
-},
-{
- "pk": 5431,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 98,
- "task": 1633
- }
-},
-{
- "pk": 5432,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 221,
- "task": 1633
- }
-},
-{
- "pk": 5433,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 31,
- "task": 1633
- }
-},
-{
- "pk": 5434,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 32,
- "task": 1633
- }
-},
-{
- "pk": 5435,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1513,
- "task": 833
- }
-},
-{
- "pk": 5436,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 553,
- "task": 1530
- }
-},
-{
- "pk": 5437,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 945,
- "task": 1530
- }
-},
-{
- "pk": 5438,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 1530
- }
-},
-{
- "pk": 5439,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1317,
- "task": 587
- }
-},
-{
- "pk": 5440,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 587
- }
-},
-{
- "pk": 5441,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1168,
- "task": 1450
- }
-},
-{
- "pk": 5442,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 634
- }
-},
-{
- "pk": 5443,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1351,
- "task": 634
- }
-},
-{
- "pk": 5444,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1597,
- "task": 374
- }
-},
-{
- "pk": 5445,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 800,
- "task": 127
- }
-},
-{
- "pk": 5446,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1601,
- "task": 1216
- }
-},
-{
- "pk": 5447,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 49,
- "task": 1216
- }
-},
-{
- "pk": 5448,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 685
- }
-},
-{
- "pk": 5449,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1290,
- "task": 1628
- }
-},
-{
- "pk": 5450,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1075,
- "task": 442
- }
-},
-{
- "pk": 5451,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 760,
- "task": 1060
- }
-},
-{
- "pk": 5452,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1375,
- "task": 1631
- }
-},
-{
- "pk": 5453,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1591,
- "task": 1132
- }
-},
-{
- "pk": 5454,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1132
- }
-},
-{
- "pk": 5455,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1074,
- "task": 1293
- }
-},
-{
- "pk": 5456,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 125,
- "task": 412
- }
-},
-{
- "pk": 5457,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 185,
- "task": 412
- }
-},
-{
- "pk": 5458,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1059,
- "task": 114
- }
-},
-{
- "pk": 5459,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 135,
- "task": 1227
- }
-},
-{
- "pk": 5460,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 698,
- "task": 1227
- }
-},
-{
- "pk": 5461,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 272,
- "task": 1227
- }
-},
-{
- "pk": 5462,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1612,
- "task": 1227
- }
-},
-{
- "pk": 5463,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1552,
- "task": 1227
- }
-},
-{
- "pk": 5464,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 912,
- "task": 1630
- }
-},
-{
- "pk": 5465,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 113
- }
-},
-{
- "pk": 5466,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 73,
- "task": 113
- }
-},
-{
- "pk": 5467,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 113
- }
-},
-{
- "pk": 5468,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1140,
- "task": 113
- }
-},
-{
- "pk": 5469,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1120
- }
-},
-{
- "pk": 5470,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1527,
- "task": 1120
- }
-},
-{
- "pk": 5471,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1545,
- "task": 1624
- }
-},
-{
- "pk": 5472,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 735,
- "task": 1218
- }
-},
-{
- "pk": 5473,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 112,
- "task": 1218
- }
-},
-{
- "pk": 5474,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1623,
- "task": 1482
- }
-},
-{
- "pk": 5475,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1349,
- "task": 1338
- }
-},
-{
- "pk": 5476,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 39,
- "task": 1338
- }
-},
-{
- "pk": 5477,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 9,
- "task": 87
- }
-},
-{
- "pk": 5478,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 86,
- "task": 87
- }
-},
-{
- "pk": 5479,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 624,
- "task": 87
- }
-},
-{
- "pk": 5480,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 16,
- "task": 87
- }
-},
-{
- "pk": 5481,
- "model": "orm.task_dependency",
- "fields": {
- "depends_on": 1635,
- "task": 1485
- }
-},
-{
- "pk": 1,
- "model": "orm.package",
- "fields": {
- "installed_size": 561152,
- "name": "busybox",
- "license": "GPLv2 & bzip2",
- "description": "BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete POSIX environment for any small or embedded system.",
- "recipe": 1,
- "summary": "Tiny versions of many common UNIX utilities in a single small executable.",
- "version": "1.21.1",
- "build": 1,
- "size": 560653,
- "section": "base",
- "revision": "r0"
- }
-},
-{
- "pk": 2,
- "model": "orm.package",
- "fields": {
- "installed_size": 88064,
- "name": "libz1",
- "license": "Zlib",
- "description": "Zlib is a general-purpose, patent-free, lossless data compression library which is used by many different programs.",
- "recipe": 111,
- "summary": "Zlib Compression Library",
- "version": "1.2.8",
- "build": 1,
- "size": 88109,
- "section": "libs",
- "revision": "r0"
- }
-},
-{
- "pk": 3,
- "model": "orm.package",
- "fields": {
- "installed_size": 389120,
- "name": "udev",
- "license": "GPLv2.0+",
- "description": "udev is a daemon which dynamically creates and removes device nodes from /dev/, handles hotplug events and loads drivers at boot time.",
- "recipe": 37,
- "summary": "/dev/ and hotplug management daemon",
- "version": "182",
- "build": 1,
- "size": 389036,
- "section": "base",
- "revision": "r7"
- }
-},
-{
- "pk": 4,
- "model": "orm.package",
- "fields": {
- "installed_size": 130048,
- "name": "sysvinit",
- "license": "GPLv2+",
- "description": "This package is required to boot in most configurations. It provides the /sbin/init program. This is the first process started on boot, and the last process terminated before the system halts.",
- "recipe": 4,
- "summary": "System-V like init",
- "version": "2.88dsf",
- "build": 1,
- "size": 129636,
- "section": "base",
- "revision": "r11"
- }
-},
-{
- "pk": 5,
- "model": "orm.package",
- "fields": {
- "installed_size": 3072,
- "name": "busybox-udhcpc",
- "license": "GPLv2 & bzip2",
- "description": "BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete POSIX environment for any small or embedded system.",
- "recipe": 1,
- "summary": "Tiny versions of many common UNIX utilities in a single small executable.",
- "version": "1.21.1",
- "build": 1,
- "size": 2598,
- "section": "base",
- "revision": "r0"
- }
-},
-{
- "pk": 6,
- "model": "orm.package",
- "fields": {
- "installed_size": 4096,
- "name": "base-files",
- "license": "GPLv2",
- "description": "The base-files package creates the basic system directory structure and provides a small set of key configuration files for the system.",
- "recipe": 119,
- "summary": "Miscellaneous files for the base system.",
- "version": "3.0.14",
- "build": 1,
- "size": 4492,
- "section": "base",
- "revision": "r73"
- }
-},
-{
- "pk": 7,
- "model": "orm.package",
- "fields": {
- "installed_size": 4096,
- "name": "update-alternatives-cworth",
- "license": "GPLv2+",
- "description": "Open Package Manager.",
- "recipe": 20,
- "summary": "Utility for managing the alternatives system",
- "version": "0.2.0",
- "build": 1,
- "size": 4267,
- "section": "base",
- "revision": "r0"
- }
-},
-{
- "pk": 8,
- "model": "orm.package",
- "fields": {
- "installed_size": 162816,
- "name": "udev-utils",
- "license": "GPLv2.0+ & LGPLv2.1+",
- "description": "udev is a daemon which dynamically creates and removes device nodes from /dev/, handles hotplug events and loads drivers at boot time.",
- "recipe": 37,
- "summary": "/dev/ and hotplug management daemon",
- "version": "182",
- "build": 1,
- "size": 163256,
- "section": "base",
- "revision": "r7"
- }
-},
-{
- "pk": 9,
- "model": "orm.package",
- "fields": {
- "installed_size": 114688,
- "name": "v86d",
- "license": "GPLv2",
- "description": "User support binary for the uvesafb kernel module.",
- "recipe": 130,
- "summary": "User support binary for the uvesafb kernel module",
- "version": "0.1.10",
- "build": 1,
- "size": 114515,
- "section": "base",
- "revision": "r1"
- }
-},
-{
- "pk": 10,
- "model": "orm.package",
- "fields": {
- "installed_size": 23552,
- "name": "netbase",
- "license": "GPLv2",
- "description": "This package provides the necessary infrastructure for basic TCP/IP based networking",
- "recipe": 98,
- "summary": "Basic TCP/IP networking support",
- "version": "5.2",
- "build": 1,
- "size": 23421,
- "section": "base",
- "revision": "r0"
- }
-},
-{
- "pk": 11,
- "model": "orm.package",
- "fields": {
- "installed_size": 3072,
- "name": "init-ifupdown",
- "license": "GPLv2",
- "description": "This package provides high level tools to configure network interfaces",
- "recipe": 54,
- "summary": "Basic TCP/IP networking init scripts and configuration files",
- "version": "1.0",
- "build": 1,
- "size": 2897,
- "section": "base",
- "revision": "r3"
- }
-},
-{
- "pk": 12,
- "model": "orm.package",
- "fields": {
- "installed_size": 356352,
- "name": "libkmod2",
- "license": "LGPL-2.1+",
- "description": "kmod is a set of tools to handle common tasks with Linux kernel modules like insert, remove, list, check properties, resolve dependencies and aliases.",
- "recipe": 48,
- "summary": "Tools for managing Linux kernel modules",
- "version": "16+gitAUTOINC+36c4bb928a",
- "build": 1,
- "size": 355889,
- "section": "base",
- "revision": "r0"
- }
-},
-{
- "pk": 13,
- "model": "orm.package",
- "fields": {
- "installed_size": 17408,
- "name": "kernel-3.10.19-yocto-standard",
- "license": "GPLv2",
- "description": "Yocto Kernel",
- "recipe": 114,
- "summary": "linux-yocto version 3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0",
- "version": "3.10.19+gitAUTOINC+f47ea28445_a9ec82e355",
- "build": 1,
- "size": 17565,
- "section": "kernel",
- "revision": "r0"
- }
-},
-{
- "pk": 14,
- "model": "orm.package",
- "fields": {
- "installed_size": 2048,
- "name": "busybox-syslog",
- "license": "GPLv2 & bzip2",
- "description": "BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete POSIX environment for any small or embedded system.",
- "recipe": 1,
- "summary": "Tiny versions of many common UNIX utilities in a single small executable.",
- "version": "1.21.1",
- "build": 1,
- "size": 2431,
- "section": "base",
- "revision": "r0"
- }
-},
-{
- "pk": 15,
- "model": "orm.package",
- "fields": {
- "installed_size": 2048,
- "name": "busybox-hwclock",
- "license": "GPLv2 & bzip2",
- "description": "BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete POSIX environment for any small or embedded system.",
- "recipe": 1,
- "summary": "Tiny versions of many common UNIX utilities in a single small executable.",
- "version": "1.21.1",
- "build": 1,
- "size": 2541,
- "section": "base",
- "revision": "r0"
- }
-},
-{
- "pk": 16,
- "model": "orm.package",
- "fields": {
- "installed_size": 5120,
- "name": "update-rc.d",
- "license": "GPLv2+",
- "description": "update-rc.d is a utilities that allows the management of symlinks to the initscripts in the /etc/rcN.d directory structure.",
- "recipe": 57,
- "summary": "manage symlinks in /etc/rcN.d.",
- "version": "0.7",
- "build": 1,
- "size": 4804,
- "section": "base",
- "revision": "r5"
- }
-},
-{
- "pk": 17,
- "model": "orm.package",
- "fields": {
- "installed_size": 1024,
- "name": "modutils-initscripts",
- "license": "PD",
- "description": "Initscript for auto-loading kernel modules on boot.",
- "recipe": 49,
- "summary": "Initscript for auto-loading kernel modules on boot",
- "version": "1.0",
- "build": 1,
- "size": 1223,
- "section": "base",
- "revision": "r6"
- }
-},
-{
- "pk": 18,
- "model": "orm.package",
- "fields": {
- "installed_size": 15360,
- "name": "sysvinit-pidof",
- "license": "GPLv2+",
- "description": "This package is required to boot in most configurations. It provides the /sbin/init program. This is the first process started on boot, and the last process terminated before the system halts.",
- "recipe": 4,
- "summary": "System-V like init",
- "version": "2.88dsf",
- "build": 1,
- "size": 15854,
- "section": "base",
- "revision": "r11"
- }
-},
-{
- "pk": 19,
- "model": "orm.package",
- "fields": {
- "installed_size": 3108864,
- "name": "libc6",
- "license": "GPLv2 & LGPLv2.1",
- "description": "Embedded GLIBC (EGLIBC) is a variant of the GNU C Library (GLIBC) that is designed to work well on embedded systems. EGLIBC strives to be source and binary compatible with GLIBC. EGLIBC\\'s goals include reduced footprint, configurable components, better support for cross-compilation and cross-testing.",
- "recipe": 39,
- "summary": "Embedded GLIBC (GNU C Library)",
- "version": "2.18",
- "build": 1,
- "size": 3108940,
- "section": "libs",
- "revision": "r0"
- }
-},
-{
- "pk": 20,
- "model": "orm.package",
- "fields": {
- "installed_size": 1024,
- "name": "sysvinit-inittab",
- "license": "GPLv2",
- "description": "Inittab configuration for SysVinit.",
- "recipe": 15,
- "summary": "Inittab configuration for SysVinit",
- "version": "2.88dsf",
- "build": 1,
- "size": 1075,
- "section": "base",
- "revision": "r9"
- }
-},
-{
- "pk": 21,
- "model": "orm.package",
- "fields": {
- "installed_size": 233472,
- "name": "libblkid1",
- "license": "GPLv2+ & LGPLv2.1+ & BSD",
- "description": "Util-linux includes a suite of basic system administration utilities commonly found on most Linux systems. Some of the more important utilities include disk partitioning, kernel message management, filesystem creation, and system login.",
- "recipe": 27,
- "summary": "A suite of basic system administration utilities.",
- "version": "2.23.2",
- "build": 1,
- "size": 233813,
- "section": "base",
- "revision": "r0"
- }
-},
-{
- "pk": 22,
- "model": "orm.package",
- "fields": {
- "installed_size": 1024,
- "name": "run-postinsts",
- "license": "MIT",
- "description": "Runs postinstall scripts on first boot of the target device.",
- "recipe": 69,
- "summary": "Runs postinstall scripts on first boot of the target device",
- "version": "1.0",
- "build": 1,
- "size": 1103,
- "section": "devel",
- "revision": "r9"
- }
-},
-{
- "pk": 23,
- "model": "orm.package",
- "fields": {
- "installed_size": 1024,
- "name": "udev-cache",
- "license": "GPLv2.0+ & LGPLv2.1+",
- "description": "udev is a daemon which dynamically creates and removes device nodes from /dev/, handles hotplug events and loads drivers at boot time.",
- "recipe": 37,
- "summary": "/dev/ and hotplug management daemon",
- "version": "182",
- "build": 1,
- "size": 881,
- "section": "base",
- "revision": "r7"
- }
-},
-{
- "pk": 24,
- "model": "orm.package",
- "fields": {
- "installed_size": 32768,
- "name": "kernel-module-uvesafb",
- "license": "GPLv2",
- "description": "uvesafb kernel module; Framebuffer driver for VBE2.0+ compliant graphics boards",
- "recipe": 114,
- "summary": "uvesafb kernel module",
- "version": "3.10.19+gitAUTOINC+f47ea28445_a9ec82e355",
- "build": 1,
- "size": 33264,
- "section": "kernel",
- "revision": "r0"
- }
-},
-{
- "pk": 25,
- "model": "orm.package",
- "fields": {
- "installed_size": 14336,
- "name": "libuuid1",
- "license": "GPLv2+ & LGPLv2.1+ & BSD",
- "description": "Util-linux includes a suite of basic system administration utilities commonly found on most Linux systems. Some of the more important utilities include disk partitioning, kernel message management, filesystem creation, and system login.",
- "recipe": 27,
- "summary": "A suite of basic system administration utilities.",
- "version": "2.23.2",
- "build": 1,
- "size": 14204,
- "section": "base",
- "revision": "r0"
- }
-},
-{
- "pk": 26,
- "model": "orm.package",
- "fields": {
- "installed_size": 25600,
- "name": "initscripts",
- "license": "GPLv2",
- "description": "Initscripts provide the basic system startup initialization scripts for the system. These scripts include actions such as filesystem mounting, fsck, RTC manipulation and other actions routinely performed at system startup. In addition, the scripts are also used during system shutdown to reverse the actions performed at startup.",
- "recipe": 113,
- "summary": "SysV init scripts",
- "version": "1.0",
- "build": 1,
- "size": 25206,
- "section": "base",
- "revision": "r141"
- }
-},
-{
- "pk": 27,
- "model": "orm.package",
- "fields": {
- "installed_size": 0,
- "name": "packagegroup-core-boot",
- "license": "MIT",
- "description": "The minimal set of packages required to boot the system",
- "recipe": 17,
- "summary": "Minimal boot requirements",
- "version": "1.0",
- "build": 1,
- "size": 0,
- "section": "base",
- "revision": "r11"
- }
-},
-{
- "pk": 28,
- "model": "orm.package",
- "fields": {
- "installed_size": 1024,
- "name": "initscripts-functions",
- "license": "GPLv2",
- "description": "Initscripts provide the basic system startup initialization scripts for the system. These scripts include actions such as filesystem mounting, fsck, RTC manipulation and other actions routinely performed at system startup. In addition, the scripts are also used during system shutdown to reverse the actions performed at startup.",
- "recipe": 113,
- "summary": "SysV init scripts",
- "version": "1.0",
- "build": 1,
- "size": 1408,
- "section": "base",
- "revision": "r141"
- }
-},
-{
- "pk": 29,
- "model": "orm.package",
- "fields": {
- "installed_size": 0,
- "name": "base-passwd",
- "license": "GPLv2+",
- "description": "The master copies of the user database files (/etc/passwd and /etc/group). The update-passwd tool is also provided to keep the system databases synchronized with these master files.",
- "recipe": 140,
- "summary": "Base system master password/group files.",
- "version": "3.5.29",
- "build": 1,
- "size": 0,
- "section": "base",
- "revision": "r0"
- }
-},
-{
- "pk": 1,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 1
- }
-},
-{
- "pk": 2,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 14,
- "target": 1,
- "dep_type": 7,
- "package": 1
- }
-},
-{
- "pk": 3,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 5,
- "target": 1,
- "dep_type": 7,
- "package": 1
- }
-},
-{
- "pk": 4,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 1
- }
-},
-{
- "pk": 5,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 7,
- "target": 1,
- "dep_type": 6,
- "package": 1
- }
-},
-{
- "pk": 6,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 16,
- "target": 1,
- "dep_type": 7,
- "package": 1
- }
-},
-{
- "pk": 7,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 2
- }
-},
-{
- "pk": 8,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 2
- }
-},
-{
- "pk": 9,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 3
- }
-},
-{
- "pk": 10,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 21,
- "target": 1,
- "dep_type": 6,
- "package": 3
- }
-},
-{
- "pk": 11,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 3
- }
-},
-{
- "pk": 12,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 12,
- "target": 1,
- "dep_type": 6,
- "package": 3
- }
-},
-{
- "pk": 13,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 23,
- "target": 1,
- "dep_type": 7,
- "package": 3
- }
-},
-{
- "pk": 14,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 8,
- "target": 1,
- "dep_type": 7,
- "package": 3
- }
-},
-{
- "pk": 15,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 16,
- "target": 1,
- "dep_type": 7,
- "package": 3
- }
-},
-{
- "pk": 16,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 4
- }
-},
-{
- "pk": 17,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 28,
- "target": 1,
- "dep_type": 6,
- "package": 4
- }
-},
-{
- "pk": 18,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 4
- }
-},
-{
- "pk": 19,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 20,
- "target": 1,
- "dep_type": 6,
- "package": 4
- }
-},
-{
- "pk": 20,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 18,
- "target": 1,
- "dep_type": 6,
- "package": 4
- }
-},
-{
- "pk": 21,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 7,
- "target": 1,
- "dep_type": 6,
- "package": 4
- }
-},
-{
- "pk": 22,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 5
- }
-},
-{
- "pk": 23,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 7
- }
-},
-{
- "pk": 24,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 21,
- "target": 1,
- "dep_type": 6,
- "package": 8
- }
-},
-{
- "pk": 25,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 8
- }
-},
-{
- "pk": 26,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 12,
- "target": 1,
- "dep_type": 6,
- "package": 8
- }
-},
-{
- "pk": 27,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 9
- }
-},
-{
- "pk": 28,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 24,
- "target": 1,
- "dep_type": 7,
- "package": 9
- }
-},
-{
- "pk": 29,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 9
- }
-},
-{
- "pk": 30,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 16,
- "target": 1,
- "dep_type": 7,
- "package": 9
- }
-},
-{
- "pk": 31,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 11
- }
-},
-{
- "pk": 32,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 10,
- "target": 1,
- "dep_type": 6,
- "package": 11
- }
-},
-{
- "pk": 33,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 16,
- "target": 1,
- "dep_type": 7,
- "package": 11
- }
-},
-{
- "pk": 34,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 12
- }
-},
-{
- "pk": 35,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 12
- }
-},
-{
- "pk": 36,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 2,
- "target": 1,
- "dep_type": 6,
- "package": 12
- }
-},
-{
- "pk": 37,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 14
- }
-},
-{
- "pk": 38,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 7,
- "target": 1,
- "dep_type": 6,
- "package": 14
- }
-},
-{
- "pk": 39,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 15
- }
-},
-{
- "pk": 40,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 16
- }
-},
-{
- "pk": 41,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 17
- }
-},
-{
- "pk": 42,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 16,
- "target": 1,
- "dep_type": 7,
- "package": 17
- }
-},
-{
- "pk": 43,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 18
- }
-},
-{
- "pk": 44,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 18
- }
-},
-{
- "pk": 45,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 7,
- "target": 1,
- "dep_type": 6,
- "package": 18
- }
-},
-{
- "pk": 46,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 19
- }
-},
-{
- "pk": 47,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 19
- }
-},
-{
- "pk": 48,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 20
- }
-},
-{
- "pk": 49,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 21
- }
-},
-{
- "pk": 50,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 21
- }
-},
-{
- "pk": 51,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 25,
- "target": 1,
- "dep_type": 6,
- "package": 21
- }
-},
-{
- "pk": 52,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 22
- }
-},
-{
- "pk": 53,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 16,
- "target": 1,
- "dep_type": 7,
- "package": 22
- }
-},
-{
- "pk": 54,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 23
- }
-},
-{
- "pk": 55,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 24
- }
-},
-{
- "pk": 56,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 13,
- "target": 1,
- "dep_type": 6,
- "package": 24
- }
-},
-{
- "pk": 57,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 25
- }
-},
-{
- "pk": 58,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 19,
- "target": 1,
- "dep_type": 6,
- "package": 25
- }
-},
-{
- "pk": 59,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 26
- }
-},
-{
- "pk": 60,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 28,
- "target": 1,
- "dep_type": 6,
- "package": 26
- }
-},
-{
- "pk": 61,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 6,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 62,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 29,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 63,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 64,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 15,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 65,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 11,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 66,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 26,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 67,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 17,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 68,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 10,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 69,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 4,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 70,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 3,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 71,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 7,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 72,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 9,
- "target": 1,
- "dep_type": 6,
- "package": 27
- }
-},
-{
- "pk": 73,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 28
- }
-},
-{
- "pk": 74,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 7,
- "target": 1,
- "dep_type": 6,
- "package": 28
- }
-},
-{
- "pk": 75,
- "model": "orm.package_dependency",
- "fields": {
- "depends_on": 1,
- "target": 1,
- "dep_type": 6,
- "package": 29
- }
-},
-{
- "pk": 1,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 1
- }
-},
-{
- "pk": 2,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 2
- }
-},
-{
- "pk": 3,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 3
- }
-},
-{
- "pk": 4,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 4
- }
-},
-{
- "pk": 5,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 5
- }
-},
-{
- "pk": 6,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 6
- }
-},
-{
- "pk": 7,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 7
- }
-},
-{
- "pk": 8,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 8
- }
-},
-{
- "pk": 9,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 9
- }
-},
-{
- "pk": 10,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 10
- }
-},
-{
- "pk": 11,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 11
- }
-},
-{
- "pk": 12,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 12
- }
-},
-{
- "pk": 13,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 13
- }
-},
-{
- "pk": 14,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 14
- }
-},
-{
- "pk": 15,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 15
- }
-},
-{
- "pk": 16,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 16
- }
-},
-{
- "pk": 17,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 17
- }
-},
-{
- "pk": 18,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 18
- }
-},
-{
- "pk": 19,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 19
- }
-},
-{
- "pk": 20,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 20
- }
-},
-{
- "pk": 21,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 21
- }
-},
-{
- "pk": 22,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 22
- }
-},
-{
- "pk": 23,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 23
- }
-},
-{
- "pk": 24,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 24
- }
-},
-{
- "pk": 25,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 25
- }
-},
-{
- "pk": 26,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 26
- }
-},
-{
- "pk": 27,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 27
- }
-},
-{
- "pk": 28,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 28
- }
-},
-{
- "pk": 29,
- "model": "orm.target_installed_package",
- "fields": {
- "target": 1,
- "package": 29
- }
-},
-{
- "pk": 1,
- "model": "orm.package_file",
- "fields": {
- "path": "/bin/busybox.nosuid",
- "size": 511116,
- "package": 1
- }
-},
-{
- "pk": 2,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/busybox.links.nosuid",
- "size": 2234,
- "package": 1
- }
-},
-{
- "pk": 3,
- "model": "orm.package_file",
- "fields": {
- "path": "/bin/busybox.suid",
- "size": 47184,
- "package": 1
- }
-},
-{
- "pk": 4,
- "model": "orm.package_file",
- "fields": {
- "path": "/bin/sh",
- "size": 14,
- "package": 1
- }
-},
-{
- "pk": 5,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/busybox.links.suid",
- "size": 91,
- "package": 1
- }
-},
-{
- "pk": 6,
- "model": "orm.package_file",
- "fields": {
- "path": "/bin/busybox",
- "size": 14,
- "package": 1
- }
-},
-{
- "pk": 7,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libz.so.1",
- "size": 13,
- "package": 2
- }
-},
-{
- "pk": 8,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libz.so.1.2.8",
- "size": 88096,
- "package": 2
- }
-},
-{
- "pk": 9,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/60-persistent-alsa.rules",
- "size": 616,
- "package": 3
- }
-},
-{
- "pk": 10,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/fujitsu-esprimo_mobile_v6",
- "size": 38,
- "package": 3
- }
-},
-{
- "pk": 11,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/fujitsu-esprimo_mobile_v5",
- "size": 70,
- "package": 3
- }
-},
-{
- "pk": 12,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/mtd_probe",
- "size": 4192,
- "package": 3
- }
-},
-{
- "pk": 13,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/fujitsu-amilo_pro_v3205",
- "size": 82,
- "package": 3
- }
-},
-{
- "pk": 14,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/maxdata-pro_7000",
- "size": 139,
- "package": 3
- }
-},
-{
- "pk": 15,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/60-persistent-input.rules",
- "size": 2400,
- "package": 3
- }
-},
-{
- "pk": 16,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/toshiba-satellite_a110",
- "size": 158,
- "package": 3
- }
-},
-{
- "pk": 17,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/hewlett-packard-tablet",
- "size": 82,
- "package": 3
- }
-},
-{
- "pk": 18,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/lenovo-thinkpad_x200_tablet",
- "size": 138,
- "package": 3
- }
-},
-{
- "pk": 19,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/acer-aspire_8930",
- "size": 157,
- "package": 3
- }
-},
-{
- "pk": 20,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/samsung-sq1us",
- "size": 60,
- "package": 3
- }
-},
-{
- "pk": 21,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/78-sound-card.rules",
- "size": 4174,
- "package": 3
- }
-},
-{
- "pk": 22,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/udev",
- "size": 4278,
- "package": 3
- }
-},
-{
- "pk": 23,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/75-probe_mtd.rules",
- "size": 255,
- "package": 3
- }
-},
-{
- "pk": 24,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/ata_id",
- "size": 18764,
- "package": 3
- }
-},
-{
- "pk": 25,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/compaq-e_evo",
- "size": 54,
- "package": 3
- }
-},
-{
- "pk": 26,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/acer-aspire_5720",
- "size": 163,
- "package": 3
- }
-},
-{
- "pk": 27,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/95-udev-late.rules",
- "size": 155,
- "package": 3
- }
-},
-{
- "pk": 28,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/v4l_id",
- "size": 4024,
- "package": 3
- }
-},
-{
- "pk": 29,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/medionnb-a555",
- "size": 103,
- "package": 3
- }
-},
-{
- "pk": 30,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/collect",
- "size": 15216,
- "package": 3
- }
-},
-{
- "pk": 31,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/60-persistent-storage.rules",
- "size": 5622,
- "package": 3
- }
-},
-{
- "pk": 32,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/micro-star",
- "size": 331,
- "package": 3
- }
-},
-{
- "pk": 33,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/samsung-other",
- "size": 476,
- "package": 3
- }
-},
-{
- "pk": 34,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/hewlett-packard",
- "size": 262,
- "package": 3
- }
-},
-{
- "pk": 35,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/80-drivers.rules",
- "size": 565,
- "package": 3
- }
-},
-{
- "pk": 36,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/module-lenovo",
- "size": 439,
- "package": 3
- }
-},
-{
- "pk": 37,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/medion-fid2060",
- "size": 60,
- "package": 3
- }
-},
-{
- "pk": 38,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/lg-x110",
- "size": 324,
- "package": 3
- }
-},
-{
- "pk": 39,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/lenovo-ideapad",
- "size": 399,
- "package": 3
- }
-},
-{
- "pk": 40,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/acer-aspire_5920g",
- "size": 78,
- "package": 3
- }
-},
-{
- "pk": 41,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/oqo-model2",
- "size": 71,
- "package": 3
- }
-},
-{
- "pk": 42,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/toshiba-satellite_m30x",
- "size": 118,
- "package": 3
- }
-},
-{
- "pk": 43,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/lenovo-thinkpad-usb-keyboard-trackpoint",
- "size": 381,
- "package": 3
- }
-},
-{
- "pk": 44,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/50-udev-default.rules",
- "size": 3652,
- "package": 3
- }
-},
-{
- "pk": 45,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/olpc-xo",
- "size": 1223,
- "package": 3
- }
-},
-{
- "pk": 46,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/60-persistent-storage-tape.rules",
- "size": 1420,
- "package": 3
- }
-},
-{
- "pk": 47,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/logitech-wave",
- "size": 495,
- "package": 3
- }
-},
-{
- "pk": 48,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/genius-slimstar-320",
- "size": 720,
- "package": 3
- }
-},
-{
- "pk": 49,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/logitech-wave-cordless",
- "size": 316,
- "package": 3
- }
-},
-{
- "pk": 50,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/findkeyboards",
- "size": 2613,
- "package": 3
- }
-},
-{
- "pk": 51,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymap",
- "size": 30652,
- "package": 3
- }
-},
-{
- "pk": 52,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/inventec-symphony_6.0_7.0",
- "size": 22,
- "package": 3
- }
-},
-{
- "pk": 53,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/61-accelerometer.rules",
- "size": 166,
- "package": 3
- }
-},
-{
- "pk": 54,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/75-net-description.rules",
- "size": 570,
- "package": 3
- }
-},
-{
- "pk": 55,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/force-release/common-volume-keys",
- "size": 45,
- "package": 3
- }
-},
-{
- "pk": 56,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/95-keymap.rules",
- "size": 11643,
- "package": 3
- }
-},
-{
- "pk": 57,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/zepto-znote",
- "size": 495,
- "package": 3
- }
-},
-{
- "pk": 58,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/95-keyboard-force-release.rules",
- "size": 3328,
- "package": 3
- }
-},
-{
- "pk": 59,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/fujitsu-amilo_si_1520",
- "size": 84,
- "package": 3
- }
-},
-{
- "pk": 60,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/75-tty-description.rules",
- "size": 570,
- "package": 3
- }
-},
-{
- "pk": 61,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/force-release/samsung-other",
- "size": 317,
- "package": 3
- }
-},
-{
- "pk": 62,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/hewlett-packard-2510p_2530p",
- "size": 47,
- "package": 3
- }
-},
-{
- "pk": 63,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/acer-travelmate_c300",
- "size": 110,
- "package": 3
- }
-},
-{
- "pk": 64,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/onkyo",
- "size": 316,
- "package": 3
- }
-},
-{
- "pk": 65,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/acer",
- "size": 649,
- "package": 3
- }
-},
-{
- "pk": 66,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/hewlett-packard-tx2",
- "size": 104,
- "package": 3
- }
-},
-{
- "pk": 67,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/scsi_id",
- "size": 29280,
- "package": 3
- }
-},
-{
- "pk": 68,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/force-release/hp-other",
- "size": 94,
- "package": 3
- }
-},
-{
- "pk": 69,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/hewlett-packard-compaq_elitebook",
- "size": 59,
- "package": 3
- }
-},
-{
- "pk": 70,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/logitech-wave-pro-cordless",
- "size": 198,
- "package": 3
- }
-},
-{
- "pk": 71,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/acer-aspire_6920",
- "size": 86,
- "package": 3
- }
-},
-{
- "pk": 72,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/samsung-sx20s",
- "size": 67,
- "package": 3
- }
-},
-{
- "pk": 73,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/dell-latitude-xt2",
- "size": 115,
- "package": 3
- }
-},
-{
- "pk": 74,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/hewlett-packard-presario-2100",
- "size": 38,
- "package": 3
- }
-},
-{
- "pk": 75,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/module-asus-w3j",
- "size": 174,
- "package": 3
- }
-},
-{
- "pk": 76,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/fujitsu-amilo_pa_2548",
- "size": 41,
- "package": 3
- }
-},
-{
- "pk": 77,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/module-sony-old",
- "size": 23,
- "package": 3
- }
-},
-{
- "pk": 78,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/force-release/dell-touchpad",
- "size": 5,
- "package": 3
- }
-},
-{
- "pk": 79,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/dell",
- "size": 1169,
- "package": 3
- }
-},
-{
- "pk": 80,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/cdrom_id",
- "size": 28556,
- "package": 3
- }
-},
-{
- "pk": 81,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/fujitsu-amilo_li_2732",
- "size": 152,
- "package": 3
- }
-},
-{
- "pk": 82,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/udevd",
- "size": 162548,
- "package": 3
- }
-},
-{
- "pk": 83,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/60-persistent-serial.rules",
- "size": 947,
- "package": 3
- }
-},
-{
- "pk": 84,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/60-cdrom_id.rules",
- "size": 646,
- "package": 3
- }
-},
-{
- "pk": 85,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/udev/rules.d/local.rules",
- "size": 1030,
- "package": 3
- }
-},
-{
- "pk": 86,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/module-ibm",
- "size": 418,
- "package": 3
- }
-},
-{
- "pk": 87,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/udev/udev.conf",
- "size": 69,
- "package": 3
- }
-},
-{
- "pk": 88,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/everex-xt5000",
- "size": 139,
- "package": 3
- }
-},
-{
- "pk": 89,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/toshiba-satellite_a100",
- "size": 21,
- "package": 3
- }
-},
-{
- "pk": 90,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/fujitsu-amilo_pro_edition_v3505",
- "size": 101,
- "package": 3
- }
-},
-{
- "pk": 91,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/udev/cache.data",
- "size": 0,
- "package": 3
- }
-},
-{
- "pk": 92,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/42-usb-hid-pm.rules",
- "size": 3025,
- "package": 3
- }
-},
-{
- "pk": 93,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/ibm-thinkpad-usb-keyboard-trackpoint",
- "size": 129,
- "package": 3
- }
-},
-{
- "pk": 94,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/module-sony",
- "size": 188,
- "package": 3
- }
-},
-{
- "pk": 95,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/lenovo-3000",
- "size": 146,
- "package": 3
- }
-},
-{
- "pk": 96,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/rules.d/60-persistent-v4l.rules",
- "size": 769,
- "package": 3
- }
-},
-{
- "pk": 97,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/lenovo-thinkpad_x6_tablet",
- "size": 195,
- "package": 3
- }
-},
-{
- "pk": 98,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/accelerometer",
- "size": 33716,
- "package": 3
- }
-},
-{
- "pk": 99,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keyboard-force-release.sh",
- "size": 621,
- "package": 3
- }
-},
-{
- "pk": 100,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/hewlett-packard-pavilion",
- "size": 78,
- "package": 3
- }
-},
-{
- "pk": 101,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/asus",
- "size": 40,
- "package": 3
- }
-},
-{
- "pk": 102,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/udev/keymaps/module-sony-vgn",
- "size": 152,
- "package": 3
- }
-},
-{
- "pk": 103,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/default/rcS",
- "size": 1040,
- "package": 4
- }
-},
-{
- "pk": 104,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc5.d/S99stop-bootlogd",
- "size": 23,
- "package": 4
- }
-},
-{
- "pk": 105,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/bootlogd",
- "size": 12768,
- "package": 4
- }
-},
-{
- "pk": 106,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/bin/last.sysvinit",
- "size": 14092,
- "package": 4
- }
-},
-{
- "pk": 107,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/bin/utmpdump.sysvinit",
- "size": 8012,
- "package": 4
- }
-},
-{
- "pk": 108,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/init.sysvinit",
- "size": 31396,
- "package": 4
- }
-},
-{
- "pk": 109,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/bin/mesg.sysvinit",
- "size": 4700,
- "package": 4
- }
-},
-{
- "pk": 110,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/bin/lastb",
- "size": 4,
- "package": 4
- }
-},
-{
- "pk": 111,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/rc",
- "size": 4361,
- "package": 4
- }
-},
-{
- "pk": 112,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/bootlogd",
- "size": 1634,
- "package": 4
- }
-},
-{
- "pk": 113,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/reboot.sysvinit",
- "size": 13,
- "package": 4
- }
-},
-{
- "pk": 114,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/runlevel.sysvinit",
- "size": 3584,
- "package": 4
- }
-},
-{
- "pk": 115,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/poweroff.sysvinit",
- "size": 13,
- "package": 4
- }
-},
-{
- "pk": 116,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc2.d/S99stop-bootlogd",
- "size": 23,
- "package": 4
- }
-},
-{
- "pk": 117,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/rcS",
- "size": 525,
- "package": 4
- }
-},
-{
- "pk": 118,
- "model": "orm.package_file",
- "fields": {
- "path": "/bin/mountpoint.sysvinit",
- "size": 4892,
- "package": 4
- }
-},
-{
- "pk": 119,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S07bootlogd",
- "size": 18,
- "package": 4
- }
-},
-{
- "pk": 120,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/shutdown.sysvinit",
- "size": 18348,
- "package": 4
- }
-},
-{
- "pk": 121,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/bin/wall.sysvinit",
- "size": 8200,
- "package": 4
- }
-},
-{
- "pk": 122,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc4.d/S99stop-bootlogd",
- "size": 23,
- "package": 4
- }
-},
-{
- "pk": 123,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/stop-bootlogd",
- "size": 8,
- "package": 4
- }
-},
-{
- "pk": 124,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/telinit",
- "size": 4,
- "package": 4
- }
-},
-{
- "pk": 125,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/fstab-decode",
- "size": 3940,
- "package": 4
- }
-},
-{
- "pk": 126,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc3.d/S99stop-bootlogd",
- "size": 23,
- "package": 4
- }
-},
-{
- "pk": 127,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/halt.sysvinit",
- "size": 11992,
- "package": 4
- }
-},
-{
- "pk": 128,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/udhcpc.d/50default",
- "size": 2549,
- "package": 5
- }
-},
-{
- "pk": 129,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/share/udhcpc/default.script",
- "size": 49,
- "package": 5
- }
-},
-{
- "pk": 130,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/inputrc",
- "size": 1633,
- "package": 6
- }
-},
-{
- "pk": 131,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/host.conf",
- "size": 26,
- "package": 6
- }
-},
-{
- "pk": 132,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/mtab",
- "size": 12,
- "package": 6
- }
-},
-{
- "pk": 133,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/filesystems",
- "size": 38,
- "package": 6
- }
-},
-{
- "pk": 134,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/issue.net",
- "size": 64,
- "package": 6
- }
-},
-{
- "pk": 135,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/skel/.profile",
- "size": 152,
- "package": 6
- }
-},
-{
- "pk": 136,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/skel/.bashrc",
- "size": 410,
- "package": 6
- }
-},
-{
- "pk": 137,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/issue",
- "size": 67,
- "package": 6
- }
-},
-{
- "pk": 138,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/fstab",
- "size": 717,
- "package": 6
- }
-},
-{
- "pk": 139,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/default/usbd",
- "size": 0,
- "package": 6
- }
-},
-{
- "pk": 140,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/hostname",
- "size": 8,
- "package": 6
- }
-},
-{
- "pk": 141,
- "model": "orm.package_file",
- "fields": {
- "path": "/var/lock",
- "size": 11,
- "package": 6
- }
-},
-{
- "pk": 142,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/profile",
- "size": 847,
- "package": 6
- }
-},
-{
- "pk": 143,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/shells",
- "size": 42,
- "package": 6
- }
-},
-{
- "pk": 144,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/nsswitch.conf",
- "size": 465,
- "package": 6
- }
-},
-{
- "pk": 145,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/motd",
- "size": 0,
- "package": 6
- }
-},
-{
- "pk": 146,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/bin/update-alternatives",
- "size": 4267,
- "package": 7
- }
-},
-{
- "pk": 147,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/bin/udevadm",
- "size": 163256,
- "package": 8
- }
-},
-{
- "pk": 148,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/fbsetup",
- "size": 35,
- "package": 9
- }
-},
-{
- "pk": 149,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/v86d",
- "size": 114480,
- "package": 9
- }
-},
-{
- "pk": 150,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/hosts",
- "size": 44,
- "package": 10
- }
-},
-{
- "pk": 151,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/protocols",
- "size": 2932,
- "package": 10
- }
-},
-{
- "pk": 152,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/services",
- "size": 19558,
- "package": 10
- }
-},
-{
- "pk": 153,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rpc",
- "size": 887,
- "package": 10
- }
-},
-{
- "pk": 154,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/network/interfaces",
- "size": 132,
- "package": 11
- }
-},
-{
- "pk": 155,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/network/nm-disabled-eth0",
- "size": 0,
- "package": 11
- }
-},
-{
- "pk": 156,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/networking",
- "size": 1956,
- "package": 11
- }
-},
-{
- "pk": 157,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/network/if-pre-up.d/nfsroot",
- "size": 809,
- "package": 11
- }
-},
-{
- "pk": 158,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/lib/libkmod.so.2",
- "size": 16,
- "package": 12
- }
-},
-{
- "pk": 159,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/lib/libkmod.so.2.2.6",
- "size": 355873,
- "package": 12
- }
-},
-{
- "pk": 160,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/modules/3.10.19-yocto-standard/modules.builtin",
- "size": 7281,
- "package": 13
- }
-},
-{
- "pk": 161,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/modules/3.10.19-yocto-standard/modules.order",
- "size": 10284,
- "package": 13
- }
-},
-{
- "pk": 162,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/syslog.busybox",
- "size": 1711,
- "package": 14
- }
-},
-{
- "pk": 163,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/syslog.conf.busybox",
- "size": 69,
- "package": 14
- }
-},
-{
- "pk": 164,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/syslog-startup.conf.busybox",
- "size": 651,
- "package": 14
- }
-},
-{
- "pk": 165,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/hwclock.sh",
- "size": 2541,
- "package": 15
- }
-},
-{
- "pk": 166,
- "model": "orm.package_file",
- "fields": {
- "path": "/usr/sbin/update-rc.d",
- "size": 4804,
- "package": 16
- }
-},
-{
- "pk": 167,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/modutils.sh",
- "size": 1223,
- "package": 17
- }
-},
-{
- "pk": 168,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/killall5",
- "size": 15840,
- "package": 18
- }
-},
-{
- "pk": 169,
- "model": "orm.package_file",
- "fields": {
- "path": "/bin/pidof.sysvinit",
- "size": 14,
- "package": 18
- }
-},
-{
- "pk": 170,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libnss_compat-2.18.so",
- "size": 30492,
- "package": 19
- }
-},
-{
- "pk": 171,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libresolv-2.18.so",
- "size": 83748,
- "package": 19
- }
-},
-{
- "pk": 172,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libnss_dns-2.18.so",
- "size": 22032,
- "package": 19
- }
-},
-{
- "pk": 173,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libpthread.so.0",
- "size": 18,
- "package": 19
- }
-},
-{
- "pk": 174,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libpthread-2.18.so",
- "size": 100320,
- "package": 19
- }
-},
-{
- "pk": 175,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libnss_compat.so.2",
- "size": 21,
- "package": 19
- }
-},
-{
- "pk": 176,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libc-2.18.so",
- "size": 1512908,
- "package": 19
- }
-},
-{
- "pk": 177,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libcrypt.so.1",
- "size": 16,
- "package": 19
- }
-},
-{
- "pk": 178,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libanl.so.1",
- "size": 14,
- "package": 19
- }
-},
-{
- "pk": 179,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/librt-2.18.so",
- "size": 30624,
- "package": 19
- }
-},
-{
- "pk": 180,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libm.so.6",
- "size": 12,
- "package": 19
- }
-},
-{
- "pk": 181,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libm-2.18.so",
- "size": 280016,
- "package": 19
- }
-},
-{
- "pk": 182,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libBrokenLocale-2.18.so",
- "size": 5552,
- "package": 19
- }
-},
-{
- "pk": 183,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libBrokenLocale.so.1",
- "size": 23,
- "package": 19
- }
-},
-{
- "pk": 184,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libanl-2.18.so",
- "size": 13964,
- "package": 19
- }
-},
-{
- "pk": 185,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libcrypt-2.18.so",
- "size": 38388,
- "package": 19
- }
-},
-{
- "pk": 186,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libresolv.so.2",
- "size": 17,
- "package": 19
- }
-},
-{
- "pk": 187,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libnsl-2.18.so",
- "size": 91968,
- "package": 19
- }
-},
-{
- "pk": 188,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libutil.so.1",
- "size": 15,
- "package": 19
- }
-},
-{
- "pk": 189,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libdl-2.18.so",
- "size": 13840,
- "package": 19
- }
-},
-{
- "pk": 190,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/ld-2.18.so",
- "size": 134312,
- "package": 19
- }
-},
-{
- "pk": 191,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/ld-linux.so.2",
- "size": 10,
- "package": 19
- }
-},
-{
- "pk": 192,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/ld.so.conf",
- "size": 0,
- "package": 19
- }
-},
-{
- "pk": 193,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libdl.so.2",
- "size": 13,
- "package": 19
- }
-},
-{
- "pk": 194,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/librt.so.1",
- "size": 13,
- "package": 19
- }
-},
-{
- "pk": 195,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libnss_dns.so.2",
- "size": 18,
- "package": 19
- }
-},
-{
- "pk": 196,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libnsl.so.1",
- "size": 14,
- "package": 19
- }
-},
-{
- "pk": 197,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libutil-2.18.so",
- "size": 9752,
- "package": 19
- }
-},
-{
- "pk": 198,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libc.so.6",
- "size": 12,
- "package": 19
- }
-},
-{
- "pk": 199,
- "model": "orm.package_file",
- "fields": {
- "path": "/sbin/ldconfig",
- "size": 689948,
- "package": 19
- }
-},
-{
- "pk": 200,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libnss_files-2.18.so",
- "size": 50840,
- "package": 19
- }
-},
-{
- "pk": 201,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libnss_files.so.2",
- "size": 20,
- "package": 19
- }
-},
-{
- "pk": 202,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/inittab",
- "size": 1075,
- "package": 20
- }
-},
-{
- "pk": 203,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libblkid.so.1.1.0",
- "size": 233796,
- "package": 21
- }
-},
-{
- "pk": 204,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libblkid.so.1",
- "size": 17,
- "package": 21
- }
-},
-{
- "pk": 205,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/run-postinsts",
- "size": 1103,
- "package": 22
- }
-},
-{
- "pk": 206,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/default/udev-cache",
- "size": 99,
- "package": 23
- }
-},
-{
- "pk": 207,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/udev-cache",
- "size": 782,
- "package": 23
- }
-},
-{
- "pk": 208,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/modules/3.10.19-yocto-standard/kernel/drivers/video/uvesafb.ko",
- "size": 33264,
- "package": 24
- }
-},
-{
- "pk": 209,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libuuid.so.1",
- "size": 16,
- "package": 25
- }
-},
-{
- "pk": 210,
- "model": "orm.package_file",
- "fields": {
- "path": "/lib/libuuid.so.1.3.0",
- "size": 14188,
- "package": 25
- }
-},
-{
- "pk": 211,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc6.d/S40umountfs",
- "size": 18,
- "package": 26
- }
-},
-{
- "pk": 212,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S55bootmisc.sh",
- "size": 21,
- "package": 26
- }
-},
-{
- "pk": 213,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/umountfs",
- "size": 516,
- "package": 26
- }
-},
-{
- "pk": 214,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/bootmisc.sh",
- "size": 1584,
- "package": 26
- }
-},
-{
- "pk": 215,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S03mountall.sh",
- "size": 21,
- "package": 26
- }
-},
-{
- "pk": 216,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S29read-only-rootfs-hook.sh",
- "size": 34,
- "package": 26
- }
-},
-{
- "pk": 217,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S02banner.sh",
- "size": 19,
- "package": 26
- }
-},
-{
- "pk": 218,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/single",
- "size": 578,
- "package": 26
- }
-},
-{
- "pk": 219,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc4.d/S99rmnologin.sh",
- "size": 22,
- "package": 26
- }
-},
-{
- "pk": 220,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc5.d/S99rmnologin.sh",
- "size": 22,
- "package": 26
- }
-},
-{
- "pk": 221,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc6.d/S25save-rtc.sh",
- "size": 21,
- "package": 26
- }
-},
-{
- "pk": 222,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S38dmesg.sh",
- "size": 18,
- "package": 26
- }
-},
-{
- "pk": 223,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc6.d/S31umountnfs.sh",
- "size": 22,
- "package": 26
- }
-},
-{
- "pk": 224,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S30urandom",
- "size": 17,
- "package": 26
- }
-},
-{
- "pk": 225,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/sendsigs",
- "size": 438,
- "package": 26
- }
-},
-{
- "pk": 226,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/checkroot.sh",
- "size": 3581,
- "package": 26
- }
-},
-{
- "pk": 227,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc6.d/S30urandom",
- "size": 17,
- "package": 26
- }
-},
-{
- "pk": 228,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S39hostname.sh",
- "size": 21,
- "package": 26
- }
-},
-{
- "pk": 229,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/sysfs.sh",
- "size": 660,
- "package": 26
- }
-},
-{
- "pk": 230,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/default/volatiles/00_core",
- "size": 1579,
- "package": 26
- }
-},
-{
- "pk": 231,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc6.d/S20sendsigs",
- "size": 18,
- "package": 26
- }
-},
-{
- "pk": 232,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc5.d/S15mountnfs.sh",
- "size": 21,
- "package": 26
- }
-},
-{
- "pk": 233,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc0.d/S90halt",
- "size": 14,
- "package": 26
- }
-},
-{
- "pk": 234,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc2.d/S99rmnologin.sh",
- "size": 22,
- "package": 26
- }
-},
-{
- "pk": 235,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc0.d/S31umountnfs.sh",
- "size": 22,
- "package": 26
- }
-},
-{
- "pk": 236,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/populate-volatile.sh",
- "size": 6338,
- "package": 26
- }
-},
-{
- "pk": 237,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S06checkroot.sh",
- "size": 22,
- "package": 26
- }
-},
-{
- "pk": 238,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/umountnfs.sh",
- "size": 711,
- "package": 26
- }
-},
-{
- "pk": 239,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/banner.sh",
- "size": 492,
- "package": 26
- }
-},
-{
- "pk": 240,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S38devpts.sh",
- "size": 19,
- "package": 26
- }
-},
-{
- "pk": 241,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc2.d/S15mountnfs.sh",
- "size": 21,
- "package": 26
- }
-},
-{
- "pk": 242,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc3.d/S15mountnfs.sh",
- "size": 21,
- "package": 26
- }
-},
-{
- "pk": 243,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc0.d/S30urandom",
- "size": 17,
- "package": 26
- }
-},
-{
- "pk": 244,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc6.d/S90reboot",
- "size": 16,
- "package": 26
- }
-},
-{
- "pk": 245,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc1.d/S31umountnfs.sh",
- "size": 22,
- "package": 26
- }
-},
-{
- "pk": 246,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/default/devpts",
- "size": 93,
- "package": 26
- }
-},
-{
- "pk": 247,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/halt",
- "size": 510,
- "package": 26
- }
-},
-{
- "pk": 248,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc0.d/S40umountfs",
- "size": 18,
- "package": 26
- }
-},
-{
- "pk": 249,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc0.d/S25save-rtc.sh",
- "size": 21,
- "package": 26
- }
-},
-{
- "pk": 250,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S37populate-volatile.sh",
- "size": 30,
- "package": 26
- }
-},
-{
- "pk": 251,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc3.d/S99rmnologin.sh",
- "size": 22,
- "package": 26
- }
-},
-{
- "pk": 252,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/devpts.sh",
- "size": 526,
- "package": 26
- }
-},
-{
- "pk": 253,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/hostname.sh",
- "size": 577,
- "package": 26
- }
-},
-{
- "pk": 254,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/dmesg.sh",
- "size": 353,
- "package": 26
- }
-},
-{
- "pk": 255,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/logrotate-dmesg.conf",
- "size": 121,
- "package": 26
- }
-},
-{
- "pk": 256,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/rmnologin.sh",
- "size": 585,
- "package": 26
- }
-},
-{
- "pk": 257,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/mountall.sh",
- "size": 859,
- "package": 26
- }
-},
-{
- "pk": 258,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/urandom",
- "size": 1349,
- "package": 26
- }
-},
-{
- "pk": 259,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc4.d/S15mountnfs.sh",
- "size": 21,
- "package": 26
- }
-},
-{
- "pk": 260,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/reboot",
- "size": 289,
- "package": 26
- }
-},
-{
- "pk": 261,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rcS.d/S02sysfs.sh",
- "size": 18,
- "package": 26
- }
-},
-{
- "pk": 262,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/save-rtc.sh",
- "size": 321,
- "package": 26
- }
-},
-{
- "pk": 263,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/rc0.d/S20sendsigs",
- "size": 18,
- "package": 26
- }
-},
-{
- "pk": 264,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/read-only-rootfs-hook.sh",
- "size": 968,
- "package": 26
- }
-},
-{
- "pk": 265,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/mountnfs.sh",
- "size": 1522,
- "package": 26
- }
-},
-{
- "pk": 266,
- "model": "orm.package_file",
- "fields": {
- "path": "/etc/init.d/functions.initscripts",
- "size": 1408,
- "package": 28
- }
-},
-{
- "pk": 1,
- "model": "orm.recipe",
- "fields": {
- "description": "BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete POSIX environment for any small or embedded system.",
- "license": "GPLv2 & bzip2",
- "bugtracker": "https://bugs.busybox.net/",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Tiny versions of many common UNIX utilities in a single small executable.",
- "version": "1.21.1-r0",
- "homepage": "http://www.busybox.net",
- "file_path": "/home/andreea/poky/meta/recipes-core/busybox/busybox_1.21.1.bb",
- "name": "busybox"
- }
-},
-{
- "pk": 2,
- "model": "orm.recipe",
- "fields": {
- "description": "Tools to change and administer password and group data.",
- "license": "BSD | Artistic-1.0",
- "bugtracker": "https://alioth.debian.org/tracker/?group_id=30580",
- "section": "base utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Tools to change and administer password and group data",
- "version": "4.1.4.3-r13",
- "homepage": "http://pkg-shadow.alioth.debian.org",
- "file_path": "/home/andreea/poky/meta/recipes-extended/shadow/shadow_4.1.4.3.bb",
- "name": "shadow"
- }
-},
-{
- "pk": 3,
- "model": "orm.recipe",
- "fields": {
- "description": "Helper utilities needed by the runqemu script.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Helper utilities needed by the runqemu script",
- "version": "1.0-r1",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb",
- "name": "qemu-helper-native"
- }
-},
-{
- "pk": 4,
- "model": "orm.recipe",
- "fields": {
- "description": "This package is required to boot in most configurations. It provides the /sbin/init program. This is the first process started on boot, and the last process terminated before the system halts.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "System-V like init",
- "version": "2.88dsf-r11",
- "homepage": "http://savannah.nongnu.org/projects/sysvinit/",
- "file_path": "/home/andreea/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb",
- "name": "sysvinit"
- }
-},
-{
- "pk": 5,
- "model": "orm.recipe",
- "fields": {
- "description": "GNU gettext is a set of tools that provides a framework to help other programs produce multi-lingual messages. These tools include a set of conventions about how programs should be written to support message catalogs, a directory and file naming organization for the message catalogs themselves, a runtime library supporting the retrieval of translated messages, and a few stand-alone programs to massage in various ways the sets of translatable and already translated strings.",
- "license": "GPLv3+ & LGPL-2.1+",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Utilities and libraries for producing multi-lingual messages",
- "version": "0.18.3.1-r0",
- "homepage": "http://www.gnu.org/software/gettext/gettext.html",
- "file_path": "/home/andreea/poky/meta/recipes-core/gettext/gettext_0.18.3.1.bb",
- "name": "gettext-native"
- }
-},
-{
- "pk": 6,
- "model": "orm.recipe",
- "fields": {
- "description": "SVr4 and XSI-Curses compatible curses library and terminfo tools including tic, infocmp, captoinfo. Supports color, multiple highlights, forms-drawing characters, and automatic recognition of keypad and function-key sequences. Extensions include resizable windows and mouse support on both xterm and Linux console using the gpm library.",
- "license": "MIT",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "The New Curses library",
- "version": "5.9-r15.1",
- "homepage": "http://www.gnu.org/software/ncurses/ncurses.html",
- "file_path": "/home/andreea/poky/meta/recipes-core/ncurses/ncurses_5.9.bb",
- "name": "ncurses"
- }
-},
-{
- "pk": 7,
- "model": "orm.recipe",
- "fields": {
- "description": "Key/value database library with extensible hashing.",
- "license": "GPLv3",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Key/value database library with extensible hashing",
- "version": "1.11-r0",
- "homepage": "http://www.gnu.org/software/gdbm/",
- "file_path": "/home/andreea/poky/meta/recipes-support/gdbm/gdbm_1.11.bb",
- "name": "gdbm"
- }
-},
-{
- "pk": 8,
- "model": "orm.recipe",
- "fields": {
- "description": "Contains the m4 macros sufficient to support building autoconf/automake. This provides a significant build time speedup by the removal of gettext-native from most dependency chains (now only needed for gettext for the target).",
- "license": "FSF-Unlimited",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Minimal gettext for supporting native autoconf/automake",
- "version": "0.18.3.1-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/gettext/gettext-minimal-native_0.18.3.1.bb",
- "name": "gettext-minimal-native"
- }
-},
-{
- "pk": 9,
- "model": "orm.recipe",
- "fields": {
- "description": "Utilities and libraries for handling compiled object files.",
- "license": "(GPLv3 & Elfutils-Exception)",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Utilities and libraries for handling compiled object files",
- "version": "0.155-r0",
- "homepage": "https://fedorahosted.org/elfutils",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/elfutils/elfutils_0.155.bb",
- "name": "elfutils-native"
- }
-},
-{
- "pk": 10,
- "model": "orm.recipe",
- "fields": {
- "description": "The Ext2 Filesystem Utilities (e2fsprogs) contain all of the standard utilities for creating, fixing, configuring , and debugging ext2 filesystems.",
- "license": "GPLv2 & LGPLv2 & BSD & MIT",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Ext2 Filesystem Utilities",
- "version": "1.42.9-r0",
- "homepage": "http://e2fsprogs.sourceforge.net/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bb",
- "name": "e2fsprogs"
- }
-},
-{
- "pk": 11,
- "model": "orm.recipe",
- "fields": {
- "description": "This is GNU libtool, a generic library support script. Libtool hides the complexity of generating special library types (such as shared libraries) behind a consistent interface.",
- "license": "GPLv2 & LGPLv2.1",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Generic library support script",
- "version": "2.4.2-r6.1",
- "homepage": "http://www.gnu.org/software/libtool/libtool.html",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb",
- "name": "libtool-native"
- }
-},
-{
- "pk": 12,
- "model": "orm.recipe",
- "fields": {
- "description": "A standalone native ldconfig build.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "A standalone native ldconfig build",
- "version": "2.12.1-r2",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/eglibc/ldconfig-native_2.12.1.bb",
- "name": "ldconfig-native"
- }
-},
-{
- "pk": 13,
- "model": "orm.recipe",
- "fields": {
- "description": "Timezone zoneinfo utils (zic, zdump, tzselect).",
- "license": "PD & BSD",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Timezone zoneinfo utils (zic, zdump, tzselect)",
- "version": "2013i-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-extended/tzcode/tzcode-native_2013i.bb",
- "name": "tzcode-native"
- }
-},
-{
- "pk": 14,
- "model": "orm.recipe",
- "fields": {
- "description": "Document type definitions for verification of SGML data files against the DocBook rule set",
- "license": "OASIS",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Document type definitions for verification of SGML data files",
- "version": "3.1-r3.0",
- "homepage": "http://www.docbook.org/sgml/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/docbook-sgml-dtd/docbook-sgml-dtd-3.1-native_3.1.bb",
- "name": "docbook-sgml-dtd-3.1-native"
- }
-},
-{
- "pk": 15,
- "model": "orm.recipe",
- "fields": {
- "description": "Inittab configuration for SysVinit.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Inittab configuration for SysVinit",
- "version": "2.88dsf-r9",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb",
- "name": "sysvinit-inittab"
- }
-},
-{
- "pk": 16,
- "model": "orm.recipe",
- "fields": {
- "description": "An SGML parser used by the OpenJade suite of utilities.",
- "license": "BSD",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "An SGML parser",
- "version": "1.5.2-r1",
- "homepage": "http://openjade.sourceforge.net",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/opensp/opensp_1.5.2.bb",
- "name": "opensp-native"
- }
-},
-{
- "pk": 17,
- "model": "orm.recipe",
- "fields": {
- "description": "The minimal set of packages required to boot the system",
- "license": "MIT",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Minimal boot requirements",
- "version": "1.0-r11",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb",
- "name": "packagegroup-core-boot"
- }
-},
-{
- "pk": 18,
- "model": "orm.recipe",
- "fields": {
- "description": "This package provides the wire protocol for the X Keyboard extension. This extension is used to control options related to keyboard handling and layout.",
- "license": "MIT-style",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "XKB: X Keyboard extension headers",
- "version": "1:1.0.6-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-proto/kbproto_1.0.6.bb",
- "name": "kbproto"
- }
-},
-{
- "pk": 19,
- "model": "orm.recipe",
- "fields": {
- "description": "libusb-0.1 compatible layer for libusb1, a drop-in replacement that aims to look, feel and behave exactly like libusb-0.1",
- "license": "LGPLv2.1+",
- "bugtracker": "http://www.libusb.org/report",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "libusb-0.1 compatibility layer for libusb1",
- "version": "1:0.1.5-r0",
- "homepage": "http://www.libusb.org/",
- "file_path": "/home/andreea/poky/meta/recipes-support/libusb/libusb-compat_0.1.5.bb",
- "name": "libusb-compat"
- }
-},
-{
- "pk": 20,
- "model": "orm.recipe",
- "fields": {
- "description": "Open Package Manager.",
- "license": "GPLv2+",
- "bugtracker": "http://code.google.com/p/opkg/issues/list",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Open Package Manager",
- "version": "1:0.2.0-r0",
- "homepage": "http://code.google.com/p/opkg/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/opkg/opkg_0.2.0.bb",
- "name": "opkg"
- }
-},
-{
- "pk": 21,
- "model": "orm.recipe",
- "fields": {
- "description": "Base configuration files for opkg.",
- "license": "MIT",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Base configuration files for opkg",
- "version": "1.0-r1",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/opkg/opkg-config-base_1.0.bb",
- "name": "opkg-config-base"
- }
-},
-{
- "pk": 22,
- "model": "orm.recipe",
- "fields": {
- "description": "Python bindings for the DBus inter-process communication system.",
- "license": "MIT",
- "bugtracker": "",
- "section": "devel/python",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Python bindings for the DBus inter-process communication system",
- "version": "1.2.0-r0",
- "homepage": "http://www.freedesktop.org/Software/dbus",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/python/python-dbus_1.2.0.bb",
- "name": "python-dbus"
- }
-},
-{
- "pk": 23,
- "model": "orm.recipe",
- "fields": {
- "description": "Berkeley Database v5.",
- "license": "Sleepycat",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Berkeley Database v5",
- "version": "5.3.21-r0",
- "homepage": "http://www.oracle.com/technology/products/berkeley-db/db/index.html",
- "file_path": "/home/andreea/poky/meta/recipes-support/db/db_5.3.21.bb",
- "name": "db-native"
- }
-},
-{
- "pk": 24,
- "model": "orm.recipe",
- "fields": {
- "description": "Installs required headers for OCF-Linux crypto acceleration support.",
- "license": "BSD",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Installs required headers for OCF-Linux crypto acceleration support",
- "version": "20120127-r3.0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-connectivity/openssl/ocf-linux_20120127.bb",
- "name": "ocf-linux-native"
- }
-},
-{
- "pk": 25,
- "model": "orm.recipe",
- "fields": {
- "description": "Arbitrary precision calculator language.",
- "license": "GPLv2+ & LGPLv2.1",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Arbitrary precision calculator language",
- "version": "1.06-r2",
- "homepage": "http://www.gnu.org/software/bc/bc.html",
- "file_path": "/home/andreea/poky/meta/recipes-extended/bc/bc_1.06.bb",
- "name": "bc-native"
- }
-},
-{
- "pk": 26,
- "model": "orm.recipe",
- "fields": {
- "description": "GNU cc and gcc C compilers.",
- "license": "GPL-3.0-with-GCC-exception & GPLv3",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNU cc and gcc C compilers",
- "version": "4.8.2-r0",
- "homepage": "http://www.gnu.org/software/gcc/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/gcc/gcc-cross_4.8.bb",
- "name": "gcc-cross"
- }
-},
-{
- "pk": 27,
- "model": "orm.recipe",
- "fields": {
- "description": "Util-linux includes a suite of basic system administration utilities commonly found on most Linux systems. Some of the more important utilities include disk partitioning, kernel message management, filesystem creation, and system login.",
- "license": "GPLv2+ & LGPLv2.1+ & BSD",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "A suite of basic system administration utilities.",
- "version": "2.23.2-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/util-linux/util-linux_2.23.2.bb",
- "name": "util-linux-native"
- }
-},
-{
- "pk": 28,
- "model": "orm.recipe",
- "fields": {
- "description": "D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a \\\"single instance\\\" application or daemon, and to launch applications and daemons on demand when their services are needed.",
- "license": "AFL-2 | GPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "D-Bus message bus",
- "version": "1.6.18-r0",
- "homepage": "http://dbus.freedesktop.org",
- "file_path": "/home/andreea/poky/meta/recipes-core/dbus/dbus_1.6.18.bb",
- "name": "dbus-native"
- }
-},
-{
- "pk": 29,
- "model": "orm.recipe",
- "fields": {
- "description": "Utilities for managing LZMA compressed files.",
- "license": "GPLv2+ & GPLv3+ & LGPLv2.1+ & PD",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Utilities for managing LZMA compressed files",
- "version": "5.1.3alpha-r0",
- "homepage": "http://tukaani.org/xz/",
- "file_path": "/home/andreea/poky/meta/recipes-extended/xz/xz_5.1.3alpha.bb",
- "name": "xz-native"
- }
-},
-{
- "pk": 30,
- "model": "orm.recipe",
- "fields": {
- "description": "The Device Tree Compiler is a tool used to manipulate the Open-Firmware-like device tree used by PowerPC kernels.",
- "license": "GPLv2 | BSD",
- "bugtracker": "",
- "section": "bootloader",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Device Tree Compiler",
- "version": "1.4.0+gitAUTOINC+65cc4d2748-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-kernel/dtc/dtc_git.bb",
- "name": "dtc-native"
- }
-},
-{
- "pk": 31,
- "model": "orm.recipe",
- "fields": {
- "description": "DSSSL stylesheets used to transform SGML and XML DocBook files.",
- "license": "DSSSL",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "DSSSL stylesheets used to transform SGML and XML DocBook files",
- "version": "1.79-r4",
- "homepage": "http://docbook.sourceforge.net",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/docbook-dsssl-stylesheets/docbook-dsssl-stylesheets-native_1.79.bb",
- "name": "docbook-dsssl-stylesheets-native"
- }
-},
-{
- "pk": 32,
- "model": "orm.recipe",
- "fields": {
- "description": "The Session Management Library (SMlib) is a low-level \\\"C\\\" language interface to XSMP. The purpose of the X Session Management Protocol (XSMP) is to provide a uniform mechanism for users to save and restore their sessions. A session is a group of clients, each of which has a particular state.",
- "license": "MIT-style",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "SM: Session Management library",
- "version": "1:1.2.2-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-lib/libsm_1.2.2.bb",
- "name": "libsm"
- }
-},
-{
- "pk": 33,
- "model": "orm.recipe",
- "fields": {
- "description": "Automake is a tool for automatically generating `Makefile.in' files compliant with the GNU Coding Standards. Automake requires the use of Autoconf.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "A GNU tool for automatically generating Makefiles.",
- "version": "1.14-r0",
- "homepage": "http://www.gnu.org/software/automake/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/automake/automake_1.14.bb",
- "name": "automake-native"
- }
-},
-{
- "pk": 34,
- "model": "orm.recipe",
- "fields": {
- "description": "GNU cc and gcc C compilers.",
- "license": "GPL-3.0-with-GCC-exception & GPLv3",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNU cc and gcc C compilers",
- "version": "4.8.2-r0",
- "homepage": "http://www.gnu.org/software/gcc/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/gcc/gcc-cross-initial_4.8.bb",
- "name": "gcc-cross-initial"
- }
-},
-{
- "pk": 35,
- "model": "orm.recipe",
- "fields": {
- "description": "GNU m4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.",
- "license": "GPLv3",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Traditional Unix macro processor",
- "version": "1.4.17-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/m4/m4-native_1.4.17.bb",
- "name": "m4-native"
- }
-},
-{
- "pk": 36,
- "model": "orm.recipe",
- "fields": {
- "description": "The prelink package contains a utility which modifies ELF shared libraries and executables, so that far fewer relocations need to be resolved at runtime and thus programs come up faster.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "An ELF prelinking utility",
- "version": "1.0+gitAUTOINC+6822ec76aa-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/prelink/prelink_git.bb",
- "name": "prelink-native"
- }
-},
-{
- "pk": 37,
- "model": "orm.recipe",
- "fields": {
- "description": "udev is a daemon which dynamically creates and removes device nodes from /dev/, handles hotplug events and loads drivers at boot time.",
- "license": "GPLv2.0+ & LGPLv2.1+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "/dev/ and hotplug management daemon",
- "version": "182-r7",
- "homepage": "http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html",
- "file_path": "/home/andreea/poky/meta/recipes-core/udev/udev_182.bb",
- "name": "udev"
- }
-},
-{
- "pk": 38,
- "model": "orm.recipe",
- "fields": {
- "description": "GLib bindings for the D-Bus message bus that integrate the D-Bus library with the GLib thread abstraction and main loop.",
- "license": "AFL-2 | GPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "High level language (GLib) binding for D-Bus",
- "version": "0.100.2-r0",
- "homepage": "http://www.freedesktop.org/Software/dbus",
- "file_path": "/home/andreea/poky/meta/recipes-core/dbus/dbus-glib_0.100.2.bb",
- "name": "dbus-glib"
- }
-},
-{
- "pk": 39,
- "model": "orm.recipe",
- "fields": {
- "description": "Embedded GLIBC (EGLIBC) is a variant of the GNU C Library (GLIBC) that is designed to work well on embedded systems. EGLIBC strives to be source and binary compatible with GLIBC. EGLIBC's goals include reduced footprint, configurable components, better support for cross-compilation and cross-testing.",
- "license": "GPLv2 & LGPLv2.1",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Embedded GLIBC (GNU C Library)",
- "version": "2.18-r0",
- "homepage": "http://www.eglibc.org/home",
- "file_path": "/home/andreea/poky/meta/recipes-core/eglibc/eglibc_2.18.bb",
- "name": "eglibc"
- }
-},
-{
- "pk": 40,
- "model": "orm.recipe",
- "fields": {
- "description": "GNU cc and gcc C compilers.",
- "license": "GPL-3.0-with-GCC-exception & GPLv3",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNU cc and gcc C compilers",
- "version": "4.8.2-r0",
- "homepage": "http://www.gnu.org/software/gcc/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/gcc/libgcc_4.8.bb",
- "name": "libgcc"
- }
-},
-{
- "pk": 41,
- "model": "orm.recipe",
- "fields": {
- "description": "Function prototypes for the X protocol C-language Binding (XCB). XCB is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.",
- "license": "MIT",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=XCB",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "XCB: The X protocol C binding headers",
- "version": "1.9-r0",
- "homepage": "http://xcb.freedesktop.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.9.bb",
- "name": "xcb-proto"
- }
-},
-{
- "pk": 42,
- "model": "orm.recipe",
- "fields": {
- "description": "Pseudo gives fake root capabilities to a normal user.",
- "license": "LGPL2.1",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Pseudo gives fake root capabilities to a normal user",
- "version": "1.5.1-r4",
- "homepage": "http://git.yoctoproject.org/cgit/cgit.cgi/pseudo",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/pseudo/pseudo_1.5.1.bb",
- "name": "pseudo-native"
- }
-},
-{
- "pk": 43,
- "model": "orm.recipe",
- "fields": {
- "description": "The GNU Binutils are a collection of binary tools. The main ones are ld (GNU Linker), and as (GNU Assembler). This package also includes addition tools such as addr2line (Converts addresses into filenames and line numbers), ar (utility for creating, modifying and extracting archives), nm (list symbols in object files), objcopy (copy and translate object files), objdump (Display object information), and other tools and related libraries.",
- "license": "GPLv3",
- "bugtracker": "http://sourceware.org/bugzilla/",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNU binary utilities",
- "version": "2.23.2-r4",
- "homepage": "http://www.gnu.org/software/binutils/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/binutils/binutils_2.23.2.bb",
- "name": "binutils-native"
- }
-},
-{
- "pk": 44,
- "model": "orm.recipe",
- "fields": {
- "description": "A general-purpose cryptography library.",
- "license": "GPLv2 & LGPLv2.1",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "A general-purpose cryptography library",
- "version": "4.2.1-r3",
- "homepage": "http://sourceforge.net/projects/beecrypt",
- "file_path": "/home/andreea/poky/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb",
- "name": "beecrypt-native"
- }
-},
-{
- "pk": 45,
- "model": "orm.recipe",
- "fields": {
- "description": "Creates metadata indexes for RPM package repositories.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Creates metadata indexes for RPM package repositories",
- "version": "0.4.11-r9",
- "homepage": "http://createrepo.baseurl.org/",
- "file_path": "/home/andreea/poky/meta/recipes-support/createrepo/createrepo_0.4.11.bb",
- "name": "createrepo-native"
- }
-},
-{
- "pk": 46,
- "model": "orm.recipe",
- "fields": {
- "description": "libxau provides the main interfaces to the X11 authorisation handling, which controls authorisation for X connections, both client-side and server-side.",
- "license": "MIT-style",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Xau: X Authority Database library",
- "version": "1:1.0.8-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-lib/libxau_1.0.8.bb",
- "name": "libxau"
- }
-},
-{
- "pk": 47,
- "model": "orm.recipe",
- "fields": {
- "description": "The XML Parser Library allows for manipulation of XML files. Libxml2 exports Push and Pull type parser interfaces for both XML and HTML. It can do DTD validation at parse time, on a parsed document instance or with an arbitrary DTD. Libxml2 includes complete XPath, XPointer and Xinclude implementations. It also has a SAX like interface, which is designed to be compatible with Expat.",
- "license": "MIT",
- "bugtracker": "http://bugzilla.gnome.org/buglist.cgi?product=libxml2",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "XML C Parser Library and Toolkit",
- "version": "2.9.1-r0",
- "homepage": "http://www.xmlsoft.org/",
- "file_path": "/home/andreea/poky/meta/recipes-core/libxml/libxml2_2.9.1.bb",
- "name": "libxml2-native"
- }
-},
-{
- "pk": 48,
- "model": "orm.recipe",
- "fields": {
- "description": "kmod is a set of tools to handle common tasks with Linux kernel modules like insert, remove, list, check properties, resolve dependencies and aliases.",
- "license": "GPL-2.0+ & LGPL-2.1+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Tools for managing Linux kernel modules",
- "version": "16+gitAUTOINC+36c4bb928a-r0",
- "homepage": "http://packages.profusion.mobi/kmod/",
- "file_path": "/home/andreea/poky/meta/recipes-kernel/kmod/kmod_git.bb",
- "name": "kmod"
- }
-},
-{
- "pk": 49,
- "model": "orm.recipe",
- "fields": {
- "description": "Initscript for auto-loading kernel modules on boot.",
- "license": "PD",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Initscript for auto-loading kernel modules on boot",
- "version": "1.0-r6",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb",
- "name": "modutils-initscripts"
- }
-},
-{
- "pk": 50,
- "model": "orm.recipe",
- "fields": {
- "description": "The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline library includes additional functions to maintain a list of previously-entered command lines, to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.",
- "license": "GPLv3+",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Library for editing typed command lines",
- "version": "6.2-r4",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/readline/readline_6.2.bb",
- "name": "readline"
- }
-},
-{
- "pk": 51,
- "model": "orm.recipe",
- "fields": {
- "description": "The GNU Binutils are a collection of binary tools. The main ones are ld (GNU Linker), and as (GNU Assembler). This package also includes addition tools such as addr2line (Converts addresses into filenames and line numbers), ar (utility for creating, modifying and extracting archives), nm (list symbols in object files), objcopy (copy and translate object files), objdump (Display object information), and other tools and related libraries.",
- "license": "GPLv3",
- "bugtracker": "http://sourceware.org/bugzilla/",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNU binary utilities",
- "version": "2.23.2-r4",
- "homepage": "http://www.gnu.org/software/binutils/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/binutils/binutils-cross_2.23.2.bb",
- "name": "binutils-cross"
- }
-},
-{
- "pk": 52,
- "model": "orm.recipe",
- "fields": {
- "description": "kmod is a set of tools to handle common tasks with Linux kernel modules like insert, remove, list, check properties, resolve dependencies and aliases.",
- "license": "GPL-2.0+ & LGPL-2.1+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Tools for managing Linux kernel modules",
- "version": "16+gitAUTOINC+36c4bb928a-r0",
- "homepage": "http://packages.profusion.mobi/kmod/",
- "file_path": "/home/andreea/poky/meta/recipes-kernel/kmod/kmod-native_git.bb",
- "name": "kmod-native"
- }
-},
-{
- "pk": 53,
- "model": "orm.recipe",
- "fields": {
- "description": "The groff (GNU troff) software is a typesetting package which reads plain text mixed with formatting commands and produces formatted output.",
- "license": "GPLv3",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNU Troff software",
- "version": "1.22.2-r1",
- "homepage": "ftp://ftp.gnu.org/gnu/groff/",
- "file_path": "/home/andreea/poky/meta/recipes-extended/groff/groff_1.22.2.bb",
- "name": "groff-native"
- }
-},
-{
- "pk": 54,
- "model": "orm.recipe",
- "fields": {
- "description": "This package provides high level tools to configure network interfaces",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Basic TCP/IP networking init scripts and configuration files",
- "version": "1.0-r3",
- "homepage": "http://packages.debian.org/ifupdown",
- "file_path": "/home/andreea/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb",
- "name": "init-ifupdown"
- }
-},
-{
- "pk": 55,
- "model": "orm.recipe",
- "fields": {
- "description": "The RPM Package Manager (RPM) is a powerful command line driven package management system capable of installing, uninstalling, verifying, querying, and updating software packages. Each software package consists of an archive of files along with information about the package like its version, a description, etc.",
- "license": "LGPLv2.1",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "The RPM package management system",
- "version": "5.4.9-r63",
- "homepage": "http://rpm5.org/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/rpm/rpm_5.4.9.bb",
- "name": "rpm-native"
- }
-},
-{
- "pk": 56,
- "model": "orm.recipe",
- "fields": {
- "description": "Kernel header preprocessor.",
- "license": "BSD-2-Clause",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Kernel header preprocessor",
- "version": "2.6.18+git-r1",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/unifdef/unifdef-native_2.6.18+git.bb",
- "name": "unifdef-native"
- }
-},
-{
- "pk": 57,
- "model": "orm.recipe",
- "fields": {
- "description": "update-rc.d is a utilities that allows the management of symlinks to the initscripts in the /etc/rcN.d directory structure.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "manage symlinks in /etc/rcN.d.",
- "version": "0.7-r5",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb",
- "name": "update-rc.d-native"
- }
-},
-{
- "pk": 58,
- "model": "orm.recipe",
- "fields": {
- "description": "GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers",
- "license": "LGPLv3&GPLv3",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNU multiprecision arithmetic library",
- "version": "5.1.1-r0",
- "homepage": "http://gmplib.org/",
- "file_path": "/home/andreea/poky/meta/recipes-support/gmp/gmp_5.1.1.bb",
- "name": "gmp-native"
- }
-},
-{
- "pk": 59,
- "model": "orm.recipe",
- "fields": {
- "description": "Tools for managing Yocto Project style branched kernels.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Tools for managing Yocto Project style branched kernels",
- "version": "0.2+gitAUTOINC+a42509b01c-r12",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb",
- "name": "kern-tools-native"
- }
-},
-{
- "pk": 60,
- "model": "orm.recipe",
- "fields": {
- "description": "Flex is a fast lexical analyser generator. Flex is a tool for generating programs that recognize lexical patterns in text.",
- "license": "BSD",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Flex (The Fast Lexical Analyzer)",
- "version": "2.5.37-r0",
- "homepage": "http://sourceforge.net/projects/flex/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/flex/flex_2.5.37.bb",
- "name": "flex-native"
- }
-},
-{
- "pk": 61,
- "model": "orm.recipe",
- "fields": {
- "description": "The purpose of the X Display Manager Control Protocol (XDMCP) is to provide a uniform mechanism for an autonomous display to request login service from a remote host. An X terminal (screen, keyboard, mouse, processor, network interface) is a prime example of an autonomous display.",
- "license": "MIT-style",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "XDMCP: X Display Manager Control Protocol library",
- "version": "1:1.1.1-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-lib/libxdmcp_1.1.1.bb",
- "name": "libxdmcp"
- }
-},
-{
- "pk": 62,
- "model": "orm.recipe",
- "fields": {
- "description": "OpenEmbedded RPM resolver - performs RPM database lookups in batches to avoid repeated invocations of rpm on the command line.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "OpenEmbedded RPM resolver utility",
- "version": "1.0-r2",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/rpm/rpmresolve_1.0.bb",
- "name": "rpmresolve-native"
- }
-},
-{
- "pk": 63,
- "model": "orm.recipe",
- "fields": {
- "description": "Python GObject bindings.",
- "license": "LGPLv2.1",
- "bugtracker": "",
- "section": "devel/python",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Python GObject bindings",
- "version": "2.27.91-r6",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/python/python-pygobject_2.27.91.bb",
- "name": "python-pygobject"
- }
-},
-{
- "pk": 64,
- "model": "orm.recipe",
- "fields": {
- "description": "ALSA sound library.",
- "license": "LGPLv2.1 & GPLv2+",
- "bugtracker": "https://bugtrack.alsa-project.org/alsa-bug/login_page.php",
- "section": "libs/multimedia",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "ALSA sound library",
- "version": "1.0.27.2-r0",
- "homepage": "http://www.alsa-project.org",
- "file_path": "/home/andreea/poky/meta/recipes-multimedia/alsa/alsa-lib_1.0.27.2.bb",
- "name": "alsa-lib-native"
- }
-},
-{
- "pk": 65,
- "model": "orm.recipe",
- "fields": {
- "description": "OpenJade is a suite of tools for validating, processing, and applying DSSSL (Document Style Semantics and Specification Language) stylesheets to SGML and XML documents.",
- "license": "BSD",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Tools for working with DSSSL stylesheets for SGML and XML documents",
- "version": "1.3.2-r5",
- "homepage": "http://openjade.sourceforge.net",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb",
- "name": "openjade-native"
- }
-},
-{
- "pk": 66,
- "model": "orm.recipe",
- "fields": {
- "description": "C library for multiple-precision floating-point computations with exact rounding.",
- "license": "GPLv3 & LGPLv3",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "C library for multiple-precision floating-point computations with exact rounding",
- "version": "3.1.2-r0",
- "homepage": "http://www.mpfr.org/",
- "file_path": "/home/andreea/poky/meta/recipes-support/mpfr/mpfr_3.1.2.bb",
- "name": "mpfr-native"
- }
-},
-{
- "pk": 67,
- "model": "orm.recipe",
- "fields": {
- "description": "Cross locale generation tool for eglibc.",
- "license": "LGPL-2.1",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Cross locale generation tool for eglibc",
- "version": "2.18-r0",
- "homepage": "http://www.eglibc.org/home",
- "file_path": "/home/andreea/poky/meta/recipes-core/eglibc/cross-localedef-native_2.18.bb",
- "name": "cross-localedef-native"
- }
-},
-{
- "pk": 68,
- "model": "orm.recipe",
- "fields": {
- "description": "The Python Programming Language.",
- "license": "PSFv2",
- "bugtracker": "",
- "section": "devel/python",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "The Python Programming Language",
- "version": "2.7.3-r0.1",
- "homepage": "http://www.python.org",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/python/python-native_2.7.3.bb",
- "name": "python-native"
- }
-},
-{
- "pk": 69,
- "model": "orm.recipe",
- "fields": {
- "description": "Runs postinstall scripts on first boot of the target device.",
- "license": "MIT",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Runs postinstall scripts on first boot of the target device",
- "version": "1.0-r9",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb",
- "name": "run-postinsts"
- }
-},
-{
- "pk": 70,
- "model": "orm.recipe",
- "fields": {
- "description": "The Inter-Client Exchange (ICE) protocol provides a generic framework for building protocols on top of reliable, byte-stream transport connections. It provides basic mechanisms for setting up and shutting down connections, for performing authentication, for negotiating versions, and for reporting errors. ",
- "license": "MIT-style",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "ICE: Inter-Client Exchange library",
- "version": "1:1.0.8-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-lib/libice_1.0.8.bb",
- "name": "libice"
- }
-},
-{
- "pk": 71,
- "model": "orm.recipe",
- "fields": {
- "description": "Secure Socket Layer (SSL) binary and related cryptographic tools.",
- "license": "openssl",
- "bugtracker": "http://www.openssl.org/news/vulnerabilities.html",
- "section": "libs/network",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Secure Socket Layer",
- "version": "1.0.1e-r15.0",
- "homepage": "http://www.openssl.org/",
- "file_path": "/home/andreea/poky/meta/recipes-connectivity/openssl/openssl_1.0.1e.bb",
- "name": "openssl-native"
- }
-},
-{
- "pk": 72,
- "model": "orm.recipe",
- "fields": {
- "description": "Tool for creating device nodes.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Tool for creating device nodes",
- "version": "1.0.1-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb",
- "name": "makedevs-native"
- }
-},
-{
- "pk": 73,
- "model": "orm.recipe",
- "fields": {
- "description": "Stub implementation of gtk-doc, as we don't want to build the API documentation",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "x11/base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Stub implementation of gtk-doc",
- "version": "0.0+gitAUTOINC+3dfd0a09de-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb",
- "name": "gtk-doc-stub-native"
- }
-},
-{
- "pk": 74,
- "model": "orm.recipe",
- "fields": {
- "description": "Utilities for managing POSIX Access Control Lists.",
- "license": "LGPLv2.1+ & GPLv2+",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Utilities for managing POSIX Access Control Lists",
- "version": "2.2.52-r0",
- "homepage": "http://savannah.nongnu.org/projects/acl/",
- "file_path": "/home/andreea/poky/meta/recipes-support/attr/acl_2.2.52.bb",
- "name": "acl"
- }
-},
-{
- "pk": 75,
- "model": "orm.recipe",
- "fields": {
- "description": "The `libffi' library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run time. FFI stands for Foreign Function Interface. A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language. The `libffi' library really only provides the lowest, machine dependent layer of a fully featured foreign function interface. A layer must exist above `libffi' that handles type conversions for values passed between the two languages.",
- "license": "MIT",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "A portable foreign function interface library",
- "version": "3.0.13-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-gnome/libffi/libffi_3.0.13.bb",
- "name": "libffi"
- }
-},
-{
- "pk": 76,
- "model": "orm.recipe",
- "fields": {
- "description": "A collection of all the free software tools you need to work on and format DocBook documents.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "console/utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Utilities for formatting and manipulating DocBook documents",
- "version": "0.6.14-r3",
- "homepage": "http://sources.redhat.com/docbook-tools/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/docbook-utils/docbook-utils-native_0.6.14.bb",
- "name": "docbook-utils-native"
- }
-},
-{
- "pk": 77,
- "model": "orm.recipe",
- "fields": {
- "description": "M4 autotools macros used by various X.org programs.",
- "license": "MIT & MIT-style",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "X autotools macros",
- "version": "1:1.18.0-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-util/util-macros_1.18.0.bb",
- "name": "util-macros"
- }
-},
-{
- "pk": 78,
- "model": "orm.recipe",
- "fields": {
- "description": "Mpc is a C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding of the result. It is built upon and follows the same principles as Mpfr",
- "license": "LGPLv3",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "C library for complex number arithmetic with arbitrary precision and correct rounding",
- "version": "1.0.1-r0",
- "homepage": "http://www.multiprecision.org/",
- "file_path": "/home/andreea/poky/meta/recipes-support/libmpc/libmpc_1.0.1.bb",
- "name": "libmpc-native"
- }
-},
-{
- "pk": 79,
- "model": "orm.recipe",
- "fields": {
- "description": "This package provides the wire protocol for several X extensions. These protocol extensions include DOUBLE-BUFFER, DPMS, Extended-Visual-Information, LBX, MIT_SHM, MIT_SUNDRY-NONSTANDARD, Multi-Buffering, SECURITY, SHAPE, SYNC, TOG-CUP, XC-APPGROUP, XC-MISC, XTEST. In addition a small set of utility functions are also available.",
- "license": "MIT & MIT-style",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "XExt: X Extension headers",
- "version": "1:7.2.1-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-proto/xextproto_7.2.1.bb",
- "name": "xextproto"
- }
-},
-{
- "pk": 80,
- "model": "orm.recipe",
- "fields": {
- "description": "Wrapper script for the Linux kernel module dependency indexer.",
- "license": "MIT",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Wrapper script for the Linux kernel module dependency indexer",
- "version": "1.0-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb",
- "name": "depmodwrapper-cross"
- }
-},
-{
- "pk": 81,
- "model": "orm.recipe",
- "fields": {
- "description": "pigz, which stands for parallel implementation of gzip, is a fully functional replacement for gzip that exploits multiple processors and multiple cores to the hilt when compressing data. pigz was written by Mark Adler, and uses the zlib and pthread libraries.",
- "license": "Zlib",
- "bugtracker": "",
- "section": "console/utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "A parallel implementation of gzip",
- "version": "2.3.1-r0",
- "homepage": "http://zlib.net/pigz/",
- "file_path": "/home/andreea/poky/meta/recipes-extended/pigz/pigz_2.3.1.bb",
- "name": "pigz-native"
- }
-},
-{
- "pk": 82,
- "model": "orm.recipe",
- "fields": {
- "description": "This is GNU libtool, a generic library support script. Libtool hides the complexity of generating special library types (such as shared libraries) behind a consistent interface.",
- "license": "GPLv2 & LGPLv2.1",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Generic library support script",
- "version": "2.4.2-r6.1",
- "homepage": "http://www.gnu.org/software/libtool/libtool.html",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb",
- "name": "libtool-cross"
- }
-},
-{
- "pk": 83,
- "model": "orm.recipe",
- "fields": {
- "description": "Embedded GLIBC (EGLIBC) is a variant of the GNU C Library (GLIBC) that is designed to work well on embedded systems. EGLIBC strives to be source and binary compatible with GLIBC. EGLIBC's goals include reduced footprint, configurable components, better support for cross-compilation and cross-testing.",
- "license": "GPLv2 & LGPLv2.1",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Embedded GLIBC (GNU C Library)",
- "version": "2.18-r0",
- "homepage": "http://www.eglibc.org/home",
- "file_path": "/home/andreea/poky/meta/recipes-core/eglibc/eglibc-initial_2.18.bb",
- "name": "eglibc-initial"
- }
-},
-{
- "pk": 84,
- "model": "orm.recipe",
- "fields": {
- "description": "Userspace library to access USB (version 1.0).",
- "license": "LGPLv2.1+",
- "bugtracker": "http://www.libusb.org/report",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Userspace library to access USB (version 1.0)",
- "version": "1.0.9-r1",
- "homepage": "http://libusb.sf.net",
- "file_path": "/home/andreea/poky/meta/recipes-support/libusb/libusb1_1.0.9.bb",
- "name": "libusb1"
- }
-},
-{
- "pk": 85,
- "model": "orm.recipe",
- "fields": {
- "description": "Utilities for extracting and viewing files in .zip archives.",
- "license": "BSD-3-Clause",
- "bugtracker": "",
- "section": "console/utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Utilities for extracting and viewing files in .zip archives",
- "version": "1:6.0-r4",
- "homepage": "http://www.info-zip.org",
- "file_path": "/home/andreea/poky/meta/recipes-extended/unzip/unzip_6.0.bb",
- "name": "unzip-native"
- }
-},
-{
- "pk": 86,
- "model": "orm.recipe",
- "fields": {
- "description": "The sgml-common package gathers very basic stuff necessary to work with SGML and XML, such as xml.dcl, a SGML declaration of XML; iso-entities, a list of the basic SGML ISO entities; and install-catalog, a script used to add entries to (or remove entries from) centralized catalogs whose entries are pointers to SGML open catalogs, as defined by OASIS.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Base utilities for working with SGML and XML",
- "version": "0.6.3-r1",
- "homepage": "http://sources.redhat.com/docbook-tools/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb",
- "name": "sgml-common-native"
- }
-},
-{
- "pk": 87,
- "model": "orm.recipe",
- "fields": {
- "description": "GNOME XSLT library.",
- "license": "MIT",
- "bugtracker": "https://bugzilla.gnome.org/",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNOME XSLT library",
- "version": "1.1.28-r0",
- "homepage": "http://xmlsoft.org/XSLT/",
- "file_path": "/home/andreea/poky/meta/recipes-support/libxslt/libxslt_1.1.28.bb",
- "name": "libxslt-native"
- }
-},
-{
- "pk": 88,
- "model": "orm.recipe",
- "fields": {
- "description": "Tool that installs the GNU config.guess / config.sub into a directory tree",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "gnu-configize",
- "version": "20120814-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/gnu-config/gnu-config_20120814.bb",
- "name": "gnu-config-native"
- }
-},
-{
- "pk": 89,
- "model": "orm.recipe",
- "fields": {
- "description": "The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.",
- "license": "MIT",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=XCB",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "XCB: The X protocol C binding library",
- "version": "1.9.3-r0",
- "homepage": "http://xcb.freedesktop.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-lib/libxcb_1.9.3.bb",
- "name": "libxcb"
- }
-},
-{
- "pk": 90,
- "model": "orm.recipe",
- "fields": {
- "description": "Sanitized set of kernel headers for the C library's use.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Sanitized set of kernel headers for the C library's use",
- "version": "3.10-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.10.bb",
- "name": "linux-libc-headers"
- }
-},
-{
- "pk": 91,
- "model": "orm.recipe",
- "fields": {
- "description": "Utilities for manipulating filesystem extended attributes.",
- "license": "LGPLv2.1+ & GPLv2+",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Utilities for manipulating filesystem extended attributes",
- "version": "2.4.47-r0",
- "homepage": "http://savannah.nongnu.org/projects/attr/",
- "file_path": "/home/andreea/poky/meta/recipes-support/attr/attr_2.4.47.bb",
- "name": "attr"
- }
-},
-{
- "pk": 92,
- "model": "orm.recipe",
- "fields": {
- "description": "Package maintenance system from Debian.",
- "license": "GPLv2.0+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Package maintenance system from Debian",
- "version": "1.17.4-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/dpkg/dpkg_1.17.4.bb",
- "name": "dpkg-native"
- }
-},
-{
- "pk": 93,
- "model": "orm.recipe",
- "fields": {
- "description": "GNU cc and gcc C compilers.",
- "license": "GPL-3.0-with-GCC-exception & GPLv3",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNU cc and gcc C compilers",
- "version": "4.8.2-r0",
- "homepage": "http://www.gnu.org/software/gcc/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/gcc/gcc-runtime_4.8.bb",
- "name": "gcc-runtime"
- }
-},
-{
- "pk": 94,
- "model": "orm.recipe",
- "fields": {
- "description": "GLib is a general-purpose utility library, which provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on.",
- "license": "LGPLv2+ & BSD & PD",
- "bugtracker": "http://bugzilla.gnome.org",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "A general-purpose utility library",
- "version": "1:2.38.2-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/glib-2.0/glib-2.0_2.38.2.bb",
- "name": "glib-2.0-native"
- }
-},
-{
- "pk": 95,
- "model": "orm.recipe",
- "fields": {
- "description": "Timezone database.",
- "license": "PD & BSD",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Timezone database",
- "version": "2013i-r0",
- "homepage": "ftp://elsie.nci.nih.gov/pub/",
- "file_path": "/home/andreea/poky/meta/recipes-extended/tzdata/tzdata_2013i.bb",
- "name": "tzdata"
- }
-},
-{
- "pk": 96,
- "model": "orm.recipe",
- "fields": {
- "description": "Tool for working with series of patches.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Tool for working with series of patches",
- "version": "0.61-r0",
- "homepage": "http://savannah.nongnu.org/projects/quilt/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/quilt/quilt-native_0.61.bb",
- "name": "quilt-native"
- }
-},
-{
- "pk": 97,
- "model": "orm.recipe",
- "fields": {
- "description": "PNG image format decoding library.",
- "license": "Libpng",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "PNG image format decoding library",
- "version": "1.6.7-r0",
- "homepage": "http://www.libpng.org/",
- "file_path": "/home/andreea/poky/meta/recipes-multimedia/libpng/libpng_1.6.7.bb",
- "name": "libpng-native"
- }
-},
-{
- "pk": 98,
- "model": "orm.recipe",
- "fields": {
- "description": "This package provides the necessary infrastructure for basic TCP/IP based networking",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Basic TCP/IP networking support",
- "version": "1:5.2-r0",
- "homepage": "http://packages.debian.org/netbase",
- "file_path": "/home/andreea/poky/meta/recipes-core/netbase/netbase_5.2.bb",
- "name": "netbase"
- }
-},
-{
- "pk": 99,
- "model": "orm.recipe",
- "fields": {
- "description": "OSSP uuid is a ISO-C:1999 application programming interface (API) and corresponding command line interface (CLI) for the generation of DCE 1.1, ISO/IEC 11578:1996 and RFC 4122 compliant Universally Unique Identifier (UUID). It supports DCE 1.1 variant UUIDs of version 1 (time and node based), version 3 (name based, MD5), version 4 (random number based) and version 5 (name based, SHA-1).",
- "license": "MIT",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Universally Unique Identifier (UUID) library",
- "version": "1.6.2-r2",
- "homepage": "http://www.ossp.org/pkg/lib/uuid/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb",
- "name": "ossp-uuid-native"
- }
-},
-{
- "pk": 100,
- "model": "orm.recipe",
- "fields": {
- "description": "A small image just capable of allowing a device to boot.",
- "license": "MIT",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "core-image-minimal version 1.0-r0",
- "version": "1.0-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/images/core-image-minimal.bb",
- "name": "core-image-minimal"
- }
-},
-{
- "pk": 101,
- "model": "orm.recipe",
- "fields": {
- "description": "Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. Autoconf creates a configuration script for a package from a template file that lists the operating system features that the package can use, in the form of M4 macro calls.",
- "license": "GPLv2 & GPLv3",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "A GNU tool that procude shell scripts to automatically configure software.",
- "version": "2.69-r11",
- "homepage": "http://www.gnu.org/software/autoconf/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/autoconf/autoconf_2.69.bb",
- "name": "autoconf-native"
- }
-},
-{
- "pk": 102,
- "model": "orm.recipe",
- "fields": {
- "description": "Bison is a general-purpose parser generator that converts an annotated context-free grammar into an LALR(1) or GLR parser for that grammar. Bison is upward compatible with Yacc: all properly-written Yacc grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with little trouble.",
- "license": "GPLv3",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNU Project parser generator (yacc replacement).",
- "version": "2.7.1-r0",
- "homepage": "http://www.gnu.org/software/bison/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/bison/bison_2.7.1.bb",
- "name": "bison-native"
- }
-},
-{
- "pk": 103,
- "model": "orm.recipe",
- "fields": {
- "description": "A simple post-processor for SGMLS and NSGMLS.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "A simple post-processor for SGMLS and NSGMLS",
- "version": "1.03ii-r3",
- "homepage": "http://search.cpan.org/src/DMEGG/SGMLSpm-1.03ii/DOC/HTML/SGMLSpm/sgmlspm.html",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/sgmlspl/sgmlspl-native_1.03ii.bb",
- "name": "sgmlspl-native"
- }
-},
-{
- "pk": 104,
- "model": "orm.recipe",
- "fields": {
- "description": "The kconfig-frontends project aims at centralising the effort of keeping an up-to-date, out-of-tree, packaging of the kconfig infrastructure, ready for use by third-party projects. The kconfig-frontends package provides the kconfig parser, as well as all the frontends",
- "license": "GPL-2.0",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Linux kernel style configuration framework for other projects",
- "version": "3.12.0.0-r0",
- "homepage": "http://ymorin.is-a-geek.org/projects/kconfig-frontends",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.12.0.0.bb",
- "name": "kconfig-frontends-native"
- }
-},
-{
- "pk": 105,
- "model": "orm.recipe",
- "fields": {
- "description": "Provider of the machine specific securetty file.",
- "license": "MIT",
- "bugtracker": "",
- "section": "base utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Provider of the machine specific securetty file",
- "version": "4.1.4.3-r2",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-extended/shadow/shadow-securetty_4.1.4.3.bb",
- "name": "shadow-securetty"
- }
-},
-{
- "pk": 106,
- "model": "orm.recipe",
- "fields": {
- "description": "The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API, as well as a set of wrapper functions that correspond to the POSIX regular expression API.",
- "license": "BSD",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Perl Compatible Regular Expressions",
- "version": "8.34-r0",
- "homepage": "http://www.pcre.org",
- "file_path": "/home/andreea/poky/meta/recipes-support/libpcre/libpcre_8.34.bb",
- "name": "libpcre-native"
- }
-},
-{
- "pk": 107,
- "model": "orm.recipe",
- "fields": {
- "description": "QEMU wrapper script.",
- "license": "MIT",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "QEMU wrapper script",
- "version": "1.0-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb",
- "name": "qemuwrapper-cross"
- }
-},
-{
- "pk": 108,
- "model": "orm.recipe",
- "fields": {
- "description": "Pixman provides a library for manipulating pixel regions -- a set of Y-X banded rectangles, image compositing using the Porter/Duff model and implicit mask generation for geometric primitives including trapezoids, triangles, and rectangles.",
- "license": "MIT & MIT-style & PD",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Pixman: Pixel Manipulation library",
- "version": "1:0.32.4-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-lib/pixman_0.32.4.bb",
- "name": "pixman-native"
- }
-},
-{
- "pk": 109,
- "model": "orm.recipe",
- "fields": {
- "description": "Embeddable SQL database engine.",
- "license": "PD",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Embeddable SQL database engine",
- "version": "3080002-r0",
- "homepage": "http://www.sqlite.org",
- "file_path": "/home/andreea/poky/meta/recipes-support/sqlite/sqlite3_3080002.bb",
- "name": "sqlite3"
- }
-},
-{
- "pk": 110,
- "model": "orm.recipe",
- "fields": {
- "description": "Locale data from eglibc.",
- "license": "GPLv2 & LGPLv2.1",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Locale data from eglibc",
- "version": "2.18-r0",
- "homepage": "http://www.eglibc.org/",
- "file_path": "/home/andreea/poky/meta/recipes-core/eglibc/eglibc-locale_2.18.bb",
- "name": "eglibc-locale"
- }
-},
-{
- "pk": 111,
- "model": "orm.recipe",
- "fields": {
- "description": "Zlib is a general-purpose, patent-free, lossless data compression library which is used by many different programs.",
- "license": "Zlib",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Zlib Compression Library",
- "version": "1.2.8-r0",
- "homepage": "http://zlib.net/",
- "file_path": "/home/andreea/poky/meta/recipes-core/zlib/zlib_1.2.8.bb",
- "name": "zlib-native"
- }
-},
-{
- "pk": 112,
- "model": "orm.recipe",
- "fields": {
- "description": "The Smart Package Manager project has the ambitious objective of creating smart and portable algorithms for solving adequately the problem of managing software upgrades and installation.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "devel/python",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "The Smart Package Manager",
- "version": "1.4.1-r9",
- "homepage": "http://labix.org/smart/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/python/python-smartpm_1.4.1.bb",
- "name": "python-smartpm-native"
- }
-},
-{
- "pk": 113,
- "model": "orm.recipe",
- "fields": {
- "description": "Initscripts provide the basic system startup initialization scripts for the system. These scripts include actions such as filesystem mounting, fsck, RTC manipulation and other actions routinely performed at system startup. In addition, the scripts are also used during system shutdown to reverse the actions performed at startup.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "SysV init scripts",
- "version": "1.0-r141",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/initscripts/initscripts_1.0.bb",
- "name": "initscripts"
- }
-},
-{
- "pk": 114,
- "model": "orm.recipe",
- "fields": {
- "description": "Yocto Kernel",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "kernel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "linux-yocto version 3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0",
- "version": "3.10.19+gitAUTOINC+f47ea28445_a9ec82e355-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-kernel/linux/linux-yocto_3.10.bb",
- "name": "linux-yocto"
- }
-},
-{
- "pk": 115,
- "model": "orm.recipe",
- "fields": {
- "description": "bzip2 compresses files using the Burrows-Wheeler block-sorting text compression algorithm, and Huffman coding. Compression is generally considerably better than that achieved by more conventional LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors.",
- "license": "bzip2",
- "bugtracker": "",
- "section": "console/utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Very high-quality data compression program.",
- "version": "1.0.6-r5",
- "homepage": "http://www.bzip.org/",
- "file_path": "/home/andreea/poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb",
- "name": "bzip2"
- }
-},
-{
- "pk": 116,
- "model": "orm.recipe",
- "fields": {
- "description": "Lossless data compression library.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Lossless data compression library",
- "version": "2.06-r1",
- "homepage": "http://www.oberhumer.com/opensource/lzo/",
- "file_path": "/home/andreea/poky/meta/recipes-support/lzo/lzo_2.06.bb",
- "name": "lzo-native"
- }
-},
-{
- "pk": 117,
- "model": "orm.recipe",
- "fields": {
- "description": "Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)",
- "license": "MIT",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "A stream-oriented XML parser library.",
- "version": "2.1.0-r0",
- "homepage": "http://expat.sourceforge.net/",
- "file_path": "/home/andreea/poky/meta/recipes-core/expat/expat_2.1.0.bb",
- "name": "expat-native"
- }
-},
-{
- "pk": 118,
- "model": "orm.recipe",
- "fields": {
- "description": "Shadow utils requirements for useradd.bbclass.",
- "license": "BSD | Artistic-1.0",
- "bugtracker": "https://alioth.debian.org/tracker/?group_id=30580",
- "section": "base utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Shadow utils requirements for useradd.bbclass",
- "version": "4.1.4.3-r3",
- "homepage": "http://pkg-shadow.alioth.debian.org",
- "file_path": "/home/andreea/poky/meta/recipes-extended/shadow/shadow-sysroot_4.1.4.3.bb",
- "name": "shadow-sysroot"
- }
-},
-{
- "pk": 119,
- "model": "orm.recipe",
- "fields": {
- "description": "The base-files package creates the basic system directory structure and provides a small set of key configuration files for the system.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Miscellaneous files for the base system.",
- "version": "3.0.14-r73",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/base-files/base-files_3.0.14.bb",
- "name": "base-files"
- }
-},
-{
- "pk": 120,
- "model": "orm.recipe",
- "fields": {
- "description": "pkg-config is a helper tool used when compiling applications and libraries. It helps determined the correct compiler/link options. It is also language-agnostic.",
- "license": "GPLv2+",
- "bugtracker": "http://bugs.freedesktop.org/buglist.cgi?product=pkg-config",
- "section": "console/utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Helper tool used when compiling",
- "version": "0.28-r0",
- "homepage": "http://pkg-config.freedesktop.org/wiki/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/pkgconfig/pkgconfig_0.28.bb",
- "name": "pkgconfig-native"
- }
-},
-{
- "pk": 121,
- "model": "orm.recipe",
- "fields": {
- "description": "This library provides weak aliases for pthread functions not provided in libc or otherwise available by default.",
- "license": "MIT",
- "bugtracker": "http://bugs.freedesktop.org/buglist.cgi?product=XCB",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Library that provides weak aliases for pthread functions",
- "version": "0.3-r0",
- "homepage": "http://xcb.freedesktop.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-lib/libpthread-stubs_0.3.bb",
- "name": "libpthread-stubs"
- }
-},
-{
- "pk": 122,
- "model": "orm.recipe",
- "fields": {
- "description": "Make is a tool which controls the generation of executables and other non-source files of a program from the program's source files. Make gets its knowledge of how to build your program from a file called the makefile, which lists each of the non-source files and how to compute it from other files.",
- "license": "GPLv3 & LGPLv2",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "GNU tool that controls the build process",
- "version": "4.0-r0",
- "homepage": "http://www.gnu.org/software/make/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/make/make_4.0.bb",
- "name": "make"
- }
-},
-{
- "pk": 123,
- "model": "orm.recipe",
- "fields": {
- "description": "Perl scripting language.",
- "license": "Artistic-1.0 | GPL-1.0",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Perl scripting language",
- "version": "5.14.3-r0",
- "homepage": "http://www.perl.org/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/perl/perl-native_5.14.3.bb",
- "name": "perl-native"
- }
-},
-{
- "pk": 124,
- "model": "orm.recipe",
- "fields": {
- "description": "Fast open source processor emulator.",
- "license": "GPLv2 & LGPLv2.1",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Fast open source processor emulator",
- "version": "1.7.0-r0",
- "homepage": "http://qemu.org",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/qemu/qemu_1.7.0.bb",
- "name": "qemu-native"
- }
-},
-{
- "pk": 125,
- "model": "orm.recipe",
- "fields": {
- "description": "The Python Programming Language.",
- "license": "PSFv2",
- "bugtracker": "",
- "section": "devel/python",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "The Python Programming Language",
- "version": "2.7.3-r0.3",
- "homepage": "http://www.python.org",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/python/python_2.7.3.bb",
- "name": "python"
- }
-},
-{
- "pk": 126,
- "model": "orm.recipe",
- "fields": {
- "description": "GNU gperf is a perfect hash function generator",
- "license": "GPLv3+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Generate a perfect hash function from a set of keywords",
- "version": "3.0.4-r0",
- "homepage": "http://www.gnu.org/software/gperf",
- "file_path": "/home/andreea/poky/meta/recipes-extended/gperf/gperf_3.0.4.bb",
- "name": "gperf-native"
- }
-},
-{
- "pk": 127,
- "model": "orm.recipe",
- "fields": {
- "description": "mklibs produces cut-down shared libraries that contain only the routines required by a particular set of executables.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "devel",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Shared library optimisation tool",
- "version": "0.1.38-r0",
- "homepage": "https://code.launchpad.net/mklibs",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.38.bb",
- "name": "mklibs-native"
- }
-},
-{
- "pk": 128,
- "model": "orm.recipe",
- "fields": {
- "description": "This package provides the wire protocol for the X Input extension. The extension supports input devices other then the core X keyboard and pointer.",
- "license": "MIT & MIT-style",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "XI: X Input extension headers",
- "version": "1:2.3-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-proto/inputproto_2.3.bb",
- "name": "inputproto"
- }
-},
-{
- "pk": 129,
- "model": "orm.recipe",
- "fields": {
- "description": "This package provides the basic headers for the X Window System.",
- "license": "MIT & MIT-style",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Xlib: C Language X interface headers",
- "version": "1:7.0.25-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-proto/xproto_7.0.25.bb",
- "name": "xproto-native"
- }
-},
-{
- "pk": 130,
- "model": "orm.recipe",
- "fields": {
- "description": "User support binary for the uvesafb kernel module.",
- "license": "GPLv2",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "User support binary for the uvesafb kernel module",
- "version": "0.1.10-r1",
- "homepage": "http://dev.gentoo.org/~spock/projects/uvesafb/",
- "file_path": "/home/andreea/poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb",
- "name": "v86d"
- }
-},
-{
- "pk": 131,
- "model": "orm.recipe",
- "fields": {
- "description": "Pyrex is a language specially designed for writing Python extension modules. It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python and the messy, low-level world of C.",
- "license": "Apache-2.0",
- "bugtracker": "",
- "section": "devel/python",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Language for writing Python extension modules",
- "version": "0.9.9-r3",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/python/python-pyrex-native_0.9.9.bb",
- "name": "python-pyrex-native"
- }
-},
-{
- "pk": 132,
- "model": "orm.recipe",
- "fields": {
- "description": "The X Transport Interface is intended to combine all system and transport specific code into a single place. This API should be used by all libraries, clients and servers of the X Window System. Use of this API should allow the addition of new types of transports and support for new platforms without making any changes to the source except in the X Transport Interface code.",
- "license": "MIT & MIT-style",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "XTrans: X Transport library",
- "version": "1:1.3.2-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-lib/xtrans_1.3.2.bb",
- "name": "xtrans"
- }
-},
-{
- "pk": 133,
- "model": "orm.recipe",
- "fields": {
- "description": "D-Bus test package (for D-bus functionality testing only).",
- "license": "AFL-2 | GPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "D-Bus test package (for D-bus functionality testing only)",
- "version": "1.6.18-r0",
- "homepage": "http://dbus.freedesktop.org",
- "file_path": "/home/andreea/poky/meta/recipes-core/dbus/dbus-ptest_1.6.18.bb",
- "name": "dbus-ptest"
- }
-},
-{
- "pk": 134,
- "model": "orm.recipe",
- "fields": {
- "description": "Library for parsing command line options.",
- "license": "MIT",
- "bugtracker": "",
- "section": "libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Library for parsing command line options",
- "version": "1.16-r3",
- "homepage": "http://rpm5.org/",
- "file_path": "/home/andreea/poky/meta/recipes-support/popt/popt_1.16.bb",
- "name": "popt-native"
- }
-},
-{
- "pk": 135,
- "model": "orm.recipe",
- "fields": {
- "description": "File attempts to classify files depending on their contents and prints a description if a match is found.",
- "license": "BSD",
- "bugtracker": "",
- "section": "console/utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "File classification tool",
- "version": "5.16-r0",
- "homepage": "http://www.darwinsys.com/file/",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/file/file_5.16.bb",
- "name": "file-native"
- }
-},
-{
- "pk": 136,
- "model": "orm.recipe",
- "fields": {
- "description": "This package provides a client interface to the X Window System, otherwise known as 'Xlib'. It provides a complete API for the basic functions of the window system.",
- "license": "MIT & MIT-style & BSD",
- "bugtracker": "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg",
- "section": "x11/libs",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Xlib: C Language X Interface library",
- "version": "1:1.6.2-r0",
- "homepage": "http://www.x.org",
- "file_path": "/home/andreea/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.2.bb",
- "name": "libx11"
- }
-},
-{
- "pk": 137,
- "model": "orm.recipe",
- "fields": {
- "description": "Contains the lsusb utility for inspecting the devices connected to the USB bus.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Host side USB console utilities.",
- "version": "007-r0",
- "homepage": "http://www.linux-usb.org",
- "file_path": "/home/andreea/poky/meta/recipes-bsp/usbutils/usbutils_007.bb",
- "name": "usbutils"
- }
-},
-{
- "pk": 138,
- "model": "orm.recipe",
- "fields": {
- "description": "The PCI Utilities package contains a library for portable access to PCI bus configuration space and several utilities based on this library.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "console/utils",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "PCI utilities",
- "version": "3.2.1-r0",
- "homepage": "http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml",
- "file_path": "/home/andreea/poky/meta/recipes-bsp/pciutils/pciutils_3.2.1.bb",
- "name": "pciutils"
- }
-},
-{
- "pk": 139,
- "model": "orm.recipe",
- "fields": {
- "description": "Test runner for GNOME-style installed tests.",
- "license": "LGPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Test runner for GNOME-style installed tests",
- "version": "2013.1-r0",
- "homepage": "https://wiki.gnome.org/GnomeGoals/InstalledTests",
- "file_path": "/home/andreea/poky/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2013.1.bb",
- "name": "gnome-desktop-testing"
- }
-},
-{
- "pk": 140,
- "model": "orm.recipe",
- "fields": {
- "description": "The master copies of the user database files (/etc/passwd and /etc/group). The update-passwd tool is also provided to keep the system databases synchronized with these master files.",
- "license": "GPLv2+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Base system master password/group files.",
- "version": "3.5.29-r0",
- "homepage": "unknown",
- "file_path": "/home/andreea/poky/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb",
- "name": "base-passwd"
- }
-},
-{
- "pk": 141,
- "model": "orm.recipe",
- "fields": {
- "description": "Convert LinuxDoc SGML source into other formats.",
- "license": "GPLv3+",
- "bugtracker": "",
- "section": "base",
- "layer_version": 2,
- "licensing_info": "Not Available",
- "summary": "Convert LinuxDoc SGML source into other formats",
- "version": "0.9.69-r0",
- "homepage": "http://packages.debian.org/linuxdoc-tools",
- "file_path": "/home/andreea/poky/meta/recipes-devtools/linuxdoc-tools/linuxdoc-tools-native_0.9.69.bb",
- "name": "linuxdoc-tools-native"
- }
-},
-{
- "pk": 1,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 2,
- "dep_type": 0
- }
-},
-{
- "pk": 2,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 2,
- "dep_type": 0
- }
-},
-{
- "pk": 3,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 2,
- "dep_type": 0
- }
-},
-{
- "pk": 4,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 2,
- "dep_type": 0
- }
-},
-{
- "pk": 5,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 2,
- "dep_type": 0
- }
-},
-{
- "pk": 6,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 5,
- "dep_type": 0
- }
-},
-{
- "pk": 7,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 5,
- "dep_type": 0
- }
-},
-{
- "pk": 8,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 6,
- "dep_type": 0
- }
-},
-{
- "pk": 9,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 6,
- "dep_type": 0
- }
-},
-{
- "pk": 10,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 6,
- "dep_type": 0
- }
-},
-{
- "pk": 11,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 6,
- "dep_type": 0
- }
-},
-{
- "pk": 12,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 7,
- "dep_type": 0
- }
-},
-{
- "pk": 13,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 7,
- "dep_type": 0
- }
-},
-{
- "pk": 14,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 27,
- "recipe": 10,
- "dep_type": 0
- }
-},
-{
- "pk": 15,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 10,
- "dep_type": 0
- }
-},
-{
- "pk": 16,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 10,
- "dep_type": 0
- }
-},
-{
- "pk": 17,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 10,
- "dep_type": 0
- }
-},
-{
- "pk": 18,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 10,
- "dep_type": 0
- }
-},
-{
- "pk": 19,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 10,
- "dep_type": 0
- }
-},
-{
- "pk": 20,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 11,
- "dep_type": 0
- }
-},
-{
- "pk": 21,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 11,
- "dep_type": 0
- }
-},
-{
- "pk": 22,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 11,
- "dep_type": 0
- }
-},
-{
- "pk": 23,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 86,
- "recipe": 14,
- "dep_type": 0
- }
-},
-{
- "pk": 24,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 16,
- "dep_type": 0
- }
-},
-{
- "pk": 25,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 16,
- "dep_type": 0
- }
-},
-{
- "pk": 26,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 16,
- "dep_type": 0
- }
-},
-{
- "pk": 27,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 16,
- "dep_type": 0
- }
-},
-{
- "pk": 28,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 16,
- "dep_type": 0
- }
-},
-{
- "pk": 29,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 18,
- "dep_type": 0
- }
-},
-{
- "pk": 30,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 18,
- "dep_type": 0
- }
-},
-{
- "pk": 31,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 19,
- "dep_type": 0
- }
-},
-{
- "pk": 32,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 19,
- "dep_type": 0
- }
-},
-{
- "pk": 33,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 20,
- "dep_type": 0
- }
-},
-{
- "pk": 34,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 20,
- "dep_type": 0
- }
-},
-{
- "pk": 35,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 20,
- "dep_type": 0
- }
-},
-{
- "pk": 36,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 20,
- "dep_type": 0
- }
-},
-{
- "pk": 37,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 20,
- "dep_type": 0
- }
-},
-{
- "pk": 38,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 68,
- "recipe": 22,
- "dep_type": 0
- }
-},
-{
- "pk": 39,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 22,
- "dep_type": 0
- }
-},
-{
- "pk": 40,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 22,
- "dep_type": 0
- }
-},
-{
- "pk": 41,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 23,
- "dep_type": 0
- }
-},
-{
- "pk": 42,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 25,
- "dep_type": 0
- }
-},
-{
- "pk": 43,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 25,
- "dep_type": 0
- }
-},
-{
- "pk": 44,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 25,
- "dep_type": 0
- }
-},
-{
- "pk": 45,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 25,
- "dep_type": 0
- }
-},
-{
- "pk": 46,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 60,
- "recipe": 25,
- "dep_type": 0
- }
-},
-{
- "pk": 47,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 90,
- "recipe": 26,
- "dep_type": 0
- }
-},
-{
- "pk": 48,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 2,
- "dep_type": 0
- }
-},
-{
- "pk": 49,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 2,
- "dep_type": 0
- }
-},
-{
- "pk": 50,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 51,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 52,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 53,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 28,
- "dep_type": 0
- }
-},
-{
- "pk": 54,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 28,
- "dep_type": 0
- }
-},
-{
- "pk": 55,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 28,
- "dep_type": 0
- }
-},
-{
- "pk": 56,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 29,
- "dep_type": 0
- }
-},
-{
- "pk": 57,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 29,
- "dep_type": 0
- }
-},
-{
- "pk": 58,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 29,
- "dep_type": 0
- }
-},
-{
- "pk": 59,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 29,
- "dep_type": 0
- }
-},
-{
- "pk": 60,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 29,
- "dep_type": 0
- }
-},
-{
- "pk": 61,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 30,
- "dep_type": 0
- }
-},
-{
- "pk": 62,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 60,
- "recipe": 30,
- "dep_type": 0
- }
-},
-{
- "pk": 63,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 30,
- "dep_type": 0
- }
-},
-{
- "pk": 64,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 102,
- "recipe": 30,
- "dep_type": 0
- }
-},
-{
- "pk": 65,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 30,
- "dep_type": 0
- }
-},
-{
- "pk": 66,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 30,
- "dep_type": 0
- }
-},
-{
- "pk": 67,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 20,
- "dep_type": 0
- }
-},
-{
- "pk": 68,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 86,
- "recipe": 31,
- "dep_type": 0
- }
-},
-{
- "pk": 69,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 70,
- "recipe": 32,
- "dep_type": 0
- }
-},
-{
- "pk": 70,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 10,
- "recipe": 32,
- "dep_type": 0
- }
-},
-{
- "pk": 71,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 32,
- "dep_type": 0
- }
-},
-{
- "pk": 72,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 32,
- "dep_type": 0
- }
-},
-{
- "pk": 73,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 33,
- "dep_type": 0
- }
-},
-{
- "pk": 74,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 66,
- "recipe": 34,
- "dep_type": 0
- }
-},
-{
- "pk": 75,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 58,
- "recipe": 34,
- "dep_type": 0
- }
-},
-{
- "pk": 76,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 78,
- "recipe": 34,
- "dep_type": 0
- }
-},
-{
- "pk": 77,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 34,
- "dep_type": 0
- }
-},
-{
- "pk": 78,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 35,
- "dep_type": 0
- }
-},
-{
- "pk": 79,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 43,
- "recipe": 36,
- "dep_type": 0
- }
-},
-{
- "pk": 80,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 36,
- "dep_type": 0
- }
-},
-{
- "pk": 81,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 36,
- "dep_type": 0
- }
-},
-{
- "pk": 82,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 36,
- "dep_type": 0
- }
-},
-{
- "pk": 83,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 36,
- "dep_type": 0
- }
-},
-{
- "pk": 84,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 9,
- "recipe": 36,
- "dep_type": 0
- }
-},
-{
- "pk": 85,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 126,
- "recipe": 37,
- "dep_type": 0
- }
-},
-{
- "pk": 86,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 37,
- "dep_type": 0
- }
-},
-{
- "pk": 87,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 37,
- "dep_type": 0
- }
-},
-{
- "pk": 88,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 38,
- "dep_type": 0
- }
-},
-{
- "pk": 89,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 94,
- "recipe": 38,
- "dep_type": 0
- }
-},
-{
- "pk": 90,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 28,
- "recipe": 38,
- "dep_type": 0
- }
-},
-{
- "pk": 91,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 38,
- "dep_type": 0
- }
-},
-{
- "pk": 92,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 38,
- "dep_type": 0
- }
-},
-{
- "pk": 93,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 38,
- "dep_type": 0
- }
-},
-{
- "pk": 94,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 38,
- "dep_type": 0
- }
-},
-{
- "pk": 95,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 38,
- "dep_type": 0
- }
-},
-{
- "pk": 96,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 90,
- "recipe": 39,
- "dep_type": 0
- }
-},
-{
- "pk": 97,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 68,
- "recipe": 41,
- "dep_type": 0
- }
-},
-{
- "pk": 98,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 41,
- "dep_type": 0
- }
-},
-{
- "pk": 99,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 41,
- "dep_type": 0
- }
-},
-{
- "pk": 100,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 41,
- "dep_type": 0
- }
-},
-{
- "pk": 101,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 41,
- "dep_type": 0
- }
-},
-{
- "pk": 102,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 41,
- "dep_type": 0
- }
-},
-{
- "pk": 103,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 109,
- "recipe": 42,
- "dep_type": 0
- }
-},
-{
- "pk": 104,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 102,
- "recipe": 43,
- "dep_type": 0
- }
-},
-{
- "pk": 105,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 60,
- "recipe": 43,
- "dep_type": 0
- }
-},
-{
- "pk": 106,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 43,
- "dep_type": 0
- }
-},
-{
- "pk": 107,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 43,
- "dep_type": 0
- }
-},
-{
- "pk": 108,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 43,
- "dep_type": 0
- }
-},
-{
- "pk": 109,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 43,
- "dep_type": 0
- }
-},
-{
- "pk": 110,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 43,
- "dep_type": 0
- }
-},
-{
- "pk": 111,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 43,
- "dep_type": 0
- }
-},
-{
- "pk": 112,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 44,
- "dep_type": 0
- }
-},
-{
- "pk": 113,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 44,
- "dep_type": 0
- }
-},
-{
- "pk": 114,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 44,
- "dep_type": 0
- }
-},
-{
- "pk": 115,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 44,
- "dep_type": 0
- }
-},
-{
- "pk": 116,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 55,
- "recipe": 45,
- "dep_type": 0
- }
-},
-{
- "pk": 117,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 47,
- "recipe": 45,
- "dep_type": 0
- }
-},
-{
- "pk": 118,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 46,
- "dep_type": 0
- }
-},
-{
- "pk": 119,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 46,
- "dep_type": 0
- }
-},
-{
- "pk": 120,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 46,
- "dep_type": 0
- }
-},
-{
- "pk": 121,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 68,
- "recipe": 47,
- "dep_type": 0
- }
-},
-{
- "pk": 122,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 47,
- "dep_type": 0
- }
-},
-{
- "pk": 123,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 47,
- "dep_type": 0
- }
-},
-{
- "pk": 124,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 47,
- "dep_type": 0
- }
-},
-{
- "pk": 125,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 47,
- "dep_type": 0
- }
-},
-{
- "pk": 126,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 47,
- "dep_type": 0
- }
-},
-{
- "pk": 127,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 48,
- "dep_type": 0
- }
-},
-{
- "pk": 128,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 48,
- "dep_type": 0
- }
-},
-{
- "pk": 129,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 57,
- "recipe": 49,
- "dep_type": 0
- }
-},
-{
- "pk": 130,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 6,
- "recipe": 50,
- "dep_type": 0
- }
-},
-{
- "pk": 131,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 50,
- "dep_type": 0
- }
-},
-{
- "pk": 132,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 50,
- "dep_type": 0
- }
-},
-{
- "pk": 133,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 50,
- "dep_type": 0
- }
-},
-{
- "pk": 134,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 50,
- "dep_type": 0
- }
-},
-{
- "pk": 135,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 51,
- "dep_type": 0
- }
-},
-{
- "pk": 136,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 51,
- "dep_type": 0
- }
-},
-{
- "pk": 137,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 102,
- "recipe": 51,
- "dep_type": 0
- }
-},
-{
- "pk": 138,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 60,
- "recipe": 51,
- "dep_type": 0
- }
-},
-{
- "pk": 139,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 51,
- "dep_type": 0
- }
-},
-{
- "pk": 140,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 52,
- "dep_type": 0
- }
-},
-{
- "pk": 141,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 52,
- "dep_type": 0
- }
-},
-{
- "pk": 142,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 52,
- "dep_type": 0
- }
-},
-{
- "pk": 143,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 52,
- "dep_type": 0
- }
-},
-{
- "pk": 144,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 52,
- "dep_type": 0
- }
-},
-{
- "pk": 145,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 52,
- "dep_type": 0
- }
-},
-{
- "pk": 146,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 73,
- "recipe": 52,
- "dep_type": 0
- }
-},
-{
- "pk": 147,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 5,
- "dep_type": 0
- }
-},
-{
- "pk": 148,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 5,
- "dep_type": 0
- }
-},
-{
- "pk": 149,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 5,
- "dep_type": 0
- }
-},
-{
- "pk": 150,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 5,
- "dep_type": 0
- }
-},
-{
- "pk": 151,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 5,
- "dep_type": 0
- }
-},
-{
- "pk": 152,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 53,
- "dep_type": 0
- }
-},
-{
- "pk": 153,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 53,
- "dep_type": 0
- }
-},
-{
- "pk": 154,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 53,
- "dep_type": 0
- }
-},
-{
- "pk": 155,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 53,
- "dep_type": 0
- }
-},
-{
- "pk": 156,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 57,
- "recipe": 54,
- "dep_type": 0
- }
-},
-{
- "pk": 157,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 71,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 158,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 68,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 159,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 102,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 160,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 44,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 161,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 23,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 162,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 115,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 163,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 99,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 164,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 165,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 166,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 106,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 167,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 91,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 168,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 74,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 169,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 134,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 170,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 171,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 172,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 173,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 174,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 135,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 175,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 9,
- "recipe": 55,
- "dep_type": 0
- }
-},
-{
- "pk": 176,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 58,
- "dep_type": 0
- }
-},
-{
- "pk": 177,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 58,
- "dep_type": 0
- }
-},
-{
- "pk": 178,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 58,
- "dep_type": 0
- }
-},
-{
- "pk": 179,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 58,
- "dep_type": 0
- }
-},
-{
- "pk": 180,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 60,
- "dep_type": 0
- }
-},
-{
- "pk": 181,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 60,
- "dep_type": 0
- }
-},
-{
- "pk": 182,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 60,
- "dep_type": 0
- }
-},
-{
- "pk": 183,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 60,
- "dep_type": 0
- }
-},
-{
- "pk": 184,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 60,
- "dep_type": 0
- }
-},
-{
- "pk": 185,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 61,
- "dep_type": 0
- }
-},
-{
- "pk": 186,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 61,
- "dep_type": 0
- }
-},
-{
- "pk": 187,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 61,
- "dep_type": 0
- }
-},
-{
- "pk": 188,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 55,
- "recipe": 62,
- "dep_type": 0
- }
-},
-{
- "pk": 189,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 68,
- "recipe": 63,
- "dep_type": 0
- }
-},
-{
- "pk": 190,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 63,
- "dep_type": 0
- }
-},
-{
- "pk": 191,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 94,
- "recipe": 63,
- "dep_type": 0
- }
-},
-{
- "pk": 192,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 63,
- "dep_type": 0
- }
-},
-{
- "pk": 193,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 63,
- "dep_type": 0
- }
-},
-{
- "pk": 194,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 63,
- "dep_type": 0
- }
-},
-{
- "pk": 195,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 63,
- "dep_type": 0
- }
-},
-{
- "pk": 196,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 64,
- "dep_type": 0
- }
-},
-{
- "pk": 197,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 64,
- "dep_type": 0
- }
-},
-{
- "pk": 198,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 64,
- "dep_type": 0
- }
-},
-{
- "pk": 199,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 64,
- "dep_type": 0
- }
-},
-{
- "pk": 200,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 64,
- "dep_type": 0
- }
-},
-{
- "pk": 201,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 65,
- "dep_type": 0
- }
-},
-{
- "pk": 202,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 86,
- "recipe": 65,
- "dep_type": 0
- }
-},
-{
- "pk": 203,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 65,
- "dep_type": 0
- }
-},
-{
- "pk": 204,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 65,
- "dep_type": 0
- }
-},
-{
- "pk": 205,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 16,
- "recipe": 65,
- "dep_type": 0
- }
-},
-{
- "pk": 206,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 65,
- "dep_type": 0
- }
-},
-{
- "pk": 207,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 41,
- "dep_type": 0
- }
-},
-{
- "pk": 208,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 58,
- "recipe": 66,
- "dep_type": 0
- }
-},
-{
- "pk": 209,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 66,
- "dep_type": 0
- }
-},
-{
- "pk": 210,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 66,
- "dep_type": 0
- }
-},
-{
- "pk": 211,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 66,
- "dep_type": 0
- }
-},
-{
- "pk": 212,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 66,
- "dep_type": 0
- }
-},
-{
- "pk": 213,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 67,
- "dep_type": 0
- }
-},
-{
- "pk": 214,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 67,
- "dep_type": 0
- }
-},
-{
- "pk": 215,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 67,
- "dep_type": 0
- }
-},
-{
- "pk": 216,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 67,
- "dep_type": 0
- }
-},
-{
- "pk": 217,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 71,
- "recipe": 68,
- "dep_type": 0
- }
-},
-{
- "pk": 218,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 57,
- "recipe": 69,
- "dep_type": 0
- }
-},
-{
- "pk": 219,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 23,
- "dep_type": 0
- }
-},
-{
- "pk": 220,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 23,
- "dep_type": 0
- }
-},
-{
- "pk": 221,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 23,
- "dep_type": 0
- }
-},
-{
- "pk": 222,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 23,
- "dep_type": 0
- }
-},
-{
- "pk": 223,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 70,
- "dep_type": 0
- }
-},
-{
- "pk": 224,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 70,
- "dep_type": 0
- }
-},
-{
- "pk": 225,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 63,
- "dep_type": 0
- }
-},
-{
- "pk": 226,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 71,
- "dep_type": 0
- }
-},
-{
- "pk": 227,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 73,
- "dep_type": 0
- }
-},
-{
- "pk": 228,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 73,
- "dep_type": 0
- }
-},
-{
- "pk": 229,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 73,
- "dep_type": 0
- }
-},
-{
- "pk": 230,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 73,
- "dep_type": 0
- }
-},
-{
- "pk": 231,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 74,
- "dep_type": 0
- }
-},
-{
- "pk": 232,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 91,
- "recipe": 74,
- "dep_type": 0
- }
-},
-{
- "pk": 233,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 74,
- "dep_type": 0
- }
-},
-{
- "pk": 234,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 74,
- "dep_type": 0
- }
-},
-{
- "pk": 235,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 74,
- "dep_type": 0
- }
-},
-{
- "pk": 236,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 74,
- "dep_type": 0
- }
-},
-{
- "pk": 237,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 75,
- "dep_type": 0
- }
-},
-{
- "pk": 238,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 75,
- "dep_type": 0
- }
-},
-{
- "pk": 239,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 75,
- "dep_type": 0
- }
-},
-{
- "pk": 240,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 75,
- "dep_type": 0
- }
-},
-{
- "pk": 241,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 65,
- "recipe": 76,
- "dep_type": 0
- }
-},
-{
- "pk": 242,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 103,
- "recipe": 76,
- "dep_type": 0
- }
-},
-{
- "pk": 243,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 31,
- "recipe": 76,
- "dep_type": 0
- }
-},
-{
- "pk": 244,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 14,
- "recipe": 76,
- "dep_type": 0
- }
-},
-{
- "pk": 245,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 76,
- "dep_type": 0
- }
-},
-{
- "pk": 246,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 76,
- "dep_type": 0
- }
-},
-{
- "pk": 247,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 76,
- "dep_type": 0
- }
-},
-{
- "pk": 248,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 76,
- "dep_type": 0
- }
-},
-{
- "pk": 249,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 77,
- "dep_type": 0
- }
-},
-{
- "pk": 250,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 77,
- "dep_type": 0
- }
-},
-{
- "pk": 251,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 77,
- "dep_type": 0
- }
-},
-{
- "pk": 252,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 77,
- "dep_type": 0
- }
-},
-{
- "pk": 253,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 77,
- "dep_type": 0
- }
-},
-{
- "pk": 254,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 66,
- "recipe": 78,
- "dep_type": 0
- }
-},
-{
- "pk": 255,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 58,
- "recipe": 78,
- "dep_type": 0
- }
-},
-{
- "pk": 256,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 78,
- "dep_type": 0
- }
-},
-{
- "pk": 257,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 78,
- "dep_type": 0
- }
-},
-{
- "pk": 258,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 78,
- "dep_type": 0
- }
-},
-{
- "pk": 259,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 78,
- "dep_type": 0
- }
-},
-{
- "pk": 260,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 79,
- "dep_type": 0
- }
-},
-{
- "pk": 261,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 79,
- "dep_type": 0
- }
-},
-{
- "pk": 262,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 79,
- "dep_type": 0
- }
-},
-{
- "pk": 263,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 81,
- "dep_type": 0
- }
-},
-{
- "pk": 264,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 90,
- "recipe": 83,
- "dep_type": 0
- }
-},
-{
- "pk": 265,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 104,
- "recipe": 83,
- "dep_type": 0
- }
-},
-{
- "pk": 266,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 83,
- "dep_type": 0
- }
-},
-{
- "pk": 267,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 83,
- "dep_type": 0
- }
-},
-{
- "pk": 268,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 83,
- "dep_type": 0
- }
-},
-{
- "pk": 269,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 83,
- "dep_type": 0
- }
-},
-{
- "pk": 270,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 84,
- "dep_type": 0
- }
-},
-{
- "pk": 271,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 84,
- "dep_type": 0
- }
-},
-{
- "pk": 272,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 86,
- "dep_type": 0
- }
-},
-{
- "pk": 273,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 86,
- "dep_type": 0
- }
-},
-{
- "pk": 274,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 86,
- "dep_type": 0
- }
-},
-{
- "pk": 275,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 86,
- "dep_type": 0
- }
-},
-{
- "pk": 276,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 87,
- "dep_type": 0
- }
-},
-{
- "pk": 277,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 47,
- "recipe": 87,
- "dep_type": 0
- }
-},
-{
- "pk": 278,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 87,
- "dep_type": 0
- }
-},
-{
- "pk": 279,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 87,
- "dep_type": 0
- }
-},
-{
- "pk": 280,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 87,
- "dep_type": 0
- }
-},
-{
- "pk": 281,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 87,
- "dep_type": 0
- }
-},
-{
- "pk": 282,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 121,
- "recipe": 89,
- "dep_type": 0
- }
-},
-{
- "pk": 283,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 89,
- "dep_type": 0
- }
-},
-{
- "pk": 284,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 89,
- "dep_type": 0
- }
-},
-{
- "pk": 285,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 56,
- "recipe": 90,
- "dep_type": 0
- }
-},
-{
- "pk": 286,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 6,
- "recipe": 91,
- "dep_type": 0
- }
-},
-{
- "pk": 287,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 91,
- "dep_type": 0
- }
-},
-{
- "pk": 288,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 91,
- "dep_type": 0
- }
-},
-{
- "pk": 289,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 91,
- "dep_type": 0
- }
-},
-{
- "pk": 290,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 91,
- "dep_type": 0
- }
-},
-{
- "pk": 291,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 91,
- "dep_type": 0
- }
-},
-{
- "pk": 292,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 92,
- "dep_type": 0
- }
-},
-{
- "pk": 293,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 92,
- "dep_type": 0
- }
-},
-{
- "pk": 294,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 123,
- "recipe": 92,
- "dep_type": 0
- }
-},
-{
- "pk": 295,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 115,
- "recipe": 92,
- "dep_type": 0
- }
-},
-{
- "pk": 296,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 94,
- "dep_type": 0
- }
-},
-{
- "pk": 297,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 94,
- "dep_type": 0
- }
-},
-{
- "pk": 298,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 94,
- "dep_type": 0
- }
-},
-{
- "pk": 299,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 13,
- "recipe": 95,
- "dep_type": 0
- }
-},
-{
- "pk": 300,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 97,
- "dep_type": 0
- }
-},
-{
- "pk": 301,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 97,
- "dep_type": 0
- }
-},
-{
- "pk": 302,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 97,
- "dep_type": 0
- }
-},
-{
- "pk": 303,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 97,
- "dep_type": 0
- }
-},
-{
- "pk": 304,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 97,
- "dep_type": 0
- }
-},
-{
- "pk": 305,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 97,
- "dep_type": 0
- }
-},
-{
- "pk": 306,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 99,
- "dep_type": 0
- }
-},
-{
- "pk": 307,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 99,
- "dep_type": 0
- }
-},
-{
- "pk": 308,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 99,
- "dep_type": 0
- }
-},
-{
- "pk": 309,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 99,
- "dep_type": 0
- }
-},
-{
- "pk": 310,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 101,
- "dep_type": 0
- }
-},
-{
- "pk": 311,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 35,
- "recipe": 101,
- "dep_type": 0
- }
-},
-{
- "pk": 312,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 102,
- "dep_type": 0
- }
-},
-{
- "pk": 313,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 102,
- "dep_type": 0
- }
-},
-{
- "pk": 314,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 102,
- "dep_type": 0
- }
-},
-{
- "pk": 315,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 102,
- "dep_type": 0
- }
-},
-{
- "pk": 316,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 102,
- "dep_type": 0
- }
-},
-{
- "pk": 317,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 6,
- "dep_type": 0
- }
-},
-{
- "pk": 318,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 123,
- "recipe": 103,
- "dep_type": 0
- }
-},
-{
- "pk": 319,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 126,
- "recipe": 104,
- "dep_type": 0
- }
-},
-{
- "pk": 320,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 102,
- "recipe": 104,
- "dep_type": 0
- }
-},
-{
- "pk": 321,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 6,
- "recipe": 104,
- "dep_type": 0
- }
-},
-{
- "pk": 322,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 104,
- "dep_type": 0
- }
-},
-{
- "pk": 323,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 60,
- "recipe": 104,
- "dep_type": 0
- }
-},
-{
- "pk": 324,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 104,
- "dep_type": 0
- }
-},
-{
- "pk": 325,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 104,
- "dep_type": 0
- }
-},
-{
- "pk": 326,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 104,
- "dep_type": 0
- }
-},
-{
- "pk": 327,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 104,
- "dep_type": 0
- }
-},
-{
- "pk": 328,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 115,
- "recipe": 106,
- "dep_type": 0
- }
-},
-{
- "pk": 329,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 106,
- "dep_type": 0
- }
-},
-{
- "pk": 330,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 106,
- "dep_type": 0
- }
-},
-{
- "pk": 331,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 106,
- "dep_type": 0
- }
-},
-{
- "pk": 332,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 106,
- "dep_type": 0
- }
-},
-{
- "pk": 333,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 106,
- "dep_type": 0
- }
-},
-{
- "pk": 334,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 77,
- "recipe": 108,
- "dep_type": 0
- }
-},
-{
- "pk": 335,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 97,
- "recipe": 108,
- "dep_type": 0
- }
-},
-{
- "pk": 336,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 108,
- "dep_type": 0
- }
-},
-{
- "pk": 337,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 108,
- "dep_type": 0
- }
-},
-{
- "pk": 338,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 108,
- "dep_type": 0
- }
-},
-{
- "pk": 339,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 108,
- "dep_type": 0
- }
-},
-{
- "pk": 340,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 108,
- "dep_type": 0
- }
-},
-{
- "pk": 341,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 108,
- "dep_type": 0
- }
-},
-{
- "pk": 342,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 91,
- "dep_type": 0
- }
-},
-{
- "pk": 343,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 91,
- "dep_type": 0
- }
-},
-{
- "pk": 344,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 109,
- "dep_type": 0
- }
-},
-{
- "pk": 345,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 109,
- "dep_type": 0
- }
-},
-{
- "pk": 346,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 109,
- "dep_type": 0
- }
-},
-{
- "pk": 347,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 109,
- "dep_type": 0
- }
-},
-{
- "pk": 348,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 109,
- "dep_type": 0
- }
-},
-{
- "pk": 349,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 67,
- "recipe": 110,
- "dep_type": 0
- }
-},
-{
- "pk": 350,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 68,
- "recipe": 112,
- "dep_type": 0
- }
-},
-{
- "pk": 351,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 112,
- "dep_type": 0
- }
-},
-{
- "pk": 352,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 55,
- "recipe": 112,
- "dep_type": 0
- }
-},
-{
- "pk": 353,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 115,
- "dep_type": 0
- }
-},
-{
- "pk": 354,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 115,
- "dep_type": 0
- }
-},
-{
- "pk": 355,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 115,
- "dep_type": 0
- }
-},
-{
- "pk": 356,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 115,
- "dep_type": 0
- }
-},
-{
- "pk": 357,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 116,
- "dep_type": 0
- }
-},
-{
- "pk": 358,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 116,
- "dep_type": 0
- }
-},
-{
- "pk": 359,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 116,
- "dep_type": 0
- }
-},
-{
- "pk": 360,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 116,
- "dep_type": 0
- }
-},
-{
- "pk": 361,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 77,
- "dep_type": 0
- }
-},
-{
- "pk": 362,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 140,
- "recipe": 118,
- "dep_type": 0
- }
-},
-{
- "pk": 363,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 74,
- "dep_type": 0
- }
-},
-{
- "pk": 364,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 74,
- "dep_type": 0
- }
-},
-{
- "pk": 365,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 38,
- "dep_type": 0
- }
-},
-{
- "pk": 366,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 38,
- "dep_type": 0
- }
-},
-{
- "pk": 367,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 120,
- "dep_type": 0
- }
-},
-{
- "pk": 368,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 120,
- "dep_type": 0
- }
-},
-{
- "pk": 369,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 120,
- "dep_type": 0
- }
-},
-{
- "pk": 370,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 120,
- "dep_type": 0
- }
-},
-{
- "pk": 371,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 115,
- "dep_type": 0
- }
-},
-{
- "pk": 372,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 121,
- "dep_type": 0
- }
-},
-{
- "pk": 373,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 121,
- "dep_type": 0
- }
-},
-{
- "pk": 374,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 122,
- "dep_type": 0
- }
-},
-{
- "pk": 375,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 122,
- "dep_type": 0
- }
-},
-{
- "pk": 376,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 64,
- "recipe": 124,
- "dep_type": 0
- }
-},
-{
- "pk": 377,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 94,
- "recipe": 124,
- "dep_type": 0
- }
-},
-{
- "pk": 378,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 108,
- "recipe": 124,
- "dep_type": 0
- }
-},
-{
- "pk": 379,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 30,
- "recipe": 124,
- "dep_type": 0
- }
-},
-{
- "pk": 380,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 124,
- "dep_type": 0
- }
-},
-{
- "pk": 381,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 124,
- "dep_type": 0
- }
-},
-{
- "pk": 382,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 124,
- "dep_type": 0
- }
-},
-{
- "pk": 383,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 124,
- "dep_type": 0
- }
-},
-{
- "pk": 384,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 124,
- "dep_type": 0
- }
-},
-{
- "pk": 385,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 68,
- "recipe": 125,
- "dep_type": 0
- }
-},
-{
- "pk": 386,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 125,
- "dep_type": 0
- }
-},
-{
- "pk": 387,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 125,
- "dep_type": 0
- }
-},
-{
- "pk": 388,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 109,
- "dep_type": 0
- }
-},
-{
- "pk": 389,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 126,
- "dep_type": 0
- }
-},
-{
- "pk": 390,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 126,
- "dep_type": 0
- }
-},
-{
- "pk": 391,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 126,
- "dep_type": 0
- }
-},
-{
- "pk": 392,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 126,
- "dep_type": 0
- }
-},
-{
- "pk": 393,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 68,
- "recipe": 127,
- "dep_type": 0
- }
-},
-{
- "pk": 394,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 92,
- "recipe": 127,
- "dep_type": 0
- }
-},
-{
- "pk": 395,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 127,
- "dep_type": 0
- }
-},
-{
- "pk": 396,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 127,
- "dep_type": 0
- }
-},
-{
- "pk": 397,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 127,
- "dep_type": 0
- }
-},
-{
- "pk": 398,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 127,
- "dep_type": 0
- }
-},
-{
- "pk": 399,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 127,
- "dep_type": 0
- }
-},
-{
- "pk": 400,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 128,
- "dep_type": 0
- }
-},
-{
- "pk": 401,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 128,
- "dep_type": 0
- }
-},
-{
- "pk": 402,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 128,
- "dep_type": 0
- }
-},
-{
- "pk": 403,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 129,
- "dep_type": 0
- }
-},
-{
- "pk": 404,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 129,
- "dep_type": 0
- }
-},
-{
- "pk": 405,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 77,
- "recipe": 129,
- "dep_type": 0
- }
-},
-{
- "pk": 406,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 129,
- "dep_type": 0
- }
-},
-{
- "pk": 407,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 129,
- "dep_type": 0
- }
-},
-{
- "pk": 408,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 129,
- "dep_type": 0
- }
-},
-{
- "pk": 409,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 129,
- "dep_type": 0
- }
-},
-{
- "pk": 410,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 68,
- "recipe": 131,
- "dep_type": 0
- }
-},
-{
- "pk": 411,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 132,
- "dep_type": 0
- }
-},
-{
- "pk": 412,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 132,
- "dep_type": 0
- }
-},
-{
- "pk": 413,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 132,
- "dep_type": 0
- }
-},
-{
- "pk": 414,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 133,
- "dep_type": 0
- }
-},
-{
- "pk": 415,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 133,
- "dep_type": 0
- }
-},
-{
- "pk": 416,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 133,
- "dep_type": 0
- }
-},
-{
- "pk": 417,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 75,
- "dep_type": 0
- }
-},
-{
- "pk": 418,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 50,
- "dep_type": 0
- }
-},
-{
- "pk": 419,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 134,
- "dep_type": 0
- }
-},
-{
- "pk": 420,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 134,
- "dep_type": 0
- }
-},
-{
- "pk": 421,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 134,
- "dep_type": 0
- }
-},
-{
- "pk": 422,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 134,
- "dep_type": 0
- }
-},
-{
- "pk": 423,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 134,
- "dep_type": 0
- }
-},
-{
- "pk": 424,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 135,
- "dep_type": 0
- }
-},
-{
- "pk": 425,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 135,
- "dep_type": 0
- }
-},
-{
- "pk": 426,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 135,
- "dep_type": 0
- }
-},
-{
- "pk": 427,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 135,
- "dep_type": 0
- }
-},
-{
- "pk": 428,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 135,
- "dep_type": 0
- }
-},
-{
- "pk": 429,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 128,
- "recipe": 136,
- "dep_type": 0
- }
-},
-{
- "pk": 430,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 136,
- "dep_type": 0
- }
-},
-{
- "pk": 431,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 136,
- "dep_type": 0
- }
-},
-{
- "pk": 432,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 136,
- "dep_type": 0
- }
-},
-{
- "pk": 433,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 137,
- "dep_type": 0
- }
-},
-{
- "pk": 434,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 137,
- "dep_type": 0
- }
-},
-{
- "pk": 435,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 5,
- "recipe": 10,
- "dep_type": 0
- }
-},
-{
- "pk": 436,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 10,
- "dep_type": 0
- }
-},
-{
- "pk": 437,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 6,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 438,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 116,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 439,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 440,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 441,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 442,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 443,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 444,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 27,
- "dep_type": 0
- }
-},
-{
- "pk": 445,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 111,
- "recipe": 138,
- "dep_type": 0
- }
-},
-{
- "pk": 446,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 48,
- "recipe": 138,
- "dep_type": 0
- }
-},
-{
- "pk": 447,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 120,
- "recipe": 139,
- "dep_type": 0
- }
-},
-{
- "pk": 448,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 139,
- "dep_type": 0
- }
-},
-{
- "pk": 449,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 82,
- "recipe": 140,
- "dep_type": 0
- }
-},
-{
- "pk": 450,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 8,
- "recipe": 94,
- "dep_type": 0
- }
-},
-{
- "pk": 451,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 94,
- "dep_type": 0
- }
-},
-{
- "pk": 452,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 94,
- "dep_type": 0
- }
-},
-{
- "pk": 453,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 94,
- "dep_type": 0
- }
-},
-{
- "pk": 454,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 94,
- "dep_type": 0
- }
-},
-{
- "pk": 455,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 73,
- "recipe": 94,
- "dep_type": 0
- }
-},
-{
- "pk": 456,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 75,
- "recipe": 94,
- "dep_type": 0
- }
-},
-{
- "pk": 457,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 65,
- "recipe": 141,
- "dep_type": 0
- }
-},
-{
- "pk": 458,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 53,
- "recipe": 141,
- "dep_type": 0
- }
-},
-{
- "pk": 459,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 141,
- "dep_type": 0
- }
-},
-{
- "pk": 460,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 33,
- "recipe": 141,
- "dep_type": 0
- }
-},
-{
- "pk": 461,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 11,
- "recipe": 141,
- "dep_type": 0
- }
-},
-{
- "pk": 462,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 141,
- "dep_type": 0
- }
-},
-{
- "pk": 463,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 124,
- "recipe": 3,
- "dep_type": 1
- }
-},
-{
- "pk": 464,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 7,
- "recipe": 7,
- "dep_type": 1
- }
-},
-{
- "pk": 465,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 17,
- "recipe": 17,
- "dep_type": 1
- }
-},
-{
- "pk": 466,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 119,
- "recipe": 17,
- "dep_type": 1
- }
-},
-{
- "pk": 467,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 140,
- "recipe": 17,
- "dep_type": 1
- }
-},
-{
- "pk": 468,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 1,
- "recipe": 17,
- "dep_type": 1
- }
-},
-{
- "pk": 469,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 21,
- "recipe": 21,
- "dep_type": 1
- }
-},
-{
- "pk": 470,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 22,
- "recipe": 22,
- "dep_type": 1
- }
-},
-{
- "pk": 471,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 24,
- "recipe": 24,
- "dep_type": 1
- }
-},
-{
- "pk": 472,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 2,
- "recipe": 2,
- "dep_type": 1
- }
-},
-{
- "pk": 473,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 27,
- "recipe": 27,
- "dep_type": 1
- }
-},
-{
- "pk": 474,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 28,
- "recipe": 28,
- "dep_type": 1
- }
-},
-{
- "pk": 475,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 21,
- "recipe": 20,
- "dep_type": 1
- }
-},
-{
- "pk": 476,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 101,
- "recipe": 33,
- "dep_type": 1
- }
-},
-{
- "pk": 477,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 57,
- "recipe": 37,
- "dep_type": 1
- }
-},
-{
- "pk": 478,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 40,
- "recipe": 40,
- "dep_type": 1
- }
-},
-{
- "pk": 479,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 46,
- "recipe": 46,
- "dep_type": 1
- }
-},
-{
- "pk": 480,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 49,
- "recipe": 49,
- "dep_type": 1
- }
-},
-{
- "pk": 481,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 57,
- "recipe": 49,
- "dep_type": 1
- }
-},
-{
- "pk": 482,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 54,
- "recipe": 54,
- "dep_type": 1
- }
-},
-{
- "pk": 483,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 98,
- "recipe": 54,
- "dep_type": 1
- }
-},
-{
- "pk": 484,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 35,
- "recipe": 60,
- "dep_type": 1
- }
-},
-{
- "pk": 485,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 86,
- "recipe": 65,
- "dep_type": 1
- }
-},
-{
- "pk": 486,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 70,
- "recipe": 70,
- "dep_type": 1
- }
-},
-{
- "pk": 487,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 80,
- "recipe": 80,
- "dep_type": 1
- }
-},
-{
- "pk": 488,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 89,
- "recipe": 89,
- "dep_type": 1
- }
-},
-{
- "pk": 489,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 115,
- "recipe": 96,
- "dep_type": 1
- }
-},
-{
- "pk": 490,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 27,
- "recipe": 96,
- "dep_type": 1
- }
-},
-{
- "pk": 491,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 98,
- "recipe": 98,
- "dep_type": 1
- }
-},
-{
- "pk": 492,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 17,
- "recipe": 100,
- "dep_type": 1
- }
-},
-{
- "pk": 493,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 69,
- "recipe": 100,
- "dep_type": 1
- }
-},
-{
- "pk": 494,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 35,
- "recipe": 101,
- "dep_type": 1
- }
-},
-{
- "pk": 495,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 88,
- "recipe": 101,
- "dep_type": 1
- }
-},
-{
- "pk": 496,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 6,
- "recipe": 6,
- "dep_type": 1
- }
-},
-{
- "pk": 497,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 68,
- "recipe": 104,
- "dep_type": 1
- }
-},
-{
- "pk": 498,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 105,
- "recipe": 105,
- "dep_type": 1
- }
-},
-{
- "pk": 499,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 91,
- "recipe": 91,
- "dep_type": 1
- }
-},
-{
- "pk": 500,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 117,
- "recipe": 117,
- "dep_type": 1
- }
-},
-{
- "pk": 501,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 119,
- "recipe": 119,
- "dep_type": 1
- }
-},
-{
- "pk": 502,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 75,
- "recipe": 75,
- "dep_type": 1
- }
-},
-{
- "pk": 503,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 136,
- "recipe": 136,
- "dep_type": 1
- }
-},
-{
- "pk": 504,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 10,
- "recipe": 10,
- "dep_type": 1
- }
-},
-{
- "pk": 505,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 138,
- "recipe": 138,
- "dep_type": 1
- }
-},
-{
- "pk": 506,
- "model": "orm.recipe_dependency",
- "fields": {
- "depends_on": 139,
- "recipe": 139,
- "dep_type": 1
- }
-},
-{
- "pk": 1,
- "model": "orm.layer",
- "fields": {
- "local_path": "/home/andreea/poky/meta-yocto-bsp",
- "name": "meta-yocto-bsp",
- "layer_index_url": "http://layers.openembedded.org/layerindex/layer/meta-yocto-bsp/"
- }
-},
-{
- "pk": 2,
- "model": "orm.layer",
- "fields": {
- "local_path": "/home/andreea/poky/meta",
- "name": "meta",
- "layer_index_url": "http://layers.openembedded.org/layerindex/layer/openembedded-core/"
- }
-},
-{
- "pk": 3,
- "model": "orm.layer",
- "fields": {
- "local_path": "/home/andreea/poky/meta-yocto",
- "name": "meta-yocto",
- "layer_index_url": "http://layers.openembedded.org/layerindex/layer/meta-yocto/"
- }
-},
-{
- "pk": 1,
- "model": "orm.layer_version",
- "fields": {
- "priority": 5,
- "commit": "1b636173ca88e5ccca1992f9a12367a1189fa674",
- "layer": 1,
- "build": 1,
- "branch": "master"
- }
-},
-{
- "pk": 2,
- "model": "orm.layer_version",
- "fields": {
- "priority": 5,
- "commit": "1b636173ca88e5ccca1992f9a12367a1189fa674",
- "layer": 2,
- "build": 1,
- "branch": "master"
- }
-},
-{
- "pk": 3,
- "model": "orm.layer_version",
- "fields": {
- "priority": 5,
- "commit": "1b636173ca88e5ccca1992f9a12367a1189fa674",
- "layer": 3,
- "build": 1,
- "branch": "master"
- }
-},
-{
- "pk": 1,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/include",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_INCDIR_NATIVE"
- }
-},
-{
- "pk": 2,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxdmcp"
- }
-},
-{
- "pk": 3,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xcb-util-image"
- }
-},
-{
- "pk": 4,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/var",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "localstatedir"
- }
-},
-{
- "pk": 5,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "prefix"
- }
-},
-{
- "pk": 6,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-bdwgc"
- }
-},
-{
- "pk": 7,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The directory where cvs checkouts will be stored in.",
- "variable_value": "/home/andreea/poky/build/downloads/cvs",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CVSDIR"
- }
-},
-{
- "pk": 8,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_gcc-cross-intermediate"
- }
-},
-{
- "pk": 9,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libtirpc"
- }
-},
-{
- "pk": 10,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xextproto-native"
- }
-},
-{
- "pk": 11,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gconf"
- }
-},
-{
- "pk": 12,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gdb"
- }
-},
-{
- "pk": 13,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-ossp-uuid"
- }
-},
-{
- "pk": 14,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/log/cooker/qemux86/20140114115445.log",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_CONSOLELOG"
- }
-},
-{
- "pk": 15,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-strip",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STRIP"
- }
-},
-{
- "pk": 16,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr/share",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_DATADIR"
- }
-},
-{
- "pk": 17,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-kbproto"
- }
-},
-{
- "pk": 18,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "base_bindir_native"
- }
-},
-{
- "pk": 19,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "libx32",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BASE_LIB_tune-x86-64-x32"
- }
-},
-{
- "pk": 20,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The section in which packages should be categorized. Package management utilities can make use of this variable.",
- "variable_value": "devel",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SECTION_${PN}-dbg"
- }
-},
-{
- "pk": 21,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The date and time the build was started at.",
- "variable_value": "20140114115445",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DATETIME"
- }
-},
-{
- "pk": 22,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDCFG_VARS"
- }
-},
-{
- "pk": 23,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Path to additional licenses used during the build.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LICENSE_PATH"
- }
-},
-{
- "pk": 24,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "gcc ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_CC"
- }
-},
-{
- "pk": 25,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-tiff-native"
- }
-},
-{
- "pk": 26,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-renderproto"
- }
-},
-{
- "pk": 27,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gnome-common"
- }
-},
-{
- "pk": 28,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-minicom"
- }
-},
-{
- "pk": 29,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "cpio.gz",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "INITRAMFS_FSTYPES"
- }
-},
-{
- "pk": 30,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Includes additional metadata from the Yocto Project kernel Git repository. The metadata you add through this variable includes config fragments and features descriptions.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KERNEL_FEATURES"
- }
-},
-{
- "pk": 31,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis.",
- "variable_value": "sdl",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGECONFIG_pn-qemu-native"
- }
-},
-{
- "pk": 32,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gdk-pixbuf-native"
- }
-},
-{
- "pk": 33,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Allows you to extend a recipe so that it builds variants of the software. Common variants for recipes are 'natives', 'crosses', 'nativesdk' and 'multilibs'.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBCLASSEXTEND"
- }
-},
-{
- "pk": 34,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-randrproto"
- }
-},
-{
- "pk": 35,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "eglibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc"
- }
-},
-{
- "pk": 36,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "nativesdk-opkg",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_nativesdk-opkg"
- }
-},
-{
- "pk": 37,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Used with file and pathnames to create a prefix for a recipe's version based on the recipe's PE value. If PE is set and greater than zero for a recipe, EXTENDPE becomes that value.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTENDPE"
- }
-},
-{
- "pk": 38,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dropbear"
- }
-},
-{
- "pk": 39,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILESEXTRAPATHS"
- }
-},
-{
- "pk": 40,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sbc"
- }
-},
-{
- "pk": 41,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/conf/bblayers.conf /home/andreea/poky/meta/conf/layer.conf /home/andreea/poky/meta-yocto/conf/layer.conf /home/andreea/poky/meta-yocto-bsp/conf/layer.conf /home/andreea/poky/meta-yocto/conf/bitbake.conf /home/andreea/poky/build/conf/bitbake.conf /home/andreea/poky/meta/conf/bitbake.conf /home/andreea/poky/build/conf/conf/abi_version.conf /home/andreea/poky/meta-yocto/conf/abi_version.conf /home/andreea/poky/build/conf/abi_version.conf /home/andreea/poky/meta/conf/abi_version.conf /home/andreea/poky/build/conf/conf/site.conf /home/andreea/poky/meta-yocto/conf/site.conf /home/andreea/poky/build/conf/site.conf /home/andreea/poky/meta/conf/site.conf /home/andreea/poky/meta-yocto-bsp/conf/site.conf /home/andreea/poky/build/conf/site.conf /home/andreea/poky/build/conf/conf/auto.conf /home/andreea/poky/meta-yocto/conf/auto.conf /home/andreea/poky/build/conf/auto.conf /home/andreea/poky/meta/conf/auto.conf /home/andreea/poky/meta-yocto-bsp/conf/auto.conf /home/andreea/poky/build/conf/auto.conf /home/andreea/poky/build/conf/conf/local.conf /home/andreea/poky/meta-yocto/conf/local.conf /home/andreea/poky/build/conf/local.conf /home/andreea/poky/build/conf/conf/build/i686-linux.conf /home/andreea/poky/meta-yocto/conf/build/i686-linux.conf /home/andreea/poky/build/conf/build/i686-linux.conf /home/andreea/poky/meta/conf/build/i686-linux.conf /home/andreea/poky/meta-yocto-bsp/conf/build/i686-linux.conf /home/andreea/poky/build/conf/build/i686-linux.conf /home/andreea/poky/build/conf/conf/target/INVALID-oe-linux.conf /home/andreea/poky/meta-yocto/conf/target/INVALID-oe-linux.conf /home/andreea/poky/build/conf/target/INVALID-oe-linux.conf /home/andreea/poky/meta/conf/target/INVALID-oe-linux.conf /home/andreea/poky/meta-yocto-bsp/conf/target/INVALID-oe-linux.conf /home/andreea/poky/build/conf/target/INVALID-oe-linux.conf /home/andreea/poky/build/conf/conf/machine/qemux86.conf /home/andreea/poky/meta-yocto/conf/machine/qemux86.conf /home/andreea/poky/build/conf/machine/qemux86.conf /home/andreea/poky/meta/conf/machine/qemux86.conf /home/andreea/poky/meta/conf/machine/conf/machine/include/qemu.inc /home/andreea/poky/meta-yocto/conf/machine/include/qemu.inc /home/andreea/poky/build/conf/machine/include/qemu.inc /home/andreea/poky/meta/conf/machine/include/qemu.inc /home/andreea/poky/meta/conf/machine/conf/machine/include/tune-i586.inc /home/andreea/poky/meta-yocto/conf/machine/include/tune-i586.inc /home/andreea/poky/build/conf/machine/include/tune-i586.inc /home/andreea/poky/meta/conf/machine/include/tune-i586.inc /home/andreea/poky/meta/conf/machine/include/conf/machine/include/ia32/arch-ia32.inc /home/andreea/poky/meta-yocto/conf/machine/include/ia32/arch-ia32.inc /home/andreea/poky/build/conf/machine/include/ia32/arch-ia32.inc /home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc /home/andreea/poky/build/conf/conf/machine-sdk/${SDKMACHINE}.conf /home/andreea/poky/meta-yocto/conf/machine-sdk/${SDKMACHINE}.conf /home/andreea/poky/build/conf/machine-sdk/${SDKMACHINE}.conf /home/andreea/poky/meta/conf/machine-sdk/${SDKMACHINE}.conf /home/andreea/poky/meta-yocto-bsp/conf/machine-sdk/${SDKMACHINE}.conf /home/andreea/poky/build/conf/machine-sdk/${SDKMACHINE}.conf /home/andreea/poky/build/conf/conf/distro/poky.conf /home/andreea/poky/meta-yocto/conf/distro/poky.conf /home/andreea/poky/meta-yocto/conf/distro/conf/distro/include/seperatebuilddir.inc /home/andreea/poky/meta-yocto/conf/distro/include/seperatebuilddir.inc /home/andreea/poky/build/conf/distro/include/seperatebuilddir.inc /home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc /home/andreea/poky/build/conf/conf/distro/defaultsetup.conf /home/andreea/poky/meta-yocto/conf/distro/defaultsetup.conf /home/andreea/poky/build/conf/distro/defaultsetup.conf /home/andreea/poky/meta/conf/distro/defaultsetup.conf /home/andreea/poky/meta/conf/distro/conf/distro/include/default-providers.inc /home/andreea/poky/meta-yocto/conf/distro/include/default-providers.inc /home/andreea/poky/build/conf/distro/include/default-providers.inc /home/andreea/poky/meta/conf/distro/include/default-providers.inc /home/andreea/poky/meta/conf/distro/conf/distro/include/default-versions.inc /home/andreea/poky/meta-yocto/conf/distro/include/default-versions.inc /home/andreea/poky/build/conf/distro/include/default-versions.inc /home/andreea/poky/meta/conf/distro/include/default-versions.inc /home/andreea/poky/meta/conf/distro/conf/distro/include/default-distrovars.inc /home/andreea/poky/meta-yocto/conf/distro/include/default-distrovars.inc /home/andreea/poky/build/conf/distro/include/default-distrovars.inc /home/andreea/poky/meta/conf/distro/include/default-distrovars.inc /home/andreea/poky/meta/conf/distro/conf/distro/include/world-broken.inc /home/andreea/poky/meta-yocto/conf/distro/include/world-broken.inc /home/andreea/poky/build/conf/distro/include/world-broken.inc /home/andreea/poky/meta/conf/distro/include/world-broken.inc /home/andreea/poky/meta/conf/distro/conf/distro/include/tcmode-default.inc /home/andreea/poky/meta-yocto/conf/distro/include/tcmode-default.inc /home/andreea/poky/build/conf/distro/include/tcmode-default.inc /home/andreea/poky/meta/conf/distro/include/tcmode-default.inc /home/andreea/poky/meta/conf/distro/include/conf/distro/include/as-needed.inc /home/andreea/poky/meta-yocto/conf/distro/include/as-needed.inc /home/andreea/poky/build/conf/distro/include/as-needed.inc /home/andreea/poky/meta/conf/distro/include/as-needed.inc /home/andreea/poky/meta/conf/distro/conf/distro/include/tclibc-eglibc.inc /home/andreea/poky/meta-yocto/conf/distro/include/tclibc-eglibc.inc /home/andreea/poky/build/conf/distro/include/tclibc-eglibc.inc /home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc /home/andreea/poky/build/conf/conf/documentation.conf /home/andreea/poky/meta-yocto/conf/documentation.conf /home/andreea/poky/build/conf/documentation.conf /home/andreea/poky/meta/conf/documentation.conf /home/andreea/poky/build/conf/conf/licenses.conf /home/andreea/poky/meta-yocto/conf/licenses.conf /home/andreea/poky/build/conf/licenses.conf /home/andreea/poky/meta/conf/licenses.conf /home/andreea/poky/build/conf/conf/sanity.conf /home/andreea/poky/meta-yocto/conf/sanity.conf /home/andreea/poky/build/conf/sanity.conf /home/andreea/poky/meta/conf/sanity.conf /home/andreea/poky/meta-yocto/conf/toaster.conf /home/andreea/poky/build/conf/toaster.conf /home/andreea/poky/build/classes/base.bbclass /home/andreea/poky/meta-yocto/classes/base.bbclass /home/andreea/poky/build/classes/base.bbclass /home/andreea/poky/meta/classes/base.bbclass /home/andreea/poky/meta/classes/classes/patch.bbclass /home/andreea/poky/meta-yocto/classes/patch.bbclass /home/andreea/poky/build/classes/patch.bbclass /home/andreea/poky/meta/classes/patch.bbclass /home/andreea/poky/meta/classes/classes/terminal.bbclass /home/andreea/poky/meta-yocto/classes/terminal.bbclass /home/andreea/poky/build/classes/terminal.bbclass /home/andreea/poky/meta/classes/terminal.bbclass /home/andreea/poky/meta/classes/classes/staging.bbclass /home/andreea/poky/meta-yocto/classes/staging.bbclass /home/andreea/poky/build/classes/staging.bbclass /home/andreea/poky/meta/classes/staging.bbclass /home/andreea/poky/meta/classes/classes/mirrors.bbclass /home/andreea/poky/meta-yocto/classes/mirrors.bbclass /home/andreea/poky/build/classes/mirrors.bbclass /home/andreea/poky/meta/classes/mirrors.bbclass /home/andreea/poky/meta/classes/classes/utils.bbclass /home/andreea/poky/meta-yocto/classes/utils.bbclass /home/andreea/poky/build/classes/utils.bbclass /home/andreea/poky/meta/classes/utils.bbclass /home/andreea/poky/meta/classes/classes/utility-tasks.bbclass /home/andreea/poky/meta-yocto/classes/utility-tasks.bbclass /home/andreea/poky/build/classes/utility-tasks.bbclass /home/andreea/poky/meta/classes/utility-tasks.bbclass /home/andreea/poky/meta/classes/classes/metadata_scm.bbclass /home/andreea/poky/meta-yocto/classes/metadata_scm.bbclass /home/andreea/poky/build/classes/metadata_scm.bbclass /home/andreea/poky/meta/classes/metadata_scm.bbclass /home/andreea/poky/meta/classes/classes/logging.bbclass /home/andreea/poky/meta-yocto/classes/logging.bbclass /home/andreea/poky/build/classes/logging.bbclass /home/andreea/poky/meta/classes/logging.bbclass /home/andreea/poky/build/classes/poky-sanity.bbclass /home/andreea/poky/meta-yocto/classes/poky-sanity.bbclass /home/andreea/poky/build/classes/package_rpm.bbclass /home/andreea/poky/meta-yocto/classes/package_rpm.bbclass /home/andreea/poky/build/classes/package_rpm.bbclass /home/andreea/poky/meta/classes/package_rpm.bbclass /home/andreea/poky/meta/classes/classes/package.bbclass /home/andreea/poky/meta-yocto/classes/package.bbclass /home/andreea/poky/build/classes/package.bbclass /home/andreea/poky/meta/classes/package.bbclass /home/andreea/poky/meta/classes/classes/packagedata.bbclass /home/andreea/poky/meta-yocto/classes/packagedata.bbclass /home/andreea/poky/build/classes/packagedata.bbclass /home/andreea/poky/meta/classes/packagedata.bbclass /home/andreea/poky/meta/classes/classes/prserv.bbclass /home/andreea/poky/meta-yocto/classes/prserv.bbclass /home/andreea/poky/build/classes/prserv.bbclass /home/andreea/poky/meta/classes/prserv.bbclass /home/andreea/poky/meta/classes/classes/chrpath.bbclass /home/andreea/poky/meta-yocto/classes/chrpath.bbclass /home/andreea/poky/build/classes/chrpath.bbclass /home/andreea/poky/meta/classes/chrpath.bbclass /home/andreea/poky/meta/classes/classes/insane.bbclass /home/andreea/poky/meta-yocto/classes/insane.bbclass /home/andreea/poky/build/classes/insane.bbclass /home/andreea/poky/meta/classes/insane.bbclass /home/andreea/poky/build/classes/buildstats.bbclass /home/andreea/poky/meta-yocto/classes/buildstats.bbclass /home/andreea/poky/build/classes/buildstats.bbclass /home/andreea/poky/meta/classes/buildstats.bbclass /home/andreea/poky/build/classes/image-mklibs.bbclass /home/andreea/poky/meta-yocto/classes/image-mklibs.bbclass /home/andreea/poky/build/classes/image-mklibs.bbclass /home/andreea/poky/meta/classes/image-mklibs.bbclass /home/andreea/poky/build/classes/image-prelink.bbclass /home/andreea/poky/meta-yocto/classes/image-prelink.bbclass /home/andreea/poky/build/classes/image-prelink.bbclass /home/andreea/poky/meta/classes/image-prelink.bbclass /home/andreea/poky/build/classes/debian.bbclass /home/andreea/poky/meta-yocto/classes/debian.bbclass /home/andreea/poky/build/classes/debian.bbclass /home/andreea/poky/meta/classes/debian.bbclass /home/andreea/poky/build/classes/devshell.bbclass /home/andreea/poky/meta-yocto/classes/devshell.bbclass /home/andreea/poky/build/classes/devshell.bbclass /home/andreea/poky/meta/classes/devshell.bbclass /home/andreea/poky/build/classes/sstate.bbclass /home/andreea/poky/meta-yocto/classes/sstate.bbclass /home/andreea/poky/build/classes/sstate.bbclass /home/andreea/poky/meta/classes/sstate.bbclass /home/andreea/poky/build/classes/license.bbclass /home/andreea/poky/meta-yocto/classes/license.bbclass /home/andreea/poky/build/classes/license.bbclass /home/andreea/poky/meta/classes/license.bbclass /home/andreea/poky/build/classes/sanity.bbclass /home/andreea/poky/meta-yocto/classes/sanity.bbclass /home/andreea/poky/build/classes/sanity.bbclass /home/andreea/poky/meta/classes/sanity.bbclass /home/andreea/poky/build/classes/toaster.bbclass /home/andreea/poky/meta-yocto/classes/toaster.bbclass /home/andreea/poky/build/classes/toaster.bbclass /home/andreea/poky/meta/classes/toaster.bbclass /home/andreea/poky/build/classes/buildhistory.bbclass /home/andreea/poky/meta-yocto/classes/buildhistory.bbclass /home/andreea/poky/build/classes/buildhistory.bbclass /home/andreea/poky/meta/classes/buildhistory.bbclass",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBINCLUDED"
- }
-},
-{
- "pk": 42,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "poky-eglibc-i686-bblayers-i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_NAME"
- }
-},
-{
- "pk": 43,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libmpc"
- }
-},
-{
- "pk": 44,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-chrpath"
- }
-},
-{
- "pk": 45,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The destination directory.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DESTDIR"
- }
-},
-{
- "pk": 46,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/lib/bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "libexecdir"
- }
-},
-{
- "pk": 47,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libx11-diet"
- }
-},
-{
- "pk": 48,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR within the module.bbclass class.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KERNEL_SRC"
- }
-},
-{
- "pk": 49,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libxdmcp"
- }
-},
-{
- "pk": 50,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Defines the size in Kbytes for the generated image.",
- "variable_value": "65536",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_ROOTFS_SIZE"
- }
-},
-{
- "pk": 51,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "buildhistory_get_image_installed ; ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ROOTFS_POSTPROCESS_COMMAND"
- }
-},
-{
- "pk": 52,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxdamage"
- }
-},
-{
- "pk": 53,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1.21.1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_MIN_VERSION"
- }
-},
-{
- "pk": 54,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-pokysdk",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_VENDOR"
- }
-},
-{
- "pk": 55,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-rpm"
- }
-},
-{
- "pk": 56,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gnutls-native"
- }
-},
-{
- "pk": 57,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/share",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "datadir"
- }
-},
-{
- "pk": 58,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/etc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_ETCDIR_NATIVE"
- }
-},
-{
- "pk": 59,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libgcc"
- }
-},
-{
- "pk": 60,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LOCALEBASEPN"
- }
-},
-{
- "pk": 61,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The short (72 characters or less) summary of the binary package for packaging systems such as opkg, rpm or dpkg. By default, SUMMARY is used to define the DESCRIPTION variable if DESCRIPTION is not set in the recipe.",
- "variable_value": "bblayers version 1.0-r0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SUMMARY"
- }
-},
-{
- "pk": 62,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-bigreqsproto"
- }
-},
-{
- "pk": 63,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Controls creation of the modules-*.tgz file. Set this variable to \"0\" to disable creation of this file, which contains all of the kernel modules resulting from a kernel build.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MODULE_TARBALL_DEPLOY"
- }
-},
-{
- "pk": 64,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-automake"
- }
-},
-{
- "pk": 65,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libcroco"
- }
-},
-{
- "pk": 66,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/sbin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "sbindir_native"
- }
-},
-{
- "pk": 67,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "List of packages (recipes actually) which are assumed to be implicitly available. These packages won't be built by BitBake.",
- "variable_value": "bzip2-native chrpath-native git-native grep-native diffstat-native patch-native perl-native-runtime python-native-runtime tar-native virtual/libintl-native libsdl-native",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASSUME_PROVIDED"
- }
-},
-{
- "pk": 68,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/license-destdir/",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LICSSTATEDIR"
- }
-},
-{
- "pk": 69,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "all any noarch x86 i386 i486 i586 qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ALL_MULTILIB_PACKAGE_ARCHS"
- }
-},
-{
- "pk": 70,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "6",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LCONF_VERSION"
- }
-},
-{
- "pk": 71,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin/env hg",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FETCHCMD_hg"
- }
-},
-{
- "pk": 72,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "g++ ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_CXX"
- }
-},
-{
- "pk": 73,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-autoconf-native"
- }
-},
-{
- "pk": 74,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxml2-native"
- }
-},
-{
- "pk": 75,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "URL to source mirror which will be used before fetching from original SRC_URI.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SOURCE_MIRROR_URL"
- }
-},
-{
- "pk": 76,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-parted-native"
- }
-},
-{
- "pk": 77,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/rootfs",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_ROOTFS"
- }
-},
-{
- "pk": 78,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "mktemp -q ${TMPBASE}",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MKTEMPCMD"
- }
-},
-{
- "pk": 79,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://www.apache.org/dist",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "APACHE_MIRROR"
- }
-},
-{
- "pk": 80,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-ld --sysroot=/home/andreea/poky/build/tmp/sysroots/qemux86 ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LD"
- }
-},
-{
- "pk": 81,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors.",
- "variable_value": "x86_64",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_EXTRA_ARCHS_tune-x86-64"
- }
-},
-{
- "pk": 82,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.18",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_eglibc-initial"
- }
-},
-{
- "pk": 83,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-guile-native"
- }
-},
-{
- "pk": 84,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "packagegroup-base",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINE_TASK_PROVIDER"
- }
-},
-{
- "pk": 85,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Additional GNU make options.",
- "variable_value": "-e MAKEFLAGS=",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTRA_OEMAKE"
- }
-},
-{
- "pk": 86,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/opt/poky/1.5+snapshot",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDKPATH"
- }
-},
-{
- "pk": 87,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Assigns the priority for recipe files in each layer. Setting this variable allows you to prioritize a layer against other layers that contain the same recipe.",
- "variable_value": "5",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBFILE_PRIORITY_yoctobsp"
- }
-},
-{
- "pk": 88,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "bindir"
- }
-},
-{
- "pk": 89,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The short (72 characters or less) summary of the binary package for packaging systems such as opkg, rpm or dpkg. By default, SUMMARY is used to define the DESCRIPTION variable if DESCRIPTION is not set in the recipe.",
- "variable_value": "bblayers version 1.0-r0 - Debugging files",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SUMMARY_${PN}-dbg"
- }
-},
-{
- "pk": 90,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/stamps/i586-poky-linux/bblayers/*-*",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAMPCLEAN"
- }
-},
-{
- "pk": 91,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "bluez4",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_bluez4"
- }
-},
-{
- "pk": 92,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/buildstats/",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDSTATS_BASE"
- }
-},
-{
- "pk": 93,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QAPATHTEST"
- }
-},
-{
- "pk": 94,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " -O2 -pipe -g -feliminate-unused-debug-types -fpermissive",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_CXXFLAGS"
- }
-},
-{
- "pk": 95,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-prelink-native"
- }
-},
-{
- "pk": 96,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The name of the building architecture. E.g. i686.",
- "variable_value": "i686",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_ARCH"
- }
-},
-{
- "pk": 97,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libdaemon"
- }
-},
-{
- "pk": 98,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/include",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "includedir"
- }
-},
-{
- "pk": 99,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MULTIMACH_HOST_SYS"
- }
-},
-{
- "pk": 100,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-subversion"
- }
-},
-{
- "pk": 101,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxsettings-client"
- }
-},
-{
- "pk": 102,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586:x86:qemuall:qemux86:poky",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILESOVERRIDES"
- }
-},
-{
- "pk": 103,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of directories or files that are placed in packages.",
- "variable_value": "/usr/share/doc /usr/share/man /usr/share/info /usr/share/gtk-doc /usr/share/gnome/help",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILES_${PN}-doc"
- }
-},
-{
- "pk": 104,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gperf-native"
- }
-},
-{
- "pk": 105,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sgml-common-native"
- }
-},
-{
- "pk": 106,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-glew"
- }
-},
-{
- "pk": 107,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": ":libc-glibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LIBCOVERRIDE"
- }
-},
-{
- "pk": 108,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-L/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/lib -L/home/andreea/poky/build/tmp/sysroots/i686-linux/lib -Wl,-rpath-link,/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/lib -Wl,-rpath-link,/home/andreea/poky/build/tmp/sysroots/i686-linux/lib -Wl,-rpath,/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/lib -Wl,-rpath,/home/andreea/poky/build/tmp/sysroots/i686-linux/lib -Wl,-O1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_LDFLAGS"
- }
-},
-{
- "pk": 109,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_LIBDIR"
- }
-},
-{
- "pk": 110,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-ncurses-native"
- }
-},
-{
- "pk": 111,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-strings",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STRINGS"
- }
-},
-{
- "pk": 112,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxinerama"
- }
-},
-{
- "pk": 113,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gtk+"
- }
-},
-{
- "pk": 114,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "buildhistory <buildhistory@poky>",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDHISTORY_COMMIT_AUTHOR"
- }
-},
-{
- "pk": 115,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LIBCEXTENSION"
- }
-},
-{
- "pk": 116,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-directfb-examples"
- }
-},
-{
- "pk": 117,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-font-util-native"
- }
-},
-{
- "pk": 118,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies if an output package should still be produced if it is empty.",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ALLOW_EMPTY_${PN}-dbg"
- }
-},
-{
- "pk": 119,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libxau"
- }
-},
-{
- "pk": 120,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sed"
- }
-},
-{
- "pk": 121,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "ld ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_LD"
- }
-},
-{
- "pk": 122,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxvmc"
- }
-},
-{
- "pk": 123,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Optionally specifies the version of a layer as a single number. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LAYERVERSION"
- }
-},
-{
- "pk": 124,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " package_do_split_locales populate_packages",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGESPLITFUNCS"
- }
-},
-{
- "pk": 125,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-shadow-native"
- }
-},
-{
- "pk": 126,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "gettext",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/gettext"
- }
-},
-{
- "pk": 127,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/share/licenses/",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LICENSE_FILES_DIRECTORY"
- }
-},
-{
- "pk": 128,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-atk-native"
- }
-},
-{
- "pk": 129,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Defines the kernel type to be used in assembling the configuration.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LINUX_KERNEL_TYPE"
- }
-},
-{
- "pk": 130,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "eglibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/libintl"
- }
-},
-{
- "pk": 131,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/include",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "oldincludedir"
- }
-},
-{
- "pk": 132,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libksba"
- }
-},
-{
- "pk": 133,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the options to pass to update-rc.d. The variable is mandatory and is used in recipes when using update-rc.d.bbclass.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "INITSCRIPT_PARAMS"
- }
-},
-{
- "pk": 134,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dbus-glib"
- }
-},
-{
- "pk": 135,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-m4-native"
- }
-},
-{
- "pk": 136,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The time the build was started HMS",
- "variable_value": "115445",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TIME"
- }
-},
-{
- "pk": 137,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-kbproto"
- }
-},
-{
- "pk": 138,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/var",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "localstatedir_nativesdk"
- }
-},
-{
- "pk": 139,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Allow to serve ipk deploy dir as an adhoc feed (bogofeed). Set to base URL of the dir as exported by HTTP. Set of adhoc feed configs will be generated in image.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FEED_DEPLOYDIR_BASE_URI"
- }
-},
-{
- "pk": 140,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-tar-replacement-native"
- }
-},
-{
- "pk": 141,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTENDPRAUTO"
- }
-},
-{
- "pk": 142,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxtst"
- }
-},
-{
- "pk": 143,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "gcc ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_CCLD"
- }
-},
-{
- "pk": 144,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/sstate-cache/*/sstate:bblayers:i586-poky-linux:1.0:r0:i586:3:",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_PATHSPEC"
- }
-},
-{
- "pk": 145,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-cogl-1.0"
- }
-},
-{
- "pk": 146,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libsndfile1"
- }
-},
-{
- "pk": 147,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-cairo-native"
- }
-},
-{
- "pk": 148,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " poky_update_bblayersconf oecore_update_bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBLAYERS_CONF_UPDATE_FUNCS"
- }
-},
-{
- "pk": 149,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/bblayers-1.0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B"
- }
-},
-{
- "pk": 150,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The key highly influence the fetcher implementations.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GROUP_fetcher"
- }
-},
-{
- "pk": 151,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sysprof"
- }
-},
-{
- "pk": 152,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-python-pygobject-native"
- }
-},
-{
- "pk": 153,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gst-fluendo-mpegdemux"
- }
-},
-{
- "pk": 154,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-lzo"
- }
-},
-{
- "pk": 155,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Points to the location of the Build Directory.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDDIR"
- }
-},
-{
- "pk": 156,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xserver-xorg"
- }
-},
-{
- "pk": 157,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-readline"
- }
-},
-{
- "pk": 158,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOST_LD_ARCH"
- }
-},
-{
- "pk": 159,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-bigreqsproto"
- }
-},
-{
- "pk": 160,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The keys in this group influence the dependency handling of BitBake and the resulting packages.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GROUP_dependencies"
- }
-},
-{
- "pk": 161,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-menu-cache"
- }
-},
-{
- "pk": 162,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_STRICT_CHECKSUM"
- }
-},
-{
- "pk": 163,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LICENSE_CREATE_PACKAGE"
- }
-},
-{
- "pk": 164,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libfakekey"
- }
-},
-{
- "pk": 165,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_gcc-cross"
- }
-},
-{
- "pk": 166,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gtk-engines"
- }
-},
-{
- "pk": 167,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN).",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RDEPENDS"
- }
-},
-{
- "pk": 168,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-kbd"
- }
-},
-{
- "pk": 169,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-scrnsaverproto"
- }
-},
-{
- "pk": 170,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "USRBINPATH_class-nativesdk"
- }
-},
-{
- "pk": 171,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-udev"
- }
-},
-{
- "pk": 172,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mpfr-native"
- }
-},
-{
- "pk": 173,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-opensp-native"
- }
-},
-{
- "pk": 174,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Checksums of the license text in the recipe source code.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LIC_FILES_CHKSUM"
- }
-},
-{
- "pk": 175,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "lib64",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BASE_LIB_tune-x86-64"
- }
-},
-{
- "pk": 176,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xcb-util-keysyms"
- }
-},
-{
- "pk": 177,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libmpc"
- }
-},
-{
- "pk": 178,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-fstests"
- }
-},
-{
- "pk": 179,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/pkgdata/shlibs",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SHLIBSDIRS"
- }
-},
-{
- "pk": 180,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-db"
- }
-},
-{
- "pk": 181,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-telepathy-python"
- }
-},
-{
- "pk": 182,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Monitors disk space and available inodes during the build and allows you to control the build based on these parameters.",
- "variable_value": "STOPTASKS,/home/andreea/poky/build/tmp,1G,100K STOPTASKS,/home/andreea/poky/build/downloads,1G,100K STOPTASKS,/home/andreea/poky/build/sstate-cache,1G,100K ABORT,/home/andreea/poky/build/tmp,100M,1K ABORT,/home/andreea/poky/build/downloads,100M,1K ABORT,/home/andreea/poky/build/sstate-cache,100M,1K",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_DISKMON_DIRS"
- }
-},
-{
- "pk": 183,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "yes",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDKUSE_NLS"
- }
-},
-{
- "pk": 184,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sstate-control/manifest-i586-bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_MANFILEPREFIX"
- }
-},
-{
- "pk": 185,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxml2"
- }
-},
-{
- "pk": 186,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Identifies editable or configurable files that are part of a package.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CONFFILES"
- }
-},
-{
- "pk": 187,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/root",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ROOT_HOME"
- }
-},
-{
- "pk": 188,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-python-pygtk"
- }
-},
-{
- "pk": 189,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xkbcomp-native"
- }
-},
-{
- "pk": 190,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Defines the kernel type to be used in assembling the configuration.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KTYPE"
- }
-},
-{
- "pk": 191,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The short (72 characters or less) summary of the binary package for packaging systems such as opkg, rpm or dpkg. By default, SUMMARY is used to define the DESCRIPTION variable if DESCRIPTION is not set in the recipe.",
- "variable_value": "bblayers version 1.0-r0 - Development files",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SUMMARY_${PN}-dev"
- }
-},
-{
- "pk": 192,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "image package sdk",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDHISTORY_FEATURES"
- }
-},
-{
- "pk": 193,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-alsa-lib-native"
- }
-},
-{
- "pk": 194,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://downloads.sourceforge.net",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SOURCEFORGE_MIRROR"
- }
-},
-{
- "pk": 195,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_AS_ARCH"
- }
-},
-{
- "pk": 196,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "true",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FOSS_COPYRIGHT"
- }
-},
-{
- "pk": 197,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_MANMACH"
- }
-},
-{
- "pk": 198,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sgml-common"
- }
-},
-{
- "pk": 199,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_EXECPREFIXDIR"
- }
-},
-{
- "pk": 200,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "base_dep"
- }
-},
-{
- "pk": 201,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xcursor-transparent-theme"
- }
-},
-{
- "pk": 202,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/pseudo/",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PSEUDO_LOCALSTATEDIR"
- }
-},
-{
- "pk": 203,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-time"
- }
-},
-{
- "pk": 204,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-polkit"
- }
-},
-{
- "pk": 205,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "List of shlib:package[_version] mappings. Useful for lib packages in ASSUME_PROVIDED, for which automatic shlib dependency tracking doesn't work.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASSUME_SHLIBS"
- }
-},
-{
- "pk": 206,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "2.6.16",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "OLDEST_KERNEL"
- }
-},
-{
- "pk": 207,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "nativesdk-eglibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/nativesdk-libiconv"
- }
-},
-{
- "pk": 208,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-cpu e5500",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QEMU_OPTIONS_e5500-64b"
- }
-},
-{
- "pk": 209,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.7.3",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_python-native"
- }
-},
-{
- "pk": 210,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-cmake"
- }
-},
-{
- "pk": 211,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/.Xauthority",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "XAUTHORITY"
- }
-},
-{
- "pk": 212,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of additional packages that you can suggest for installation by the package manager at the time a package is installed. Not all package managers support this functionality.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RSUGGESTS"
- }
-},
-{
- "pk": 213,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The email address used to contact the original author(s) in order to send patches and forward bugs.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "AUTHOR"
- }
-},
-{
- "pk": 214,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Variable that expands to match files from BBFILES in a particular layer. This variable is used in the layer.conf file and must be suffixed with the name of a layer.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBFILE_PATTERN"
- }
-},
-{
- "pk": 215,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-L/home/andreea/poky/build/tmp/sysroots/qemux86/usr/lib -Wl,-rpath-link,/home/andreea/poky/build/tmp/sysroots/qemux86/usr/lib -Wl,-rpath,/usr/lib -Wl,-O1 -L/home/andreea/poky/build/tmp/sysroots/qemux86/lib -Wl,-rpath-link,/home/andreea/poky/build/tmp/sysroots/qemux86/lib -Wl,-rpath,/lib -Wl,-O1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDSDK_LDFLAGS"
- }
-},
-{
- "pk": 216,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the architecture (i686 or x86_64) to build SDK/ADT tiems for.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDKMACHINE"
- }
-},
-{
- "pk": 217,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "packagegroup-core-boot",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "POKY_DEFAULT_EXTRA_RDEPENDS"
- }
-},
-{
- "pk": 218,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxfixes-native"
- }
-},
-{
- "pk": 219,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-cracklib"
- }
-},
-{
- "pk": 220,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "nativesdk-eglibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc"
- }
-},
-{
- "pk": 221,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gdb-cross"
- }
-},
-{
- "pk": 222,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-apt"
- }
-},
-{
- "pk": 223,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-make"
- }
-},
-{
- "pk": 224,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of packages that extends the usability of a package being built. The package being built does not depend on this list of packages in order to successfully build, but needs them for the extended usability.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RRECOMMENDS"
- }
-},
-{
- "pk": 225,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of recipe dependencies that should not be used to determine signatures of tasks from one recipe when they depend on tasks from another recipe.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS"
- }
-},
-{
- "pk": 226,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of aliases that a recipe also provides. These aliases are useful for satisfying dependencies of other recipes during the build (as specified by DEPENDS).",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PROVIDES"
- }
-},
-{
- "pk": 227,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/share",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_DATADIR_NATIVE"
- }
-},
-{
- "pk": 228,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The features enabled for the distribution.",
- "variable_value": "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt \t\t\t\t\tlibc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse \t\t\t\t\tlibc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code \t\t\t\t\tlibc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc \t\t\t\t\tlibc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc \t\t\t\t\tlibc-posix-wchar-io largefile opengl ptest multiarch wayland pulseaudio sysvinit",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_FEATURES"
- }
-},
-{
- "pk": 229,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists the layers that this recipe depends upon, separated by spaces. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LAYERDEPENDS"
- }
-},
-{
- "pk": 230,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-inputproto-native"
- }
-},
-{
- "pk": 231,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-subversion-native"
- }
-},
-{
- "pk": 232,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "This variable lists overrides specific to the current distribution. By default, the variable list includes the value of the DISTRO variable.",
- "variable_value": "poky",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTROOVERRIDES"
- }
-},
-{
- "pk": 233,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-grub-efi-i586-native"
- }
-},
-{
- "pk": 234,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxcb-native"
- }
-},
-{
- "pk": 235,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "gnu",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LINKER_HASH_STYLE"
- }
-},
-{
- "pk": 236,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86driproto"
- }
-},
-{
- "pk": 237,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/andreea/poky/build/tmp/sysroots/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CC"
- }
-},
-{
- "pk": 238,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxv"
- }
-},
-{
- "pk": 239,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxt"
- }
-},
-{
- "pk": 240,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-xproto"
- }
-},
-{
- "pk": 241,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/downloads/hg",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HGDIR"
- }
-},
-{
- "pk": 242,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxi"
- }
-},
-{
- "pk": 243,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-matchbox-terminal"
- }
-},
-{
- "pk": 244,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-guile"
- }
-},
-{
- "pk": 245,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-ccache-native"
- }
-},
-{
- "pk": 246,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The operating system (in lower case) of the building architecture. E.g linux.",
- "variable_value": "linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_OS"
- }
-},
-{
- "pk": 247,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "PSEUDO_PREFIX=/home/andreea/poky/build/tmp/sysroots/i686-linux/usr PSEUDO_LOCALSTATEDIR=/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/pseudo/ PSEUDO_PASSWD=/home/andreea/poky/build/tmp/sysroots/qemux86 PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FAKEROOTENV"
- }
-},
-{
- "pk": 248,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/loader",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_LOADER_DIR"
- }
-},
-{
- "pk": 249,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies a list of distro-specific packages to add to all images. The variable only applies to the images that include packagegroup-base.",
- "variable_value": " packagegroup-core-boot",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_EXTRA_RDEPENDS"
- }
-},
-{
- "pk": 250,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "andreea",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LOGNAME"
- }
-},
-{
- "pk": 251,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-console-tools"
- }
-},
-{
- "pk": 252,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libffi"
- }
-},
-{
- "pk": 253,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-distcc"
- }
-},
-{
- "pk": 254,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the list of hardware features the MACHINE supports.",
- "variable_value": "alsa bluetooth usbgadget screen x86 rtc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINE_FEATURES"
- }
-},
-{
- "pk": 255,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-e2fsprogs-native"
- }
-},
-{
- "pk": 256,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The name of the target operating system. Normally the same as the TARGET_OS.",
- "variable_value": "linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOST_OS"
- }
-},
-{
- "pk": 257,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dpkg"
- }
-},
-{
- "pk": 258,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-docbook-utils-native"
- }
-},
-{
- "pk": 259,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the method for handling FPU code. For FPU-less targets, which include most ARM CPUs, the variable must be set to 'soft'. If not, the kernel emulation gets used, which results in a performance penalty.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_FPU"
- }
-},
-{
- "pk": 260,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xtrans"
- }
-},
-{
- "pk": 261,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-xcb-proto"
- }
-},
-{
- "pk": 262,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "ftp://ftp.gnu.org/gnu",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GNU_MIRROR"
- }
-},
-{
- "pk": 263,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "By default, the OpenEmbedded build system automatically detects whether SRC_URI contains files that are machine-specific. If so, the build system automatically changes PACKAGE_ARCH. Setting this variable to '0' disables this behavior.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SRC_URI_OVERRIDES_PACKAGE_ARCH"
- }
-},
-{
- "pk": 264,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Enable test booting of virtual machine images under the qemu emulator after any root filesystems are created and run tests against those images.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TEST_IMAGE"
- }
-},
-{
- "pk": 265,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of machine-specific packages to install as part of the image being built that are not essential for the machine to boot. However, the build process for more fully-featured images depends on the packages being present.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINE_EXTRA_RDEPENDS"
- }
-},
-{
- "pk": 266,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-ed"
- }
-},
-{
- "pk": 267,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The section in which packages should be categorized. Package management utilities can make use of this variable.",
- "variable_value": "devel",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SECTION_${PN}-staticdev"
- }
-},
-{
- "pk": 268,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mkfontdir-native"
- }
-},
-{
- "pk": 269,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Variable that controls how BitBake displays logs on build failure.",
- "variable_value": "yes",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBINCLUDELOGS"
- }
-},
-{
- "pk": 270,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libpthread-stubs"
- }
-},
-{
- "pk": 271,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gtk+3"
- }
-},
-{
- "pk": 272,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "01/14/2014 11:55:06",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDSTART"
- }
-},
-{
- "pk": 273,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-bzip2"
- }
-},
-{
- "pk": 274,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-bdwgc"
- }
-},
-{
- "pk": 275,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-avahi"
- }
-},
-{
- "pk": 276,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-byacc-native"
- }
-},
-{
- "pk": 277,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-patch"
- }
-},
-{
- "pk": 278,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "TARGET_ARCH TARGET_OS",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDCFG_NEEDEDVARS"
- }
-},
-{
- "pk": 279,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GCCVERSION"
- }
-},
-{
- "pk": 280,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "lib64",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BASELIB_powerpc64"
- }
-},
-{
- "pk": 281,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "dev-so debug-deps dev-deps debug-files arch pkgconfig la perms useless-rpaths rpaths staticdev ldflags pkgvarcheck already-stripped compile-host-path dep-cmp installed-vs-shipped install-host-path packages-list perm-config perm-line perm-link pkgv-undefined pn-overrides split-strip var-undefined version-going-backwards",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ERROR_QA"
- }
-},
-{
- "pk": 282,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "mesa",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/libgl"
- }
-},
-{
- "pk": 283,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINE_FEATURES_BACKFILL_CONSIDERED"
- }
-},
-{
- "pk": 284,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CPPFLAGS"
- }
-},
-{
- "pk": 285,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEFAULTTUNE"
- }
-},
-{
- "pk": 286,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pcmanfm"
- }
-},
-{
- "pk": 287,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://xlibs.freedesktop.org/release",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "XLIBS_MIRROR"
- }
-},
-{
- "pk": 288,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i686",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_ARCH"
- }
-},
-{
- "pk": 289,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The directory for the shared state cache.",
- "variable_value": "/home/andreea/poky/build/sstate-cache",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_DIR"
- }
-},
-{
- "pk": 290,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-json-glib"
- }
-},
-{
- "pk": 291,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The destination directory.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/image",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "D"
- }
-},
-{
- "pk": 292,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/meta/files/common-licenses",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "COMMON_LICENSE_DIR"
- }
-},
-{
- "pk": 293,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-ranlib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RANLIB"
- }
-},
-{
- "pk": 294,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "rpmbuild",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RPMBUILD"
- }
-},
-{
- "pk": 295,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "\teglibc-localedata-i18n \teglibc-gconv-ibm850 \teglibc-gconv-cp1252 \teglibc-gconv-iso8859-1 \teglibc-gconv-iso8859-15",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LIBC_LOCALE_DEPENDENCIES"
- }
-},
-{
- "pk": 296,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gnome-mime-data"
- }
-},
-{
- "pk": 297,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-util-linux-native"
- }
-},
-{
- "pk": 298,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libnfsidmap"
- }
-},
-{
- "pk": 299,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-g++ -m32 -march=i586 --sysroot=/home/andreea/poky/build/tmp/sysroots/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CXX"
- }
-},
-{
- "pk": 300,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/opt/poky/1.5+snapshot/sysroots/i686-pokysdk-linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDKPATHNATIVE"
- }
-},
-{
- "pk": 301,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libsm-native"
- }
-},
-{
- "pk": 302,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-cairo"
- }
-},
-{
- "pk": 303,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "2.23.2",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BINUVERSION"
- }
-},
-{
- "pk": 304,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libsamplerate0"
- }
-},
-{
- "pk": 305,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xkbcomp"
- }
-},
-{
- "pk": 306,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "3.10%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_linux-yocto_qemumips64"
- }
-},
-{
- "pk": 307,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.23.2",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_binutils-crosssdk"
- }
-},
-{
- "pk": 308,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/buildhistory/images/qemux86/eglibc/bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDHISTORY_DIR_IMAGE"
- }
-},
-{
- "pk": 309,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Helps define the recipe revision for recipes that share a common include file.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "INC_PR"
- }
-},
-{
- "pk": 310,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists core layers that cannot be removed from the bblayers.conf file.",
- "variable_value": " /home/andreea/poky/meta /home/andreea/poky/meta-yocto ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBLAYERS_NON_REMOVABLE"
- }
-},
-{
- "pk": 311,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxkbfile-native"
- }
-},
-{
- "pk": 312,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libfontenc-native"
- }
-},
-{
- "pk": 313,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1.5+snapshot",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_VERSION"
- }
-},
-{
- "pk": 314,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-strace"
- }
-},
-{
- "pk": 315,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGECONFIG"
- }
-},
-{
- "pk": 316,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-sqlite3"
- }
-},
-{
- "pk": 317,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gettext-native"
- }
-},
-{
- "pk": 318,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libxcb"
- }
-},
-{
- "pk": 319,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Assigns the priority for recipe files in each layer. Setting this variable allows you to prioritize a layer against other layers that contain the same recipe.",
- "variable_value": "5",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBFILE_PRIORITY_core"
- }
-},
-{
- "pk": 320,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "gdb",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_gdb"
- }
-},
-{
- "pk": 321,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors.",
- "variable_value": "x86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_EXTRA_ARCHS_tune-x86"
- }
-},
-{
- "pk": 322,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of directories or files that are placed in packages.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILES"
- }
-},
-{
- "pk": 323,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of packages not to install despite being recommended by a recipe. Support for this variable exists only when using the IPK packaging backend.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BAD_RECOMMENDATIONS"
- }
-},
-{
- "pk": 324,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Optionally specifies the version of a layer as a single number. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer.",
- "variable_value": "2",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LAYERVERSION_yoctobsp"
- }
-},
-{
- "pk": 325,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gamin"
- }
-},
-{
- "pk": 326,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libpciaccess"
- }
-},
-{
- "pk": 327,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "POPULATE_SDK_POST_HOST_COMMAND"
- }
-},
-{
- "pk": 328,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " x86 x86-64 x86-64-x32 i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "AVAILTUNES"
- }
-},
-{
- "pk": 329,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "nm",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_NM"
- }
-},
-{
- "pk": 330,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of the host distribution identifiers that the build system has been tested against.",
- "variable_value": " Poky-1.4 \\n Poky-1.5 \\n Ubuntu-12.04 \\n Ubuntu-12.10 \\n Ubuntu-13.04 \\n Ubuntu-13.10 \\n Fedora-18 \\n Fedora-19 \\n Fedora-20 \\n CentOS-6.4 \\n Debian-6.0.7 \\n Debian-7.0 \\n Debian-7.1 \\n Debian-7.2 \\n SUSE-LINUX-12.2 \\n openSUSE-project-12.3 \\n ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SANITY_TESTED_DISTROS"
- }
-},
-{
- "pk": 331,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A regular expression used by the build process to explicitly identify the kernel branch that is validated, patched and configured during a build.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KBRANCH"
- }
-},
-{
- "pk": 332,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-glib-2.0"
- }
-},
-{
- "pk": 333,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "m32 i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_FEATURES"
- }
-},
-{
- "pk": 334,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "qemu-config",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "POKYQEMUDEPS"
- }
-},
-{
- "pk": 335,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-ossp-uuid-native"
- }
-},
-{
- "pk": 336,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "kernel-module-af-packet",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "POKY_DEFAULT_EXTRA_RRECOMMENDS"
- }
-},
-{
- "pk": 337,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_gcc-crosssdk"
- }
-},
-{
- "pk": 338,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dbus-wait"
- }
-},
-{
- "pk": 339,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-bison-native"
- }
-},
-{
- "pk": 340,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libmad"
- }
-},
-{
- "pk": 341,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_EXTRAPATH"
- }
-},
-{
- "pk": 342,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxft-native"
- }
-},
-{
- "pk": 343,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " -m32 -march=i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_CCARGS"
- }
-},
-{
- "pk": 344,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin/env bzr",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FETCHCMD_bzr"
- }
-},
-{
- "pk": 345,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.18",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_eglibc"
- }
-},
-{
- "pk": 346,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of additional features to include in an image. Configure this variable in the conf/local.conf file in the Build Directory.",
- "variable_value": "debug-tweaks",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTRA_IMAGE_FEATURES"
- }
-},
-{
- "pk": 347,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-lzo-native"
- }
-},
-{
- "pk": 348,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_libgcc"
- }
-},
-{
- "pk": 349,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "sstate:bblayers:i586-poky-linux:1.0:r0:i586:3:",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_PKGSPEC"
- }
-},
-{
- "pk": 350,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A regular expression that resolves to one or more hosts (when the recipe is native) or one or more targets (when the recipe is non-native) with which a recipe is compatible.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "COMPATIBLE_HOST"
- }
-},
-{
- "pk": 351,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sstate-control",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_MANIFESTS"
- }
-},
-{
- "pk": 352,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/firmware",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_FIRMWARE_DIR"
- }
-},
-{
- "pk": 353,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "List of recipe files used by BitBake to build software.",
- "variable_value": "/home/andreea/poky/meta/recipes-*/*/*.bb /home/andreea/poky/meta-yocto/recipes-*/*/*.bb /home/andreea/poky/meta-yocto/recipes-*/*/*.bbappend /home/andreea/poky/meta-yocto-bsp/recipes-*/*/*.bb /home/andreea/poky/meta-yocto-bsp/recipes-*/*/*.bbappend",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBFILES"
- }
-},
-{
- "pk": 354,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-courier-authlib"
- }
-},
-{
- "pk": 355,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "ranlib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_RANLIB"
- }
-},
-{
- "pk": 356,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-shared-mime-info"
- }
-},
-{
- "pk": 357,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-automake-native"
- }
-},
-{
- "pk": 358,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "3.10%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_linux-yocto"
- }
-},
-{
- "pk": 359,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of directories or files that are placed in packages.",
- "variable_value": "/usr/share/locale",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILES_${PN}-locale"
- }
-},
-{
- "pk": 360,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xcb-proto-native"
- }
-},
-{
- "pk": 361,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-fixesproto"
- }
-},
-{
- "pk": 362,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-eglibc-initial"
- }
-},
-{
- "pk": 363,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " prelink-native rpm-native file-native",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_DEPENDS"
- }
-},
-{
- "pk": 364,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxscrnsaver"
- }
-},
-{
- "pk": 365,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xhost"
- }
-},
-{
- "pk": 366,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable.",
- "variable_value": "bblayers version 1.0-r0. This package contains documentation.",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DESCRIPTION_${PN}-doc"
- }
-},
-{
- "pk": 367,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QEMU_OPTIONS"
- }
-},
-{
- "pk": 368,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-directfb"
- }
-},
-{
- "pk": 369,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "do_package_write_deb"
- }
-},
-{
- "pk": 370,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xz"
- }
-},
-{
- "pk": 371,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-font-alias"
- }
-},
-{
- "pk": 372,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-glib-2.0"
- }
-},
-{
- "pk": 373,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists the names of configured layers. These names are used to find the other BBFILE_* variables.",
- "variable_value": " core yocto yoctobsp",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBFILE_COLLECTIONS"
- }
-},
-{
- "pk": 374,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/share/man",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "mandir"
- }
-},
-{
- "pk": 375,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-openvpn"
- }
-},
-{
- "pk": 376,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/pseudo/",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FAKEROOTDIRS"
- }
-},
-{
- "pk": 377,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "ttyS0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KERNEL_CONSOLE"
- }
-},
-{
- "pk": 378,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-genext2fs"
- }
-},
-{
- "pk": 379,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of the packages that contain initscripts. This variable is used in recipes when using update-rc.d.bbclass. The variable is optional and defaults to the PN variable.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "INITSCRIPT_PACKAGES"
- }
-},
-{
- "pk": 380,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKG_CONFIG_SYSROOT_DIR"
- }
-},
-{
- "pk": 381,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-readline"
- }
-},
-{
- "pk": 382,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The default set of directories the OpenEmbedded build system uses when searching for patches and files. It is defined in the base.bbclass class found in meta/classes in the Source Directory. Do not hand-edit the FILESPATH variable.",
- "variable_value": "/home/andreea/poky/build/conf/bblayers-1.0/poky:/home/andreea/poky/build/conf/bblayers/poky:/home/andreea/poky/build/conf/files/poky:/home/andreea/poky/build/conf/bblayers-1.0/qemux86:/home/andreea/poky/build/conf/bblayers/qemux86:/home/andreea/poky/build/conf/files/qemux86:/home/andreea/poky/build/conf/bblayers-1.0/qemuall:/home/andreea/poky/build/conf/bblayers/qemuall:/home/andreea/poky/build/conf/files/qemuall:/home/andreea/poky/build/conf/bblayers-1.0/x86:/home/andreea/poky/build/conf/bblayers/x86:/home/andreea/poky/build/conf/files/x86:/home/andreea/poky/build/conf/bblayers-1.0/i586:/home/andreea/poky/build/conf/bblayers/i586:/home/andreea/poky/build/conf/files/i586:/home/andreea/poky/build/conf/bblayers-1.0/:/home/andreea/poky/build/conf/bblayers/:/home/andreea/poky/build/conf/files/",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILESPATH"
- }
-},
-{
- "pk": 383,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_ARCH"
- }
-},
-{
- "pk": 384,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libice"
- }
-},
-{
- "pk": 385,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-video-modesetting"
- }
-},
-{
- "pk": 386,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "eglibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/libc"
- }
-},
-{
- "pk": 387,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-screen"
- }
-},
-{
- "pk": 388,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-objcopy",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "OBJCOPY"
- }
-},
-{
- "pk": 389,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mpeg2dec"
- }
-},
-{
- "pk": 390,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/lib/bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "libexecdir_native"
- }
-},
-{
- "pk": 391,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xinetd"
- }
-},
-{
- "pk": 392,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of source files - local or remote. This variable tells the OpenEmbedded build system which bits to pull in for the build and how to pull them in.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SRC_URI"
- }
-},
-{
- "pk": 393,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " buildhistory_emit_pkghistory",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATEPOSTINSTFUNCS"
- }
-},
-{
- "pk": 394,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxkbcommon"
- }
-},
-{
- "pk": 395,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The short (72 characters or less) summary of the binary package for packaging systems such as opkg, rpm or dpkg. By default, SUMMARY is used to define the DESCRIPTION variable if DESCRIPTION is not set in the recipe.",
- "variable_value": "bblayers version 1.0-r0 - Documentation files",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SUMMARY_${PN}-doc"
- }
-},
-{
- "pk": 396,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-inputproto"
- }
-},
-{
- "pk": 397,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-minimo"
- }
-},
-{
- "pk": 398,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libmpc-native"
- }
-},
-{
- "pk": 399,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "yes",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "USE_NLS"
- }
-},
-{
- "pk": 400,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "8",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "OELAYOUT_ABI"
- }
-},
-{
- "pk": 401,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-glproto"
- }
-},
-{
- "pk": 402,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libpam"
- }
-},
-{
- "pk": 403,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxt-native"
- }
-},
-{
- "pk": 404,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "base_libdir_native"
- }
-},
-{
- "pk": 405,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/include",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "includedir_nativesdk"
- }
-},
-{
- "pk": 406,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "sysv",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LINKER_HASH_STYLE_mipsel"
- }
-},
-{
- "pk": 407,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "largefile opengl ptest multiarch wayland",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "POKY_DEFAULT_DISTRO_FEATURES"
- }
-},
-{
- "pk": 408,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dri2proto"
- }
-},
-{
- "pk": 409,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "rpm",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_PKGTYPE"
- }
-},
-{
- "pk": 410,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-fontsproto-native"
- }
-},
-{
- "pk": 411,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of directories or files that are placed in packages.",
- "variable_value": "/usr/bin/.debug /usr/sbin/.debug /usr/lib/bblayers/.debug /usr/lib/.debug /bin/.debug /sbin/.debug /lib/.debug /usr/lib/bblayers/.debug /usr/lib/matchbox-panel/.debug /usr/src/debug",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILES_${PN}-dbg"
- }
-},
-{
- "pk": 412,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/srv",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "servicedir"
- }
-},
-{
- "pk": 413,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libpcre-native"
- }
-},
-{
- "pk": 414,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "bindir_native"
- }
-},
-{
- "pk": 415,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-psplash"
- }
-},
-{
- "pk": 416,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pkgconfig"
- }
-},
-{
- "pk": 417,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES.",
- "variable_value": "alsa bluetooth usbgadget ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "COMBINED_FEATURES"
- }
-},
-{
- "pk": 418,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/pkgdata",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKGDESTWORK"
- }
-},
-{
- "pk": 419,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the list of locales to install into the image during the root filesystem construction process.",
- "variable_value": "en-us en-gb",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_LINGUAS"
- }
-},
-{
- "pk": 420,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libpng"
- }
-},
-{
- "pk": 421,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The date of the source code used to build the package. This variable applies only if the source was fetched from a Source Code Manager (SCM).",
- "variable_value": "20140114",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SRCDATE"
- }
-},
-{
- "pk": 422,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt \t\t\t\t\tlibc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse \t\t\t\t\tlibc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code \t\t\t\t\tlibc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc \t\t\t\t\tlibc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc \t\t\t\t\tlibc-posix-wchar-io",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_FEATURES_LIBC_class-nativesdk"
- }
-},
-{
- "pk": 423,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies a weak bias for recipe selection priority.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEFAULT_PREFERENCE"
- }
-},
-{
- "pk": 424,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-cpu arm1136",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QEMU_OPTIONS_armv6"
- }
-},
-{
- "pk": 425,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-systemtap"
- }
-},
-{
- "pk": 426,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mesa"
- }
-},
-{
- "pk": 427,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_PKGARCH_tune-i586"
- }
-},
-{
- "pk": 428,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The options to pass in TARGET_CFLAGS and CFLAGS when compiling an optimized system. This variable defaults to '-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2'.",
- "variable_value": "-O2 -pipe -g -feliminate-unused-debug-types",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FULL_OPTIMIZATION"
- }
-},
-{
- "pk": 429,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libusb-compat"
- }
-},
-{
- "pk": 430,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_AS_ARCH"
- }
-},
-{
- "pk": 431,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-chrpath"
- }
-},
-{
- "pk": 432,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin/* /usr/sbin/* /usr/lib/bblayers/* /usr/lib/lib*.so.* /etc /com /var /bin/* /sbin/* /lib/*.so.* /lib/udev/rules.d /usr/lib/udev/rules.d /usr/share/bblayers /usr/lib/bblayers/* /usr/share/pixmaps /usr/share/applications /usr/share/idl /usr/share/omf /usr/share/sounds /usr/lib/bonobo/servers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILES_${PN}"
- }
-},
-{
- "pk": 433,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "do_rootfs"
- }
-},
-{
- "pk": 434,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Enable / disable interactive patch resolution.",
- "variable_value": "noop",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PATCHRESOLVE"
- }
-},
-{
- "pk": 435,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "*.la *-config *_config",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_SCAN_FILES"
- }
-},
-{
- "pk": 436,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gst-plugins-base"
- }
-},
-{
- "pk": 437,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors.",
- "variable_value": "x86_64_x32",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_EXTRA_ARCHS_tune-x86-64-x32"
- }
-},
-{
- "pk": 438,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-augeas"
- }
-},
-{
- "pk": 439,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The long name of the distribution.",
- "variable_value": "Poky (Yocto Project Reference Distro)",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_NAME"
- }
-},
-{
- "pk": 440,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xauth"
- }
-},
-{
- "pk": 441,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-desktop-file-utils-native"
- }
-},
-{
- "pk": 442,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "C",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LC_ALL"
- }
-},
-{
- "pk": 443,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/package",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKGD"
- }
-},
-{
- "pk": 444,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKGE"
- }
-},
-{
- "pk": 445,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the system, including the architecture and the operating system, for with the build is occurring in the context of the current recipe.",
- "variable_value": "i586-poky-linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOST_SYS"
- }
-},
-{
- "pk": 446,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libexif"
- }
-},
-{
- "pk": 447,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1.0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKGV"
- }
-},
-{
- "pk": 448,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libusb1"
- }
-},
-{
- "pk": 449,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "r0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKGR"
- }
-},
-{
- "pk": 450,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gettext"
- }
-},
-{
- "pk": 451,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-matchbox-theme-sato"
- }
-},
-{
- "pk": 452,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Variable that expands to match files from BBFILES in a particular layer. This variable is used in the layer.conf file and must be suffixed with the name of a layer.",
- "variable_value": "^/home/andreea/poky/meta-yocto/",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBFILE_PATTERN_yocto"
- }
-},
-{
- "pk": 453,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gperf"
- }
-},
-{
- "pk": 454,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_ASARGS"
- }
-},
-{
- "pk": 455,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/conf/bblayers.conf",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILE"
- }
-},
-{
- "pk": 456,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-videoproto"
- }
-},
-{
- "pk": 457,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mktemp"
- }
-},
-{
- "pk": 458,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mtools-native"
- }
-},
-{
- "pk": 459,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "dbus-glib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_dbus-glib"
- }
-},
-{
- "pk": 460,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr/lib/pkgconfig",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKG_CONFIG_DIR"
- }
-},
-{
- "pk": 461,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin/crossscripts",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "bindir_crossscripts"
- }
-},
-{
- "pk": 462,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Prevents BitBake from processing recipes and recipe append files. Use the BBMASK variable from within the conf/local.conf file in the Build Directory.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBMASK"
- }
-},
-{
- "pk": 463,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/bin/pseudo",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FAKEROOTCMD"
- }
-},
-{
- "pk": 464,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libx11-native"
- }
-},
-{
- "pk": 465,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-telepathy-glib"
- }
-},
-{
- "pk": 466,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xrestop"
- }
-},
-{
- "pk": 467,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/deploy/sources/deploy-srpm",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKGWRITEDIRSRPM"
- }
-},
-{
- "pk": 468,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-bdwgc-native"
- }
-},
-{
- "pk": 469,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "libgcc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_libgcc"
- }
-},
-{
- "pk": 470,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/downloads",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CO_DIR"
- }
-},
-{
- "pk": 471,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-input-synaptics"
- }
-},
-{
- "pk": 472,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOSTTOOLS_WHITELIST_GPLv3"
- }
-},
-{
- "pk": 473,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_LDARGS"
- }
-},
-{
- "pk": 474,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "baselib"
- }
-},
-{
- "pk": 475,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "3",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_VERSION"
- }
-},
-{
- "pk": 476,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-e2fsprogs"
- }
-},
-{
- "pk": 477,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-matchbox-desktop-sato"
- }
-},
-{
- "pk": 478,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_BASELIBDIR"
- }
-},
-{
- "pk": 479,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "2.23.2",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH}"
- }
-},
-{
- "pk": 480,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-isystem/home/andreea/poky/build/tmp/sysroots/qemux86/usr/include",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDSDK_CPPFLAGS"
- }
-},
-{
- "pk": 481,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the QA checks to skip for a specific package within a recipe.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "INSANE_SKIP"
- }
-},
-{
- "pk": 482,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gpgme"
- }
-},
-{
- "pk": 483,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxcomposite-native"
- }
-},
-{
- "pk": 484,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "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",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_SIGNATURE_EXCLUDE_FLAGS"
- }
-},
-{
- "pk": 485,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "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_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX WARN_QA ERROR_QA WORKDIR",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_HASHBASE_WHITELIST"
- }
-},
-{
- "pk": 486,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the number of bits for the target system CPU. The value should be either '32' or '64'.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SITEINFO_BITS"
- }
-},
-{
- "pk": 487,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxft"
- }
-},
-{
- "pk": 488,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libsdl"
- }
-},
-{
- "pk": 489,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "0.9.33+git%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "UCLIBCVERSION"
- }
-},
-{
- "pk": 490,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-video-omap"
- }
-},
-{
- "pk": 491,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/etc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "sysconfdir"
- }
-},
-{
- "pk": 492,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/andreea/poky/build/tmp/sysroots/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CCLD"
- }
-},
-{
- "pk": 493,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Enables easily adding packages to PACKAGES before ${PN} so that the packages can pick up files that would normally be included in the default package.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_BEFORE_PN"
- }
-},
-{
- "pk": 494,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "mesa",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/mesa"
- }
-},
-{
- "pk": 495,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-openobex"
- }
-},
-{
- "pk": 496,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDKGCCVERSION"
- }
-},
-{
- "pk": 497,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEBIAN_NAMES"
- }
-},
-{
- "pk": 498,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xextproto"
- }
-},
-{
- "pk": 499,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-parted"
- }
-},
-{
- "pk": 500,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pixman"
- }
-},
-{
- "pk": 501,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://proxy-ir.glb.intel.com:911",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "https_proxy"
- }
-},
-{
- "pk": 502,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "bblayers-qemux86-20140114115445",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_NAME"
- }
-},
-{
- "pk": 503,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86-tcbootstrap",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_DIR_TCBOOTSTRAP"
- }
-},
-{
- "pk": 504,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The keys in this group influence the package building process. They influence which packages will be generated and which files will be present in the generated packages.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GROUP_packaging"
- }
-},
-{
- "pk": 505,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-video-imxfb"
- }
-},
-{
- "pk": 506,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxpm-native"
- }
-},
-{
- "pk": 507,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xcb-util-renderutil"
- }
-},
-{
- "pk": 508,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gawk"
- }
-},
-{
- "pk": 509,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i686-pokysdk-linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_SYS"
- }
-},
-{
- "pk": 510,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-less"
- }
-},
-{
- "pk": 511,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxcomposite"
- }
-},
-{
- "pk": 512,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxpm"
- }
-},
-{
- "pk": 513,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "2.18",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EGLIBCVERSION"
- }
-},
-{
- "pk": 514,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FETCHCMD_wget"
- }
-},
-{
- "pk": 515,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "udev",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_udev"
- }
-},
-{
- "pk": 516,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libgpg-error-native"
- }
-},
-{
- "pk": 517,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-wget"
- }
-},
-{
- "pk": 518,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " [ ! -e /home/andreea/poky/build/tmp/deploy/rpm ] || package_update_index_rpm;",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGEINDEXES"
- }
-},
-{
- "pk": 519,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxau-native"
- }
-},
-{
- "pk": 520,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The bare name of the recipe. This variable is a version of the PN variable but removes common suffixes and prefixes.",
- "variable_value": "bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BPN"
- }
-},
-{
- "pk": 521,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pkgconfig-native"
- }
-},
-{
- "pk": 522,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gmp-native"
- }
-},
-{
- "pk": 523,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SPDXLICENSEMAP"
- }
-},
-{
- "pk": 524,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libpthread-stubs"
- }
-},
-{
- "pk": 525,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "base_bindir"
- }
-},
-{
- "pk": 526,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxres"
- }
-},
-{
- "pk": 527,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-video-vmware"
- }
-},
-{
- "pk": 528,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN).",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RDEPENDS_kernel-base"
- }
-},
-{
- "pk": 529,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-gcc-runtime"
- }
-},
-{
- "pk": 530,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xmodmap"
- }
-},
-{
- "pk": 531,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QADEPENDS_class-nativesdk"
- }
-},
-{
- "pk": 532,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "buildcfg_vars get_layers_branch_rev buildcfg_neededvars",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDCFG_FUNCS"
- }
-},
-{
- "pk": 533,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr/lib/pkgconfig",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKG_CONFIG_LIBDIR"
- }
-},
-{
- "pk": 534,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "patch diffstat makeinfo git bzip2 tar gzip gawk chrpath wget cpio",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SANITY_REQUIRED_UTILITIES"
- }
-},
-{
- "pk": 535,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "opkg-native",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_opkg-native"
- }
-},
-{
- "pk": 536,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxdamage-native"
- }
-},
-{
- "pk": 537,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER"
- }
-},
-{
- "pk": 538,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists overrides specific to the current machine. By default, this list includes the value of MACHINE.",
- "variable_value": "x86:qemuall:qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINEOVERRIDES"
- }
-},
-{
- "pk": 539,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sysfsutils"
- }
-},
-{
- "pk": 540,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "xserver-xorg",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/xserver-xf86"
- }
-},
-{
- "pk": 541,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The filename of the initscript as installed to ${etcdir}/init.d. The variable is mandatory and is used in recipes when using update-rc.d.bbclass.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "INITSCRIPT_NAME"
- }
-},
-{
- "pk": 542,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The section in which packages should be categorized. Package management utilities can make use of this variable.",
- "variable_value": "devel",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SECTION_${PN}-dev"
- }
-},
-{
- "pk": 543,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/sbin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "base_sbindir_native"
- }
-},
-{
- "pk": 544,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTRA_STAGING_FIXMES"
- }
-},
-{
- "pk": 545,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/sbin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "sbindir"
- }
-},
-{
- "pk": 546,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS.",
- "variable_value": " -O2 -pipe -g -feliminate-unused-debug-types",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CFLAGS"
- }
-},
-{
- "pk": 547,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "bblayers-dbg bblayers-staticdev bblayers-dev bblayers-doc bblayers-locale bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "AUTO_LIBNAME_PKGS"
- }
-},
-{
- "pk": 548,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "COMMERCIAL_AUDIO_PLUGINS"
- }
-},
-{
- "pk": 549,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-weston"
- }
-},
-{
- "pk": 550,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "less",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "WHITELIST_GPLv3"
- }
-},
-{
- "pk": 551,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "packagegroup-base",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEFAULT_TASK_PROVIDER"
- }
-},
-{
- "pk": 552,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of packages that conflict with another package. Note that the package will not be installed if the conflicting packages are not first removed.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RCONFLICTS"
- }
-},
-{
- "pk": 553,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "textrel files-invalid incompatible-license xorg-driver-abi libdir unknown-configure-option",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "WARN_QA"
- }
-},
-{
- "pk": 554,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-elfutils"
- }
-},
-{
- "pk": 555,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-encodings"
- }
-},
-{
- "pk": 556,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies extra options that are passed to the make command during the compile tasks. This variable is usually in the form -j 4, where the number represents the maximum number of parallel threads make can run.",
- "variable_value": "-j 8",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PARALLEL_MAKE"
- }
-},
-{
- "pk": 557,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libusb1"
- }
-},
-{
- "pk": 558,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libgcc"
- }
-},
-{
- "pk": 559,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Additional cmake options.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTRA_OECMAKE"
- }
-},
-{
- "pk": 560,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libtelepathy"
- }
-},
-{
- "pk": 561,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libatomics-ops"
- }
-},
-{
- "pk": 562,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of packages replaced by a package. The package manager uses this variable to determine which package should be installed to replace other package(s) during an upgrade.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RREPLACES"
- }
-},
-{
- "pk": 563,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-lighttpd"
- }
-},
-{
- "pk": 564,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-byacc"
- }
-},
-{
- "pk": 565,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Equivalent to IMAGE_FEATURES. However, this variable applies to the SDK generated from an image using the command '$ bitbake -c populate_sdk imagename'.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDKIMAGE_FEATURES"
- }
-},
-{
- "pk": 566,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-matchbox-keyboard"
- }
-},
-{
- "pk": 567,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "1.04",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_liberation-fonts"
- }
-},
-{
- "pk": 568,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-popt"
- }
-},
-{
- "pk": 569,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "debian devshell sstate license",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "INHERIT_DISTRO"
- }
-},
-{
- "pk": 570,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_BASENAME"
- }
-},
-{
- "pk": 571,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/sysroot-destdir/",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SYSROOT_DESTDIR"
- }
-},
-{
- "pk": 572,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A string extension compiled into the version string of the Linux kernel built with the OpenEmbedded build system. You define this variable in the kernel recipe.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LINUX_VERSION_EXTENSION"
- }
-},
-{
- "pk": 573,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xz-native"
- }
-},
-{
- "pk": 574,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxau"
- }
-},
-{
- "pk": 575,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/package-output.lock",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGELOCK"
- }
-},
-{
- "pk": 576,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of prefixes for PN used by the OpenEmbedded build system to create variants of recipes or packages. The list specifies the prefixes to strip off during certain circumstances such as the generation of the BPN variable.",
- "variable_value": "-native -cross -initial -intermediate -crosssdk -cross-canadian",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SPECIAL_PKGSUFFIX"
- }
-},
-{
- "pk": 577,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libtool-cross"
- }
-},
-{
- "pk": 578,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The central download directory used by the build process to store downloads. By default, the directory is 'downloads' in the Build Directory.",
- "variable_value": "/home/andreea/poky/build/downloads",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DL_DIR"
- }
-},
-{
- "pk": 579,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-librsvg-native"
- }
-},
-{
- "pk": 580,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-file-native"
- }
-},
-{
- "pk": 581,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/packages-split",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKGDEST"
- }
-},
-{
- "pk": 582,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_BINDIR_NATIVE"
- }
-},
-{
- "pk": 583,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "PSEUDO_UNLOAD=1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FAKEROOTNOENV"
- }
-},
-{
- "pk": 584,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_EXTRAPATHWILDCARD"
- }
-},
-{
- "pk": 585,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The version of the distribution.",
- "variable_value": "1.5+snapshot-20140114",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_VERSION"
- }
-},
-{
- "pk": 586,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-liba52"
- }
-},
-{
- "pk": 587,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The directory with kernel headers that are required to build out-of-tree modules.",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr/src/kernel",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_KERNEL_DIR"
- }
-},
-{
- "pk": 588,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-ncurses"
- }
-},
-{
- "pk": 589,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-icu-native"
- }
-},
-{
- "pk": 590,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies a prefix has been added to PN to create a special version of a recipe or package, such as a Multilib version.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MLPREFIX"
- }
-},
-{
- "pk": 591,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_LDFLAGS"
- }
-},
-{
- "pk": 592,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " mklibs_optimize_image; prelink_image; ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_PREPROCESS_COMMAND"
- }
-},
-{
- "pk": 593,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_OS"
- }
-},
-{
- "pk": 594,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "POPULATE_SDK_POST_TARGET_COMMAND"
- }
-},
-{
- "pk": 595,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-tslib"
- }
-},
-{
- "pk": 596,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The target system is composed out of TARGET_ARCH,TARGET_VENDOR and TARGET_OS.",
- "variable_value": "i586-poky-linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_SYS"
- }
-},
-{
- "pk": 597,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "eglibc-locale",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/libc-locale"
- }
-},
-{
- "pk": 598,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dbus-native"
- }
-},
-{
- "pk": 599,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-python-pygobject"
- }
-},
-{
- "pk": 600,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-kmod"
- }
-},
-{
- "pk": 601,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable.",
- "variable_value": "bblayers version 1.0-r0. This package contains symbolic links, header files, and related items necessary for software development.",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DESCRIPTION_${PN}-dev"
- }
-},
-{
- "pk": 602,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Importance of package, the default value is 'optional', other standard values are 'required', 'standard' and 'extra'.",
- "variable_value": "optional",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PRIORITY"
- }
-},
-{
- "pk": 603,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "xserver-xorg mesa-driver-swrast xf86-input-vmmouse xf86-input-keyboard xf86-input-evdev xf86-video-vmware",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "XSERVER"
- }
-},
-{
- "pk": 604,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "yes",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KEEPUIMAGE"
- }
-},
-{
- "pk": 605,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxrandr"
- }
-},
-{
- "pk": 606,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-systemtap-native"
- }
-},
-{
- "pk": 607,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies if an output package should still be produced if it is empty.",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ALLOW_EMPTY_${PN}-dev"
- }
-},
-{
- "pk": 608,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libart-lgpl"
- }
-},
-{
- "pk": 609,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-xserver-kdrive-xomap"
- }
-},
-{
- "pk": 610,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "setscene_depvalid",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_SETSCENE_DEPVALID"
- }
-},
-{
- "pk": 611,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gst-plugins-bad"
- }
-},
-{
- "pk": 612,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-compositeproto"
- }
-},
-{
- "pk": 613,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxcursor"
- }
-},
-{
- "pk": 614,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-ethtool"
- }
-},
-{
- "pk": 615,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PSEUDO_DISABLED"
- }
-},
-{
- "pk": 616,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-oprofileui"
- }
-},
-{
- "pk": 617,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-cpu e5500",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QEMU_OPTIONS_e5500"
- }
-},
-{
- "pk": 618,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "This variable specifies the package manager to use when packaging data. It is set in the conf/local.conf file in the Build Directory.",
- "variable_value": "package_rpm",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_CLASSES"
- }
-},
-{
- "pk": 619,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "libsegfault \t\t eglibc \t\t eglibc-dbg \t\t eglibc-dev \t\t eglibc-utils \t\t eglibc-thread-db \t\t \teglibc-localedata-i18n \teglibc-gconv-ibm850 \teglibc-gconv-cp1252 \teglibc-gconv-iso8859-1 \teglibc-gconv-iso8859-15",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LIBC_DEPENDENCIES"
- }
-},
-{
- "pk": 620,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libpcre"
- }
-},
-{
- "pk": 621,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system.",
- "variable_value": "auto",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "OE_TERMINAL"
- }
-},
-{
- "pk": 622,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gdk-pixbuf"
- }
-},
-{
- "pk": 623,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Variable that expands to match files from BBFILES in a particular layer. This variable is used in the layer.conf file and must be suffixed with the name of a layer.",
- "variable_value": "^/home/andreea/poky/meta/",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBFILE_PATTERN_core"
- }
-},
-{
- "pk": 624,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-expat"
- }
-},
-{
- "pk": 625,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Variable that expands to match files from BBFILES in a particular layer. This variable is used in the layer.conf file and must be suffixed with the name of a layer.",
- "variable_value": "^/home/andreea/poky/meta-yocto-bsp/",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBFILE_PATTERN_yoctobsp"
- }
-},
-{
- "pk": 626,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Features to be added to MACHINE_FEATURES if not also present in MACHINE_FEATURES_BACKFILL_CONSIDERED. This variable is set in the meta/conf/bitbake.conf file and is not intended to be user-configurable.",
- "variable_value": "rtc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINE_FEATURES_BACKFILL"
- }
-},
-{
- "pk": 627,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KARCH"
- }
-},
-{
- "pk": 628,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "201401141355",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDNAME"
- }
-},
-{
- "pk": 629,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-kbd-native"
- }
-},
-{
- "pk": 630,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-cpu e500v2",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QEMU_OPTIONS_e500v2"
- }
-},
-{
- "pk": 631,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/pkgdata/shlibs",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SHLIBSWORKDIR"
- }
-},
-{
- "pk": 632,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mkfontscale-native"
- }
-},
-{
- "pk": 633,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of required machine-specific packages to install as part of the image being built. Because this is a 'machine essential' variable, the list of packages are essential for the machine to boot.",
- "variable_value": " v86d",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINE_ESSENTIAL_EXTRA_RDEPENDS"
- }
-},
-{
- "pk": 634,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-util-linux"
- }
-},
-{
- "pk": 635,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-atk"
- }
-},
-{
- "pk": 636,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/lib/rpm/bin/rpmdeps-oecore --macros /home/andreea/poky/build/tmp/sysroots/i686-linux/usr/lib/rpm/macros --define '_rpmfc_magic_path /home/andreea/poky/build/tmp/sysroots/i686-linux/usr/share/misc/magic.mgc' --rpmpopt /home/andreea/poky/build/tmp/sysroots/i686-linux/usr/lib/rpm/rpmpopt",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RPMDEPS"
- }
-},
-{
- "pk": 637,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BASE_LIB_tune-x86"
- }
-},
-{
- "pk": 638,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " do_package_qa package_fixsymlinks package_name_hook package_do_filedeps package_do_shlibs package_do_pkgconfig read_shlibdeps package_depchains emit_pkgdata",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGEFUNCS"
- }
-},
-{
- "pk": 639,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PWD"
- }
-},
-{
- "pk": 640,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/downloads/bzr",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BZRDIR"
- }
-},
-{
- "pk": 641,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "m32 i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_FEATURES_tune-i586"
- }
-},
-{
- "pk": 642,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1.0-r0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTENDPKGV"
- }
-},
-{
- "pk": 643,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "1.6",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_gzip-native"
- }
-},
-{
- "pk": 644,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "db-native",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/db-native"
- }
-},
-{
- "pk": 645,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1.21.1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_VERSION"
- }
-},
-{
- "pk": 646,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": ".dylib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SOLIBS_darwin"
- }
-},
-{
- "pk": 647,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-oprofileui-server"
- }
-},
-{
- "pk": 648,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "x86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_PKGARCH_tune-x86"
- }
-},
-{
- "pk": 649,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-tremor"
- }
-},
-{
- "pk": 650,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/lib/debug /usr/src/debug",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEBUGFILEDIRECTORY-dbg"
- }
-},
-{
- "pk": 651,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "0.9.33+git%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_uclibc"
- }
-},
-{
- "pk": 652,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the packages to install into an image. Image recipes set IMAGE_INSTALL to specify the packages to install into an image through image.bbclass.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_INSTALL"
- }
-},
-{
- "pk": 653,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-x11perf"
- }
-},
-{
- "pk": 654,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_GENERATE_MIRROR_TARBALLS"
- }
-},
-{
- "pk": 655,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-opkg"
- }
-},
-{
- "pk": 656,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-beecrypt"
- }
-},
-{
- "pk": 657,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Defines the Linux kernel source repository's default branch used to build the Linux kernel. Unless you specify otherwise, initializes to 'master'.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KBRANCH_DEFAULT"
- }
-},
-{
- "pk": 658,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/lib/systemd",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "systemd_unitdir"
- }
-},
-{
- "pk": 659,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-help2man-native"
- }
-},
-{
- "pk": 660,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_CC_ARCH"
- }
-},
-{
- "pk": 661,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libx11"
- }
-},
-{
- "pk": 662,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-mpfr"
- }
-},
-{
- "pk": 663,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-xtrans"
- }
-},
-{
- "pk": 664,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of directories or files that are placed in packages.",
- "variable_value": "/usr/bin/* /usr/sbin/*",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILES_${PN}-bin"
- }
-},
-{
- "pk": 665,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-avahi-ui"
- }
-},
-{
- "pk": 666,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RM_WORK_EXCLUDE"
- }
-},
-{
- "pk": 667,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of recommended machine-specific packages to install as part of the image being built. Because this is a 'machine essential' variable, the list of packages are essential for the machine to boot.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS"
- }
-},
-{
- "pk": 668,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "0.9.33+git%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_uclibc-initial"
- }
-},
-{
- "pk": 669,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "yes",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKG_CONFIG_DISABLE_UNINSTALLED"
- }
-},
-{
- "pk": 670,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libtasn1-native"
- }
-},
-{
- "pk": 671,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log",
- "variable_value": "/home/andreea/poky/build/tmp/log",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LOG_DIR"
- }
-},
-{
- "pk": 672,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEPCHAIN_PRE"
- }
-},
-{
- "pk": 673,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sato-screenshot"
- }
-},
-{
- "pk": 674,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-python-dbus"
- }
-},
-{
- "pk": 675,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "git://git.gnome.org",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GNOME_GIT"
- }
-},
-{
- "pk": 676,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dpkg-native"
- }
-},
-{
- "pk": 677,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-fixesproto"
- }
-},
-{
- "pk": 678,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-kmod-native"
- }
-},
-{
- "pk": 679,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libcgroup"
- }
-},
-{
- "pk": 680,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxext-native"
- }
-},
-{
- "pk": 681,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xinit"
- }
-},
-{
- "pk": 682,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PATCH_GET"
- }
-},
-{
- "pk": 683,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "libdir"
- }
-},
-{
- "pk": 684,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SITE_CONF_VERSION"
- }
-},
-{
- "pk": 685,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CXXFLAGS"
- }
-},
-{
- "pk": 686,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-neon-native"
- }
-},
-{
- "pk": 687,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-groff-native"
- }
-},
-{
- "pk": 688,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-automake"
- }
-},
-{
- "pk": 689,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-nm",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "NM"
- }
-},
-{
- "pk": 690,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-strace-native"
- }
-},
-{
- "pk": 691,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Features to be added to DISTRO_FEATURES if not also present in DISTRO_FEATURES_BACKFILL_CONSIDERED. This variable is set in the meta/conf/bitbake.conf file and it is not intended to be user-configurable.",
- "variable_value": "pulseaudio sysvinit",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_FEATURES_BACKFILL"
- }
-},
-{
- "pk": 692,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xvideo-tests"
- }
-},
-{
- "pk": 693,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-isystem/home/andreea/poky/build/tmp/sysroots/qemux86/usr/include -O2 -pipe",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDSDK_CFLAGS"
- }
-},
-{
- "pk": 694,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-grep"
- }
-},
-{
- "pk": 695,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pth"
- }
-},
-{
- "pk": 696,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If set to \"1\", causes the build to not strip binaries in resulting packages.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "INHIBIT_PACKAGE_STRIP"
- }
-},
-{
- "pk": 697,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " sstate:bblayers:i586-poky-linux:1.0:r0:i586:3: sstate:bblayers::1.0:r0::3:",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_HASHFILENAME"
- }
-},
-{
- "pk": 698,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1b636173ca88e5ccca1992f9a12367a1189fa674",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "METADATA_REVISION"
- }
-},
-{
- "pk": 699,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xineramaproto"
- }
-},
-{
- "pk": 700,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the list of packages to be added to the image. You should only set this variable in the conf/local.conf file in the Build Directory.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CORE_IMAGE_EXTRA_INSTALL"
- }
-},
-{
- "pk": 701,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TCLIBCAPPEND"
- }
-},
-{
- "pk": 702,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "3.10%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_linux-yocto_qemumips"
- }
-},
-{
- "pk": 703,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "alsa-state",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "VIRTUAL-RUNTIME_alsa-state"
- }
-},
-{
- "pk": 704,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/buildhistory/packages/i586-poky-linux/bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDHISTORY_DIR_PACKAGE"
- }
-},
-{
- "pk": 705,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libtool-native"
- }
-},
-{
- "pk": 706,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "PSEUDO_BINDIR=/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/bin PSEUDO_LIBDIR=/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/bin/../lib/pseudo/lib PSEUDO_PREFIX=/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/bin/../../ PSEUDO_DISABLED=1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FAKEROOTBASEENV"
- }
-},
-{
- "pk": 707,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LOCALCONF_VERSION"
- }
-},
-{
- "pk": 708,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-systemd"
- }
-},
-{
- "pk": 709,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "kbd",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_console-tools"
- }
-},
-{
- "pk": 710,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sqlite3"
- }
-},
-{
- "pk": 711,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATEPREINSTFUNCS"
- }
-},
-{
- "pk": 712,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pango-native"
- }
-},
-{
- "pk": 713,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This variable defaults to '-O -fno-omit-frame-pointer -g'.",
- "variable_value": "-O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -pipe",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEBUG_OPTIMIZATION"
- }
-},
-{
- "pk": 714,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_gcc-runtime"
- }
-},
-{
- "pk": 715,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " os sys time oe.path oe.utils oe.data oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "OE_IMPORTS"
- }
-},
-{
- "pk": 716,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-polkit-gnome"
- }
-},
-{
- "pk": 717,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/deploy/rpm",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEPLOY_DIR_RPM"
- }
-},
-{
- "pk": 718,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.18",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_eglibc-locale"
- }
-},
-{
- "pk": 719,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxslt-native"
- }
-},
-{
- "pk": 720,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr/bin/crossscripts",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_BINDIR_CROSS"
- }
-},
-{
- "pk": 721,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "True",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QA_SANE"
- }
-},
-{
- "pk": 722,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The directory where subversion checkouts will be stored.",
- "variable_value": "/home/andreea/poky/build/downloads/svn",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SVNDIR"
- }
-},
-{
- "pk": 723,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "3.10",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_nativesdk-linux-libc-headers"
- }
-},
-{
- "pk": 724,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxdmcp-native"
- }
-},
-{
- "pk": 725,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "bindir_cross"
- }
-},
-{
- "pk": 726,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " virtual/i586-poky-linux-gcc virtual/i586-poky-linux-compilerlibs virtual/libc ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BASEDEPENDS"
- }
-},
-{
- "pk": 727,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libomxil"
- }
-},
-{
- "pk": 728,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libxrender"
- }
-},
-{
- "pk": 729,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/share",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "target_datadir"
- }
-},
-{
- "pk": 730,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-telepathy-idle"
- }
-},
-{
- "pk": 731,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-input-evdev"
- }
-},
-{
- "pk": 732,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "False",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_INVALIDCONF"
- }
-},
-{
- "pk": 733,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xproto-native"
- }
-},
-{
- "pk": 734,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gmp"
- }
-},
-{
- "pk": 735,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "do_package_write_ipk"
- }
-},
-{
- "pk": 736,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The primary list of features to include in an image. Configure this variable in an image recipe.",
- "variable_value": " debug-tweaks",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_FEATURES"
- }
-},
-{
- "pk": 737,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-randrproto"
- }
-},
-{
- "pk": 738,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gtk-doc-stub"
- }
-},
-{
- "pk": 739,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-beecrypt-native"
- }
-},
-{
- "pk": 740,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/bin/bash",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEVSHELL"
- }
-},
-{
- "pk": 741,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-fetchmail"
- }
-},
-{
- "pk": 742,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-apt-native"
- }
-},
-{
- "pk": 743,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.18",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_cross-localedef-native"
- }
-},
-{
- "pk": 744,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/buildhistory/sdk/poky-eglibc-i686-bblayers-i586/bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDHISTORY_DIR_SDK"
- }
-},
-{
- "pk": 745,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-popt-native"
- }
-},
-{
- "pk": 746,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pm-utils"
- }
-},
-{
- "pk": 747,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "andreea",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "USER"
- }
-},
-{
- "pk": 748,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "OES_BITBAKE_CONF"
- }
-},
-{
- "pk": 749,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "textrel files-invalid incompatible-license xorg-driver-abi libdir unknown-configure-option dev-so debug-deps dev-deps debug-files arch pkgconfig la perms useless-rpaths rpaths staticdev ldflags pkgvarcheck already-stripped compile-host-path dep-cmp installed-vs-shipped install-host-path packages-list perm-config perm-line perm-link pkgv-undefined pn-overrides split-strip var-undefined version-going-backwards",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ALL_QA"
- }
-},
-{
- "pk": 750,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb).",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_DANGLINGAPPENDS_WARNONLY"
- }
-},
-{
- "pk": 751,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libffi-native"
- }
-},
-{
- "pk": 752,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-fontconfig-native"
- }
-},
-{
- "pk": 753,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-blktool"
- }
-},
-{
- "pk": 754,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-leafpad"
- }
-},
-{
- "pk": 755,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xdpyinfo"
- }
-},
-{
- "pk": 756,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_gcc-cross-initial"
- }
-},
-{
- "pk": 757,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The maximum number of tasks BitBake should run in parallel at any one time. A good rule of thumb is to set this variable to twice the number of cores.",
- "variable_value": "8",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_NUMBER_THREADS"
- }
-},
-{
- "pk": 758,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-iptables"
- }
-},
-{
- "pk": 759,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "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_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX WARN_QA ERROR_QA WORKDIR DATE TIME SSH_AGENT_PID SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_HASHCONFIG_WHITELIST"
- }
-},
-{
- "pk": 760,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_nativesdk-gcc-runtime"
- }
-},
-{
- "pk": 761,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "This variable is the temporary directory the OpenEmbedded build system uses when it does its work building images. By default, the TMPDIR variable is named tmp within the Build Directory.",
- "variable_value": "/home/andreea/poky/build/tmp",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TMPDIR"
- }
-},
-{
- "pk": 762,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libsm"
- }
-},
-{
- "pk": 763,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-remake-native"
- }
-},
-{
- "pk": 764,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-cpu pxa270-c5",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QEMU_OPTIONS_iwmmxt"
- }
-},
-{
- "pk": 765,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-msmtp"
- }
-},
-{
- "pk": 766,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The short (72 characters or less) summary of the binary package for packaging systems such as opkg, rpm or dpkg. By default, SUMMARY is used to define the DESCRIPTION variable if DESCRIPTION is not set in the recipe.",
- "variable_value": "bblayers version 1.0-r0 - Development files (Static Libraries)",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SUMMARY_${PN}-staticdev"
- }
-},
-{
- "pk": 767,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-glib-networking"
- }
-},
-{
- "pk": 768,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/lib/bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_LIBEXECDIR_NATIVE"
- }
-},
-{
- "pk": 769,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_nativesdk-libgcc"
- }
-},
-{
- "pk": 770,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/share",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "datadir_native"
- }
-},
-{
- "pk": 771,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QADEPENDS_class-native"
- }
-},
-{
- "pk": 772,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-pixman"
- }
-},
-{
- "pk": 773,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-python-gst"
- }
-},
-{
- "pk": 774,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-which"
- }
-},
-{
- "pk": 775,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " EXTRA_OEMAKE",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "OE_TERMINAL_EXPORTS"
- }
-},
-{
- "pk": 776,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-m4"
- }
-},
-{
- "pk": 777,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOST_EXEEXT"
- }
-},
-{
- "pk": 778,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BASE_WORKDIR"
- }
-},
-{
- "pk": 779,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gst-plugins-gl"
- }
-},
-{
- "pk": 780,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of machine-specific packages to install as part of the image being built that are not essential for booting the machine. The image being built has no build dependency on this list of packages.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINE_EXTRA_RRECOMMENDS"
- }
-},
-{
- "pk": 781,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libtool"
- }
-},
-{
- "pk": 782,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Descriptions of valid tuning features, stored as flags.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNEVALID"
- }
-},
-{
- "pk": 783,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xinput"
- }
-},
-{
- "pk": 784,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The date the build was started YMD.",
- "variable_value": "20140114",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DATE"
- }
-},
-{
- "pk": 785,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/etc/passwd /etc/group",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDHISTORY_IMAGE_FILES"
- }
-},
-{
- "pk": 786,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The name of the vendor. Normally same as the TARGET_VENDOR.",
- "variable_value": "-poky",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOST_VENDOR"
- }
-},
-{
- "pk": 787,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-rgb"
- }
-},
-{
- "pk": 788,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "gdk-pixbuf",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_gdk-pixbuf"
- }
-},
-{
- "pk": 789,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-autogen-native"
- }
-},
-{
- "pk": 790,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LDFLAGS"
- }
-},
-{
- "pk": 791,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-xcmiscproto"
- }
-},
-{
- "pk": 792,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "This flag can be set to '1' if the host system is not SysV compatible. E.g. fakeroot-native will be build with tcp as IPC implementation.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOST_NONSYSV"
- }
-},
-{
- "pk": 793,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-harfbuzz"
- }
-},
-{
- "pk": 794,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Separates files for different machines such that you can build for multiple target machines using the same output directories.",
- "variable_value": "i586-poky-linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MULTIMACH_TARGET_SYS"
- }
-},
-{
- "pk": 795,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specify which VTs should be running a getty, the default is 1.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SYSVINIT_ENABLED_GETTYS"
- }
-},
-{
- "pk": 796,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mesa-gl"
- }
-},
-{
- "pk": 797,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-coreutils-native"
- }
-},
-{
- "pk": 798,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-qO - --no-check-certificate --timeout=0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FOSS_WGET_FLAGS"
- }
-},
-{
- "pk": 799,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-bigreqsproto-native"
- }
-},
-{
- "pk": 800,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-clutter-gtk-1.0"
- }
-},
-{
- "pk": 801,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "make",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MAKE"
- }
-},
-{
- "pk": 802,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxcb"
- }
-},
-{
- "pk": 803,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "nativesdk",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDKPKGSUFFIX"
- }
-},
-{
- "pk": 804,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gtk-doc-stub-native"
- }
-},
-{
- "pk": 805,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dbus-ptest"
- }
-},
-{
- "pk": 806,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-psmisc"
- }
-},
-{
- "pk": 807,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mtdev"
- }
-},
-{
- "pk": 808,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xvinfo"
- }
-},
-{
- "pk": 809,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gzip"
- }
-},
-{
- "pk": 810,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SEPB"
- }
-},
-{
- "pk": 811,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-startup-notification"
- }
-},
-{
- "pk": 812,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-makedepend"
- }
-},
-{
- "pk": 813,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sudo"
- }
-},
-{
- "pk": 814,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-j 8",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PARALLEL_MAKEINST"
- }
-},
-{
- "pk": 815,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "sysroot_checkhashes",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_SETSCENE_VERIFY_FUNCTION"
- }
-},
-{
- "pk": 816,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "USRBINPATH_class-native"
- }
-},
-{
- "pk": 817,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The section in which packages should be categorized. Package management utilities can make use of this variable.",
- "variable_value": "base",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SECTION"
- }
-},
-{
- "pk": 818,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " AAL Adobe AFL-1.2 AFL-2.0 AFL-2.1 AFL-3.0 AGPL-3.0 ANTLR-PD Apache-1.0 Apache-1.1 Apache-2.0 APL-1.0 APSL-1.0 APSL-1.1 APSL-1.2 APSL-2.0 Artistic-1.0 Artistic-2.0 BitstreamVera BSD BSD-2-Clause BSD-3-Clause BSD-4-Clause BSL-1.0 CATOSL-1.1 CC0-1.0 CC-BY-1.0 CC-BY-2.0 CC-BY-2.5 CC-BY-3.0 CC-BY-NC-1.0 CC-BY-NC-2.0 CC-BY-NC-2.5 CC-BY-NC-3.0 CC-BY-NC-ND-1.0 CC-BY-NC-ND-2.0 CC-BY-NC-ND-2.5 CC-BY-NC-ND-3.0 CC-BY-NC-SA-1.0 CC-BY-NC-SA-2.0 CC-BY-NC-SA-2.5 CC-BY-NC-SA-3.0 CC-BY-ND-1.0 CC-BY-ND-2.0 CC-BY-ND-2.5 CC-BY-ND-3.0 CC-BY-SA-1.0 CC-BY-SA-2.0 CC-BY-SA-2.5 CC-BY-SA-3.0 CDDL-1.0 CECILL-1.0 CECILL-2.0 CECILL-B CECILL-C ClArtistic CPAL-1.0 CPL-1.0 CUA-OPL-1.0 DSSSL ECL-1.0 ECL-2.0 eCos-2.0 EDL-1.0 EFL-1.0 EFL-2.0 Elfutils-Exception Entessa EPL-1.0 ErlPL-1.1 EUDatagrid EUPL-1.0 EUPL-1.1 Fair Frameworx-1.0 FreeType GFDL-1.1 GFDL-1.2 GFDL-1.3 GPL-1.0 GPL-2.0 GPL-2.0-with-autoconf-exception GPL-2.0-with-classpath-exception GPL-2.0-with-font-exception GPL-2.0-with-GCC-exception GPL-2-with-bison-exception GPL-3.0 GPL-3.0-with-autoconf-exception GPL-3.0-with-GCC-exception gSOAP-1 gSOAP-1.3b HPND IPA IPL-1.0 ISC LGPL-2.0 LGPL-2.1 LGPL-3.0 Libpng LPL-1.02 LPPL-1.0 LPPL-1.1 LPPL-1.2 LPPL-1.3c MirOS MIT Motosoto MPL-1.0 MPL-1.1 MS-PL MS-RL Multics NASA-1.3 Nauman NCSA NGPL Nokia NPOSL-3.0 NTP OASIS OCLC-2.0 ODbL-1.0 OFL-1.1 OGTSL OLDAP-2.8 OpenSSL OSL-1.0 OSL-2.0 OSL-3.0 PD PHP-3.0 PostgreSQL Proprietary Python-2.0 QPL-1.0 RHeCos-1 RHeCos-1.1 RPL-1.5 RPSL-1.0 RSCPL Ruby SAX-PD SGI-1 Simple-2.0 Sleepycat SPL-1.0 SugarCRM-1 SugarCRM-1.1.3 UCB VSL-1.0 W3C Watcom-1.0 WXwindows XFree86-1.1 Xnet YPL-1.1 Zimbra-1.3 Zlib ZPL-1.1 ZPL-2.0 ZPL-2.1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SRC_DISTRIBUTE_LICENSES"
- }
-},
-{
- "pk": 819,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_CC_ARCH"
- }
-},
-{
- "pk": 820,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The email address of the distribution maintainer.",
- "variable_value": "Poky <poky@yoctoproject.org>",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MAINTAINER"
- }
-},
-{
- "pk": 821,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libid3tag"
- }
-},
-{
- "pk": 822,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-video-omapfb"
- }
-},
-{
- "pk": 823,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/stamps",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAMPS_DIR"
- }
-},
-{
- "pk": 824,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64.",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_ARCH"
- }
-},
-{
- "pk": 825,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xcb-proto"
- }
-},
-{
- "pk": 826,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-glproto"
- }
-},
-{
- "pk": 827,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-foomatic-filters"
- }
-},
-{
- "pk": 828,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Amount of log lines printed on failure.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBINCLUDELOGS_LINES"
- }
-},
-{
- "pk": 829,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "3.10",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LINUXLIBCVERSION"
- }
-},
-{
- "pk": 830,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xwininfo"
- }
-},
-{
- "pk": 831,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CCACHE_DIR"
- }
-},
-{
- "pk": 832,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/etc/quiltrc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QUILTRCFILE"
- }
-},
-{
- "pk": 833,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gdbm-native"
- }
-},
-{
- "pk": 834,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file.",
- "variable_value": " /home/andreea/poky/meta /home/andreea/poky/meta-yocto /home/andreea/poky/meta-yocto-bsp ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBLAYERS"
- }
-},
-{
- "pk": 835,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-compositeproto-native"
- }
-},
-{
- "pk": 836,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-python-native"
- }
-},
-{
- "pk": 837,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i686-linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_SYS"
- }
-},
-{
- "pk": 838,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxcursor-native"
- }
-},
-{
- "pk": 839,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "quilt-native:do_populate_sysroot",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PATCHDEPENDENCY"
- }
-},
-{
- "pk": 840,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-texi2html"
- }
-},
-{
- "pk": 841,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "poky-feed-config-opkg",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTRAOPKGCONFIG"
- }
-},
-{
- "pk": 842,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-gdbm"
- }
-},
-{
- "pk": 843,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-fontsproto"
- }
-},
-{
- "pk": 844,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "yes",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "OEINCLUDELOGS"
- }
-},
-{
- "pk": 845,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "An underlying ABI used by a particular tuning in a given toolchain layer. This feature allows providers using prebuilt libraries to check compatibility of a tuning against their selection of libraries.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNEABI"
- }
-},
-{
- "pk": 846,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-file"
- }
-},
-{
- "pk": 847,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-json-c"
- }
-},
-{
- "pk": 848,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-valgrind"
- }
-},
-{
- "pk": 849,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libusb-compat"
- }
-},
-{
- "pk": 850,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "List of conflicting features for a given feature.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNECONFLICTS"
- }
-},
-{
- "pk": 851,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The speed and device for the serial port used to attach the serial console. This variable is given to the kernel as the 'console' parameter and after booting occurs getty is started on that port so remote login is possible.",
- "variable_value": "115200 ttyS0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SERIAL_CONSOLE"
- }
-},
-{
- "pk": 852,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mklibs-native"
- }
-},
-{
- "pk": 853,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDHISTORY_COMMIT"
- }
-},
-{
- "pk": 854,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mkfontdir"
- }
-},
-{
- "pk": 855,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " buildhistory_get_sdkinfo ; ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_POSTPROCESS_COMMAND"
- }
-},
-{
- "pk": 856,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "POSIX en_US en_GB",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LIMIT_BUILT_LOCALES"
- }
-},
-{
- "pk": 857,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xrandr"
- }
-},
-{
- "pk": 858,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-rsync"
- }
-},
-{
- "pk": 859,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-g -feliminate-unused-debug-types",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEBUG_FLAGS"
- }
-},
-{
- "pk": 860,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "make",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_make"
- }
-},
-{
- "pk": 861,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libidn"
- }
-},
-{
- "pk": 862,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-grub"
- }
-},
-{
- "pk": 863,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxslt"
- }
-},
-{
- "pk": 864,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-readline-native"
- }
-},
-{
- "pk": 865,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-shadow"
- }
-},
-{
- "pk": 866,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "oecore",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_NAME_PREFIX"
- }
-},
-{
- "pk": 867,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable.",
- "variable_value": "/home/andreea/poky/meta-yocto:/home/andreea/poky/build:/home/andreea/poky/meta:/home/andreea/poky/meta-yocto-bsp",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBPATH"
- }
-},
-{
- "pk": 868,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN).",
- "variable_value": "bblayers-dev (= 1.0-r0)",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RDEPENDS_${PN}-staticdev"
- }
-},
-{
- "pk": 869,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "update-alternatives-cworth",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "VIRTUAL-RUNTIME_update-alternatives"
- }
-},
-{
- "pk": 870,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-speex"
- }
-},
-{
- "pk": 871,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-inputproto"
- }
-},
-{
- "pk": 872,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sqlite3-native"
- }
-},
-{
- "pk": 873,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gdb-cross-canadian-i586"
- }
-},
-{
- "pk": 874,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_gcc-crosssdk-initial"
- }
-},
-{
- "pk": 875,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies additional paths from which the OpenEmbedded build system gets source code.",
- "variable_value": "bzr://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n cvs://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n git://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n hg://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n osc://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n p4://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n svk://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n svn://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREMIRRORS"
- }
-},
-{
- "pk": 876,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of packages to be created from the recipe.",
- "variable_value": "bblayers-dbg bblayers-staticdev bblayers-dev bblayers-doc bblayers-locale bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGES"
- }
-},
-{
- "pk": 877,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable.",
- "variable_value": "bblayers version 1.0-r0. This package contains static libraries for software development.",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DESCRIPTION_${PN}-staticdev"
- }
-},
-{
- "pk": 878,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-consolekit"
- }
-},
-{
- "pk": 879,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-kconfig-frontends"
- }
-},
-{
- "pk": 880,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "cpp ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_CPP"
- }
-},
-{
- "pk": 881,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-input-vmmouse"
- }
-},
-{
- "pk": 882,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-alsa-lib"
- }
-},
-{
- "pk": 883,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SANITY_VERSION"
- }
-},
-{
- "pk": 884,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sato-icon-theme"
- }
-},
-{
- "pk": 885,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/deploy-rpms",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKGWRITEDIRRPM"
- }
-},
-{
- "pk": 886,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "X86ARCH32"
- }
-},
-{
- "pk": 887,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TRANSLATED_TARGET_ARCH"
- }
-},
-{
- "pk": 888,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://gpe.linuxtogo.org/download/source",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GPE_MIRROR"
- }
-},
-{
- "pk": 889,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " buildhistory_get_imageinfo ; ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_POSTPROCESS_COMMAND"
- }
-},
-{
- "pk": 890,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Groups together machines based upon the same family of SOC (System On Chip). You typically set this variable in a common .inc file that you include in the configuration files of all the machines.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SOC_FAMILY"
- }
-},
-{
- "pk": 891,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "prefix_nativesdk"
- }
-},
-{
- "pk": 892,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-lzo"
- }
-},
-{
- "pk": 893,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-fontconfig"
- }
-},
-{
- "pk": 894,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxmu-native"
- }
-},
-{
- "pk": 895,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_BASE_LIBDIR_NATIVE"
- }
-},
-{
- "pk": 896,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_FEATURES_DEFAULT"
- }
-},
-{
- "pk": 897,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gnome-icon-theme"
- }
-},
-{
- "pk": 898,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "false",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FOSS_RECURSIVE_UNPACK"
- }
-},
-{
- "pk": 899,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "This variable is the Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images.",
- "variable_value": "/home/andreea/poky/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TOPDIR"
- }
-},
-{
- "pk": 900,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "mesa",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/egl"
- }
-},
-{
- "pk": 901,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Optionally specifies the version of a layer as a single number. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer.",
- "variable_value": "2",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LAYERVERSION_yocto"
- }
-},
-{
- "pk": 902,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-texinfo-native"
- }
-},
-{
- "pk": 903,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://proxy-ir.glb.intel.com:911",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "http_proxy"
- }
-},
-{
- "pk": 904,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libpng"
- }
-},
-{
- "pk": 905,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KERNEL_EXTRA_ARGS"
- }
-},
-{
- "pk": 906,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If set, ignores TUNEABI_WHITELIST.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNEABI_OVERRIDE"
- }
-},
-{
- "pk": 907,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/conf",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILE_DIRNAME"
- }
-},
-{
- "pk": 908,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " do_populate_sysroot do_package do_packagedata do_package_write_rpm do_populate_lic",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATETASKS"
- }
-},
-{
- "pk": 909,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mkfontscale"
- }
-},
-{
- "pk": 910,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-clutter-1.0"
- }
-},
-{
- "pk": 911,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-pkgconfig"
- }
-},
-{
- "pk": 912,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "CC0-1.0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DATA_LICENSE"
- }
-},
-{
- "pk": 913,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libunistring-native"
- }
-},
-{
- "pk": 914,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "db",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/db"
- }
-},
-{
- "pk": 915,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "eglibc-initial",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial"
- }
-},
-{
- "pk": 916,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-isystem/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/include -O2 -pipe",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_CFLAGS"
- }
-},
-{
- "pk": 917,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Provides a short description of a configuration fragment. You use this variable in the .scc file that describes a configuration fragment file.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KFEATURE_DESCRIPTION"
- }
-},
-{
- "pk": 918,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xtscal"
- }
-},
-{
- "pk": 919,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-prelink"
- }
-},
-{
- "pk": 920,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1972",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSH_AGENT_PID"
- }
-},
-{
- "pk": 921,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "libdir_native"
- }
-},
-{
- "pk": 922,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gzip-native"
- }
-},
-{
- "pk": 923,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-telepathy-mission-control"
- }
-},
-{
- "pk": 924,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": ".so",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SOLIBSDEV"
- }
-},
-{
- "pk": 925,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of directories or files that are placed in packages.",
- "variable_value": "/usr/include /lib/lib*.so /usr/lib/lib*.so /usr/lib/*.la /usr/lib/*.o /usr/lib/pkgconfig /usr/share/pkgconfig /usr/share/aclocal /lib/*.o /usr/lib/bblayers/*.la /lib/*.la",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILES_${PN}-dev"
- }
-},
-{
- "pk": 926,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libuser"
- }
-},
-{
- "pk": 927,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-tiff"
- }
-},
-{
- "pk": 928,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "mktemp -d -q ${TMPBASE}",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MKTEMPDIRCMD"
- }
-},
-{
- "pk": 929,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Packages to exclude from the installation, if required an error will be generated.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_EXCLUDE"
- }
-},
-{
- "pk": 930,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "sstate_checkhashes",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_HASHCHECK_FUNCTION"
- }
-},
-{
- "pk": 931,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/lib/lib*.so /usr/lib/lib*.so",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILES_SOLIBSDEV"
- }
-},
-{
- "pk": 932,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": ".so.*",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SOLIBS"
- }
-},
-{
- "pk": 933,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr/lib/bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_LIBEXECDIR"
- }
-},
-{
- "pk": 934,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "2.7",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PYTHON_BASEVERSION"
- }
-},
-{
- "pk": 935,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "do_package_write_tar"
- }
-},
-{
- "pk": 936,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/share/doc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "docdir"
- }
-},
-{
- "pk": 937,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libunistring"
- }
-},
-{
- "pk": 938,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libowl"
- }
-},
-{
- "pk": 939,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "When used inside the layer.conf configuration file, this variable provides the path of the current layer.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LAYERDIR"
- }
-},
-{
- "pk": 940,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-rxvt-unicode"
- }
-},
-{
- "pk": 941,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mpfr"
- }
-},
-{
- "pk": 942,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/share/info",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "infodir"
- }
-},
-{
- "pk": 943,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libdmx"
- }
-},
-{
- "pk": 944,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/abi_version",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SANITY_ABIFILE"
- }
-},
-{
- "pk": 945,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libcheck"
- }
-},
-{
- "pk": 946,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "COMMERCIAL_QT"
- }
-},
-{
- "pk": 947,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "base_prefix"
- }
-},
-{
- "pk": 948,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/conf",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "THISDIR"
- }
-},
-{
- "pk": 949,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "nativesdk-linux-libc-headers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_nativesdk-linux-libc-headers"
- }
-},
-{
- "pk": 950,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors.",
- "variable_value": "x86 i386 i486 i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_EXTRA_ARCHS"
- }
-},
-{
- "pk": 951,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "ltp",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_ltp"
- }
-},
-{
- "pk": 952,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of package name aliases that a package also provides. These aliases are useful for satisfying runtime dependencies of other packages both during the build and on the target.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RPROVIDES"
- }
-},
-{
- "pk": 953,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MERGEPERFILEDEPS"
- }
-},
-{
- "pk": 954,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Formats of root filesystem images that you want to have created.",
- "variable_value": " tar.bz2 ext3",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_FSTYPES"
- }
-},
-{
- "pk": 955,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt \t\t\t\t\tlibc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse \t\t\t\t\tlibc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code \t\t\t\t\tlibc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc \t\t\t\t\tlibc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc \t\t\t\t\tlibc-posix-wchar-io",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_FEATURES_LIBC_DEFAULT"
- }
-},
-{
- "pk": 956,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "next",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_CODENAME"
- }
-},
-{
- "pk": 957,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BASE_LIB_tune-i586"
- }
-},
-{
- "pk": 958,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/sstate-cache/IN/sstate:bblayers:i586-poky-linux:1.0:r0:i586:3:INVALID",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_PKG"
- }
-},
-{
- "pk": 959,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-console-tools"
- }
-},
-{
- "pk": 960,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "115200;ttyS0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SERIAL_CONSOLES"
- }
-},
-{
- "pk": 961,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-pulseaudio"
- }
-},
-{
- "pk": 962,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-ncurses"
- }
-},
-{
- "pk": 963,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libxrandr"
- }
-},
-{
- "pk": 964,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "xterm",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TERM"
- }
-},
-{
- "pk": 965,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "6",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LAYER_CONF_VERSION"
- }
-},
-{
- "pk": 966,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gst-plugins-good"
- }
-},
-{
- "pk": 967,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libpthread-stubs-native"
- }
-},
-{
- "pk": 968,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_DIR_NATIVE"
- }
-},
-{
- "pk": 969,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gconf-native"
- }
-},
-{
- "pk": 970,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/deploy",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEPLOY_DIR"
- }
-},
-{
- "pk": 971,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libtasn1"
- }
-},
-{
- "pk": 972,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "virtual/libintl virtual/libintl-native virtual/nativesdk-libintl virtual/xserver virtual/update-alternatives-native virtual/update-alternatives",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MULTI_PROVIDER_WHITELIST"
- }
-},
-{
- "pk": 973,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-puzzles"
- }
-},
-{
- "pk": 974,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of recipes that are completely stable and will never change.",
- "variable_value": " sysvinit-inittab shadow-securetty opkg-config-base netbase init-ifupdown connman-conf formfactor xserver-xf86-config pointercal pointercal-xinput base-files keymaps udev-extraconf packagegroup-x11-xserver systemd-serialgetty ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SIGGEN_EXCLUDERECIPES_ABISAFE"
- }
-},
-{
- "pk": 975,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the base path used to create recipe stamp files. The path to an actual stamp file is constructed by evaluating this string and then appending additional information.",
- "variable_value": "/home/andreea/poky/build/tmp/stamps/i586-poky-linux/bblayers/1.0-r0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAMP"
- }
-},
-{
- "pk": 976,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-liboil"
- }
-},
-{
- "pk": 977,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-matchbox-panel-2"
- }
-},
-{
- "pk": 978,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-jpeg"
- }
-},
-{
- "pk": 979,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-matchbox-wm"
- }
-},
-{
- "pk": 980,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-gmp"
- }
-},
-{
- "pk": 981,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/qa.log",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QA_LOGFILE"
- }
-},
-{
- "pk": 982,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86vidmodeproto"
- }
-},
-{
- "pk": 983,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists the layers that this recipe depends upon, separated by spaces. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer.",
- "variable_value": "core",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LAYERDEPENDS_yocto"
- }
-},
-{
- "pk": 984,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/deploy/tools",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEPLOY_DIR_TOOLS"
- }
-},
-{
- "pk": 985,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "sysv",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LINKER_HASH_STYLE_mips"
- }
-},
-{
- "pk": 986,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of directories or files that are placed in packages.",
- "variable_value": "/usr/lib/*.a /lib/*.a /usr/lib/bblayers/*.a",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILES_${PN}-staticdev"
- }
-},
-{
- "pk": 987,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libpcre"
- }
-},
-{
- "pk": 988,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-watchdog"
- }
-},
-{
- "pk": 989,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Normally same as the TARGET_PREFIX.",
- "variable_value": "i586-poky-linux-",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOST_PREFIX"
- }
-},
-{
- "pk": 990,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-systemtap"
- }
-},
-{
- "pk": 991,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-wayland-native"
- }
-},
-{
- "pk": 992,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/pkgdata",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKGDATA_DIR"
- }
-},
-{
- "pk": 993,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/etc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "sysconfdir_native"
- }
-},
-{
- "pk": 994,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "opkg-native",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/update-alternatives-native"
- }
-},
-{
- "pk": 995,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Linux version from kernel.org on which the Linux kernel image being built using the OpenEmbedded build system is based. You define this variable in the kernel recipe.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LINUX_VERSION"
- }
-},
-{
- "pk": 996,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-dev -dbg",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEPCHAIN_POST"
- }
-},
-{
- "pk": 997,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libxfixes"
- }
-},
-{
- "pk": 998,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-input-keyboard"
- }
-},
-{
- "pk": 999,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-recordproto"
- }
-},
-{
- "pk": 1000,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'.",
- "variable_value": "default",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TCMODE"
- }
-},
-{
- "pk": 1001,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LOCALE_SECTION"
- }
-},
-{
- "pk": 1002,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/deploy/licenses",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LICENSE_DIRECTORY"
- }
-},
-{
- "pk": 1003,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libxext"
- }
-},
-{
- "pk": 1004,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "mx32",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_FEATURES_tune-x86-64-x32"
- }
-},
-{
- "pk": 1005,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-damageproto"
- }
-},
-{
- "pk": 1006,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-cronie"
- }
-},
-{
- "pk": 1007,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "x86_64_x32",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_PKGARCH_tune-x86-64-x32"
- }
-},
-{
- "pk": 1008,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_DIR_HOST"
- }
-},
-{
- "pk": 1009,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/sbin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "base_sbindir"
- }
-},
-{
- "pk": 1010,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "x86_64",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_PKGARCH_tune-x86-64"
- }
-},
-{
- "pk": 1011,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Website where more information about the software the recipe is building can be found.",
- "variable_value": "unknown",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOMEPAGE"
- }
-},
-{
- "pk": 1012,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/deploy/images/qemux86/ /home/andreea/poky/build/tmp/deploy/licenses/ /home/andreea/poky/build/tmp/sysroots/i686-linux/usr/lib/i586-poky-linux /home/andreea/poky/build/tmp/sysroots/i686-linux/usr/libexec/i586-poky-linux /home/andreea/poky/build/tmp/sysroots/i686-linux/usr/bin/i586-poky-linux /home/andreea/poky/build/tmp/sysroots/i686-linux/usr/include/gcc-build-internal-i586-poky-linux /home/andreea/poky/build/tmp/sysroots/i686-linux/etc/sgml /home/andreea/poky/build/tmp/sysroots/i686-linux/usr/share/sgml",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_DUPWHITELIST"
- }
-},
-{
- "pk": 1013,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-icu"
- }
-},
-{
- "pk": 1014,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "matchbox-panel-2",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_matchbox-panel"
- }
-},
-{
- "pk": 1015,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxmu"
- }
-},
-{
- "pk": 1016,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINE_ARCH"
- }
-},
-{
- "pk": 1017,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-settings-daemon"
- }
-},
-{
- "pk": 1018,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Defines a multiplier that the build system applies to the initial image size for cases when the multiplier times the returned disk usage value for the image is greater than the sum of IMAGE_ROOTFS_SIZE and IMAGE_ROOTFS_EXTRA_SPACE.",
- "variable_value": "1.3",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_OVERHEAD_FACTOR"
- }
-},
-{
- "pk": 1019,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxkbfile"
- }
-},
-{
- "pk": 1020,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Causes the PR variable of .bbappend files to dynamically increment. This increment minimizes the impact of layer ordering. This variable defaults to '0'.",
- "variable_value": "0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PRINC"
- }
-},
-{
- "pk": 1021,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "sysv",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LINKER_HASH_STYLE_mips64"
- }
-},
-{
- "pk": 1022,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dbus"
- }
-},
-{
- "pk": 1023,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "When set to 1, no recommended packages will be installed. Note: some recommended packages may be required for certain system functionality, such as kernel-modules. It is up to the user to add packages to IMAGE_INSTALL as needed.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "NO_RECOMMENDATIONS"
- }
-},
-{
- "pk": 1024,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "eglibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/libiconv"
- }
-},
-{
- "pk": 1025,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-texinfo"
- }
-},
-{
- "pk": 1026,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/cache",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PERSISTENT_DIR"
- }
-},
-{
- "pk": 1027,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "rpm",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RPM"
- }
-},
-{
- "pk": 1028,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_VENDOR"
- }
-},
-{
- "pk": 1029,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://kernel.org/pub",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KERNELORG_MIRROR"
- }
-},
-{
- "pk": 1030,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-rpm"
- }
-},
-{
- "pk": 1031,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-video-fbdev"
- }
-},
-{
- "pk": 1032,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Increased each time build/conf/ changes incompatibly and used to track the version of local.conf",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CONF_VERSION"
- }
-},
-{
- "pk": 1033,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-Wl,--as-needed",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED"
- }
-},
-{
- "pk": 1034,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-librsvg"
- }
-},
-{
- "pk": 1035,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr/lib/pkgconfig:/home/andreea/poky/build/tmp/sysroots/qemux86/usr/share/pkgconfig",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PKG_CONFIG_PATH"
- }
-},
-{
- "pk": 1036,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/staging.lock",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SYSROOT_LOCK"
- }
-},
-{
- "pk": 1037,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-fixesproto-native"
- }
-},
-{
- "pk": 1038,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies which variant of the GNU standard C library (libc) to use during the build process. You can select eglibc or uclibc.",
- "variable_value": "eglibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TCLIBC"
- }
-},
-{
- "pk": 1039,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://localhost//?mod=spdx_license_once&noCopyright=true&recursiveUnpack=false",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FOSS_SERVER"
- }
-},
-{
- "pk": 1040,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxcalibrate"
- }
-},
-{
- "pk": 1041,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-rpm-native"
- }
-},
-{
- "pk": 1042,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOST_AS_ARCH"
- }
-},
-{
- "pk": 1043,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-genext2fs-native"
- }
-},
-{
- "pk": 1044,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gstreamer"
- }
-},
-{
- "pk": 1045,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gccmakedep"
- }
-},
-{
- "pk": 1046,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-renderproto"
- }
-},
-{
- "pk": 1047,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/yocto/fossology_scans",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SPDX_MANIFEST_DIR"
- }
-},
-{
- "pk": 1048,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-poky",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_VENDOR"
- }
-},
-{
- "pk": 1049,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-bluez-hcidump"
- }
-},
-{
- "pk": 1050,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "3.10%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_linux-yocto_qemux86-64"
- }
-},
-{
- "pk": 1051,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dbus-glib-native"
- }
-},
-{
- "pk": 1052,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-bison"
- }
-},
-{
- "pk": 1053,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-expat"
- }
-},
-{
- "pk": 1054,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libunique"
- }
-},
-{
- "pk": 1055,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": ".dylibbroken",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SOLIBSDEV_darwin"
- }
-},
-{
- "pk": 1056,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt \t\t\t\t\tlibc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse \t\t\t\t\tlibc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code \t\t\t\t\tlibc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc \t\t\t\t\tlibc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc \t\t\t\t\tlibc-posix-wchar-io",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_FEATURES_LIBC"
- }
-},
-{
- "pk": 1057,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://proxy-ir.glb.intel.com:911",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ftp_proxy"
- }
-},
-{
- "pk": 1058,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-util-macros"
- }
-},
-{
- "pk": 1059,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "USRBINPATH"
- }
-},
-{
- "pk": 1060,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86miscproto"
- }
-},
-{
- "pk": 1061,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_PKGARCH"
- }
-},
-{
- "pk": 1062,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "gcc-runtime",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs"
- }
-},
-{
- "pk": 1063,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "bblayers-qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_LINK_NAME"
- }
-},
-{
- "pk": 1064,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "0.148",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_elfutils"
- }
-},
-{
- "pk": 1065,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-cpu cortex-a8",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QEMU_OPTIONS_armv7a"
- }
-},
-{
- "pk": 1066,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-bison"
- }
-},
-{
- "pk": 1067,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mx"
- }
-},
-{
- "pk": 1068,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-cpio"
- }
-},
-{
- "pk": 1069,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mc"
- }
-},
-{
- "pk": 1070,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LOCALE_UTF8_ONLY"
- }
-},
-{
- "pk": 1071,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.18",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_nativesdk-eglibc-initial"
- }
-},
-{
- "pk": 1072,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "COREBASE"
- }
-},
-{
- "pk": 1073,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://ftp.gnome.org/pub/GNOME/sources",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GNOME_MIRROR"
- }
-},
-{
- "pk": 1074,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-harfbuzz-native"
- }
-},
-{
- "pk": 1075,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEBUG_BUILD"
- }
-},
-{
- "pk": 1076,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-m4"
- }
-},
-{
- "pk": 1077,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xkeyboard-config"
- }
-},
-{
- "pk": 1078,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/deploy/ipk",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEPLOY_DIR_IPK"
- }
-},
-{
- "pk": 1079,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-as ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "AS"
- }
-},
-{
- "pk": 1080,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-ar",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "AR"
- }
-},
-{
- "pk": 1081,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-glib-2.0-native"
- }
-},
-{
- "pk": 1082,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-intltool"
- }
-},
-{
- "pk": 1083,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libva-intel-driver"
- }
-},
-{
- "pk": 1084,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/buildstats//.buildname",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BNFILE"
- }
-},
-{
- "pk": 1085,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libunistring"
- }
-},
-{
- "pk": 1086,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The pathname of the working directory in which the OpenEmbedded build system builds a recipe. This directory is located within the TMPDIR directory structure and changes as different packages are built.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "WORKDIR"
- }
-},
-{
- "pk": 1087,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-groff"
- }
-},
-{
- "pk": 1088,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_PKGARCH"
- }
-},
-{
- "pk": 1089,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-isystem/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/include",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_CPPFLAGS"
- }
-},
-{
- "pk": 1090,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-db-native"
- }
-},
-{
- "pk": 1091,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-elfutils"
- }
-},
-{
- "pk": 1092,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "all any noarch i686-nativesdk",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_PACKAGE_ARCHS"
- }
-},
-{
- "pk": 1093,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-gcc -E --sysroot=/home/andreea/poky/build/tmp/sysroots/qemux86 -m32 -march=i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CPP"
- }
-},
-{
- "pk": 1094,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Normally same as the TARGET_CC_ARCH.",
- "variable_value": " -m32 -march=i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOST_CC_ARCH"
- }
-},
-{
- "pk": 1095,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-eglibc"
- }
-},
-{
- "pk": 1096,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libx11"
- }
-},
-{
- "pk": 1097,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The recipe name and version. P is comprised of ${PN}-${PV}",
- "variable_value": "bblayers-1.0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "P"
- }
-},
-{
- "pk": 1098,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-flex-native"
- }
-},
-{
- "pk": 1099,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-video-mga"
- }
-},
-{
- "pk": 1100,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of files that contains autoconf test results relevant to the current build. This variable is used by the Autotools utilities when running configure.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CONFIG_SITE"
- }
-},
-{
- "pk": 1101,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libtheora"
- }
-},
-{
- "pk": 1102,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-matchbox-desktop"
- }
-},
-{
- "pk": 1103,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "prelink-native",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QADEPENDS"
- }
-},
-{
- "pk": 1104,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-isystem/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/include -O2 -pipe -fpermissive",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_CXXFLAGS"
- }
-},
-{
- "pk": 1105,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "m32",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_FEATURES_tune-x86"
- }
-},
-{
- "pk": 1106,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-vte"
- }
-},
-{
- "pk": 1107,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/include",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "includedir_native"
- }
-},
-{
- "pk": 1108,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Allows you to define your own file permissions settings table as part of your configuration for the packaging process.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FILESYSTEM_PERMS_TABLES"
- }
-},
-{
- "pk": 1109,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_BINDIR"
- }
-},
-{
- "pk": 1110,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "dbus-glib-native",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_dbus-glib-native"
- }
-},
-{
- "pk": 1111,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "NO32LIBS"
- }
-},
-{
- "pk": 1112,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xcmiscproto-native"
- }
-},
-{
- "pk": 1113,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-courier-imap"
- }
-},
-{
- "pk": 1114,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CCACHE_DISABLE"
- }
-},
-{
- "pk": 1115,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-lrzsz"
- }
-},
-{
- "pk": 1116,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-gfortran -m32 -march=i586 --sysroot=/home/andreea/poky/build/tmp/sysroots/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FC"
- }
-},
-{
- "pk": 1117,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_PREFIX"
- }
-},
-{
- "pk": 1118,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOME"
- }
-},
-{
- "pk": 1119,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "gcc-cross",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc"
- }
-},
-{
- "pk": 1120,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-chrpath-native"
- }
-},
-{
- "pk": 1121,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "gfortran ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_FC"
- }
-},
-{
- "pk": 1122,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-opkg"
- }
-},
-{
- "pk": 1123,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pax"
- }
-},
-{
- "pk": 1124,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xeyes"
- }
-},
-{
- "pk": 1125,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-wayland"
- }
-},
-{
- "pk": 1126,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-bzip2-native"
- }
-},
-{
- "pk": 1127,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "xserver-xorg",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/xserver"
- }
-},
-{
- "pk": 1128,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-autoconf"
- }
-},
-{
- "pk": 1129,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " -m32 -march=i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_CC_ARCH"
- }
-},
-{
- "pk": 1130,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The name of the target architecture. Normally same as the TARGET_ARCH.",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "HOST_ARCH"
- }
-},
-{
- "pk": 1131,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Variable that controls which locales for eglibc are generated during the build (useful if the target device has 64Mbytes of RAM or less).",
- "variable_value": "1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ENABLE_BINARY_LOCALE_GENERATION"
- }
-},
-{
- "pk": 1132,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the target's operating system.",
- "variable_value": "linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_OS"
- }
-},
-{
- "pk": 1133,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-liburcu"
- }
-},
-{
- "pk": 1134,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-dbus"
- }
-},
-{
- "pk": 1135,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Alias names used for the recipe in various Linux distributions.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_PN_ALIAS"
- }
-},
-{
- "pk": 1136,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " https://eula-downloads.yoctoproject.org/index.php http://bugzilla.yoctoproject.org/report.cgi",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CONNECTIVITY_CHECK_URIS"
- }
-},
-{
- "pk": 1137,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libpcap"
- }
-},
-{
- "pk": 1138,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-makedepend-native"
- }
-},
-{
- "pk": 1139,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ABIEXTENSION"
- }
-},
-{
- "pk": 1140,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A whitelist of permissible TUNEABI values; if unset, all are allowed.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNEABI_WHITELIST"
- }
-},
-{
- "pk": 1141,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-O -mcpu -march -pipe",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ALLOWED_FLAGS"
- }
-},
-{
- "pk": 1142,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.7.3",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_python"
- }
-},
-{
- "pk": 1143,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies if an output package should still be produced if it is empty.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ALLOW_EMPTY"
- }
-},
-{
- "pk": 1144,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-flex"
- }
-},
-{
- "pk": 1145,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-neon"
- }
-},
-{
- "pk": 1146,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "gcc-cross-initial",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial"
- }
-},
-{
- "pk": 1147,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.23.2",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_binutils-cross"
- }
-},
-{
- "pk": 1148,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_FEATURES_BACKFILL_CONSIDERED"
- }
-},
-{
- "pk": 1149,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "binutils-cross",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils"
- }
-},
-{
- "pk": 1150,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-matchbox-config-gtk"
- }
-},
-{
- "pk": 1151,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies a list of distro-specific packages to add to all images if the packages exist. The list of packages are automatically installed but you can remove them.",
- "variable_value": " kernel-module-af-packet",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO_EXTRA_RRECOMMENDS"
- }
-},
-{
- "pk": 1152,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-socat"
- }
-},
-{
- "pk": 1153,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xev"
- }
-},
-{
- "pk": 1154,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libusb1-native"
- }
-},
-{
- "pk": 1155,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "libassuan gnutls libtasn1 libidn libgcc gcc-runtime",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LGPLv2_WHITELIST_GPLv3"
- }
-},
-{
- "pk": 1156,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_CPPFLAGS"
- }
-},
-{
- "pk": 1157,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-util-macros"
- }
-},
-{
- "pk": 1158,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libtool"
- }
-},
-{
- "pk": 1159,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "opkg",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_opkg"
- }
-},
-{
- "pk": 1160,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gst-fluendo-mp3"
- }
-},
-{
- "pk": 1161,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTENDPKGEVER"
- }
-},
-{
- "pk": 1162,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-tar"
- }
-},
-{
- "pk": 1163,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-alsa-lib"
- }
-},
-{
- "pk": 1164,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-oh-puzzles"
- }
-},
-{
- "pk": 1165,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "exec_prefix"
- }
-},
-{
- "pk": 1166,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxxf86dga"
- }
-},
-{
- "pk": 1167,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.23.2",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_binutils"
- }
-},
-{
- "pk": 1168,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A string identifying the host distribution.",
- "variable_value": "Ubuntu-13.04",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "NATIVELSBSTRING"
- }
-},
-{
- "pk": 1169,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxfont"
- }
-},
-{
- "pk": 1170,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Locale generation of the GNU libc implementation.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GROUP_locale"
- }
-},
-{
- "pk": 1171,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "IN/sstate:bblayers:i586-poky-linux:1.0:r0:i586:3:INVALID",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_PKGNAME"
- }
-},
-{
- "pk": 1172,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xcb-util-wm"
- }
-},
-{
- "pk": 1173,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin/env cvs",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FETCHCMD_cvs"
- }
-},
-{
- "pk": 1174,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxxf86misc"
- }
-},
-{
- "pk": 1175,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xcb-util"
- }
-},
-{
- "pk": 1176,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://distfiles.gentoo.org/distfiles",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GENTOO_MIRROR"
- }
-},
-{
- "pk": 1177,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-shared-mime-info-native"
- }
-},
-{
- "pk": 1178,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "x86_64",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "X86ARCH64"
- }
-},
-{
- "pk": 1179,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gnome-desktop"
- }
-},
-{
- "pk": 1180,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86/usr/include",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_INCDIR"
- }
-},
-{
- "pk": 1181,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH}"
- }
-},
-{
- "pk": 1182,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-rpcbind"
- }
-},
-{
- "pk": 1183,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-lame"
- }
-},
-{
- "pk": 1184,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-bzip2"
- }
-},
-{
- "pk": 1185,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "gcc-cross",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++"
- }
-},
-{
- "pk": 1186,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-expat-native"
- }
-},
-{
- "pk": 1187,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_gcc-crosssdk-intermediate"
- }
-},
-{
- "pk": 1188,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Defines the disk space and free inode warning intervals. To set these intervals, define the variable in the conf/local.conf file in the Build Directory.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_DISKMON_WARNINTERVAL"
- }
-},
-{
- "pk": 1189,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libogg"
- }
-},
-{
- "pk": 1190,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-jpeg-native"
- }
-},
-{
- "pk": 1191,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin/env svn --non-interactive --trust-server-cert",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "FETCHCMD_svn"
- }
-},
-{
- "pk": 1192,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-owl-video"
- }
-},
-{
- "pk": 1193,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "This variable points to a directory were BitBake places temporary files, which consist mostly of task logs and scripts, when building a particular recipe.",
- "variable_value": "/home/andreea/poky/build/tmp/log/cleanlogs/bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "T_task-clean"
- }
-},
-{
- "pk": 1194,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libnss-mdns"
- }
-},
-{
- "pk": 1195,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "linux-yocto",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/kernel"
- }
-},
-{
- "pk": 1196,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libxml2"
- }
-},
-{
- "pk": 1197,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libfontenc"
- }
-},
-{
- "pk": 1198,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xset"
- }
-},
-{
- "pk": 1199,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The machine as known by the kernel.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KMACHINE"
- }
-},
-{
- "pk": 1200,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-font-util"
- }
-},
-{
- "pk": 1201,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libpng-native"
- }
-},
-{
- "pk": 1202,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "4.8%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_gcc"
- }
-},
-{
- "pk": 1203,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The variable takes the value of FULL_OPTIMIZATION unless DEBUG_BUILD = \"1\". In this case the value of DEBUG_OPTIMIZATION is used.",
- "variable_value": "-O2 -pipe -g -feliminate-unused-debug-types",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SELECTED_OPTIMIZATION"
- }
-},
-{
- "pk": 1204,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREPROCESS_RELOCATE_DIRS"
- }
-},
-{
- "pk": 1205,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-damageproto-native"
- }
-},
-{
- "pk": 1206,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dmxproto"
- }
-},
-{
- "pk": 1207,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " rpm-native:do_populate_sysroot createrepo-native:do_populate_sysroot",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGEINDEXDEPS"
- }
-},
-{
- "pk": 1208,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "3.10%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_linux-yocto_qemuarm"
- }
-},
-{
- "pk": 1209,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-lttng-ust"
- }
-},
-{
- "pk": 1210,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-enchant"
- }
-},
-{
- "pk": 1211,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pixman-native"
- }
-},
-{
- "pk": 1212,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "--enable-nls --disable-nls --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "UNKNOWN_CONFIGURE_WHITELIST"
- }
-},
-{
- "pk": 1213,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libassuan"
- }
-},
-{
- "pk": 1214,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_LIBDIR_NATIVE"
- }
-},
-{
- "pk": 1215,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libice-native"
- }
-},
-{
- "pk": 1216,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "arm i386 mips mipsel ppc x86_64",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QEMU_TARGETS"
- }
-},
-{
- "pk": 1217,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-calibrateproto"
- }
-},
-{
- "pk": 1218,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mtools"
- }
-},
-{
- "pk": 1219,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "linux:i586:build-linux:pn-bblayers:x86:qemuall:qemux86:poky:class-target:forcevariable:libc-glibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "OVERRIDES"
- }
-},
-{
- "pk": 1220,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Causes the named class to be inherited at this point during parsing. The variable is only valid in configuration files.",
- "variable_value": " poky-sanity package_rpm buildstats image-mklibs image-prelink debian devshell sstate license sanity toaster buildhistory",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "INHERIT"
- }
-},
-{
- "pk": 1221,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gnome-common-native"
- }
-},
-{
- "pk": 1222,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "find ${SSTATE_BUILDDIR} \\( -name \"*.la\" -o -name \"*-config\" -o -name \"*_config\" \\) -type f",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_SCAN_CMD"
- }
-},
-{
- "pk": 1223,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_LD_ARCH"
- }
-},
-{
- "pk": 1224,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Assigns the priority for recipe files in each layer. Setting this variable allows you to prioritize a layer against other layers that contain the same recipe.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBFILE_PRIORITY"
- }
-},
-{
- "pk": 1225,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "base_libdir"
- }
-},
-{
- "pk": 1226,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BASELIB"
- }
-},
-{
- "pk": 1227,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-O2 -pipe",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_OPTIMIZATION"
- }
-},
-{
- "pk": 1228,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " perform_packagecopy split_and_strip_files fixup_perms ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGEBUILDPKGD"
- }
-},
-{
- "pk": 1229,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxfont-native"
- }
-},
-{
- "pk": 1230,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-dialer"
- }
-},
-{
- "pk": 1231,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/scripts:/home/andreea/poky/bitbake/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PATH"
- }
-},
-{
- "pk": 1232,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ASNEEDED_pn-pciutils"
- }
-},
-{
- "pk": 1233,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-intltool-native"
- }
-},
-{
- "pk": 1234,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS.",
- "variable_value": " -O2 -pipe -g -feliminate-unused-debug-types",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_CFLAGS"
- }
-},
-{
- "pk": 1235,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxrandr-native"
- }
-},
-{
- "pk": 1236,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-randrproto-native"
- }
-},
-{
- "pk": 1237,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/lib/locale",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "localedir"
- }
-},
-{
- "pk": 1238,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "sstate:bblayers::1.0:r0::3:",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_SWSPEC"
- }
-},
-{
- "pk": 1239,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The section in which packages should be categorized. Package management utilities can make use of this variable.",
- "variable_value": "doc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SECTION_${PN}-doc"
- }
-},
-{
- "pk": 1240,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-genext2fs"
- }
-},
-{
- "pk": 1241,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-tcl-native"
- }
-},
-{
- "pk": 1242,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libglade"
- }
-},
-{
- "pk": 1243,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-findutils-native"
- }
-},
-{
- "pk": 1244,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the target device for which the image is built. You define MACHINE in the conf/local.conf file in the Build Directory.",
- "variable_value": "qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MACHINE"
- }
-},
-{
- "pk": 1245,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-yasm"
- }
-},
-{
- "pk": 1246,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-ofono"
- }
-},
-{
- "pk": 1247,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The directory where git clones will be stored.",
- "variable_value": "/home/andreea/poky/build/downloads/git2",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "GITDIR"
- }
-},
-{
- "pk": 1248,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "prefix_native"
- }
-},
-{
- "pk": 1249,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Assigns the priority for recipe files in each layer. Setting this variable allows you to prioritize a layer against other layers that contain the same recipe.",
- "variable_value": "5",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BBFILE_PRIORITY_yocto"
- }
-},
-{
- "pk": 1250,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-video-vesa"
- }
-},
-{
- "pk": 1251,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-input-mouse"
- }
-},
-{
- "pk": 1252,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "ar",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_AR"
- }
-},
-{
- "pk": 1253,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "as ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_AS"
- }
-},
-{
- "pk": 1254,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/com",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "sharedstatedir"
- }
-},
-{
- "pk": 1255,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxxf86vm"
- }
-},
-{
- "pk": 1256,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "ftp://ftp.debian.org/debian/pool",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEBIAN_MIRROR"
- }
-},
-{
- "pk": 1257,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "2.18",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_nativesdk-eglibc"
- }
-},
-{
- "pk": 1258,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/buildstats//.device",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEVFILE"
- }
-},
-{
- "pk": 1259,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "3.10%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_linux-yocto_qemuppc"
- }
-},
-{
- "pk": 1260,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "apm",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "VIRTUAL-RUNTIME_apm"
- }
-},
-{
- "pk": 1261,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libglu"
- }
-},
-{
- "pk": 1262,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libsoup-2.4"
- }
-},
-{
- "pk": 1263,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-sed-native"
- }
-},
-{
- "pk": 1264,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-gettext"
- }
-},
-{
- "pk": 1265,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "3.10",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_linux-libc-headers"
- }
-},
-{
- "pk": 1266,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-flex"
- }
-},
-{
- "pk": 1267,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i586-poky-linux-objdump",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "OBJDUMP"
- }
-},
-{
- "pk": 1268,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "quilt",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PATCHTOOL"
- }
-},
-{
- "pk": 1269,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-kbproto-native"
- }
-},
-{
- "pk": 1270,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://xorg.freedesktop.org/releases",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "XORG_MIRROR"
- }
-},
-{
- "pk": 1271,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-lzop-native"
- }
-},
-{
- "pk": 1272,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pango"
- }
-},
-{
- "pk": 1273,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_EXEEXT"
- }
-},
-{
- "pk": 1274,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-util-macros-native"
- }
-},
-{
- "pk": 1275,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gsettings-desktop-schemas"
- }
-},
-{
- "pk": 1276,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-pulseaudio"
- }
-},
-{
- "pk": 1277,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'.",
- "variable_value": "0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IMAGE_ROOTFS_EXTRA_SPACE"
- }
-},
-{
- "pk": 1278,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "class-target",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CLASSOVERRIDE"
- }
-},
-{
- "pk": 1279,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The revision of the recipe. The default value for this variable is 'r0'.",
- "variable_value": "r0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PR"
- }
-},
-{
- "pk": 1280,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The version of the recipe. The version is normally extracted from the recipe filename.",
- "variable_value": "1.0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PV"
- }
-},
-{
- "pk": 1281,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "i686-pokysdk-linux-",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_PREFIX"
- }
-},
-{
- "pk": 1282,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gdbm"
- }
-},
-{
- "pk": 1283,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libdrm"
- }
-},
-{
- "pk": 1284,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}",
- "variable_value": "bblayers-1.0-r0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PF"
- }
-},
-{
- "pk": 1285,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-lzop"
- }
-},
-{
- "pk": 1286,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The epoch of the recipe. The default value is '0'. The field is used to make upgrades possible when the versioning scheme changes in some backwards incompatible way.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PE"
- }
-},
-{
- "pk": 1287,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-babeltrace"
- }
-},
-{
- "pk": 1288,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-yasm-native"
- }
-},
-{
- "pk": 1289,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "PN refers to a recipe name in the context of a file used by the OpenEmbedded build system as input to create a package. It refers to a package name in the context of a file created or produced by the OpenEmbedded build system.",
- "variable_value": "bblayers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PN"
- }
-},
-{
- "pk": 1290,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxfixes"
- }
-},
-{
- "pk": 1291,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used.",
- "variable_value": "poky",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DISTRO"
- }
-},
-{
- "pk": 1292,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGEVARS"
- }
-},
-{
- "pk": 1293,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-db"
- }
-},
-{
- "pk": 1294,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_LD_ARCH"
- }
-},
-{
- "pk": 1295,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The location in the Build Directory where unpacked package source code resides.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/bblayers-1.0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "S"
- }
-},
-{
- "pk": 1296,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/deploy/tar",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEPLOY_DIR_TAR"
- }
-},
-{
- "pk": 1297,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "nativesdk-eglibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/nativesdk-libc"
- }
-},
-{
- "pk": 1298,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxext"
- }
-},
-{
- "pk": 1299,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "libdir_nativesdk"
- }
-},
-{
- "pk": 1300,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "linux-libc-headers",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_linux-libc-headers"
- }
-},
-{
- "pk": 1301,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/buildhistory",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDHISTORY_DIR"
- }
-},
-{
- "pk": 1302,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "List of ipkg feed records to put into generated image.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "IPK_FEED_URIS"
- }
-},
-{
- "pk": 1303,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "chrpath",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CHRPATH_BIN"
- }
-},
-{
- "pk": 1304,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "List of additional classes to use when building images which enable extra features.",
- "variable_value": "buildstats image-mklibs image-prelink",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "USER_CLASSES"
- }
-},
-{
- "pk": 1305,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-kconfig-frontends-native"
- }
-},
-{
- "pk": 1306,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The revision of the source code used to build the package. This variable applies to Subversion, Git, Mercurial and Bazaar only.",
- "variable_value": "INVALID",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SRCREV"
- }
-},
-{
- "pk": 1307,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "do_packagedata",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEBIANRDEP"
- }
-},
-{
- "pk": 1308,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-clutter-gst-1.0"
- }
-},
-{
- "pk": 1309,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-cpu e500mc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "QEMU_OPTIONS_e500mc"
- }
-},
-{
- "pk": 1310,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Configures the OpenEmbedded build system to search other mirror locations for prebuilt cache data objects before building out the data. You can specify a filesystem directory or a remote URL such as HTTP or FTP.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSTATE_MIRRORS"
- }
-},
-{
- "pk": 1311,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gnupg"
- }
-},
-{
- "pk": 1312,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mesa-demos"
- }
-},
-{
- "pk": 1313,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libmatchbox"
- }
-},
-{
- "pk": 1314,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-diffutils"
- }
-},
-{
- "pk": 1315,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "do_package_write",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGERDEPTASK"
- }
-},
-{
- "pk": 1316,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "sysv",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LINKER_HASH_STYLE_mips64el"
- }
-},
-{
- "pk": 1317,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-mobile-broadband-provider-info"
- }
-},
-{
- "pk": 1318,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "m64",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TUNE_FEATURES_tune-x86-64"
- }
-},
-{
- "pk": 1319,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "nonarch_base_libdir"
- }
-},
-{
- "pk": 1320,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/i686-linux/usr/bin/i586-poky-linux",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_BINDIR_TOOLCHAIN"
- }
-},
-{
- "pk": 1321,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "master",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "METADATA_BRANCH"
- }
-},
-{
- "pk": 1322,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-remake"
- }
-},
-{
- "pk": 1323,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of functions to execute after files are staged into the sysroot. These functions are usually used to apply additional processing on the staged files, or to stage additional files.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SYSROOT_PREPROCESS_FUNCS"
- }
-},
-{
- "pk": 1324,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_DEFAULT_TASK"
- }
-},
-{
- "pk": 1325,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-ccache"
- }
-},
-{
- "pk": 1326,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR within the module.bbclass class.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KERNEL_PATH"
- }
-},
-{
- "pk": 1327,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "3.10%",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION_linux-yocto_qemux86"
- }
-},
-{
- "pk": 1328,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " --sysroot=/home/andreea/poky/build/tmp/sysroots/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TOOLCHAIN_OPTIONS"
- }
-},
-{
- "pk": 1329,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/spdx_temp",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SPDX_TEMP_DIR"
- }
-},
-{
- "pk": 1330,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin/python",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PYTHON"
- }
-},
-{
- "pk": 1331,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gaku"
- }
-},
-{
- "pk": 1332,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The directory holding the cache of the metadata.",
- "variable_value": "/home/andreea/poky/build/tmp/cache/default-eglibc/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CACHE"
- }
-},
-{
- "pk": 1333,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "libx11",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/libx11"
- }
-},
-{
- "pk": 1334,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The prefix for the cross compile toolchain. E.g arm-linux- .",
- "variable_value": "i586-poky-linux-",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_PREFIX"
- }
-},
-{
- "pk": 1335,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-npth"
- }
-},
-{
- "pk": 1336,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": ".intel.com,10.237.112.100",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "no_proxy"
- }
-},
-{
- "pk": 1337,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "opkg",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/update-alternatives"
- }
-},
-{
- "pk": 1338,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin/.debug /usr/sbin/.debug /usr/lib/bblayers/.debug /usr/lib/.debug /bin/.debug /sbin/.debug /lib/.debug /usr/lib/bblayers/.debug /usr/lib/matchbox-panel/.debug /usr/src/debug",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DOTDEBUG-dbg"
- }
-},
-{
- "pk": 1339,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-lic",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LICENSE_PACKAGE_SUFFIX"
- }
-},
-{
- "pk": 1340,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of architectures compatible with the given target in order of priority.",
- "variable_value": "all any noarch x86 i386 i486 i586 qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_ARCHS"
- }
-},
-{
- "pk": 1341,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The architecture of the resulting package or packages.",
- "variable_value": "i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_ARCH"
- }
-},
-{
- "pk": 1342,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Additional configure script options.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTRA_OECONF"
- }
-},
-{
- "pk": 1343,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "nativesdk-libgcc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_nativesdk-libgcc"
- }
-},
-{
- "pk": 1344,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "bblayers-1.0-r0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PRAUTOINX"
- }
-},
-{
- "pk": 1345,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_LD_ARCH"
- }
-},
-{
- "pk": 1346,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-diffstat"
- }
-},
-{
- "pk": 1347,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_PREPROCESS_FUNCS"
- }
-},
-{
- "pk": 1348,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable.",
- "variable_value": "bblayers version 1.0-r0. This package contains ELF symbols and related sources for debugging purposes.",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DESCRIPTION_${PN}-dbg"
- }
-},
-{
- "pk": 1349,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-cross-localedef-native"
- }
-},
-{
- "pk": 1350,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-icu"
- }
-},
-{
- "pk": 1351,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/lib",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "base_libdir_nativesdk"
- }
-},
-{
- "pk": 1352,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-curl"
- }
-},
-{
- "pk": 1353,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libgpg-error"
- }
-},
-{
- "pk": 1354,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-curl"
- }
-},
-{
- "pk": 1355,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "SPDX-1.1",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SPDX_VERSION"
- }
-},
-{
- "pk": 1356,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxrender-native"
- }
-},
-{
- "pk": 1357,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The base recipe name and version but without any special recipe name suffix (i.e. -native, lib64-, and so forth). BP is comprised of ${BPN}-${PV}",
- "variable_value": "bblayers-1.0",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BP"
- }
-},
-{
- "pk": 1358,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libvorbis"
- }
-},
-{
- "pk": 1359,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-elfutils-native"
- }
-},
-{
- "pk": 1360,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "gcc-cross-intermediate",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate"
- }
-},
-{
- "pk": 1361,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/bin/bash",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SHELL"
- }
-},
-{
- "pk": 1362,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "xf86-video-intel",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_xf86-video-intel"
- }
-},
-{
- "pk": 1363,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gst-plugins-ugly"
- }
-},
-{
- "pk": 1364,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-curl-native"
- }
-},
-{
- "pk": 1365,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-findutils"
- }
-},
-{
- "pk": 1366,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Switch marking build as source fetcher. Used to skip COMPATIBLE_* checking.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SOURCE_MIRROR_FETCH"
- }
-},
-{
- "pk": 1367,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "This variable points to a directory were BitBake places temporary files, which consist mostly of task logs and scripts, when building a particular recipe.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/temp",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "T"
- }
-},
-{
- "pk": 1368,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-opensp"
- }
-},
-{
- "pk": 1369,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "COMMERCIAL_VIDEO_PLUGINS"
- }
-},
-{
- "pk": 1370,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "nativesdk-eglibc-initial",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial"
- }
-},
-{
- "pk": 1371,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-renderproto-native"
- }
-},
-{
- "pk": 1372,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If there are multiple versions of recipes available, this variable determines which recipe should be given preference.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_VERSION"
- }
-},
-{
- "pk": 1373,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libffi"
- }
-},
-{
- "pk": 1374,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-resourceproto"
- }
-},
-{
- "pk": 1375,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libowl-av"
- }
-},
-{
- "pk": 1376,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-tcl"
- }
-},
-{
- "pk": 1377,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-lzop"
- }
-},
-{
- "pk": 1378,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-opkg-native"
- }
-},
-{
- "pk": 1379,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/usr/bin",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "bindir_nativesdk"
- }
-},
-{
- "pk": 1380,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies additional paths from which the OpenEmbedded build system gets source code.",
- "variable_value": "ftp://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n http://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n https://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n ftp://ftp.debian.org/debian/pool\thttp://snapshot.debian.org/archive/debian-archive/20120328T092752Z/debian/pool \\n ftp://ftp.debian.org/debian/pool\thttp://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool \\n ftp://ftp.debian.org/debian/pool\thttp://snapshot.debian.org/archive/debian-archive/20090802T004153Z/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.de.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.au.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.cl.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.hr.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.fi.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.hk.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.hu.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.ie.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.it.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.jp.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.no.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.pl.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.ro.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.si.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.es.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.se.debian.org/debian/pool \\n ftp://ftp.debian.org/debian/pool\tftp://ftp.tr.debian.org/debian/pool \\n ftp://ftp.gnu.org/gnu\tftp://mirrors.kernel.org/gnu \\n http://kernel.org/pub\thttp://www.kernel.org/pub \\n ftp://ftp.gnupg.org/gcrypt/ ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/ \\n ftp://ftp.gnupg.org/gcrypt/ ftp://ftp.surfnet.nl/pub/security/gnupg/ \\n ftp://ftp.gnupg.org/gcrypt/ http://gulus.USherbrooke.ca/pub/appl/GnuPG/ \\n ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN \\n ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/ \\n ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/ \\n ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.gnupg.org/gcrypt/gnutls/ \\n ftp://ftp.gnutls.org/pub/gnutls http://www.mirrors.wiretapped.net/security/network-security/gnutls/ \\n ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.mirrors.wiretapped.net/pub/security/network-security/gnutls/ \\n ftp://ftp.gnutls.org/pub/gnutls http://josefsson.org/gnutls/releases/ \\n http://ftp.info-zip.org/pub/infozip/src/ http://mirror.switch.ch/ftp/mirror/infozip/src/ \\n http://ftp.info-zip.org/pub/infozip/src/ ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/ \\n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/ \\n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://ftp.tau.ac.il/pub/unix/admin/ \\n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://ftp.cert.dfn.de/pub/tools/admin/lsof/ \\n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/ \\n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://ftp.kaizo.org/pub/lsof/ \\n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://ftp.tu-darmstadt.de/pub/sysadmin/lsof/ \\n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://ftp.tux.org/pub/sites/vic.cc.purdue.edu/tools/unix/lsof/ \\n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://gd.tuwien.ac.at/utils/admin-tools/lsof/ \\n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://sunsite.ualberta.ca/pub/Mirror/lsof/ \\n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://the.wiretapped.net/pub/security/host-security/lsof/ \\n http://www.apache.org/dist http://archive.apache.org/dist \\n http://downloads.sourceforge.net/watchdog/ http://fossies.org/linux/misc/ \\n cvs://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n svn://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n git://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n hg://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n bzr://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n svk://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n p4://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n osc://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n https?$://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n ftp://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n cvs://.*/.* http://sources.openembedded.org/ \\n svn://.*/.* http://sources.openembedded.org/ \\n git://.*/.* http://sources.openembedded.org/ \\n hg://.*/.* http://sources.openembedded.org/ \\n bzr://.*/.* http://sources.openembedded.org/ \\n svk://.*/.* http://sources.openembedded.org/ \\n p4://.*/.* http://sources.openembedded.org/ \\n osc://.*/.* http://sources.openembedded.org/ \\n https?$://.*/.* http://sources.openembedded.org/ \\n ftp://.*/.* http://sources.openembedded.org/ \\n ",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MIRRORS"
- }
-},
-{
- "pk": 1381,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors.",
- "variable_value": "x86 i386 i486 i586",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_EXTRA_ARCHS_tune-i586"
- }
-},
-{
- "pk": 1382,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CCACHE"
- }
-},
-{
- "pk": 1383,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-icon-naming-utils-native"
- }
-},
-{
- "pk": 1384,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/run/user/andreea/keyring-F2tQ9h/ssh",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SSH_AUTH_SOCK"
- }
-},
-{
- "pk": 1385,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-coreutils"
- }
-},
-{
- "pk": 1386,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "pigz-native",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_gzip-native"
- }
-},
-{
- "pk": 1387,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-distcc"
- }
-},
-{
- "pk": 1388,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xtrans-native"
- }
-},
-{
- "pk": 1389,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "Build Configuration:",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDCFG_HEADER"
- }
-},
-{
- "pk": 1390,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-usbutils"
- }
-},
-{
- "pk": 1391,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86dgaproto"
- }
-},
-{
- "pk": 1392,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A regular expression that resolves to one or more target machines with which a recipe is compatible.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "COMPATIBLE_MACHINE"
- }
-},
-{
- "pk": 1393,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/deploy/images/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEPLOY_DIR_IMAGE"
- }
-},
-{
- "pk": 1394,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-bash"
- }
-},
-{
- "pk": 1395,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xf86-video-intel"
- }
-},
-{
- "pk": 1396,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Optionally specifies the version of a layer as a single number. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer.",
- "variable_value": "3",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LAYERVERSION_core"
- }
-},
-{
- "pk": 1397,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists a recipe's build-time dependencies (i.e. other recipe files).",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEPENDS"
- }
-},
-{
- "pk": 1398,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-base-passwd"
- }
-},
-{
- "pk": 1399,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-gst-openmax"
- }
-},
-{
- "pk": 1400,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libusb-compat-native"
- }
-},
-{
- "pk": 1401,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "pseudo-native",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/fakeroot-native"
- }
-},
-{
- "pk": 1402,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libxrender"
- }
-},
-{
- "pk": 1403,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "-Wl,--hash-style=gnu",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "TARGET_LINK_HASH_STYLE"
- }
-},
-{
- "pk": 1404,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SDK_AS_ARCH"
- }
-},
-{
- "pk": 1405,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-xextproto"
- }
-},
-{
- "pk": 1406,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-autoconf"
- }
-},
-{
- "pk": 1407,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xproto"
- }
-},
-{
- "pk": 1408,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-bc"
- }
-},
-{
- "pk": 1409,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-apache2"
- }
-},
-{
- "pk": 1410,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A list of recipes to build that do not provide packages for installing into the root filesystem. Use this variable to list recipes that are required to build the final image, but not needed in the root filesystem.",
- "variable_value": " qemu-native qemu-helper-native",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "EXTRA_IMAGEDEPENDS"
- }
-},
-{
- "pk": 1411,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "strip",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILD_STRIP"
- }
-},
-{
- "pk": 1412,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'.",
- "variable_value": "bzImage",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "KERNEL_IMAGETYPE"
- }
-},
-{
- "pk": 1413,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "http://proxy-ir.glb.intel.com:911",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "ftps_proxy"
- }
-},
-{
- "pk": 1414,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-libevent"
- }
-},
-{
- "pk": 1415,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-dhcp"
- }
-},
-{
- "pk": 1416,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_DIR"
- }
-},
-{
- "pk": 1417,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "OEBasicHash",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_SIGNATURE_HANDLER"
- }
-},
-{
- "pk": 1418,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Specifies the endian byte order of the target system. The value should be either 'le' for 'little-endian' or 'be' for 'big-endian'.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "SITEINFO_ENDIANNESS"
- }
-},
-{
- "pk": 1419,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BUILDHISTORY_PUSH_REPO"
- }
-},
-{
- "pk": 1420,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The list of source licenses for the recipe.",
- "variable_value": "INVALID",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "LICENSE"
- }
-},
-{
- "pk": 1421,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes.",
- "variable_value": "^bblayers-locale-.*",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGES_DYNAMIC"
- }
-},
-{
- "pk": 1422,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Generally not user defined. List of the packages to be installed into the image, uses IMAGE_INSTALL as part of the list.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_INSTALL"
- }
-},
-{
- "pk": 1423,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "MULTILIB_VARIANTS"
- }
-},
-{
- "pk": 1424,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-nativesdk-libsdl"
- }
-},
-{
- "pk": 1425,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "MACHINE DISTRO TCMODE TCLIBC HTTP_PROXY http_proxy HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy FTPS_PROXY ftps_proxy ALL_PROXY all_proxy NO_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS BB_NO_NETWORK PARALLEL_MAKE GIT_PROXY_COMMAND SOCKS5_PASSWD SOCKS5_USER SCREENDIR STAMPS_DIR",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "BB_ENV_EXTRAWHITE"
- }
-},
-{
- "pk": 1426,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "nativesdk-eglibc",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/nativesdk-libintl"
- }
-},
-{
- "pk": 1427,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xprop"
- }
-},
-{
- "pk": 1428,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-make-native"
- }
-},
-{
- "pk": 1429,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "STAGING_DIR_TARGET"
- }
-},
-{
- "pk": 1430,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN).",
- "variable_value": "bblayers (= 1.0-r0)",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "RDEPENDS_${PN}-dev"
- }
-},
-{
- "pk": 1431,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "mesa",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/libgles2"
- }
-},
-{
- "pk": 1432,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "If multiple recipes provide an item, this variable determines which recipe should be given preference.",
- "variable_value": "mesa",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PREFERRED_PROVIDER_virtual/libgles1"
- }
-},
-{
- "pk": 1433,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/sysroots/qemux86",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PSEUDO_PASSWD"
- }
-},
-{
- "pk": 1434,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository.",
- "variable_value": "AUTOINC",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "AUTOREV"
- }
-},
-{
- "pk": 1435,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-xcmiscproto"
- }
-},
-{
- "pk": 1436,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable.",
- "variable_value": "bblayers version 1.0-r0.",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DESCRIPTION"
- }
-},
-{
- "pk": 1437,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": "/home/andreea/poky/build/tmp/deploy/deb",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "DEPLOY_DIR_DEB"
- }
-},
-{
- "pk": 1438,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Generally not user defined. List of packages that will be attempted to be installed, but no error will generate if any of them fail to install.",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PACKAGE_INSTALL_ATTEMPTONLY"
- }
-},
-{
- "pk": 1439,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "",
- "variable_value": " sstate_cleanall",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "CLEANFUNCS"
- }
-},
-{
- "pk": 1440,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "Set to yes, if you want to build qt apps with CONFIG+=thread",
- "variable_value": "",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "PALMTOP_USE_MULTITHREADED_QT"
- }
-},
-{
- "pk": 1441,
- "model": "orm.variable",
- "fields": {
- "changed": false,
- "description": "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process.",
- "variable_value": "/home/andreea/poky/build/tmp/work/i586-poky-linux/bblayers/1.0-r0/build",
- "human_readable_name": "",
- "build": 1,
- "variable_name": "B_pn-zaurusd"
- }
-},
-{
- "pk": 1,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 358
- }
-},
-{
- "pk": 2,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 2,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 368
- }
-},
-{
- "pk": 3,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 3,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 704
- }
-},
-{
- "pk": 4,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 4,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 31
- }
-},
-{
- "pk": 5,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 4,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 31
- }
-},
-{
- "pk": 6,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 5,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 17
- }
-},
-{
- "pk": 7,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 5,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 17
- }
-},
-{
- "pk": 8,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 6,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 469
- }
-},
-{
- "pk": 9,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 7,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 333
- }
-},
-{
- "pk": 10,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 8,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 30
- }
-},
-{
- "pk": 11,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 9,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 339
- }
-},
-{
- "pk": 12,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 10,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 13,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 11,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 157
- }
-},
-{
- "pk": 14,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 12,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 15,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 13,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 564
- }
-},
-{
- "pk": 16,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 14,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 762
- }
-},
-{
- "pk": 17,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 15,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 456
- }
-},
-{
- "pk": 18,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 15,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 456
- }
-},
-{
- "pk": 19,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 16,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 368
- }
-},
-{
- "pk": 20,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 17,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 494
- }
-},
-{
- "pk": 21,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 18,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 47
- }
-},
-{
- "pk": 22,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 19,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 49
- }
-},
-{
- "pk": 23,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 20,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 312
- }
-},
-{
- "pk": 24,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 21,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 162
- }
-},
-{
- "pk": 25,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 22,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 621
- }
-},
-{
- "pk": 26,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 22,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 622
- }
-},
-{
- "pk": 27,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 24,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 463
- }
-},
-{
- "pk": 28,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 24,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 463
- }
-},
-{
- "pk": 29,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 25,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 675
- }
-},
-{
- "pk": 30,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 26,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 529
- }
-},
-{
- "pk": 31,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 27,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 184
- }
-},
-{
- "pk": 32,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 28,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 443
- }
-},
-{
- "pk": 33,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 29,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 692
- }
-},
-{
- "pk": 34,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 30,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "_append[pn-linux-yocto]",
- "line_number": 29
- }
-},
-{
- "pk": 35,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 31,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set",
- "line_number": 239
- }
-},
-{
- "pk": 36,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 32,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 165
- }
-},
-{
- "pk": 37,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 34,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 609
- }
-},
-{
- "pk": 38,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 35,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 39,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 36,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 38
- }
-},
-{
- "pk": 40,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 37,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 193
- }
-},
-{
- "pk": 41,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 38,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 116
- }
-},
-{
- "pk": 42,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 40,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 627
- }
-},
-{
- "pk": 43,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 41,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/cookerdata.py",
- "operation": "set",
- "line_number": 300
- }
-},
-{
- "pk": 44,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 42,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 393
- }
-},
-{
- "pk": 45,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 42,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 30
- }
-},
-{
- "pk": 46,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 43,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 301
- }
-},
-{
- "pk": 47,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 44,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 473
- }
-},
-{
- "pk": 48,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 46,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 41
- }
-},
-{
- "pk": 49,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 46,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 41
- }
-},
-{
- "pk": 50,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 47,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 355
- }
-},
-{
- "pk": 51,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 49,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 510
- }
-},
-{
- "pk": 52,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 50,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 695
- }
-},
-{
- "pk": 53,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 51,
- "file_name": "/home/andreea/poky/meta/classes/license.bbclass",
- "operation": "_prepend",
- "line_number": 357
- }
-},
-{
- "pk": 54,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 51,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "prepend",
- "line_number": 441
- }
-},
-{
- "pk": 55,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 52,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 366
- }
-},
-{
- "pk": 56,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 53,
- "file_name": "/home/andreea/poky/meta/conf/sanity.conf",
- "operation": "set",
- "line_number": 6
- }
-},
-{
- "pk": 57,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 54,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 126
- }
-},
-{
- "pk": 58,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 54,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 5
- }
-},
-{
- "pk": 59,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 55,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 621
- }
-},
-{
- "pk": 60,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 56,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 194
- }
-},
-{
- "pk": 61,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 57,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 27
- }
-},
-{
- "pk": 62,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 57,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 27
- }
-},
-{
- "pk": 63,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 58,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 359
- }
-},
-{
- "pk": 64,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 59,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 497
- }
-},
-{
- "pk": 65,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 60,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 408
- }
-},
-{
- "pk": 66,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 61,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 216
- }
-},
-{
- "pk": 67,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 62,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 470
- }
-},
-{
- "pk": 68,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 64,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 35
- }
-},
-{
- "pk": 69,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 65,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 273
- }
-},
-{
- "pk": 70,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 66,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 52
- }
-},
-{
- "pk": 71,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 67,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 181
- }
-},
-{
- "pk": 72,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 67,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "append",
- "line_number": 240
- }
-},
-{
- "pk": 73,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 68,
- "file_name": "/home/andreea/poky/meta/classes/license.bbclass",
- "operation": "set",
- "line_number": 7
- }
-},
-{
- "pk": 74,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 69,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 53
- }
-},
-{
- "pk": 75,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 70,
- "file_name": "/home/andreea/poky/build/conf/bblayers.conf",
- "operation": "set",
- "line_number": 3
- }
-},
-{
- "pk": 76,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 71,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 578
- }
-},
-{
- "pk": 77,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 72,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 464
- }
-},
-{
- "pk": 78,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 72,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 464
- }
-},
-{
- "pk": 79,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 73,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 33
- }
-},
-{
- "pk": 80,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 74,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 384
- }
-},
-{
- "pk": 81,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 76,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 570
- }
-},
-{
- "pk": 82,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 77,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 408
- }
-},
-{
- "pk": 83,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 78,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 607
- }
-},
-{
- "pk": 84,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 79,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 558
- }
-},
-{
- "pk": 85,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 80,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 451
- }
-},
-{
- "pk": 86,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 80,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 451
- }
-},
-{
- "pk": 87,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 81,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 45
- }
-},
-{
- "pk": 88,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 82,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 48
- }
-},
-{
- "pk": 89,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 83,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 226
- }
-},
-{
- "pk": 90,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 84,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 694
- }
-},
-{
- "pk": 91,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 85,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 476
- }
-},
-{
- "pk": 92,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 85,
- "file_name": "conf/bitbake.conf",
- "operation": "_prepend[task-compile]",
- "line_number": 538
- }
-},
-{
- "pk": 93,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 85,
- "file_name": "conf/bitbake.conf",
- "operation": "_prepend[task-install]",
- "line_number": 541
- }
-},
-{
- "pk": 94,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 86,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 394
- }
-},
-{
- "pk": 95,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 86,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 31
- }
-},
-{
- "pk": 96,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 87,
- "file_name": "/home/andreea/poky/meta-yocto-bsp/conf/layer.conf",
- "operation": "set",
- "line_number": 10
- }
-},
-{
- "pk": 97,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 88,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 38
- }
-},
-{
- "pk": 98,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 88,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 38
- }
-},
-{
- "pk": 99,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 89,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 225
- }
-},
-{
- "pk": 100,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 90,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 341
- }
-},
-{
- "pk": 101,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 91,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 45
- }
-},
-{
- "pk": 102,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 92,
- "file_name": "/home/andreea/poky/meta/classes/buildstats.bbclass",
- "operation": "set",
- "line_number": 1
- }
-},
-{
- "pk": 103,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 156
- }
-},
-{
- "pk": 104,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 170
- }
-},
-{
- "pk": 105,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 195
- }
-},
-{
- "pk": 106,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 225
- }
-},
-{
- "pk": 107,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 235
- }
-},
-{
- "pk": 108,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 292
- }
-},
-{
- "pk": 109,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 303
- }
-},
-{
- "pk": 110,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 310
- }
-},
-{
- "pk": 111,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 352
- }
-},
-{
- "pk": 112,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 417
- }
-},
-{
- "pk": 113,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 457
- }
-},
-{
- "pk": 114,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 469
- }
-},
-{
- "pk": 115,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 493
- }
-},
-{
- "pk": 116,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 529
- }
-},
-{
- "pk": 117,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 549
- }
-},
-{
- "pk": 118,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 93,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 567
- }
-},
-{
- "pk": 119,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 94,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 503
- }
-},
-{
- "pk": 120,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 94,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 503
- }
-},
-{
- "pk": 121,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 95,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 585
- }
-},
-{
- "pk": 122,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 96,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 84
- }
-},
-{
- "pk": 123,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 97,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 274
- }
-},
-{
- "pk": 124,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 98,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 42
- }
-},
-{
- "pk": 125,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 98,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 42
- }
-},
-{
- "pk": 126,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 99,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 144
- }
-},
-{
- "pk": 127,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 100,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 653
- }
-},
-{
- "pk": 128,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 101,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 395
- }
-},
-{
- "pk": 129,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 102,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 665
- }
-},
-{
- "pk": 130,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 103,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 288
- }
-},
-{
- "pk": 131,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 104,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 196
- }
-},
-{
- "pk": 132,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 105,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 639
- }
-},
-{
- "pk": 133,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 106,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 177
- }
-},
-{
- "pk": 134,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 107,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set",
- "line_number": 8
- }
-},
-{
- "pk": 135,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 108,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 511
- }
-},
-{
- "pk": 136,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 108,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 511
- }
-},
-{
- "pk": 137,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 109,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 364
- }
-},
-{
- "pk": 138,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 110,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 541
- }
-},
-{
- "pk": 139,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 111,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 459
- }
-},
-{
- "pk": 140,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 111,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 459
- }
-},
-{
- "pk": 141,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 112,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 379
- }
-},
-{
- "pk": 142,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 113,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 218
- }
-},
-{
- "pk": 143,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 114,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "set?",
- "line_number": 17
- }
-},
-{
- "pk": 144,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 115,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 110
- }
-},
-{
- "pk": 145,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 115,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set",
- "line_number": 5
- }
-},
-{
- "pk": 146,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 116,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 109
- }
-},
-{
- "pk": 147,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 117,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 147
- }
-},
-{
- "pk": 148,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 118,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 313
- }
-},
-{
- "pk": 149,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 119,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 508
- }
-},
-{
- "pk": 150,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 120,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 630
- }
-},
-{
- "pk": 151,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 121,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 467
- }
-},
-{
- "pk": 152,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 121,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 467
- }
-},
-{
- "pk": 153,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 122,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 402
- }
-},
-{
- "pk": 154,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 124,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set?",
- "line_number": 1842
- }
-},
-{
- "pk": 155,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 125,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 641
- }
-},
-{
- "pk": 156,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 126,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 18
- }
-},
-{
- "pk": 157,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 127,
- "file_name": "/home/andreea/poky/meta/classes/license.bbclass",
- "operation": "set",
- "line_number": 13
- }
-},
-{
- "pk": 158,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 128,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 27
- }
-},
-{
- "pk": 159,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 130,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set?",
- "line_number": 14
- }
-},
-{
- "pk": 160,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 131,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 43
- }
-},
-{
- "pk": 161,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 131,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 43
- }
-},
-{
- "pk": 162,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 132,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 298
- }
-},
-{
- "pk": 163,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 134,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 99
- }
-},
-{
- "pk": 164,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 135,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 420
- }
-},
-{
- "pk": 165,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 136,
- "file_name": "conf/bitbake.conf",
- "operation": "immediate",
- "line_number": 161
- }
-},
-{
- "pk": 166,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 137,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 249
- }
-},
-{
- "pk": 167,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 138,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 65
- }
-},
-{
- "pk": 168,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 140,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 664
- }
-},
-{
- "pk": 169,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 141,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 196
- }
-},
-{
- "pk": 170,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 142,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 400
- }
-},
-{
- "pk": 171,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 143,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 468
- }
-},
-{
- "pk": 172,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 143,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 468
- }
-},
-{
- "pk": 173,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 144,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 18
- }
-},
-{
- "pk": 174,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 145,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 75
- }
-},
-{
- "pk": 175,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 146,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 333
- }
-},
-{
- "pk": 176,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 147,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 64
- }
-},
-{
- "pk": 177,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 148,
- "file_name": "/home/andreea/poky/meta-yocto/classes/poky-sanity.bbclass",
- "operation": "append",
- "line_number": 24
- }
-},
-{
- "pk": 178,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 148,
- "file_name": "/home/andreea/poky/meta/classes/sanity.bbclass",
- "operation": "append",
- "line_number": 31
- }
-},
-{
- "pk": 179,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 149,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 347
- }
-},
-{
- "pk": 180,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 151,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 657
- }
-},
-{
- "pk": 181,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 152,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 597
- }
-},
-{
- "pk": 182,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 153,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 208
- }
-},
-{
- "pk": 183,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 154,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 415
- }
-},
-{
- "pk": 184,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 156,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 759
- }
-},
-{
- "pk": 185,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 157,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 611
- }
-},
-{
- "pk": 186,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 158,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 100
- }
-},
-{
- "pk": 187,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 159,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 47
- }
-},
-{
- "pk": 188,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 161,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 438
- }
-},
-{
- "pk": 189,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 162,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set",
- "line_number": 50
- }
-},
-{
- "pk": 190,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 163,
- "file_name": "/home/andreea/poky/meta/classes/license.bbclass",
- "operation": "set",
- "line_number": 10
- }
-},
-{
- "pk": 191,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 163,
- "file_name": "/home/andreea/poky/meta/classes/license.bbclass",
- "operation": "set",
- "line_number": 11
- }
-},
-{
- "pk": 192,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 164,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 279
- }
-},
-{
- "pk": 193,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 165,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 28
- }
-},
-{
- "pk": 194,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 166,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 222
- }
-},
-{
- "pk": 195,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 167,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 254
- }
-},
-{
- "pk": 196,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 168,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 247
- }
-},
-{
- "pk": 197,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 169,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 629
- }
-},
-{
- "pk": 198,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 170,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 75
- }
-},
-{
- "pk": 199,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 171,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 679
- }
-},
-{
- "pk": 200,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 172,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 456
- }
-},
-{
- "pk": 201,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 173,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 553
- }
-},
-{
- "pk": 202,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 175,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 43
- }
-},
-{
- "pk": 203,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 176,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 705
- }
-},
-{
- "pk": 204,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 177,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 498
- }
-},
-{
- "pk": 205,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 178,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 152
- }
-},
-{
- "pk": 206,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 179,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 1322
- }
-},
-{
- "pk": 207,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 180,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 96
- }
-},
-{
- "pk": 208,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 181,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 670
- }
-},
-{
- "pk": 209,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 182,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set",
- "line_number": 212
- }
-},
-{
- "pk": 210,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 183,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 113
- }
-},
-{
- "pk": 211,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 184,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 4
- }
-},
-{
- "pk": 212,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 185,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 383
- }
-},
-{
- "pk": 213,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 187,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 78
- }
-},
-{
- "pk": 214,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 188,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 598
- }
-},
-{
- "pk": 215,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 189,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 751
- }
-},
-{
- "pk": 216,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 191,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 229
- }
-},
-{
- "pk": 217,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 192,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "set?",
- "line_number": 10
- }
-},
-{
- "pk": 218,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 193,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 9
- }
-},
-{
- "pk": 219,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 194,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 566
- }
-},
-{
- "pk": 220,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 195,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 91
- }
-},
-{
- "pk": 221,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 196,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 142
- }
-},
-{
- "pk": 222,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 197,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set?",
- "line_number": 32
- }
-},
-{
- "pk": 223,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 198,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 638
- }
-},
-{
- "pk": 224,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 199,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 369
- }
-},
-{
- "pk": 225,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 200,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/ast.py",
- "operation": "_prepend",
- "line_number": 176
- }
-},
-{
- "pk": 226,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 201,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 710
- }
-},
-{
- "pk": 227,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 202,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 589
- }
-},
-{
- "pk": 228,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 203,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 676
- }
-},
-{
- "pk": 229,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 204,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 579
- }
-},
-{
- "pk": 230,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 206,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 401
- }
-},
-{
- "pk": 231,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 207,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set?",
- "line_number": 12
- }
-},
-{
- "pk": 232,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 208,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 154
- }
-},
-{
- "pk": 233,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 209,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-versions.inc",
- "operation": "set?",
- "line_number": 8
- }
-},
-{
- "pk": 234,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 210,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 474
- }
-},
-{
- "pk": 235,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 211,
- "file_name": "/home/andreea/poky/meta/classes/terminal.bbclass",
- "operation": "set?",
- "line_number": 10
- }
-},
-{
- "pk": 236,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 215,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 518
- }
-},
-{
- "pk": 237,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 217,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 17
- }
-},
-{
- "pk": 238,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 218,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 373
- }
-},
-{
- "pk": 239,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 219,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 87
- }
-},
-{
- "pk": 240,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 220,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 15
- }
-},
-{
- "pk": 241,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 221,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 160
- }
-},
-{
- "pk": 242,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 222,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 20
- }
-},
-{
- "pk": 243,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 223,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 423
- }
-},
-{
- "pk": 244,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 226,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 255
- }
-},
-{
- "pk": 245,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 226,
- "file_name": "conf/bitbake.conf",
- "operation": "_prepend",
- "line_number": 256
- }
-},
-{
- "pk": 246,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 227,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 360
- }
-},
-{
- "pk": 247,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 228,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 20
- }
-},
-{
- "pk": 248,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 228,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 21
- }
-},
-{
- "pk": 249,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 228,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 711
- }
-},
-{
- "pk": 250,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 228,
- "file_name": "/home/andreea/poky/meta/lib/oe/utils.py",
- "operation": "append",
- "line_number": 118
- }
-},
-{
- "pk": 251,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 230,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 238
- }
-},
-{
- "pk": 252,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 231,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 654
- }
-},
-{
- "pk": 253,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 232,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 661
- }
-},
-{
- "pk": 254,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 233,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 202
- }
-},
-{
- "pk": 255,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 234,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 361
- }
-},
-{
- "pk": 256,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 235,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 520
- }
-},
-{
- "pk": 257,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 236,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 728
- }
-},
-{
- "pk": 258,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 237,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 447
- }
-},
-{
- "pk": 259,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 237,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 447
- }
-},
-{
- "pk": 260,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 238,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 401
- }
-},
-{
- "pk": 261,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 239,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 398
- }
-},
-{
- "pk": 262,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 240,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 538
- }
-},
-{
- "pk": 263,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 241,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 337
- }
-},
-{
- "pk": 264,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 242,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 378
- }
-},
-{
- "pk": 265,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 243,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 432
- }
-},
-{
- "pk": 266,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 244,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 225
- }
-},
-{
- "pk": 267,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 245,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 67
- }
-},
-{
- "pk": 268,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 246,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 85
- }
-},
-{
- "pk": 269,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 247,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 597
- }
-},
-{
- "pk": 270,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 248,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 370
- }
-},
-{
- "pk": 271,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 249,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "append",
- "line_number": 35
- }
-},
-{
- "pk": 272,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 249,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "_append[qemuarm]",
- "line_number": 39
- }
-},
-{
- "pk": 273,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 249,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "_append[qemumips]",
- "line_number": 40
- }
-},
-{
- "pk": 274,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 249,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "_append[qemuppc]",
- "line_number": 41
- }
-},
-{
- "pk": 275,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 249,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "_append[qemux86]",
- "line_number": 42
- }
-},
-{
- "pk": 276,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 249,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "_append[qemux86-64]",
- "line_number": 43
- }
-},
-{
- "pk": 277,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 249,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 713
- }
-},
-{
- "pk": 278,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 250,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 279,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 250,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "auto env export",
- "line_number": 180
- }
-},
-{
- "pk": 280,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 251,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 4
- }
-},
-{
- "pk": 281,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 252,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 280
- }
-},
-{
- "pk": 282,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 253,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 5
- }
-},
-{
- "pk": 283,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 254,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 284,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 254,
- "file_name": "/home/andreea/poky/meta/conf/machine/qemux86.conf",
- "operation": "append",
- "line_number": 24
- }
-},
-{
- "pk": 285,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 254,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 710
- }
-},
-{
- "pk": 286,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 254,
- "file_name": "/home/andreea/poky/meta/lib/oe/utils.py",
- "operation": "append",
- "line_number": 118
- }
-},
-{
- "pk": 287,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 255,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 121
- }
-},
-{
- "pk": 288,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 256,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 95
- }
-},
-{
- "pk": 289,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 257,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 113
- }
-},
-{
- "pk": 290,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 258,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 112
- }
-},
-{
- "pk": 291,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 259,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set?",
- "line_number": 6
- }
-},
-{
- "pk": 292,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 260,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 761
- }
-},
-{
- "pk": 293,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 261,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 535
- }
-},
-{
- "pk": 294,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 262,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 563
- }
-},
-{
- "pk": 295,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 265,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 715
- }
-},
-{
- "pk": 296,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 266,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 122
- }
-},
-{
- "pk": 297,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 267,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 301
- }
-},
-{
- "pk": 298,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 268,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 448
- }
-},
-{
- "pk": 299,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 269,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set",
- "line_number": 45
- }
-},
-{
- "pk": 300,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 270,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 325
- }
-},
-{
- "pk": 301,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 271,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 219
- }
-},
-{
- "pk": 302,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 272,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/cooker.py",
- "operation": "set",
- "line_number": 1000
- }
-},
-{
- "pk": 303,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 273,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 61
- }
-},
-{
- "pk": 304,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 274,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 43
- }
-},
-{
- "pk": 305,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 275,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 37
- }
-},
-{
- "pk": 306,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 276,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 60
- }
-},
-{
- "pk": 307,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 277,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 571
- }
-},
-{
- "pk": 308,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 278,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 623
- }
-},
-{
- "pk": 309,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 278,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 624
- }
-},
-{
- "pk": 310,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 279,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 20
- }
-},
-{
- "pk": 311,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 280,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 13
- }
-},
-{
- "pk": 312,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 281,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 113
- }
-},
-{
- "pk": 313,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 281,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set?",
- "line_number": 41
- }
-},
-{
- "pk": 314,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 282,
- "file_name": "/home/andreea/poky/meta/conf/machine/qemux86.conf",
- "operation": "set?",
- "line_number": 6
- }
-},
-{
- "pk": 315,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 282,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "set?",
- "line_number": 3
- }
-},
-{
- "pk": 316,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 282,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 9
- }
-},
-{
- "pk": 317,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 284,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 492
- }
-},
-{
- "pk": 318,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 284,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 492
- }
-},
-{
- "pk": 319,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 285,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/tune-i586.inc",
- "operation": "set?",
- "line_number": 1
- }
-},
-{
- "pk": 320,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 285,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set?",
- "line_number": 5
- }
-},
-{
- "pk": 321,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 286,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 573
- }
-},
-{
- "pk": 322,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 287,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 567
- }
-},
-{
- "pk": 323,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 288,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 124
- }
-},
-{
- "pk": 324,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 289,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 690
- }
-},
-{
- "pk": 325,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 290,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 246
- }
-},
-{
- "pk": 326,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 291,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 345
- }
-},
-{
- "pk": 327,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 292,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set",
- "line_number": 38
- }
-},
-{
- "pk": 328,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 293,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 455
- }
-},
-{
- "pk": 329,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 293,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 455
- }
-},
-{
- "pk": 330,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 294,
- "file_name": "/home/andreea/poky/meta/classes/package_rpm.bbclass",
- "operation": "set",
- "line_number": 6
- }
-},
-{
- "pk": 331,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 295,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set",
- "line_number": 34
- }
-},
-{
- "pk": 332,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 296,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 190
- }
-},
-{
- "pk": 333,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 297,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 684
- }
-},
-{
- "pk": 334,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 298,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 307
- }
-},
-{
- "pk": 335,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 299,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 448
- }
-},
-{
- "pk": 336,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 299,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 448
- }
-},
-{
- "pk": 337,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 300,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 395
- }
-},
-{
- "pk": 338,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 301,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 332
- }
-},
-{
- "pk": 339,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 302,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 63
- }
-},
-{
- "pk": 340,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 303,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 22
- }
-},
-{
- "pk": 341,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 304,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 329
- }
-},
-{
- "pk": 342,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 305,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 750
- }
-},
-{
- "pk": 343,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 306,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 27
- }
-},
-{
- "pk": 344,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 307,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 41
- }
-},
-{
- "pk": 345,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 308,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "set",
- "line_number": 12
- }
-},
-{
- "pk": 346,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 310,
- "file_name": "/home/andreea/poky/build/conf/bblayers.conf",
- "operation": "set?",
- "line_number": 16
- }
-},
-{
- "pk": 347,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 311,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 382
- }
-},
-{
- "pk": 348,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 312,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 285
- }
-},
-{
- "pk": 349,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 313,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "immediate",
- "line_number": 6
- }
-},
-{
- "pk": 350,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 313,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set",
- "line_number": 46
- }
-},
-{
- "pk": 351,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 314,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 651
- }
-},
-{
- "pk": 352,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 316,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 530
- }
-},
-{
- "pk": 353,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 317,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 169
- }
-},
-{
- "pk": 354,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 318,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 509
- }
-},
-{
- "pk": 355,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 319,
- "file_name": "/home/andreea/poky/meta/conf/layer.conf",
- "operation": "set",
- "line_number": 8
- }
-},
-{
- "pk": 356,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 320,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 11
- }
-},
-{
- "pk": 357,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 321,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 39
- }
-},
-{
- "pk": 358,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 322,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 273
- }
-},
-{
- "pk": 359,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 323,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 743
- }
-},
-{
- "pk": 360,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 324,
- "file_name": "/home/andreea/poky/meta-yocto-bsp/conf/layer.conf",
- "operation": "set",
- "line_number": 11
- }
-},
-{
- "pk": 361,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 325,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 154
- }
-},
-{
- "pk": 362,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 326,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 318
- }
-},
-{
- "pk": 363,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 327,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "_append",
- "line_number": 447
- }
-},
-{
- "pk": 364,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 328,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "append",
- "line_number": 35
- }
-},
-{
- "pk": 365,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 328,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "append",
- "line_number": 41
- }
-},
-{
- "pk": 366,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 328,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "append",
- "line_number": 47
- }
-},
-{
- "pk": 367,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 328,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/tune-i586.inc",
- "operation": "append",
- "line_number": 10
- }
-},
-{
- "pk": 368,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 329,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 473
- }
-},
-{
- "pk": 369,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 329,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 473
- }
-},
-{
- "pk": 370,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 330,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 91
- }
-},
-{
- "pk": 371,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 332,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 490
- }
-},
-{
- "pk": 372,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 333,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 109
- }
-},
-{
- "pk": 373,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 334,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 38
- }
-},
-{
- "pk": 374,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 335,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 565
- }
-},
-{
- "pk": 375,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 336,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 18
- }
-},
-{
- "pk": 376,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 337,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 31
- }
-},
-{
- "pk": 377,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 338,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 103
- }
-},
-{
- "pk": 378,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 339,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 54
- }
-},
-{
- "pk": 379,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 340,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 299
- }
-},
-{
- "pk": 380,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 341,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 16
- }
-},
-{
- "pk": 381,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 342,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 377
- }
-},
-{
- "pk": 382,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 343,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 105
- }
-},
-{
- "pk": 383,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 343,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 106
- }
-},
-{
- "pk": 384,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 343,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "postdot",
- "line_number": 16
- }
-},
-{
- "pk": 385,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 343,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "postdot",
- "line_number": 24
- }
-},
-{
- "pk": 386,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 343,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "postdot",
- "line_number": 32
- }
-},
-{
- "pk": 387,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 343,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/tune-i586.inc",
- "operation": "postdot",
- "line_number": 7
- }
-},
-{
- "pk": 388,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 344,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 577
- }
-},
-{
- "pk": 389,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 345,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 45
- }
-},
-{
- "pk": 390,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 346,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set",
- "line_number": 155
- }
-},
-{
- "pk": 391,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 346,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 720
- }
-},
-{
- "pk": 392,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 347,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 416
- }
-},
-{
- "pk": 393,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 348,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 37
- }
-},
-{
- "pk": 394,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 349,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 12
- }
-},
-{
- "pk": 395,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 351,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set?",
- "line_number": 3
- }
-},
-{
- "pk": 396,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 352,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 371
- }
-},
-{
- "pk": 397,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 353,
- "file_name": "/home/andreea/poky/build/conf/bblayers.conf",
- "operation": "set?",
- "line_number": 6
- }
-},
-{
- "pk": 398,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 353,
- "file_name": "/home/andreea/poky/meta/conf/layer.conf",
- "operation": "append",
- "line_number": 4
- }
-},
-{
- "pk": 399,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 353,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data_smart.py",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 400,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 353,
- "file_name": "/home/andreea/poky/meta-yocto/conf/layer.conf",
- "operation": "append",
- "line_number": 6
- }
-},
-{
- "pk": 401,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 353,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data_smart.py",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 402,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 353,
- "file_name": "/home/andreea/poky/meta-yocto-bsp/conf/layer.conf",
- "operation": "append",
- "line_number": 6
- }
-},
-{
- "pk": 403,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 353,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data_smart.py",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 404,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 353,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/cooker.py",
- "operation": "set",
- "line_number": 1408
- }
-},
-{
- "pk": 405,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 354,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 84
- }
-},
-{
- "pk": 406,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 355,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 471
- }
-},
-{
- "pk": 407,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 355,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 471
- }
-},
-{
- "pk": 408,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 356,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 642
- }
-},
-{
- "pk": 409,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 357,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 36
- }
-},
-{
- "pk": 410,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 358,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 22
- }
-},
-{
- "pk": 411,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 359,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 315
- }
-},
-{
- "pk": 412,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 360,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 702
- }
-},
-{
- "pk": 413,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 361,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 484
- }
-},
-{
- "pk": 414,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 362,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 481
- }
-},
-{
- "pk": 415,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 363,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "append",
- "line_number": 20
- }
-},
-{
- "pk": 416,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 363,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "append",
- "line_number": 56
- }
-},
-{
- "pk": 417,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 363,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "append",
- "line_number": 227
- }
-},
-{
- "pk": 418,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 364,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 394
- }
-},
-{
- "pk": 419,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 365,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 745
- }
-},
-{
- "pk": 420,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 366,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 240
- }
-},
-{
- "pk": 421,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 367,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 147
- }
-},
-{
- "pk": 422,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 368,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 108
- }
-},
-{
- "pk": 423,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 369,
- "file_name": "/home/andreea/poky/meta/classes/debian.bbclass",
- "operation": "set",
- "line_number": 13
- }
-},
-{
- "pk": 424,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 370,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 767
- }
-},
-{
- "pk": 425,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 371,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 141
- }
-},
-{
- "pk": 426,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 372,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 178
- }
-},
-{
- "pk": 427,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 373,
- "file_name": "/home/andreea/poky/meta/conf/layer.conf",
- "operation": "append",
- "line_number": 6
- }
-},
-{
- "pk": 428,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 373,
- "file_name": "/home/andreea/poky/meta-yocto/conf/layer.conf",
- "operation": "append",
- "line_number": 8
- }
-},
-{
- "pk": 429,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 373,
- "file_name": "/home/andreea/poky/meta-yocto-bsp/conf/layer.conf",
- "operation": "append",
- "line_number": 8
- }
-},
-{
- "pk": 430,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 374,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 33
- }
-},
-{
- "pk": 431,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 374,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 33
- }
-},
-{
- "pk": 432,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 375,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 558
- }
-},
-{
- "pk": 433,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 376,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 599
- }
-},
-{
- "pk": 434,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 377,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 4
- }
-},
-{
- "pk": 435,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 378,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 166
- }
-},
-{
- "pk": 436,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 380,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 631
- }
-},
-{
- "pk": 437,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 380,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 631
- }
-},
-{
- "pk": 438,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 381,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 528
- }
-},
-{
- "pk": 439,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 382,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "set",
- "line_number": 82
- }
-},
-{
- "pk": 440,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 383,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 104
- }
-},
-{
- "pk": 441,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 383,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "postdot",
- "line_number": 15
- }
-},
-{
- "pk": 442,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 383,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "postdot",
- "line_number": 22
- }
-},
-{
- "pk": 443,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 383,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "postdot",
- "line_number": 31
- }
-},
-{
- "pk": 444,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 384,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 293
- }
-},
-{
- "pk": 445,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 385,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 739
- }
-},
-{
- "pk": 446,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 386,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set?",
- "line_number": 15
- }
-},
-{
- "pk": 447,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 387,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 628
- }
-},
-{
- "pk": 448,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 388,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 457
- }
-},
-{
- "pk": 449,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 388,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 457
- }
-},
-{
- "pk": 450,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 389,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 454
- }
-},
-{
- "pk": 451,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 390,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 55
- }
-},
-{
- "pk": 452,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 391,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 747
- }
-},
-{
- "pk": 453,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 392,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 586
- }
-},
-{
- "pk": 454,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 393,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set?",
- "line_number": 35
- }
-},
-{
- "pk": 455,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 393,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "append",
- "line_number": 20
- }
-},
-{
- "pk": 456,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 394,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 380
- }
-},
-{
- "pk": 457,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 395,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 238
- }
-},
-{
- "pk": 458,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 396,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 237
- }
-},
-{
- "pk": 459,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 397,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 9
- }
-},
-{
- "pk": 460,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 398,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 302
- }
-},
-{
- "pk": 461,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 399,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 112
- }
-},
-{
- "pk": 462,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 400,
- "file_name": "/home/andreea/poky/meta/conf/abi_version.conf",
- "operation": "set",
- "line_number": 7
- }
-},
-{
- "pk": 463,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 400,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 101
- }
-},
-{
- "pk": 464,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 401,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 181
- }
-},
-{
- "pk": 465,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 402,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 316
- }
-},
-{
- "pk": 466,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 403,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 399
- }
-},
-{
- "pk": 467,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 404,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 56
- }
-},
-{
- "pk": 468,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 405,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 62
- }
-},
-{
- "pk": 469,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 406,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 523
- }
-},
-{
- "pk": 470,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 407,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 16
- }
-},
-{
- "pk": 471,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 408,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 115
- }
-},
-{
- "pk": 472,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 409,
- "file_name": "/home/andreea/poky/meta/classes/package_rpm.bbclass",
- "operation": "set?",
- "line_number": 3
- }
-},
-{
- "pk": 473,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 410,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 145
- }
-},
-{
- "pk": 474,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 411,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 310
- }
-},
-{
- "pk": 475,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 412,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 29
- }
-},
-{
- "pk": 476,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 412,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 29
- }
-},
-{
- "pk": 477,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 413,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 320
- }
-},
-{
- "pk": 478,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 414,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 51
- }
-},
-{
- "pk": 479,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 415,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 589
- }
-},
-{
- "pk": 480,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 416,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 576
- }
-},
-{
- "pk": 481,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 417,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 736
- }
-},
-{
- "pk": 482,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 417,
- "file_name": "conf/bitbake.conf",
- "operation": "append",
- "line_number": 737
- }
-},
-{
- "pk": 483,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 418,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 1115
- }
-},
-{
- "pk": 484,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 419,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 7
- }
-},
-{
- "pk": 485,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 420,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 500
- }
-},
-{
- "pk": 486,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 421,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 580
- }
-},
-{
- "pk": 487,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 422,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set",
- "line_number": 20
- }
-},
-{
- "pk": 488,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 424,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 149
- }
-},
-{
- "pk": 489,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 425,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 531
- }
-},
-{
- "pk": 490,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 426,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 441
- }
-},
-{
- "pk": 491,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 427,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/tune-i586.inc",
- "operation": "set",
- "line_number": 13
- }
-},
-{
- "pk": 492,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 428,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 548
- }
-},
-{
- "pk": 493,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 429,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 349
- }
-},
-{
- "pk": 494,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 430,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 122
- }
-},
-{
- "pk": 495,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 431,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 68
- }
-},
-{
- "pk": 496,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 432,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 283
- }
-},
-{
- "pk": 497,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 433,
- "file_name": "/home/andreea/poky/meta/classes/image-mklibs.bbclass",
- "operation": "append",
- "line_number": 1
- }
-},
-{
- "pk": 498,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 433,
- "file_name": "/home/andreea/poky/meta/classes/image-prelink.bbclass",
- "operation": "append",
- "line_number": 1
- }
-},
-{
- "pk": 499,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 433,
- "file_name": "/home/andreea/poky/meta/classes/toaster.bbclass",
- "operation": "append",
- "line_number": 291
- }
-},
-{
- "pk": 500,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 434,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 484
- }
-},
-{
- "pk": 501,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 434,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set",
- "line_number": 196
- }
-},
-{
- "pk": 502,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 435,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set?",
- "line_number": 27
- }
-},
-{
- "pk": 503,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 436,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 213
- }
-},
-{
- "pk": 504,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 437,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 51
- }
-},
-{
- "pk": 505,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 438,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 31
- }
-},
-{
- "pk": 506,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 439,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 2
- }
-},
-{
- "pk": 507,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 440,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 700
- }
-},
-{
- "pk": 508,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 441,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 104
- }
-},
-{
- "pk": 509,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 442,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 478
- }
-},
-{
- "pk": 510,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 442,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 478
- }
-},
-{
- "pk": 511,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 443,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 48
- }
-},
-{
- "pk": 512,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 444,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 201
- }
-},
-{
- "pk": 513,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 445,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 97
- }
-},
-{
- "pk": 514,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 446,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 278
- }
-},
-{
- "pk": 515,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 447,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 199
- }
-},
-{
- "pk": 516,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 448,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 347
- }
-},
-{
- "pk": 517,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 449,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 200
- }
-},
-{
- "pk": 518,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 450,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 168
- }
-},
-{
- "pk": 519,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 451,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 433
- }
-},
-{
- "pk": 520,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 452,
- "file_name": "/home/andreea/poky/meta-yocto/conf/layer.conf",
- "operation": "set",
- "line_number": 9
- }
-},
-{
- "pk": 521,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 452,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data_smart.py",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 522,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 453,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 195
- }
-},
-{
- "pk": 523,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 454,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 108
- }
-},
-{
- "pk": 524,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 454,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "append",
- "line_number": 26
- }
-},
-{
- "pk": 525,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 526,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 527,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 528,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 529,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 530,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 531,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 532,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 533,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 534,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 535,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 536,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 537,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 538,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 539,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 540,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 541,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 542,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 543,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 544,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 545,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 546,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 547,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 548,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 549,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 550,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 551,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 552,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 553,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 554,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 555,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 556,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 557,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 558,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 559,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 560,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 561,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 562,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 159
- }
-},
-{
- "pk": 563,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 564,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 565,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 566,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 567,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 568,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 569,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 570,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 571,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 572,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 573,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 574,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 575,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 576,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 577,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 578,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 579,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 580,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 581,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 582,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 583,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 584,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 585,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 586,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 587,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 588,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 589,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 590,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 591,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 592,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 593,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 594,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 595,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 596,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 597,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 598,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 599,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 455,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py",
- "operation": "set",
- "line_number": 172
- }
-},
-{
- "pk": 600,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 456,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 688
- }
-},
-{
- "pk": 601,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 457,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 452
- }
-},
-{
- "pk": 602,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 458,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 460
- }
-},
-{
- "pk": 603,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 459,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 28
- }
-},
-{
- "pk": 604,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 460,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 628
- }
-},
-{
- "pk": 605,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 460,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 628
- }
-},
-{
- "pk": 606,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 461,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 59
- }
-},
-{
- "pk": 607,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 463,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 596
- }
-},
-{
- "pk": 608,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 464,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 356
- }
-},
-{
- "pk": 609,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 465,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 667
- }
-},
-{
- "pk": 610,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 466,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 758
- }
-},
-{
- "pk": 611,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 467,
- "file_name": "/home/andreea/poky/meta/classes/package_rpm.bbclass",
- "operation": "set",
- "line_number": 9
- }
-},
-{
- "pk": 612,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 468,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 44
- }
-},
-{
- "pk": 613,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 469,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 31
- }
-},
-{
- "pk": 614,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 470,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 332
- }
-},
-{
- "pk": 615,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 471,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 732
- }
-},
-{
- "pk": 616,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 472,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 27
- }
-},
-{
- "pk": 617,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 473,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 107
- }
-},
-{
- "pk": 618,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 473,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "append",
- "line_number": 25
- }
-},
-{
- "pk": 619,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 474,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 10
- }
-},
-{
- "pk": 620,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 474,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 11
- }
-},
-{
- "pk": 621,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 475,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 1
- }
-},
-{
- "pk": 622,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 476,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 120
- }
-},
-{
- "pk": 623,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 477,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 429
- }
-},
-{
- "pk": 624,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 478,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 366
- }
-},
-{
- "pk": 625,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 479,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 42
- }
-},
-{
- "pk": 626,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 480,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 491
- }
-},
-{
- "pk": 627,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 482,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 197
- }
-},
-{
- "pk": 628,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 483,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 363
- }
-},
-{
- "pk": 629,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 484,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 779
- }
-},
-{
- "pk": 630,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 485,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 771
- }
-},
-{
- "pk": 631,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 487,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 376
- }
-},
-{
- "pk": 632,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 488,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 330
- }
-},
-{
- "pk": 633,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 489,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 24
- }
-},
-{
- "pk": 634,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 490,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 740
- }
-},
-{
- "pk": 635,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 491,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 28
- }
-},
-{
- "pk": 636,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 491,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 28
- }
-},
-{
- "pk": 637,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 492,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 452
- }
-},
-{
- "pk": 638,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 492,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 452
- }
-},
-{
- "pk": 639,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 493,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 270
- }
-},
-{
- "pk": 640,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 494,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 12
- }
-},
-{
- "pk": 641,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 495,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 6
- }
-},
-{
- "pk": 642,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 496,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 21
- }
-},
-{
- "pk": 643,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 497,
- "file_name": "/home/andreea/poky/meta/classes/debian.bbclass",
- "operation": "set",
- "line_number": 124
- }
-},
-{
- "pk": 644,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 498,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 724
- }
-},
-{
- "pk": 645,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 499,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 569
- }
-},
-{
- "pk": 646,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 500,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 574
- }
-},
-{
- "pk": 647,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 501,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 648,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 502,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 410
- }
-},
-{
- "pk": 649,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 502,
- "file_name": "conf/bitbake.conf",
- "operation": "append",
- "line_number": 411
- }
-},
-{
- "pk": 650,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 503,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 374
- }
-},
-{
- "pk": 651,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 505,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 736
- }
-},
-{
- "pk": 652,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 506,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 388
- }
-},
-{
- "pk": 653,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 507,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 706
- }
-},
-{
- "pk": 654,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 508,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 155
- }
-},
-{
- "pk": 655,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 509,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 127
- }
-},
-{
- "pk": 656,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 510,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 259
- }
-},
-{
- "pk": 657,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 511,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 362
- }
-},
-{
- "pk": 658,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 512,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 387
- }
-},
-{
- "pk": 659,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 513,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 23
- }
-},
-{
- "pk": 660,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 514,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 576
- }
-},
-{
- "pk": 661,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 515,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 42
- }
-},
-{
- "pk": 662,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 516,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 292
- }
-},
-{
- "pk": 663,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 517,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 696
- }
-},
-{
- "pk": 664,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 518,
- "file_name": "/home/andreea/poky/meta/classes/package_rpm.bbclass",
- "operation": "append",
- "line_number": 1196
- }
-},
-{
- "pk": 665,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 519,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 358
- }
-},
-{
- "pk": 666,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 520,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 209
- }
-},
-{
- "pk": 667,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 521,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 577
- }
-},
-{
- "pk": 668,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 522,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 183
- }
-},
-{
- "pk": 669,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 55
- }
-},
-{
- "pk": 670,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 56
- }
-},
-{
- "pk": 671,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 57
- }
-},
-{
- "pk": 672,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 58
- }
-},
-{
- "pk": 673,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 59
- }
-},
-{
- "pk": 674,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 60
- }
-},
-{
- "pk": 675,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 61
- }
-},
-{
- "pk": 676,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 62
- }
-},
-{
- "pk": 677,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 63
- }
-},
-{
- "pk": 678,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 66
- }
-},
-{
- "pk": 679,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 67
- }
-},
-{
- "pk": 680,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 68
- }
-},
-{
- "pk": 681,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 69
- }
-},
-{
- "pk": 682,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 70
- }
-},
-{
- "pk": 683,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 73
- }
-},
-{
- "pk": 684,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 74
- }
-},
-{
- "pk": 685,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 75
- }
-},
-{
- "pk": 686,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 76
- }
-},
-{
- "pk": 687,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 79
- }
-},
-{
- "pk": 688,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 80
- }
-},
-{
- "pk": 689,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 83
- }
-},
-{
- "pk": 690,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 86
- }
-},
-{
- "pk": 691,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 87
- }
-},
-{
- "pk": 692,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 88
- }
-},
-{
- "pk": 693,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 91
- }
-},
-{
- "pk": 694,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 92
- }
-},
-{
- "pk": 695,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 95
- }
-},
-{
- "pk": 696,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 96
- }
-},
-{
- "pk": 697,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 99
- }
-},
-{
- "pk": 698,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 100
- }
-},
-{
- "pk": 699,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 101
- }
-},
-{
- "pk": 700,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 102
- }
-},
-{
- "pk": 701,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 105
- }
-},
-{
- "pk": 702,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 523,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 108
- }
-},
-{
- "pk": 703,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 524,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 501
- }
-},
-{
- "pk": 704,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 525,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 21
- }
-},
-{
- "pk": 705,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 525,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 21
- }
-},
-{
- "pk": 706,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 526,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 393
- }
-},
-{
- "pk": 707,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 527,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 743
- }
-},
-{
- "pk": 708,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 528,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "set",
- "line_number": 21
- }
-},
-{
- "pk": 709,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 529,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 486
- }
-},
-{
- "pk": 710,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 530,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 753
- }
-},
-{
- "pk": 711,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 531,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 27
- }
-},
-{
- "pk": 712,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 532,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "set",
- "line_number": 270
- }
-},
-{
- "pk": 713,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 532,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "set",
- "line_number": 271
- }
-},
-{
- "pk": 714,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 533,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 630
- }
-},
-{
- "pk": 715,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 533,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 630
- }
-},
-{
- "pk": 716,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 534,
- "file_name": "/home/andreea/poky/meta/classes/sanity.bbclass",
- "operation": "set?",
- "line_number": 5
- }
-},
-{
- "pk": 717,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 535,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 37
- }
-},
-{
- "pk": 718,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 536,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 367
- }
-},
-{
- "pk": 719,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 538,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 662
- }
-},
-{
- "pk": 720,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 538,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 663
- }
-},
-{
- "pk": 721,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 538,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "predot",
- "line_number": 16
- }
-},
-{
- "pk": 722,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 538,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "predot",
- "line_number": 17
- }
-},
-{
- "pk": 723,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 539,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 656
- }
-},
-{
- "pk": 724,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 540,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 7
- }
-},
-{
- "pk": 725,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 542,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 296
- }
-},
-{
- "pk": 726,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 543,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 48
- }
-},
-{
- "pk": 727,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 544,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set?",
- "line_number": 36
- }
-},
-{
- "pk": 728,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 545,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 39
- }
-},
-{
- "pk": 729,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 545,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 39
- }
-},
-{
- "pk": 730,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 546,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 498
- }
-},
-{
- "pk": 731,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 546,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 498
- }
-},
-{
- "pk": 732,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 547,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 635
- }
-},
-{
- "pk": 733,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 548,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 31
- }
-},
-{
- "pk": 734,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 549,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 695
- }
-},
-{
- "pk": 735,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 550,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 28
- }
-},
-{
- "pk": 736,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 551,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 693
- }
-},
-{
- "pk": 737,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 553,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 108
- }
-},
-{
- "pk": 738,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 553,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set?",
- "line_number": 36
- }
-},
-{
- "pk": 739,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 554,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 123
- }
-},
-{
- "pk": 740,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 555,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 126
- }
-},
-{
- "pk": 741,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 556,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set?",
- "line_number": 25
- }
-},
-{
- "pk": 742,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 557,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 505
- }
-},
-{
- "pk": 743,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 558,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 286
- }
-},
-{
- "pk": 744,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 560,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 337
- }
-},
-{
- "pk": 745,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 561,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 270
- }
-},
-{
- "pk": 746,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 563,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 406
- }
-},
-{
- "pk": 747,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 564,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 59
- }
-},
-{
- "pk": 748,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 566,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 430
- }
-},
-{
- "pk": 749,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 567,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-versions.inc",
- "operation": "set?",
- "line_number": 11
- }
-},
-{
- "pk": 750,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 568,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 581
- }
-},
-{
- "pk": 751,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 569,
- "file_name": "/home/andreea/poky/meta/conf/distro/defaultsetup.conf",
- "operation": "set?",
- "line_number": 20
- }
-},
-{
- "pk": 752,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 570,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 409
- }
-},
-{
- "pk": 753,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 571,
- "file_name": "/home/andreea/poky/meta/classes/staging.bbclass",
- "operation": "set",
- "line_number": 66
- }
-},
-{
- "pk": 754,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 573,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 768
- }
-},
-{
- "pk": 755,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 574,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 357
- }
-},
-{
- "pk": 756,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 575,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 1940
- }
-},
-{
- "pk": 757,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 576,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 208
- }
-},
-{
- "pk": 758,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 577,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 341
- }
-},
-{
- "pk": 759,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 578,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 689
- }
-},
-{
- "pk": 760,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 579,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 328
- }
-},
-{
- "pk": 761,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 580,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 132
- }
-},
-{
- "pk": 762,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 581,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 49
- }
-},
-{
- "pk": 763,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 582,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 352
- }
-},
-{
- "pk": 764,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 583,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 598
- }
-},
-{
- "pk": 765,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 584,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 17
- }
-},
-{
- "pk": 766,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 585,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 3
- }
-},
-{
- "pk": 767,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 585,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set",
- "line_number": 47
- }
-},
-{
- "pk": 768,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 586,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 260
- }
-},
-{
- "pk": 769,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 587,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 402
- }
-},
-{
- "pk": 770,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 588,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 520
- }
-},
-{
- "pk": 771,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 589,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 236
- }
-},
-{
- "pk": 772,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 590,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 781
- }
-},
-{
- "pk": 773,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 591,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 529
- }
-},
-{
- "pk": 774,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 591,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 529
- }
-},
-{
- "pk": 775,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 591,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "append",
- "line_number": 16
- }
-},
-{
- "pk": 776,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 592,
- "file_name": "/home/andreea/poky/meta/classes/image-mklibs.bbclass",
- "operation": "append",
- "line_number": 3
- }
-},
-{
- "pk": 777,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 592,
- "file_name": "/home/andreea/poky/meta/classes/image-prelink.bbclass",
- "operation": "append",
- "line_number": 3
- }
-},
-{
- "pk": 778,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 593,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 125
- }
-},
-{
- "pk": 779,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 594,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "_append",
- "line_number": 446
- }
-},
-{
- "pk": 780,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 595,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 678
- }
-},
-{
- "pk": 781,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 596,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 118
- }
-},
-{
- "pk": 782,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 597,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set?",
- "line_number": 17
- }
-},
-{
- "pk": 783,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 598,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 101
- }
-},
-{
- "pk": 784,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 599,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 596
- }
-},
-{
- "pk": 785,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 600,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 255
- }
-},
-{
- "pk": 786,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 601,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 232
- }
-},
-{
- "pk": 787,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 602,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 215
- }
-},
-{
- "pk": 788,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 603,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "set?",
- "line_number": 12
- }
-},
-{
- "pk": 789,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 603,
- "file_name": "/home/andreea/poky/meta/conf/machine/qemux86.conf",
- "operation": "set",
- "line_number": 22
- }
-},
-{
- "pk": 790,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 604,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set",
- "line_number": 5
- }
-},
-{
- "pk": 791,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 605,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 389
- }
-},
-{
- "pk": 792,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 606,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 662
- }
-},
-{
- "pk": 793,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 607,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 297
- }
-},
-{
- "pk": 794,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 608,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 268
- }
-},
-{
- "pk": 795,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 609,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 8
- }
-},
-{
- "pk": 796,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 610,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 671
- }
-},
-{
- "pk": 797,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 611,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 212
- }
-},
-{
- "pk": 798,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 612,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 76
- }
-},
-{
- "pk": 799,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 613,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 364
- }
-},
-{
- "pk": 800,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 614,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 127
- }
-},
-{
- "pk": 801,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 615,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 591
- }
-},
-{
- "pk": 802,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 615,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 591
- }
-},
-{
- "pk": 803,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 616,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 562
- }
-},
-{
- "pk": 804,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 617,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 805,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 618,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set?",
- "line_number": 122
- }
-},
-{
- "pk": 806,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 618,
- "file_name": "/home/andreea/poky/meta/conf/distro/defaultsetup.conf",
- "operation": "set?",
- "line_number": 19
- }
-},
-{
- "pk": 807,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 619,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set",
- "line_number": 27
- }
-},
-{
- "pk": 808,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 620,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 499
- }
-},
-{
- "pk": 809,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 621,
- "file_name": "/home/andreea/poky/meta/classes/terminal.bbclass",
- "operation": "set?",
- "line_number": 1
- }
-},
-{
- "pk": 810,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 621,
- "file_name": "/home/andreea/poky/meta/classes/terminal.bbclass",
- "operation": "set",
- "line_number": 2
- }
-},
-{
- "pk": 811,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 621,
- "file_name": "/home/andreea/poky/meta/classes/terminal.bbclass",
- "operation": "set",
- "line_number": 5
- }
-},
-{
- "pk": 812,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 622,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 164
- }
-},
-{
- "pk": 813,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 623,
- "file_name": "/home/andreea/poky/meta/conf/layer.conf",
- "operation": "set",
- "line_number": 7
- }
-},
-{
- "pk": 814,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 623,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data_smart.py",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 815,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 624,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 483
- }
-},
-{
- "pk": 816,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 625,
- "file_name": "/home/andreea/poky/meta-yocto-bsp/conf/layer.conf",
- "operation": "set",
- "line_number": 9
- }
-},
-{
- "pk": 817,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 625,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data_smart.py",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 818,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 626,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 724
- }
-},
-{
- "pk": 819,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 628,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/cooker.py",
- "operation": "set",
- "line_number": 999
- }
-},
-{
- "pk": 820,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 629,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 248
- }
-},
-{
- "pk": 821,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 630,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 151
- }
-},
-{
- "pk": 822,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 631,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 1323
- }
-},
-{
- "pk": 823,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 632,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 450
- }
-},
-{
- "pk": 824,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 633,
- "file_name": "/home/andreea/poky/meta/conf/machine/qemux86.conf",
- "operation": "append",
- "line_number": 26
- }
-},
-{
- "pk": 825,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 633,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 717
- }
-},
-{
- "pk": 826,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 634,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 683
- }
-},
-{
- "pk": 827,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 635,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 26
- }
-},
-{
- "pk": 828,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 636,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 1258
- }
-},
-{
- "pk": 829,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 637,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 37
- }
-},
-{
- "pk": 830,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 638,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "append",
- "line_number": 21
- }
-},
-{
- "pk": 831,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 638,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "append",
- "line_number": 1852
- }
-},
-{
- "pk": 832,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 639,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 833,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 639,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "auto env export",
- "line_number": 180
- }
-},
-{
- "pk": 834,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 640,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 336
- }
-},
-{
- "pk": 835,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 641,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/tune-i586.inc",
- "operation": "set",
- "line_number": 11
- }
-},
-{
- "pk": 836,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 642,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 203
- }
-},
-{
- "pk": 837,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 643,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 56
- }
-},
-{
- "pk": 838,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 644,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 5
- }
-},
-{
- "pk": 839,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 645,
- "file_name": "base_eventhandler(e)",
- "operation": "set",
- "line_number": 3
- }
-},
-{
- "pk": 840,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 646,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 262
- }
-},
-{
- "pk": 841,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 647,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 563
- }
-},
-{
- "pk": 842,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 648,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 38
- }
-},
-{
- "pk": 843,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 649,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 677
- }
-},
-{
- "pk": 844,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 650,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 308
- }
-},
-{
- "pk": 845,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 651,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 51
- }
-},
-{
- "pk": 846,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 653,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 698
- }
-},
-{
- "pk": 847,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 654,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set",
- "line_number": 40
- }
-},
-{
- "pk": 848,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 655,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 559
- }
-},
-{
- "pk": 849,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 656,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 45
- }
-},
-{
- "pk": 850,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 658,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 35
- }
-},
-{
- "pk": 851,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 658,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 35
- }
-},
-{
- "pk": 852,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 659,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 231
- }
-},
-{
- "pk": 853,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 660,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 89
- }
-},
-{
- "pk": 854,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 661,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 507
- }
-},
-{
- "pk": 855,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 662,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 519
- }
-},
-{
- "pk": 856,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 663,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 539
- }
-},
-{
- "pk": 857,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 664,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 285
- }
-},
-{
- "pk": 858,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 665,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 38
- }
-},
-{
- "pk": 859,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 667,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 718
- }
-},
-{
- "pk": 860,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 668,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 52
- }
-},
-{
- "pk": 861,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 669,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 632
- }
-},
-{
- "pk": 862,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 669,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 632
- }
-},
-{
- "pk": 863,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 670,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 336
- }
-},
-{
- "pk": 864,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 671,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 331
- }
-},
-{
- "pk": 865,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 672,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 250
- }
-},
-{
- "pk": 866,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 673,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 626
- }
-},
-{
- "pk": 867,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 674,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 593
- }
-},
-{
- "pk": 868,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 675,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 561
- }
-},
-{
- "pk": 869,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 676,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 114
- }
-},
-{
- "pk": 870,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 677,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 135
- }
-},
-{
- "pk": 871,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 678,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 256
- }
-},
-{
- "pk": 872,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 679,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 271
- }
-},
-{
- "pk": 873,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 680,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 371
- }
-},
-{
- "pk": 874,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 681,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 748
- }
-},
-{
- "pk": 875,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 682,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 613
- }
-},
-{
- "pk": 876,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 682,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 613
- }
-},
-{
- "pk": 877,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 683,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 40
- }
-},
-{
- "pk": 878,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 683,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 40
- }
-},
-{
- "pk": 879,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 684,
- "file_name": "/home/andreea/poky/meta/conf/sanity.conf",
- "operation": "set?",
- "line_number": 13
- }
-},
-{
- "pk": 880,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 685,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 502
- }
-},
-{
- "pk": 881,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 685,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 502
- }
-},
-{
- "pk": 882,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 685,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "append",
- "line_number": 19
- }
-},
-{
- "pk": 883,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 686,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 543
- }
-},
-{
- "pk": 884,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 687,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 200
- }
-},
-{
- "pk": 885,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 688,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 467
- }
-},
-{
- "pk": 886,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 689,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 460
- }
-},
-{
- "pk": 887,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 689,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 460
- }
-},
-{
- "pk": 888,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 690,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 652
- }
-},
-{
- "pk": 889,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 691,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 723
- }
-},
-{
- "pk": 890,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 692,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 764
- }
-},
-{
- "pk": 891,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 693,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 497
- }
-},
-{
- "pk": 892,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 694,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 198
- }
-},
-{
- "pk": 893,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 695,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 590
- }
-},
-{
- "pk": 894,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 697,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 30
- }
-},
-{
- "pk": 895,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 698,
- "file_name": "/home/andreea/poky/meta/classes/metadata_scm.bbclass",
- "operation": "set?",
- "line_number": 2
- }
-},
-{
- "pk": 896,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 699,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 746
- }
-},
-{
- "pk": 897,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 701,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 45
- }
-},
-{
- "pk": 898,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 701,
- "file_name": "/home/andreea/poky/meta/conf/distro/defaultsetup.conf",
- "operation": "set?",
- "line_number": 13
- }
-},
-{
- "pk": 899,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 702,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 26
- }
-},
-{
- "pk": 900,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 703,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 23
- }
-},
-{
- "pk": 901,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 704,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "set",
- "line_number": 13
- }
-},
-{
- "pk": 902,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 705,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 342
- }
-},
-{
- "pk": 903,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 706,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 595
- }
-},
-{
- "pk": 904,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 707,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 12
- }
-},
-{
- "pk": 905,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 707,
- "file_name": "/home/andreea/poky/meta/conf/sanity.conf",
- "operation": "set?",
- "line_number": 11
- }
-},
-{
- "pk": 906,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 708,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 660
- }
-},
-{
- "pk": 907,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 709,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 39
- }
-},
-{
- "pk": 908,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 710,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 648
- }
-},
-{
- "pk": 909,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 711,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set?",
- "line_number": 34
- }
-},
-{
- "pk": 910,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 712,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 568
- }
-},
-{
- "pk": 911,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 713,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 549
- }
-},
-{
- "pk": 912,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 714,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 35
- }
-},
-{
- "pk": 913,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 715,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "append",
- "line_number": 13
- }
-},
-{
- "pk": 914,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 715,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 915,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 716,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 580
- }
-},
-{
- "pk": 916,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 717,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 381
- }
-},
-{
- "pk": 917,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 718,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 46
- }
-},
-{
- "pk": 918,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 719,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 397
- }
-},
-{
- "pk": 919,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 720,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 353
- }
-},
-{
- "pk": 920,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 721,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 28
- }
-},
-{
- "pk": 921,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 722,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 334
- }
-},
-{
- "pk": 922,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 723,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 44
- }
-},
-{
- "pk": 923,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 724,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 369
- }
-},
-{
- "pk": 924,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 725,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 58
- }
-},
-{
- "pk": 925,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 726,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "set",
- "line_number": 78
- }
-},
-{
- "pk": 926,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 727,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 313
- }
-},
-{
- "pk": 927,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 728,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 515
- }
-},
-{
- "pk": 928,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 729,
- "file_name": "conf/bitbake.conf",
- "operation": "immediate",
- "line_number": 71
- }
-},
-{
- "pk": 929,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 730,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 668
- }
-},
-{
- "pk": 930,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 731,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 729
- }
-},
-{
- "pk": 931,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 732,
- "file_name": "check_sanity_eventhandler(e)",
- "operation": "set",
- "line_number": 5
- }
-},
-{
- "pk": 932,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 733,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 756
- }
-},
-{
- "pk": 933,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 734,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 182
- }
-},
-{
- "pk": 934,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 735,
- "file_name": "/home/andreea/poky/meta/classes/debian.bbclass",
- "operation": "set",
- "line_number": 12
- }
-},
-{
- "pk": 935,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 736,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 23
- }
-},
-{
- "pk": 936,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 736,
- "file_name": "conf/bitbake.conf",
- "operation": "append",
- "line_number": 721
- }
-},
-{
- "pk": 937,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 737,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 527
- }
-},
-{
- "pk": 938,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 738,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 220
- }
-},
-{
- "pk": 939,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 739,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 46
- }
-},
-{
- "pk": 940,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 740,
- "file_name": "/home/andreea/poky/meta/classes/devshell.bbclass",
- "operation": "set",
- "line_number": 3
- }
-},
-{
- "pk": 941,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 741,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 130
- }
-},
-{
- "pk": 942,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 742,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 21
- }
-},
-{
- "pk": 943,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 743,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 50
- }
-},
-{
- "pk": 944,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 744,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 945,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 745,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 582
- }
-},
-{
- "pk": 946,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 746,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 578
- }
-},
-{
- "pk": 947,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 747,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 948,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 747,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "auto env export",
- "line_number": 180
- }
-},
-{
- "pk": 949,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 748,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 704
- }
-},
-{
- "pk": 950,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 749,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 43
- }
-},
-{
- "pk": 951,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 751,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 281
- }
-},
-{
- "pk": 952,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 752,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 143
- }
-},
-{
- "pk": 953,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 753,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 55
- }
-},
-{
- "pk": 954,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 754,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 258
- }
-},
-{
- "pk": 955,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 755,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 722
- }
-},
-{
- "pk": 956,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 756,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 29
- }
-},
-{
- "pk": 957,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 757,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set?",
- "line_number": 20
- }
-},
-{
- "pk": 958,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 758,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 241
- }
-},
-{
- "pk": 959,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 759,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 774
- }
-},
-{
- "pk": 960,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 760,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 36
- }
-},
-{
- "pk": 961,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 761,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 327
- }
-},
-{
- "pk": 962,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 761,
- "file_name": "/home/andreea/poky/meta/conf/distro/defaultsetup.conf",
- "operation": "postdot",
- "line_number": 14
- }
-},
-{
- "pk": 963,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 762,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 331
- }
-},
-{
- "pk": 964,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 763,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 615
- }
-},
-{
- "pk": 965,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 764,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 148
- }
-},
-{
- "pk": 966,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 765,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 457
- }
-},
-{
- "pk": 967,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 766,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 234
- }
-},
-{
- "pk": 968,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 767,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 180
- }
-},
-{
- "pk": 969,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 768,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 356
- }
-},
-{
- "pk": 970,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 769,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 38
- }
-},
-{
- "pk": 971,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 770,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 57
- }
-},
-{
- "pk": 972,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 771,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 26
- }
-},
-{
- "pk": 973,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 772,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 522
- }
-},
-{
- "pk": 974,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 773,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 594
- }
-},
-{
- "pk": 975,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 774,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 697
- }
-},
-{
- "pk": 976,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 775,
- "file_name": "/home/andreea/poky/meta/classes/terminal.bbclass",
- "operation": "append",
- "line_number": 7
- }
-},
-{
- "pk": 977,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 775,
- "file_name": "/home/andreea/poky/meta/classes/terminal.bbclass",
- "operation": "set",
- "line_number": 8
- }
-},
-{
- "pk": 978,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 776,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 518
- }
-},
-{
- "pk": 979,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 777,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 102
- }
-},
-{
- "pk": 980,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 778,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 342
- }
-},
-{
- "pk": 981,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 779,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 214
- }
-},
-{
- "pk": 982,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 780,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 716
- }
-},
-{
- "pk": 983,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 781,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 503
- }
-},
-{
- "pk": 984,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 782,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 13
- }
-},
-{
- "pk": 985,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 782,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 20
- }
-},
-{
- "pk": 986,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 782,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 29
- }
-},
-{
- "pk": 987,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 782,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/tune-i586.inc",
- "operation": "set",
- "line_number": 6
- }
-},
-{
- "pk": 988,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 783,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 749
- }
-},
-{
- "pk": 989,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 784,
- "file_name": "conf/bitbake.conf",
- "operation": "immediate",
- "line_number": 160
- }
-},
-{
- "pk": 990,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 785,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "set?",
- "line_number": 15
- }
-},
-{
- "pk": 991,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 786,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 96
- }
-},
-{
- "pk": 992,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 787,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 619
- }
-},
-{
- "pk": 993,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 788,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 30
- }
-},
-{
- "pk": 994,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 789,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 34
- }
-},
-{
- "pk": 995,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 790,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 528
- }
-},
-{
- "pk": 996,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 790,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 528
- }
-},
-{
- "pk": 997,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 791,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 536
- }
-},
-{
- "pk": 998,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 793,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 229
- }
-},
-{
- "pk": 999,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 794,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 143
- }
-},
-{
- "pk": 1000,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 796,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 442
- }
-},
-{
- "pk": 1001,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 797,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 83
- }
-},
-{
- "pk": 1002,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 798,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 165
- }
-},
-{
- "pk": 1003,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 799,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 48
- }
-},
-{
- "pk": 1004,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 800,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 72
- }
-},
-{
- "pk": 1005,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 801,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 475
- }
-},
-{
- "pk": 1006,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 801,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 475
- }
-},
-{
- "pk": 1007,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 802,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 360
- }
-},
-{
- "pk": 1008,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 803,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 130
- }
-},
-{
- "pk": 1009,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 804,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 221
- }
-},
-{
- "pk": 1010,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 805,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 102
- }
-},
-{
- "pk": 1011,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 806,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 588
- }
-},
-{
- "pk": 1012,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 807,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 458
- }
-},
-{
- "pk": 1013,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 808,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 765
- }
-},
-{
- "pk": 1014,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 809,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 227
- }
-},
-{
- "pk": 1015,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 810,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 3
- }
-},
-{
- "pk": 1016,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 811,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 650
- }
-},
-{
- "pk": 1017,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 812,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 424
- }
-},
-{
- "pk": 1018,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 813,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 655
- }
-},
-{
- "pk": 1019,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 814,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 539
- }
-},
-{
- "pk": 1020,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 815,
- "file_name": "/home/andreea/poky/meta/classes/staging.bbclass",
- "operation": "set",
- "line_number": 77
- }
-},
-{
- "pk": 1021,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 816,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 74
- }
-},
-{
- "pk": 1022,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 817,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 214
- }
-},
-{
- "pk": 1023,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 4
- }
-},
-{
- "pk": 1024,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 5
- }
-},
-{
- "pk": 1025,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 6
- }
-},
-{
- "pk": 1026,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 7
- }
-},
-{
- "pk": 1027,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 8
- }
-},
-{
- "pk": 1028,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 9
- }
-},
-{
- "pk": 1029,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 10
- }
-},
-{
- "pk": 1030,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 11
- }
-},
-{
- "pk": 1031,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 12
- }
-},
-{
- "pk": 1032,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 13
- }
-},
-{
- "pk": 1033,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 14
- }
-},
-{
- "pk": 1034,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 15
- }
-},
-{
- "pk": 1035,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 16
- }
-},
-{
- "pk": 1036,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 17
- }
-},
-{
- "pk": 1037,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 18
- }
-},
-{
- "pk": 1038,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 19
- }
-},
-{
- "pk": 1039,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 20
- }
-},
-{
- "pk": 1040,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 21
- }
-},
-{
- "pk": 1041,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 22
- }
-},
-{
- "pk": 1042,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 23
- }
-},
-{
- "pk": 1043,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 24
- }
-},
-{
- "pk": 1044,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 25
- }
-},
-{
- "pk": 1045,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 26
- }
-},
-{
- "pk": 1046,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 27
- }
-},
-{
- "pk": 1047,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 28
- }
-},
-{
- "pk": 1048,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 29
- }
-},
-{
- "pk": 1049,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 30
- }
-},
-{
- "pk": 1050,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 31
- }
-},
-{
- "pk": 1051,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 32
- }
-},
-{
- "pk": 1052,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 33
- }
-},
-{
- "pk": 1053,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 34
- }
-},
-{
- "pk": 1054,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 35
- }
-},
-{
- "pk": 1055,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 36
- }
-},
-{
- "pk": 1056,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 37
- }
-},
-{
- "pk": 1057,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 38
- }
-},
-{
- "pk": 1058,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 39
- }
-},
-{
- "pk": 1059,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 818,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "append",
- "line_number": 40
- }
-},
-{
- "pk": 1060,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 819,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 129
- }
-},
-{
- "pk": 1061,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 820,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 243
- }
-},
-{
- "pk": 1062,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 820,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 8
- }
-},
-{
- "pk": 1063,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 821,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 295
- }
-},
-{
- "pk": 1064,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 822,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 741
- }
-},
-{
- "pk": 1065,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 823,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 339
- }
-},
-{
- "pk": 1066,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 824,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 115
- }
-},
-{
- "pk": 1067,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 824,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 752
- }
-},
-{
- "pk": 1068,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 825,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 701
- }
-},
-{
- "pk": 1069,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 826,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 491
- }
-},
-{
- "pk": 1070,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 827,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 148
- }
-},
-{
- "pk": 1071,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 829,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 25
- }
-},
-{
- "pk": 1072,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 830,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 766
- }
-},
-{
- "pk": 1073,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 831,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 443
- }
-},
-{
- "pk": 1074,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 831,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 443
- }
-},
-{
- "pk": 1075,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 832,
- "file_name": "/home/andreea/poky/meta/classes/patch.bbclass",
- "operation": "set?",
- "line_number": 4
- }
-},
-{
- "pk": 1076,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 833,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 163
- }
-},
-{
- "pk": 1077,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 834,
- "file_name": "/home/andreea/poky/build/conf/bblayers.conf",
- "operation": "set?",
- "line_number": 12
- }
-},
-{
- "pk": 1078,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 835,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 77
- }
-},
-{
- "pk": 1079,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 836,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 595
- }
-},
-{
- "pk": 1080,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 837,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 87
- }
-},
-{
- "pk": 1081,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 838,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 365
- }
-},
-{
- "pk": 1082,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 839,
- "file_name": "/home/andreea/poky/meta/classes/patch.bbclass",
- "operation": "set",
- "line_number": 6
- }
-},
-{
- "pk": 1083,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 840,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 671
- }
-},
-{
- "pk": 1084,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 841,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 33
- }
-},
-{
- "pk": 1085,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 842,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 487
- }
-},
-{
- "pk": 1086,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 843,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 144
- }
-},
-{
- "pk": 1087,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 844,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 3
- }
-},
-{
- "pk": 1088,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 846,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 131
- }
-},
-{
- "pk": 1089,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 847,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 297
- }
-},
-{
- "pk": 1090,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 848,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 687
- }
-},
-{
- "pk": 1091,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 849,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 506
- }
-},
-{
- "pk": 1092,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 850,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 1093,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 850,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 21
- }
-},
-{
- "pk": 1094,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 850,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 30
- }
-},
-{
- "pk": 1095,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 851,
- "file_name": "/home/andreea/poky/meta/conf/machine/qemux86.conf",
- "operation": "set",
- "line_number": 15
- }
-},
-{
- "pk": 1096,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 851,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 739
- }
-},
-{
- "pk": 1097,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 852,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 451
- }
-},
-{
- "pk": 1098,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 853,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "set?",
- "line_number": 16
- }
-},
-{
- "pk": 1099,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 854,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 447
- }
-},
-{
- "pk": 1100,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 855,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "append",
- "line_number": 449
- }
-},
-{
- "pk": 1101,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 856,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 8
- }
-},
-{
- "pk": 1102,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 857,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 757
- }
-},
-{
- "pk": 1103,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 858,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 623
- }
-},
-{
- "pk": 1104,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 859,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 546
- }
-},
-{
- "pk": 1105,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 860,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 41
- }
-},
-{
- "pk": 1106,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 861,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 296
- }
-},
-{
- "pk": 1107,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 862,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 201
- }
-},
-{
- "pk": 1108,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 863,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 396
- }
-},
-{
- "pk": 1109,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 864,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 612
- }
-},
-{
- "pk": 1110,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 865,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 640
- }
-},
-{
- "pk": 1111,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 866,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 392
- }
-},
-{
- "pk": 1112,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 867,
- "file_name": "/home/andreea/poky/build/conf/bblayers.conf",
- "operation": "set",
- "line_number": 5
- }
-},
-{
- "pk": 1113,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 867,
- "file_name": "/home/andreea/poky/meta/conf/layer.conf",
- "operation": "postdot",
- "line_number": 2
- }
-},
-{
- "pk": 1114,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 867,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data_smart.py",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 1115,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 867,
- "file_name": "/home/andreea/poky/meta-yocto/conf/layer.conf",
- "operation": "predot",
- "line_number": 2
- }
-},
-{
- "pk": 1116,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 867,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data_smart.py",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 1117,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 867,
- "file_name": "/home/andreea/poky/meta-yocto-bsp/conf/layer.conf",
- "operation": "postdot",
- "line_number": 2
- }
-},
-{
- "pk": 1118,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 867,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data_smart.py",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 1119,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 868,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 302
- }
-},
-{
- "pk": 1120,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 869,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 21
- }
-},
-{
- "pk": 1121,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 870,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 647
- }
-},
-{
- "pk": 1122,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 871,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 493
- }
-},
-{
- "pk": 1123,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 872,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 649
- }
-},
-{
- "pk": 1124,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 873,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 161
- }
-},
-{
- "pk": 1125,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 874,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 32
- }
-},
-{
- "pk": 1126,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 875,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 58
- }
-},
-{
- "pk": 1127,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 876,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 271
- }
-},
-{
- "pk": 1128,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 877,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 236
- }
-},
-{
- "pk": 1129,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 878,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 80
- }
-},
-{
- "pk": 1130,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 879,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 251
- }
-},
-{
- "pk": 1131,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 880,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 466
- }
-},
-{
- "pk": 1132,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 880,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 466
- }
-},
-{
- "pk": 1133,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 881,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 733
- }
-},
-{
- "pk": 1134,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 882,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 8
- }
-},
-{
- "pk": 1135,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 883,
- "file_name": "/home/andreea/poky/meta/conf/sanity.conf",
- "operation": "set?",
- "line_number": 10
- }
-},
-{
- "pk": 1136,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 884,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 625
- }
-},
-{
- "pk": 1137,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 885,
- "file_name": "/home/andreea/poky/meta/classes/package_rpm.bbclass",
- "operation": "set",
- "line_number": 8
- }
-},
-{
- "pk": 1138,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 886,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set?",
- "line_number": 7
- }
-},
-{
- "pk": 1139,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 887,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 759
- }
-},
-{
- "pk": 1140,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 888,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 564
- }
-},
-{
- "pk": 1141,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 889,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "append",
- "line_number": 443
- }
-},
-{
- "pk": 1142,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 891,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 60
- }
-},
-{
- "pk": 1143,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 892,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 516
- }
-},
-{
- "pk": 1144,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 893,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 142
- }
-},
-{
- "pk": 1145,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 894,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 386
- }
-},
-{
- "pk": 1146,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 895,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 357
- }
-},
-{
- "pk": 1147,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 896,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 12
- }
-},
-{
- "pk": 1148,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 897,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 189
- }
-},
-{
- "pk": 1149,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 898,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 156
- }
-},
-{
- "pk": 1150,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 899,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/cookerdata.py",
- "operation": "set",
- "line_number": 251
- }
-},
-{
- "pk": 1151,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 900,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "set?",
- "line_number": 2
- }
-},
-{
- "pk": 1152,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 900,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 8
- }
-},
-{
- "pk": 1153,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 901,
- "file_name": "/home/andreea/poky/meta-yocto/conf/layer.conf",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 1154,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 902,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 673
- }
-},
-{
- "pk": 1155,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 903,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1156,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 904,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 321
- }
-},
-{
- "pk": 1157,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 907,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 319
- }
-},
-{
- "pk": 1158,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 908,
- "file_name": "/home/andreea/poky/meta/classes/staging.bbclass",
- "operation": "append",
- "line_number": 98
- }
-},
-{
- "pk": 1159,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 908,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "append",
- "line_number": 1941
- }
-},
-{
- "pk": 1160,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 908,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "append",
- "line_number": 1958
- }
-},
-{
- "pk": 1161,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 908,
- "file_name": "/home/andreea/poky/meta/classes/package_rpm.bbclass",
- "operation": "append",
- "line_number": 1174
- }
-},
-{
- "pk": 1162,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 908,
- "file_name": "/home/andreea/poky/meta/classes/license.bbclass",
- "operation": "append",
- "line_number": 353
- }
-},
-{
- "pk": 1163,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 909,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 449
- }
-},
-{
- "pk": 1164,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 910,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 70
- }
-},
-{
- "pk": 1165,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 911,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 523
- }
-},
-{
- "pk": 1166,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 912,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 126
- }
-},
-{
- "pk": 1167,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 913,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 345
- }
-},
-{
- "pk": 1168,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 914,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 4
- }
-},
-{
- "pk": 1169,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 915,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 16
- }
-},
-{
- "pk": 1170,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 916,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 496
- }
-},
-{
- "pk": 1171,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 916,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 496
- }
-},
-{
- "pk": 1172,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 918,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 763
- }
-},
-{
- "pk": 1173,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 919,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 584
- }
-},
-{
- "pk": 1174,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 920,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1175,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 921,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 54
- }
-},
-{
- "pk": 1176,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 922,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 228
- }
-},
-{
- "pk": 1177,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 923,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 669
- }
-},
-{
- "pk": 1178,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 924,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 264
- }
-},
-{
- "pk": 1179,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 925,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 295
- }
-},
-{
- "pk": 1180,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 926,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 351
- }
-},
-{
- "pk": 1181,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 927,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 674
- }
-},
-{
- "pk": 1182,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 928,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 606
- }
-},
-{
- "pk": 1183,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 930,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 598
- }
-},
-{
- "pk": 1184,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 931,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 291
- }
-},
-{
- "pk": 1185,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 932,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 261
- }
-},
-{
- "pk": 1186,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 933,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 365
- }
-},
-{
- "pk": 1187,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 934,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-versions.inc",
- "operation": "set?",
- "line_number": 6
- }
-},
-{
- "pk": 1188,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 935,
- "file_name": "/home/andreea/poky/meta/classes/debian.bbclass",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 1189,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 936,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 34
- }
-},
-{
- "pk": 1190,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 936,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 34
- }
-},
-{
- "pk": 1191,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 937,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 344
- }
-},
-{
- "pk": 1192,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 938,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 314
- }
-},
-{
- "pk": 1193,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 939,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/cookerdata.py",
- "operation": "set",
- "line_number": 259
- }
-},
-{
- "pk": 1194,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 939,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/cookerdata.py",
- "operation": "set",
- "line_number": 259
- }
-},
-{
- "pk": 1195,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 939,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/cookerdata.py",
- "operation": "set",
- "line_number": 259
- }
-},
-{
- "pk": 1196,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 939,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/cookerdata.py",
- "operation": "del",
- "line_number": 263
- }
-},
-{
- "pk": 1197,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 940,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 624
- }
-},
-{
- "pk": 1198,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 941,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 455
- }
-},
-{
- "pk": 1199,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 942,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 32
- }
-},
-{
- "pk": 1200,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 942,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 32
- }
-},
-{
- "pk": 1201,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 943,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 275
- }
-},
-{
- "pk": 1202,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 944,
- "file_name": "/home/andreea/poky/meta/conf/sanity.conf",
- "operation": "set",
- "line_number": 8
- }
-},
-{
- "pk": 1203,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 945,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 272
- }
-},
-{
- "pk": 1204,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 946,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 35
- }
-},
-{
- "pk": 1205,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 947,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 16
- }
-},
-{
- "pk": 1206,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 947,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 16
- }
-},
-{
- "pk": 1207,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 948,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "set",
- "line_number": 85
- }
-},
-{
- "pk": 1208,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 949,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 34
- }
-},
-{
- "pk": 1209,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 950,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 137
- }
-},
-{
- "pk": 1210,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 951,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 47
- }
-},
-{
- "pk": 1211,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 952,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 257
- }
-},
-{
- "pk": 1212,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 953,
- "file_name": "/home/andreea/poky/meta/classes/package_rpm.bbclass",
- "operation": "set",
- "line_number": 13
- }
-},
-{
- "pk": 1213,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 954,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "append",
- "line_number": 18
- }
-},
-{
- "pk": 1214,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 954,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 691
- }
-},
-{
- "pk": 1215,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 955,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 18
- }
-},
-{
- "pk": 1216,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 956,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 4
- }
-},
-{
- "pk": 1217,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 957,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/tune-i586.inc",
- "operation": "set",
- "line_number": 12
- }
-},
-{
- "pk": 1218,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 958,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 15
- }
-},
-{
- "pk": 1219,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 959,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 81
- }
-},
-{
- "pk": 1220,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 960,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 740
- }
-},
-{
- "pk": 1221,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 961,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 13
- }
-},
-{
- "pk": 1222,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 962,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 540
- }
-},
-{
- "pk": 1223,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 963,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 514
- }
-},
-{
- "pk": 1224,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 964,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1225,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 964,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "auto env export",
- "line_number": 180
- }
-},
-{
- "pk": 1226,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 965,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 13
- }
-},
-{
- "pk": 1227,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 965,
- "file_name": "/home/andreea/poky/meta/conf/sanity.conf",
- "operation": "set?",
- "line_number": 12
- }
-},
-{
- "pk": 1228,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 966,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 215
- }
-},
-{
- "pk": 1229,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 967,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 326
- }
-},
-{
- "pk": 1230,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 968,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 351
- }
-},
-{
- "pk": 1231,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 969,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 158
- }
-},
-{
- "pk": 1232,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 970,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 378
- }
-},
-{
- "pk": 1233,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 971,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 335
- }
-},
-{
- "pk": 1234,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 972,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 259
- }
-},
-{
- "pk": 1235,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 973,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 11
- }
-},
-{
- "pk": 1236,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 974,
- "file_name": "/home/andreea/poky/meta/conf/layer.conf",
- "operation": "append",
- "line_number": 33
- }
-},
-{
- "pk": 1237,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 975,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 340
- }
-},
-{
- "pk": 1238,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 976,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 312
- }
-},
-{
- "pk": 1239,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 977,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 431
- }
-},
-{
- "pk": 1240,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 978,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 243
- }
-},
-{
- "pk": 1241,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 979,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 434
- }
-},
-{
- "pk": 1242,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 980,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 492
- }
-},
-{
- "pk": 1243,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 981,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set",
- "line_number": 1
- }
-},
-{
- "pk": 1244,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 982,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 744
- }
-},
-{
- "pk": 1245,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 983,
- "file_name": "/home/andreea/poky/meta-yocto/conf/layer.conf",
- "operation": "set",
- "line_number": 16
- }
-},
-{
- "pk": 1246,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 984,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 384
- }
-},
-{
- "pk": 1247,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 985,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 522
- }
-},
-{
- "pk": 1248,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 986,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 300
- }
-},
-{
- "pk": 1249,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 987,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 319
- }
-},
-{
- "pk": 1250,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 988,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 690
- }
-},
-{
- "pk": 1251,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 989,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 98
- }
-},
-{
- "pk": 1252,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 990,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 661
- }
-},
-{
- "pk": 1253,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 991,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 692
- }
-},
-{
- "pk": 1254,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 992,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 386
- }
-},
-{
- "pk": 1255,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 993,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 49
- }
-},
-{
- "pk": 1256,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 994,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 14
- }
-},
-{
- "pk": 1257,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 996,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 251
- }
-},
-{
- "pk": 1258,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 997,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 512
- }
-},
-{
- "pk": 1259,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 998,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 730
- }
-},
-{
- "pk": 1260,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 999,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 613
- }
-},
-{
- "pk": 1261,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1000,
- "file_name": "/home/andreea/poky/meta/conf/distro/defaultsetup.conf",
- "operation": "set?",
- "line_number": 6
- }
-},
-{
- "pk": 1262,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1001,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set?",
- "line_number": 51
- }
-},
-{
- "pk": 1263,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1002,
- "file_name": "/home/andreea/poky/meta/classes/license.bbclass",
- "operation": "set",
- "line_number": 6
- }
-},
-{
- "pk": 1264,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1003,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 511
- }
-},
-{
- "pk": 1265,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1004,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 48
- }
-},
-{
- "pk": 1266,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1005,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 94
- }
-},
-{
- "pk": 1267,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1006,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 88
- }
-},
-{
- "pk": 1268,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1007,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 50
- }
-},
-{
- "pk": 1269,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1008,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 362
- }
-},
-{
- "pk": 1270,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1009,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 22
- }
-},
-{
- "pk": 1271,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1009,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 22
- }
-},
-{
- "pk": 1272,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1010,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 44
- }
-},
-{
- "pk": 1273,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1011,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 244
- }
-},
-{
- "pk": 1274,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1012,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 20
- }
-},
-{
- "pk": 1275,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1012,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "append",
- "line_number": 23
- }
-},
-{
- "pk": 1276,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1012,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "append",
- "line_number": 25
- }
-},
-{
- "pk": 1277,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1013,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 7
- }
-},
-{
- "pk": 1278,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1014,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 35
- }
-},
-{
- "pk": 1279,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1015,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 385
- }
-},
-{
- "pk": 1280,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1016,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 136
- }
-},
-{
- "pk": 1281,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1017,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 637
- }
-},
-{
- "pk": 1282,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1018,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 416
- }
-},
-{
- "pk": 1283,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1019,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 381
- }
-},
-{
- "pk": 1284,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1020,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 191
- }
-},
-{
- "pk": 1285,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1021,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 524
- }
-},
-{
- "pk": 1286,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1022,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 98
- }
-},
-{
- "pk": 1287,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1023,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 742
- }
-},
-{
- "pk": 1288,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1024,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set?",
- "line_number": 11
- }
-},
-{
- "pk": 1289,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1025,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 672
- }
-},
-{
- "pk": 1290,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1026,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 330
- }
-},
-{
- "pk": 1291,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1027,
- "file_name": "/home/andreea/poky/meta/classes/package_rpm.bbclass",
- "operation": "set",
- "line_number": 5
- }
-},
-{
- "pk": 1292,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1028,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 86
- }
-},
-{
- "pk": 1293,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1029,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 565
- }
-},
-{
- "pk": 1294,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1030,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 1295,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1031,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 735
- }
-},
-{
- "pk": 1296,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1032,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set",
- "line_number": 246
- }
-},
-{
- "pk": 1297,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1033,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 2
- }
-},
-{
- "pk": 1298,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1034,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 327
- }
-},
-{
- "pk": 1299,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1035,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 629
- }
-},
-{
- "pk": 1300,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1035,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 629
- }
-},
-{
- "pk": 1301,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1036,
- "file_name": "/home/andreea/poky/meta/classes/staging.bbclass",
- "operation": "set",
- "line_number": 67
- }
-},
-{
- "pk": 1302,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1037,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 136
- }
-},
-{
- "pk": 1303,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1038,
- "file_name": "/home/andreea/poky/meta/conf/distro/defaultsetup.conf",
- "operation": "set?",
- "line_number": 9
- }
-},
-{
- "pk": 1304,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1039,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 163
- }
-},
-{
- "pk": 1305,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1040,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 359
- }
-},
-{
- "pk": 1306,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1041,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 622
- }
-},
-{
- "pk": 1307,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1042,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 101
- }
-},
-{
- "pk": 1308,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1043,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 167
- }
-},
-{
- "pk": 1309,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1044,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 217
- }
-},
-{
- "pk": 1310,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1045,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 156
- }
-},
-{
- "pk": 1311,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1046,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 616
- }
-},
-{
- "pk": 1312,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1047,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 122
- }
-},
-{
- "pk": 1313,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1048,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 117
- }
-},
-{
- "pk": 1314,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1048,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 10
- }
-},
-{
- "pk": 1315,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1049,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 58
- }
-},
-{
- "pk": 1316,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1050,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 24
- }
-},
-{
- "pk": 1317,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1051,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 100
- }
-},
-{
- "pk": 1318,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1052,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 53
- }
-},
-{
- "pk": 1319,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1053,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 128
- }
-},
-{
- "pk": 1320,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1054,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 343
- }
-},
-{
- "pk": 1321,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1055,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 268
- }
-},
-{
- "pk": 1322,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1056,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 19
- }
-},
-{
- "pk": 1323,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1057,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1324,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1058,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 534
- }
-},
-{
- "pk": 1325,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1059,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 73
- }
-},
-{
- "pk": 1326,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1060,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 734
- }
-},
-{
- "pk": 1327,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1061,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 10
- }
-},
-{
- "pk": 1328,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1062,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 10
- }
-},
-{
- "pk": 1329,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1063,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 412
- }
-},
-{
- "pk": 1330,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1064,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 53
- }
-},
-{
- "pk": 1331,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1065,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 150
- }
-},
-{
- "pk": 1332,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1066,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 471
- }
-},
-{
- "pk": 1333,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1067,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 461
- }
-},
-{
- "pk": 1334,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1068,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 86
- }
-},
-{
- "pk": 1335,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1069,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 435
- }
-},
-{
- "pk": 1336,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1070,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 10
- }
-},
-{
- "pk": 1337,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1071,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 49
- }
-},
-{
- "pk": 1338,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1072,
- "file_name": "/home/andreea/poky/meta/conf/layer.conf",
- "operation": "set",
- "line_number": 15
- }
-},
-{
- "pk": 1339,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1072,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data_smart.py",
- "operation": "set",
- "line_number": 725
- }
-},
-{
- "pk": 1340,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1073,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 562
- }
-},
-{
- "pk": 1341,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1074,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 230
- }
-},
-{
- "pk": 1342,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1076,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 419
- }
-},
-{
- "pk": 1343,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1077,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 752
- }
-},
-{
- "pk": 1344,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1078,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 380
- }
-},
-{
- "pk": 1345,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1079,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 454
- }
-},
-{
- "pk": 1346,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1079,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 454
- }
-},
-{
- "pk": 1347,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1080,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 453
- }
-},
-{
- "pk": 1348,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1080,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 453
- }
-},
-{
- "pk": 1349,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1081,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 179
- }
-},
-{
- "pk": 1350,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1082,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 239
- }
-},
-{
- "pk": 1351,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1083,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 352
- }
-},
-{
- "pk": 1352,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1084,
- "file_name": "/home/andreea/poky/meta/classes/buildstats.bbclass",
- "operation": "set",
- "line_number": 2
- }
-},
-{
- "pk": 1353,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1085,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 504
- }
-},
-{
- "pk": 1354,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1086,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 343
- }
-},
-{
- "pk": 1355,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1087,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 199
- }
-},
-{
- "pk": 1356,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1088,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 11
- }
-},
-{
- "pk": 1357,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1089,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 490
- }
-},
-{
- "pk": 1358,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1089,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 490
- }
-},
-{
- "pk": 1359,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1090,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 97
- }
-},
-{
- "pk": 1360,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1091,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 482
- }
-},
-{
- "pk": 1361,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1092,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 131
- }
-},
-{
- "pk": 1362,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1093,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 450
- }
-},
-{
- "pk": 1363,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1093,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 450
- }
-},
-{
- "pk": 1364,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1094,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 99
- }
-},
-{
- "pk": 1365,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1095,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 480
- }
-},
-{
- "pk": 1366,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1096,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 354
- }
-},
-{
- "pk": 1367,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1097,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 194
- }
-},
-{
- "pk": 1368,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1098,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 140
- }
-},
-{
- "pk": 1369,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1099,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 738
- }
-},
-{
- "pk": 1370,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1101,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 338
- }
-},
-{
- "pk": 1371,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1102,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 428
- }
-},
-{
- "pk": 1372,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1103,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set",
- "line_number": 25
- }
-},
-{
- "pk": 1373,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1104,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 501
- }
-},
-{
- "pk": 1374,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1104,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 501
- }
-},
-{
- "pk": 1375,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1105,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 36
- }
-},
-{
- "pk": 1376,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1106,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 689
- }
-},
-{
- "pk": 1377,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1107,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 53
- }
-},
-{
- "pk": 1378,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1109,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 363
- }
-},
-{
- "pk": 1379,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1110,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 29
- }
-},
-{
- "pk": 1380,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1111,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set",
- "line_number": 42
- }
-},
-{
- "pk": 1381,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1112,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 709
- }
-},
-{
- "pk": 1382,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1113,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 85
- }
-},
-{
- "pk": 1383,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1114,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 439
- }
-},
-{
- "pk": 1384,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1114,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 439
- }
-},
-{
- "pk": 1385,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1115,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 409
- }
-},
-{
- "pk": 1386,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1116,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 449
- }
-},
-{
- "pk": 1387,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1116,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 449
- }
-},
-{
- "pk": 1388,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1117,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 88
- }
-},
-{
- "pk": 1389,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1118,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1390,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1118,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "auto env export",
- "line_number": 180
- }
-},
-{
- "pk": 1391,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1119,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 8
- }
-},
-{
- "pk": 1392,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1120,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 69
- }
-},
-{
- "pk": 1393,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1121,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 465
- }
-},
-{
- "pk": 1394,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1121,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 465
- }
-},
-{
- "pk": 1395,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1122,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 521
- }
-},
-{
- "pk": 1396,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1123,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 572
- }
-},
-{
- "pk": 1397,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1124,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 726
- }
-},
-{
- "pk": 1398,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1125,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 691
- }
-},
-{
- "pk": 1399,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1126,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 62
- }
-},
-{
- "pk": 1400,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1127,
- "file_name": "/home/andreea/poky/meta/conf/machine/qemux86.conf",
- "operation": "set?",
- "line_number": 5
- }
-},
-{
- "pk": 1401,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1127,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "set?",
- "line_number": 1
- }
-},
-{
- "pk": 1402,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1127,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 6
- }
-},
-{
- "pk": 1403,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1128,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 466
- }
-},
-{
- "pk": 1404,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1129,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 120
- }
-},
-{
- "pk": 1405,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1130,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 94
- }
-},
-{
- "pk": 1406,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1131,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 9
- }
-},
-{
- "pk": 1407,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1132,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 116
- }
-},
-{
- "pk": 1408,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1133,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 346
- }
-},
-{
- "pk": 1409,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1134,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 477
- }
-},
-{
- "pk": 1410,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1136,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 72
- }
-},
-{
- "pk": 1411,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1137,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 317
- }
-},
-{
- "pk": 1412,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1138,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 425
- }
-},
-{
- "pk": 1413,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1139,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 111
- }
-},
-{
- "pk": 1414,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1139,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "postdot",
- "line_number": 23
- }
-},
-{
- "pk": 1415,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1141,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 535
- }
-},
-{
- "pk": 1416,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1142,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-versions.inc",
- "operation": "set?",
- "line_number": 7
- }
-},
-{
- "pk": 1417,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1144,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 139
- }
-},
-{
- "pk": 1418,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1145,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 542
- }
-},
-{
- "pk": 1419,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1146,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 6
- }
-},
-{
- "pk": 1420,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1147,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 40
- }
-},
-{
- "pk": 1421,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1149,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 5
- }
-},
-{
- "pk": 1422,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1150,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 427
- }
-},
-{
- "pk": 1423,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1151,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "append",
- "line_number": 36
- }
-},
-{
- "pk": 1424,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1151,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 714
- }
-},
-{
- "pk": 1425,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1152,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 646
- }
-},
-{
- "pk": 1426,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1153,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 723
- }
-},
-{
- "pk": 1427,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1154,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 348
- }
-},
-{
- "pk": 1428,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1155,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 29
- }
-},
-{
- "pk": 1429,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1156,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 493
- }
-},
-{
- "pk": 1430,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1156,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 493
- }
-},
-{
- "pk": 1431,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1157,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 685
- }
-},
-{
- "pk": 1432,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1158,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 340
- }
-},
-{
- "pk": 1433,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1159,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 36
- }
-},
-{
- "pk": 1434,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1160,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 207
- }
-},
-{
- "pk": 1435,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1161,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 202
- }
-},
-{
- "pk": 1436,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1162,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 663
- }
-},
-{
- "pk": 1437,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1163,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 465
- }
-},
-{
- "pk": 1438,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1164,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 549
- }
-},
-{
- "pk": 1439,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1165,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 18
- }
-},
-{
- "pk": 1440,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1165,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 18
- }
-},
-{
- "pk": 1441,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1166,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 403
- }
-},
-{
- "pk": 1442,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1167,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 39
- }
-},
-{
- "pk": 1443,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1168,
- "file_name": "oe_import_eh(e)",
- "operation": "set",
- "line_number": 3
- }
-},
-{
- "pk": 1444,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1169,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 374
- }
-},
-{
- "pk": 1445,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1171,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 1446,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1172,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 707
- }
-},
-{
- "pk": 1447,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1173,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 575
- }
-},
-{
- "pk": 1448,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1174,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 404
- }
-},
-{
- "pk": 1449,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1175,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 703
- }
-},
-{
- "pk": 1450,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1176,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 560
- }
-},
-{
- "pk": 1451,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1177,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 643
- }
-},
-{
- "pk": 1452,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1178,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set?",
- "line_number": 8
- }
-},
-{
- "pk": 1453,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1179,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 186
- }
-},
-{
- "pk": 1454,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1180,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 367
- }
-},
-{
- "pk": 1455,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1181,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 34
- }
-},
-{
- "pk": 1456,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1182,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 620
- }
-},
-{
- "pk": 1457,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1183,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 257
- }
-},
-{
- "pk": 1458,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1184,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 472
- }
-},
-{
- "pk": 1459,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1185,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 9
- }
-},
-{
- "pk": 1460,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1186,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 129
- }
-},
-{
- "pk": 1461,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1187,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 33
- }
-},
-{
- "pk": 1462,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1189,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 311
- }
-},
-{
- "pk": 1463,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1190,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 244
- }
-},
-{
- "pk": 1464,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1191,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 574
- }
-},
-{
- "pk": 1465,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1192,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 566
- }
-},
-{
- "pk": 1466,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1193,
- "file_name": "/home/andreea/poky/meta/classes/utility-tasks.bbclass",
- "operation": "set",
- "line_number": 15
- }
-},
-{
- "pk": 1467,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1194,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 310
- }
-},
-{
- "pk": 1468,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1195,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "set?",
- "line_number": 24
- }
-},
-{
- "pk": 1469,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1196,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 513
- }
-},
-{
- "pk": 1470,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1197,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 284
- }
-},
-{
- "pk": 1471,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1198,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 760
- }
-},
-{
- "pk": 1472,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1200,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 146
- }
-},
-{
- "pk": 1473,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1201,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 322
- }
-},
-{
- "pk": 1474,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1202,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 27
- }
-},
-{
- "pk": 1475,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1203,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 550
- }
-},
-{
- "pk": 1476,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1203,
- "file_name": "conf/bitbake.conf",
- "operation": "append",
- "line_number": 551
- }
-},
-{
- "pk": 1477,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1204,
- "file_name": "/home/andreea/poky/meta/classes/chrpath.bbclass",
- "operation": "set?",
- "line_number": 2
- }
-},
-{
- "pk": 1478,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1205,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 95
- }
-},
-{
- "pk": 1479,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1206,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 111
- }
-},
-{
- "pk": 1480,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1207,
- "file_name": "/home/andreea/poky/meta/classes/package_rpm.bbclass",
- "operation": "append",
- "line_number": 1197
- }
-},
-{
- "pk": 1481,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1207,
- "file_name": "/home/andreea/poky/meta/classes/package_rpm.bbclass",
- "operation": "append",
- "line_number": 1198
- }
-},
-{
- "pk": 1482,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1208,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 25
- }
-},
-{
- "pk": 1483,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1209,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 414
- }
-},
-{
- "pk": 1484,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1210,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 125
- }
-},
-{
- "pk": 1485,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1211,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 575
- }
-},
-{
- "pk": 1486,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1212,
- "file_name": "/home/andreea/poky/meta/classes/insane.bbclass",
- "operation": "set?",
- "line_number": 45
- }
-},
-{
- "pk": 1487,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1213,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 269
- }
-},
-{
- "pk": 1488,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1214,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 355
- }
-},
-{
- "pk": 1489,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1215,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 294
- }
-},
-{
- "pk": 1490,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1216,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 47
- }
-},
-{
- "pk": 1491,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1217,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 65
- }
-},
-{
- "pk": 1492,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1218,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 459
- }
-},
-{
- "pk": 1493,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1219,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 658
- }
-},
-{
- "pk": 1494,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1219,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 659
- }
-},
-{
- "pk": 1495,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1219,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "postdot",
- "line_number": 9
- }
-},
-{
- "pk": 1496,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1220,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "append",
- "line_number": 104
- }
-},
-{
- "pk": 1497,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1220,
- "file_name": "/home/andreea/poky/meta/conf/distro/defaultsetup.conf",
- "operation": "append",
- "line_number": 21
- }
-},
-{
- "pk": 1498,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1220,
- "file_name": "/home/andreea/poky/meta/conf/sanity.conf",
- "operation": "append",
- "line_number": 15
- }
-},
-{
- "pk": 1499,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1220,
- "file_name": "conf/toaster.conf",
- "operation": "append",
- "line_number": 2
- }
-},
-{
- "pk": 1500,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1221,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 185
- }
-},
-{
- "pk": 1501,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1222,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set?",
- "line_number": 28
- }
-},
-{
- "pk": 1502,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1223,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 121
- }
-},
-{
- "pk": 1503,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1225,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 23
- }
-},
-{
- "pk": 1504,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1225,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 23
- }
-},
-{
- "pk": 1505,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1226,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 12
- }
-},
-{
- "pk": 1506,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1227,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 552
- }
-},
-{
- "pk": 1507,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1228,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set?",
- "line_number": 1838
- }
-},
-{
- "pk": 1508,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1229,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 375
- }
-},
-{
- "pk": 1509,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1230,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 12
- }
-},
-{
- "pk": 1510,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1231,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1511,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1231,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "auto env export",
- "line_number": 180
- }
-},
-{
- "pk": 1512,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1231,
- "file_name": "conf/bitbake.conf",
- "operation": "_prepend",
- "line_number": 429
- }
-},
-{
- "pk": 1513,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1231,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/parse/ast.py",
- "operation": "exported",
- "line_number": 71
- }
-},
-{
- "pk": 1514,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1231,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "_prepend",
- "line_number": 94
- }
-},
-{
- "pk": 1515,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1232,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/as-needed.inc",
- "operation": "set",
- "line_number": 10
- }
-},
-{
- "pk": 1516,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1233,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 240
- }
-},
-{
- "pk": 1517,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1234,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 499
- }
-},
-{
- "pk": 1518,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1234,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 499
- }
-},
-{
- "pk": 1519,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1235,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 390
- }
-},
-{
- "pk": 1520,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1236,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 610
- }
-},
-{
- "pk": 1521,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1237,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 44
- }
-},
-{
- "pk": 1522,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1238,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "set",
- "line_number": 13
- }
-},
-{
- "pk": 1523,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1239,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 289
- }
-},
-{
- "pk": 1524,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1240,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 488
- }
-},
-{
- "pk": 1525,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1241,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 666
- }
-},
-{
- "pk": 1526,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1242,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 289
- }
-},
-{
- "pk": 1527,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1243,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 134
- }
-},
-{
- "pk": 1528,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1244,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set",
- "line_number": 52
- }
-},
-{
- "pk": 1529,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1244,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 747
- }
-},
-{
- "pk": 1530,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1245,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 769
- }
-},
-{
- "pk": 1531,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1246,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 548
- }
-},
-{
- "pk": 1532,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1247,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 335
- }
-},
-{
- "pk": 1533,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1248,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 50
- }
-},
-{
- "pk": 1534,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1249,
- "file_name": "/home/andreea/poky/meta-yocto/conf/layer.conf",
- "operation": "set",
- "line_number": 10
- }
-},
-{
- "pk": 1535,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1250,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 742
- }
-},
-{
- "pk": 1536,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1251,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 731
- }
-},
-{
- "pk": 1537,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1252,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 469
- }
-},
-{
- "pk": 1538,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1252,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 469
- }
-},
-{
- "pk": 1539,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1253,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 470
- }
-},
-{
- "pk": 1540,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1253,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 470
- }
-},
-{
- "pk": 1541,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1254,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 30
- }
-},
-{
- "pk": 1542,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1254,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 30
- }
-},
-{
- "pk": 1543,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1255,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 405
- }
-},
-{
- "pk": 1544,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1256,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 559
- }
-},
-{
- "pk": 1545,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1257,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 47
- }
-},
-{
- "pk": 1546,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1258,
- "file_name": "/home/andreea/poky/meta/classes/buildstats.bbclass",
- "operation": "set",
- "line_number": 3
- }
-},
-{
- "pk": 1547,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1259,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 28
- }
-},
-{
- "pk": 1548,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1260,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 22
- }
-},
-{
- "pk": 1549,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1261,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 290
- }
-},
-{
- "pk": 1550,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1262,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 334
- }
-},
-{
- "pk": 1551,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1263,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 631
- }
-},
-{
- "pk": 1552,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1264,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 489
- }
-},
-{
- "pk": 1553,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1265,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set?",
- "line_number": 43
- }
-},
-{
- "pk": 1554,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1266,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 485
- }
-},
-{
- "pk": 1555,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1267,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 458
- }
-},
-{
- "pk": 1556,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1267,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 458
- }
-},
-{
- "pk": 1557,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1268,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 483
- }
-},
-{
- "pk": 1558,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1269,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 250
- }
-},
-{
- "pk": 1559,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1270,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 568
- }
-},
-{
- "pk": 1560,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1271,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 418
- }
-},
-{
- "pk": 1561,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1272,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 567
- }
-},
-{
- "pk": 1562,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1273,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 92
- }
-},
-{
- "pk": 1563,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1274,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 686
- }
-},
-{
- "pk": 1564,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1275,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 203
- }
-},
-{
- "pk": 1565,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1276,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 591
- }
-},
-{
- "pk": 1566,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1277,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 421
- }
-},
-{
- "pk": 1567,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1278,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 660
- }
-},
-{
- "pk": 1568,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1278,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "set?",
- "line_number": 2
- }
-},
-{
- "pk": 1569,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1279,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 190
- }
-},
-{
- "pk": 1570,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1280,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 189
- }
-},
-{
- "pk": 1571,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1281,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 128
- }
-},
-{
- "pk": 1572,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1282,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 162
- }
-},
-{
- "pk": 1573,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1283,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 276
- }
-},
-{
- "pk": 1574,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1284,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 192
- }
-},
-{
- "pk": 1575,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1285,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 417
- }
-},
-{
- "pk": 1576,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1287,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 39
- }
-},
-{
- "pk": 1577,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1288,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 770
- }
-},
-{
- "pk": 1578,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1289,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 188
- }
-},
-{
- "pk": 1579,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1290,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 372
- }
-},
-{
- "pk": 1580,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1291,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 643
- }
-},
-{
- "pk": 1581,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1291,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set?",
- "line_number": 103
- }
-},
-{
- "pk": 1582,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1291,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set",
- "line_number": 1
- }
-},
-{
- "pk": 1583,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1291,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 756
- }
-},
-{
- "pk": 1584,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1292,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 1816
- }
-},
-{
- "pk": 1585,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1293,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 476
- }
-},
-{
- "pk": 1586,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1294,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 132
- }
-},
-{
- "pk": 1587,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1295,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 346
- }
-},
-{
- "pk": 1588,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1296,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 379
- }
-},
-{
- "pk": 1589,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1297,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set?",
- "line_number": 16
- }
-},
-{
- "pk": 1590,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1298,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 370
- }
-},
-{
- "pk": 1591,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1299,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 63
- }
-},
-{
- "pk": 1592,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1300,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 33
- }
-},
-{
- "pk": 1593,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1301,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "set?",
- "line_number": 11
- }
-},
-{
- "pk": 1594,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1303,
- "file_name": "/home/andreea/poky/meta/classes/chrpath.bbclass",
- "operation": "set?",
- "line_number": 1
- }
-},
-{
- "pk": 1595,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1304,
- "file_name": "/home/andreea/poky/build/conf/local.conf",
- "operation": "set?",
- "line_number": 169
- }
-},
-{
- "pk": 1596,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1304,
- "file_name": "/home/andreea/poky/meta/conf/distro/defaultsetup.conf",
- "operation": "set?",
- "line_number": 18
- }
-},
-{
- "pk": 1597,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1305,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 252
- }
-},
-{
- "pk": 1598,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1306,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 581
- }
-},
-{
- "pk": 1599,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1307,
- "file_name": "/home/andreea/poky/meta/classes/debian.bbclass",
- "operation": "set",
- "line_number": 11
- }
-},
-{
- "pk": 1600,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1308,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 71
- }
-},
-{
- "pk": 1601,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1309,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 152
- }
-},
-{
- "pk": 1602,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1311,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 191
- }
-},
-{
- "pk": 1603,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1312,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 439
- }
-},
-{
- "pk": 1604,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1313,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 300
- }
-},
-{
- "pk": 1605,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1314,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 107
- }
-},
-{
- "pk": 1606,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1315,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set",
- "line_number": 1974
- }
-},
-{
- "pk": 1607,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1316,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 525
- }
-},
-{
- "pk": 1608,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1317,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 453
- }
-},
-{
- "pk": 1609,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1318,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/ia32/arch-ia32.inc",
- "operation": "set",
- "line_number": 42
- }
-},
-{
- "pk": 1610,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1319,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 24
- }
-},
-{
- "pk": 1611,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1319,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 24
- }
-},
-{
- "pk": 1612,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1320,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 354
- }
-},
-{
- "pk": 1613,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1321,
- "file_name": "/home/andreea/poky/meta/classes/metadata_scm.bbclass",
- "operation": "set?",
- "line_number": 1
- }
-},
-{
- "pk": 1614,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1322,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 614
- }
-},
-{
- "pk": 1615,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1323,
- "file_name": "/home/andreea/poky/meta/classes/staging.bbclass",
- "operation": "set?",
- "line_number": 65
- }
-},
-{
- "pk": 1616,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1324,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "set?",
- "line_number": 1
- }
-},
-{
- "pk": 1617,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1325,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 66
- }
-},
-{
- "pk": 1618,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1327,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 23
- }
-},
-{
- "pk": 1619,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1328,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 445
- }
-},
-{
- "pk": 1620,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1329,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 121
- }
-},
-{
- "pk": 1621,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1330,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 461
- }
-},
-{
- "pk": 1622,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1331,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 153
- }
-},
-{
- "pk": 1623,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1332,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 328
- }
-},
-{
- "pk": 1624,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1332,
- "file_name": "/home/andreea/poky/meta/conf/distro/defaultsetup.conf",
- "operation": "set",
- "line_number": 16
- }
-},
-{
- "pk": 1625,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1332,
- "file_name": "conf/bitbake.conf",
- "operation": "immediate",
- "line_number": 699
- }
-},
-{
- "pk": 1626,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1333,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 15
- }
-},
-{
- "pk": 1627,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1334,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 119
- }
-},
-{
- "pk": 1628,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1335,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 546
- }
-},
-{
- "pk": 1629,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1336,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1630,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1337,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 13
- }
-},
-{
- "pk": 1631,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1338,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 306
- }
-},
-{
- "pk": 1632,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1339,
- "file_name": "/home/andreea/poky/meta/classes/license.bbclass",
- "operation": "set",
- "line_number": 12
- }
-},
-{
- "pk": 1633,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1340,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 138
- }
-},
-{
- "pk": 1634,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1340,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 141
- }
-},
-{
- "pk": 1635,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1341,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 135
- }
-},
-{
- "pk": 1636,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1342,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 477
- }
-},
-{
- "pk": 1637,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1343,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 32
- }
-},
-{
- "pk": 1638,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1344,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 197
- }
-},
-{
- "pk": 1639,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1345,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 90
- }
-},
-{
- "pk": 1640,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1346,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 106
- }
-},
-{
- "pk": 1641,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1347,
- "file_name": "/home/andreea/poky/meta/classes/package.bbclass",
- "operation": "set?",
- "line_number": 1831
- }
-},
-{
- "pk": 1642,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1348,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 227
- }
-},
-{
- "pk": 1643,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1349,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 89
- }
-},
-{
- "pk": 1644,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1350,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 235
- }
-},
-{
- "pk": 1645,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1351,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 64
- }
-},
-{
- "pk": 1646,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1352,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 475
- }
-},
-{
- "pk": 1647,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1353,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 291
- }
-},
-{
- "pk": 1648,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1354,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 92
- }
-},
-{
- "pk": 1649,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1355,
- "file_name": "/home/andreea/poky/meta/conf/licenses.conf",
- "operation": "set",
- "line_number": 125
- }
-},
-{
- "pk": 1650,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1356,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 392
- }
-},
-{
- "pk": 1651,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1357,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 210
- }
-},
-{
- "pk": 1652,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1358,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 353
- }
-},
-{
- "pk": 1653,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1359,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 124
- }
-},
-{
- "pk": 1654,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1360,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 7
- }
-},
-{
- "pk": 1655,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1361,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1656,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1361,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "auto env export",
- "line_number": 180
- }
-},
-{
- "pk": 1657,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1361,
- "file_name": "/home/andreea/poky/meta/classes/terminal.bbclass",
- "operation": "set?",
- "line_number": 11
- }
-},
-{
- "pk": 1658,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1362,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 16
- }
-},
-{
- "pk": 1659,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1363,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 216
- }
-},
-{
- "pk": 1660,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1364,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 93
- }
-},
-{
- "pk": 1661,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1365,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 133
- }
-},
-{
- "pk": 1662,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1367,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 344
- }
-},
-{
- "pk": 1663,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1368,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 552
- }
-},
-{
- "pk": 1664,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1369,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-distrovars.inc",
- "operation": "set?",
- "line_number": 33
- }
-},
-{
- "pk": 1665,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1370,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tcmode-default.inc",
- "operation": "set",
- "line_number": 17
- }
-},
-{
- "pk": 1666,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1371,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 617
- }
-},
-{
- "pk": 1667,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1373,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 496
- }
-},
-{
- "pk": 1668,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1374,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 618
- }
-},
-{
- "pk": 1669,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1375,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 315
- }
-},
-{
- "pk": 1670,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1376,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 665
- }
-},
-{
- "pk": 1671,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1377,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 517
- }
-},
-{
- "pk": 1672,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1378,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 560
- }
-},
-{
- "pk": 1673,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1379,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 61
- }
-},
-{
- "pk": 1674,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1380,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "prepend",
- "line_number": 63
- }
-},
-{
- "pk": 1675,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1380,
- "file_name": "/home/andreea/poky/meta/classes/mirrors.bbclass",
- "operation": "append",
- "line_number": 68
- }
-},
-{
- "pk": 1676,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1381,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/tune-i586.inc",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 1677,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1382,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 436
- }
-},
-{
- "pk": 1678,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1383,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 234
- }
-},
-{
- "pk": 1679,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1384,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1680,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1385,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 82
- }
-},
-{
- "pk": 1681,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1386,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 40
- }
-},
-{
- "pk": 1682,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1387,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 110
- }
-},
-{
- "pk": 1683,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1388,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 762
- }
-},
-{
- "pk": 1684,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1389,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 620
- }
-},
-{
- "pk": 1685,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1390,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 682
- }
-},
-{
- "pk": 1686,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1391,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 727
- }
-},
-{
- "pk": 1687,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1393,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 383
- }
-},
-{
- "pk": 1688,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1394,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 468
- }
-},
-{
- "pk": 1689,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1395,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 737
- }
-},
-{
- "pk": 1690,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1396,
- "file_name": "/home/andreea/poky/meta/conf/layer.conf",
- "operation": "set",
- "line_number": 12
- }
-},
-{
- "pk": 1691,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1397,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 253
- }
-},
-{
- "pk": 1692,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1397,
- "file_name": "/home/andreea/poky/meta/classes/base.bbclass",
- "operation": "_prepend",
- "line_number": 80
- }
-},
-{
- "pk": 1693,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1398,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 40
- }
-},
-{
- "pk": 1694,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1399,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 209
- }
-},
-{
- "pk": 1695,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1400,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 350
- }
-},
-{
- "pk": 1696,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1401,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 600
- }
-},
-{
- "pk": 1697,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1402,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 391
- }
-},
-{
- "pk": 1698,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1403,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 526
- }
-},
-{
- "pk": 1699,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1404,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 133
- }
-},
-{
- "pk": 1700,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1405,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 537
- }
-},
-{
- "pk": 1701,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1406,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 32
- }
-},
-{
- "pk": 1702,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1407,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 755
- }
-},
-{
- "pk": 1703,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1408,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 42
- }
-},
-{
- "pk": 1704,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1409,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 14
- }
-},
-{
- "pk": 1705,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1410,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 423
- }
-},
-{
- "pk": 1706,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1410,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "append",
- "line_number": 26
- }
-},
-{
- "pk": 1707,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1411,
- "file_name": "conf/bitbake.conf",
- "operation": "exported",
- "line_number": 472
- }
-},
-{
- "pk": 1708,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1411,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 472
- }
-},
-{
- "pk": 1709,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1412,
- "file_name": "/home/andreea/poky/meta/conf/machine/qemux86.conf",
- "operation": "set",
- "line_number": 13
- }
-},
-{
- "pk": 1710,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1413,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1711,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1414,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 277
- }
-},
-{
- "pk": 1712,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1415,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 105
- }
-},
-{
- "pk": 1713,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1416,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 349
- }
-},
-{
- "pk": 1714,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1417,
- "file_name": "/home/andreea/poky/meta-yocto/conf/distro/poky.conf",
- "operation": "set?",
- "line_number": 94
- }
-},
-{
- "pk": 1715,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1417,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 765
- }
-},
-{
- "pk": 1716,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1419,
- "file_name": "/home/andreea/poky/meta/classes/buildhistory.bbclass",
- "operation": "set?",
- "line_number": 18
- }
-},
-{
- "pk": 1717,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1420,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 242
- }
-},
-{
- "pk": 1718,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1421,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 272
- }
-},
-{
- "pk": 1719,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1423,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 782
- }
-},
-{
- "pk": 1720,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1424,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 502
- }
-},
-{
- "pk": 1721,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1425,
- "file_name": "/home/andreea/poky/bitbake/lib/bb/data.py",
- "operation": "from env",
- "line_number": 178
- }
-},
-{
- "pk": 1722,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1426,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/tclibc-eglibc.inc",
- "operation": "set?",
- "line_number": 13
- }
-},
-{
- "pk": 1723,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1427,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 754
- }
-},
-{
- "pk": 1724,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1428,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 426
- }
-},
-{
- "pk": 1725,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1429,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 373
- }
-},
-{
- "pk": 1726,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1430,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 298
- }
-},
-{
- "pk": 1727,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1431,
- "file_name": "/home/andreea/poky/meta/conf/machine/qemux86.conf",
- "operation": "set?",
- "line_number": 8
- }
-},
-{
- "pk": 1728,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1431,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "set?",
- "line_number": 5
- }
-},
-{
- "pk": 1729,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1431,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 11
- }
-},
-{
- "pk": 1730,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1432,
- "file_name": "/home/andreea/poky/meta/conf/machine/qemux86.conf",
- "operation": "set?",
- "line_number": 7
- }
-},
-{
- "pk": 1731,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1432,
- "file_name": "/home/andreea/poky/meta/conf/machine/include/qemu.inc",
- "operation": "set?",
- "line_number": 4
- }
-},
-{
- "pk": 1732,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1432,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/default-providers.inc",
- "operation": "set?",
- "line_number": 10
- }
-},
-{
- "pk": 1733,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1433,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 590
- }
-},
-{
- "pk": 1734,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1434,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 582
- }
-},
-{
- "pk": 1735,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1435,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 708
- }
-},
-{
- "pk": 1736,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1436,
- "file_name": "conf/bitbake.conf",
- "operation": "set?",
- "line_number": 217
- }
-},
-{
- "pk": 1737,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1437,
- "file_name": "conf/bitbake.conf",
- "operation": "set",
- "line_number": 382
- }
-},
-{
- "pk": 1738,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1439,
- "file_name": "/home/andreea/poky/meta/classes/utility-tasks.bbclass",
- "operation": "set?",
- "line_number": 13
- }
-},
-{
- "pk": 1739,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1439,
- "file_name": "/home/andreea/poky/meta/classes/sstate.bbclass",
- "operation": "append",
- "line_number": 363
- }
-},
-{
- "pk": 1740,
- "model": "orm.variablehistory",
- "fields": {
- "variable": 1441,
- "file_name": "/home/andreea/poky/meta/conf/distro/include/seperatebuilddir.inc",
- "operation": "set",
- "line_number": 771
- }
-}
-]
diff --git a/bitbake/lib/toaster/orm/migrations/0014_auto__chg_field_package_summary__chg_field_layer_summary__chg_field_re.py b/bitbake/lib/toaster/orm/migrations/0014_auto__chg_field_package_summary__chg_field_layer_summary__chg_field_re.py
new file mode 100644
index 0000000000..7945f15a17
--- /dev/null
+++ b/bitbake/lib/toaster/orm/migrations/0014_auto__chg_field_package_summary__chg_field_layer_summary__chg_field_re.py
@@ -0,0 +1,336 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Changing field 'Package.summary'
+ db.alter_column(u'orm_package', 'summary', self.gf('django.db.models.fields.TextField')())
+
+ # Changing field 'Layer.summary'
+ db.alter_column(u'orm_layer', 'summary', self.gf('django.db.models.fields.TextField')(null=True))
+
+ # Changing field 'Recipe.summary'
+ db.alter_column(u'orm_recipe', 'summary', self.gf('django.db.models.fields.TextField')())
+
+ def backwards(self, orm):
+
+ # Changing field 'Package.summary'
+ db.alter_column(u'orm_package', 'summary', self.gf('django.db.models.fields.CharField')(max_length=200))
+
+ # Changing field 'Layer.summary'
+ db.alter_column(u'orm_layer', 'summary', self.gf('django.db.models.fields.CharField')(max_length=200, null=True))
+
+ # Changing field 'Recipe.summary'
+ db.alter_column(u'orm_recipe', 'summary', self.gf('django.db.models.fields.CharField')(max_length=100))
+
+ models = {
+ u'orm.bitbakeversion': {
+ 'Meta': {'object_name': 'BitbakeVersion'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'giturl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.branch': {
+ 'Meta': {'unique_together': "(('layer_source', 'name'), ('layer_source', 'up_id'))", 'object_name': 'Branch'},
+ 'bitbake_branch': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'True', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.build': {
+ 'Meta': {'object_name': 'Build'},
+ 'bitbake_version': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'build_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'completed_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'cooker_log_path': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'distro': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'distro_version': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'errors_no': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'machine': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']", 'null': 'True'}),
+ 'started_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'timespent': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'warnings_no': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+ },
+ u'orm.helptext': {
+ 'Meta': {'object_name': 'HelpText'},
+ 'area': ('django.db.models.fields.IntegerField', [], {}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'helptext_build'", 'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'text': ('django.db.models.fields.TextField', [], {})
+ },
+ u'orm.layer': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'), ('layer_source', 'name'))", 'object_name': 'Layer'},
+ 'description': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_index_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'local_path': ('django.db.models.fields.FilePathField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'vcs_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_file_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'})
+ },
+ u'orm.layer_version': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Layer_Version'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'layer_version_build'", 'null': 'True', 'to': u"orm['orm.Build']"}),
+ 'commit': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'layer_version_layer'", 'to': u"orm['orm.Layer']"}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'up_branch': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.Branch']", 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.layersource': {
+ 'Meta': {'unique_together': "(('sourcetype', 'apiurl'),)", 'object_name': 'LayerSource'},
+ 'apiurl': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '63'}),
+ 'sourcetype': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.layerversiondependency': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'LayerVersionDependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependees'", 'to': u"orm['orm.Layer_Version']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependencies'", 'to': u"orm['orm.Layer_Version']"}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.logmessage': {
+ 'Meta': {'object_name': 'LogMessage'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'level': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'lineno': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'pathname': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Task']", 'null': 'True', 'blank': 'True'})
+ },
+ u'orm.machine': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Machine'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.package': {
+ 'Meta': {'object_name': 'Package'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'installed_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100'}),
+ 'installed_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Recipe']", 'null': 'True'}),
+ 'revision': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.package_dependency': {
+ 'Meta': {'object_name': 'Package_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_target'", 'to': u"orm['orm.Package']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_source'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']", 'null': 'True'})
+ },
+ u'orm.package_file': {
+ 'Meta': {'object_name': 'Package_File'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildfilelist_package'", 'to': u"orm['orm.Package']"}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.project': {
+ 'Meta': {'object_name': 'Project'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'user_id': ('django.db.models.fields.IntegerField', [], {'null': 'True'})
+ },
+ u'orm.projectlayer': {
+ 'Meta': {'object_name': 'ProjectLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layercommit': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']", 'null': 'True'}),
+ 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"})
+ },
+ u'orm.projecttarget': {
+ 'Meta': {'object_name': 'ProjectTarget'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'task': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'})
+ },
+ u'orm.projectvariable': {
+ 'Meta': {'object_name': 'ProjectVariable'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.recipe': {
+ 'Meta': {'object_name': 'Recipe'},
+ 'bugtracker': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'file_path': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ 'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'recipe_layer_version'", 'to': u"orm['orm.Layer_Version']"}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.recipe_dependency': {
+ 'Meta': {'object_name': 'Recipe_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_depends'", 'to': u"orm['orm.Recipe']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_recipe'", 'to': u"orm['orm.Recipe']"})
+ },
+ u'orm.release': {
+ 'Meta': {'object_name': 'Release'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.releasedefaultlayer': {
+ 'Meta': {'object_name': 'ReleaseDefaultLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer']"}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"})
+ },
+ u'orm.target': {
+ 'Meta': {'object_name': 'Target'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'is_image': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'license_manifest_path': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ u'orm.target_file': {
+ 'Meta': {'object_name': 'Target_File'},
+ 'directory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'directory_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'group': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inodetype': ('django.db.models.fields.IntegerField', [], {}),
+ 'owner': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '100'}),
+ 'permission': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {}),
+ 'sym_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'symlink_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_image_file': {
+ 'Meta': {'object_name': 'Target_Image_File'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '254'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_installed_package': {
+ 'Meta': {'object_name': 'Target_Installed_Package'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildtargetlist_package'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.task': {
+ 'Meta': {'ordering': "('order', 'recipe')", 'unique_together': "(('build', 'recipe', 'task_name'),)", 'object_name': 'Task'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_build'", 'to': u"orm['orm.Build']"}),
+ 'cpu_usage': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ 'disk_io': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'elapsed_time': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'logfile': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
+ 'path_to_sstate_obj': ('django.db.models.fields.FilePathField', [], {'max_length': '500', 'blank': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'build_recipe'", 'to': u"orm['orm.Recipe']"}),
+ 'script_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'source_url': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'sstate_checksum': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'sstate_result': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'task_executed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'task_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'work_directory': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'orm.task_dependency': {
+ 'Meta': {'object_name': 'Task_Dependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_depends'", 'to': u"orm['orm.Task']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_task'", 'to': u"orm['orm.Task']"})
+ },
+ u'orm.toastersetting': {
+ 'Meta': {'object_name': 'ToasterSetting'},
+ 'helptext': ('django.db.models.fields.TextField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '63'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ u'orm.toastersettingdefaultlayer': {
+ 'Meta': {'object_name': 'ToasterSettingDefaultLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']"})
+ },
+ u'orm.variable': {
+ 'Meta': {'object_name': 'Variable'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'variable_build'", 'to': u"orm['orm.Build']"}),
+ 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'human_readable_name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'variable_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'variable_value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.variablehistory': {
+ 'Meta': {'object_name': 'VariableHistory'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'operation': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'variable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vhistory'", 'to': u"orm['orm.Variable']"})
+ }
+ }
+
+ complete_apps = ['orm'] \ No newline at end of file
diff --git a/bitbake/lib/toaster/orm/migrations/0015_auto__add_field_layer_vcs_web_url__add_field_layer_vcs_web_tree_base_u.py b/bitbake/lib/toaster/orm/migrations/0015_auto__add_field_layer_vcs_web_url__add_field_layer_vcs_web_tree_base_u.py
new file mode 100644
index 0000000000..6e664c9fc8
--- /dev/null
+++ b/bitbake/lib/toaster/orm/migrations/0015_auto__add_field_layer_vcs_web_url__add_field_layer_vcs_web_tree_base_u.py
@@ -0,0 +1,336 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Adding field 'Layer.vcs_web_url'
+ db.add_column(u'orm_layer', 'vcs_web_url',
+ self.gf('django.db.models.fields.URLField')(default=None, max_length=200, null=True),
+ keep_default=False)
+
+ # Adding field 'Layer.vcs_web_tree_base_url'
+ db.add_column(u'orm_layer', 'vcs_web_tree_base_url',
+ self.gf('django.db.models.fields.URLField')(default=None, max_length=200, null=True),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting field 'Layer.vcs_web_url'
+ db.delete_column(u'orm_layer', 'vcs_web_url')
+
+ # Deleting field 'Layer.vcs_web_tree_base_url'
+ db.delete_column(u'orm_layer', 'vcs_web_tree_base_url')
+
+
+ models = {
+ u'orm.bitbakeversion': {
+ 'Meta': {'object_name': 'BitbakeVersion'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'giturl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.branch': {
+ 'Meta': {'unique_together': "(('layer_source', 'name'), ('layer_source', 'up_id'))", 'object_name': 'Branch'},
+ 'bitbake_branch': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'True', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.build': {
+ 'Meta': {'object_name': 'Build'},
+ 'bitbake_version': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'build_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'completed_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'cooker_log_path': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'distro': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'distro_version': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'errors_no': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'machine': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']", 'null': 'True'}),
+ 'started_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'timespent': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'warnings_no': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+ },
+ u'orm.helptext': {
+ 'Meta': {'object_name': 'HelpText'},
+ 'area': ('django.db.models.fields.IntegerField', [], {}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'helptext_build'", 'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'text': ('django.db.models.fields.TextField', [], {})
+ },
+ u'orm.layer': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'), ('layer_source', 'name'))", 'object_name': 'Layer'},
+ 'description': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_index_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'local_path': ('django.db.models.fields.FilePathField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'vcs_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_file_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_tree_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'})
+ },
+ u'orm.layer_version': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Layer_Version'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'layer_version_build'", 'null': 'True', 'to': u"orm['orm.Build']"}),
+ 'commit': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'layer_version_layer'", 'to': u"orm['orm.Layer']"}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'up_branch': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.Branch']", 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.layersource': {
+ 'Meta': {'unique_together': "(('sourcetype', 'apiurl'),)", 'object_name': 'LayerSource'},
+ 'apiurl': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '63'}),
+ 'sourcetype': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.layerversiondependency': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'LayerVersionDependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependees'", 'to': u"orm['orm.Layer_Version']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependencies'", 'to': u"orm['orm.Layer_Version']"}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.logmessage': {
+ 'Meta': {'object_name': 'LogMessage'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'level': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'lineno': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'pathname': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Task']", 'null': 'True', 'blank': 'True'})
+ },
+ u'orm.machine': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Machine'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.package': {
+ 'Meta': {'object_name': 'Package'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'installed_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100'}),
+ 'installed_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Recipe']", 'null': 'True'}),
+ 'revision': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.package_dependency': {
+ 'Meta': {'object_name': 'Package_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_target'", 'to': u"orm['orm.Package']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_source'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']", 'null': 'True'})
+ },
+ u'orm.package_file': {
+ 'Meta': {'object_name': 'Package_File'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildfilelist_package'", 'to': u"orm['orm.Package']"}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.project': {
+ 'Meta': {'object_name': 'Project'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'user_id': ('django.db.models.fields.IntegerField', [], {'null': 'True'})
+ },
+ u'orm.projectlayer': {
+ 'Meta': {'object_name': 'ProjectLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layercommit': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']", 'null': 'True'}),
+ 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"})
+ },
+ u'orm.projecttarget': {
+ 'Meta': {'object_name': 'ProjectTarget'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'task': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'})
+ },
+ u'orm.projectvariable': {
+ 'Meta': {'object_name': 'ProjectVariable'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.recipe': {
+ 'Meta': {'object_name': 'Recipe'},
+ 'bugtracker': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'file_path': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ 'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'recipe_layer_version'", 'to': u"orm['orm.Layer_Version']"}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.recipe_dependency': {
+ 'Meta': {'object_name': 'Recipe_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_depends'", 'to': u"orm['orm.Recipe']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_recipe'", 'to': u"orm['orm.Recipe']"})
+ },
+ u'orm.release': {
+ 'Meta': {'object_name': 'Release'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.releasedefaultlayer': {
+ 'Meta': {'object_name': 'ReleaseDefaultLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer']"}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"})
+ },
+ u'orm.target': {
+ 'Meta': {'object_name': 'Target'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'is_image': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'license_manifest_path': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ u'orm.target_file': {
+ 'Meta': {'object_name': 'Target_File'},
+ 'directory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'directory_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'group': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inodetype': ('django.db.models.fields.IntegerField', [], {}),
+ 'owner': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '100'}),
+ 'permission': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {}),
+ 'sym_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'symlink_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_image_file': {
+ 'Meta': {'object_name': 'Target_Image_File'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '254'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_installed_package': {
+ 'Meta': {'object_name': 'Target_Installed_Package'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildtargetlist_package'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.task': {
+ 'Meta': {'ordering': "('order', 'recipe')", 'unique_together': "(('build', 'recipe', 'task_name'),)", 'object_name': 'Task'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_build'", 'to': u"orm['orm.Build']"}),
+ 'cpu_usage': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ 'disk_io': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'elapsed_time': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'logfile': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
+ 'path_to_sstate_obj': ('django.db.models.fields.FilePathField', [], {'max_length': '500', 'blank': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'build_recipe'", 'to': u"orm['orm.Recipe']"}),
+ 'script_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'source_url': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'sstate_checksum': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'sstate_result': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'task_executed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'task_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'work_directory': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'orm.task_dependency': {
+ 'Meta': {'object_name': 'Task_Dependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_depends'", 'to': u"orm['orm.Task']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_task'", 'to': u"orm['orm.Task']"})
+ },
+ u'orm.toastersetting': {
+ 'Meta': {'object_name': 'ToasterSetting'},
+ 'helptext': ('django.db.models.fields.TextField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '63'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ u'orm.toastersettingdefaultlayer': {
+ 'Meta': {'object_name': 'ToasterSettingDefaultLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']"})
+ },
+ u'orm.variable': {
+ 'Meta': {'object_name': 'Variable'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'variable_build'", 'to': u"orm['orm.Build']"}),
+ 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'human_readable_name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'variable_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'variable_value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.variablehistory': {
+ 'Meta': {'object_name': 'VariableHistory'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'operation': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'variable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vhistory'", 'to': u"orm['orm.Variable']"})
+ }
+ }
+
+ complete_apps = ['orm'] \ No newline at end of file
diff --git a/bitbake/lib/toaster/orm/migrations/0016_auto__add_field_release_helptext__chg_field_release_branch__add_index_.py b/bitbake/lib/toaster/orm/migrations/0016_auto__add_field_release_helptext__chg_field_release_branch__add_index_.py
new file mode 100644
index 0000000000..545c0ba586
--- /dev/null
+++ b/bitbake/lib/toaster/orm/migrations/0016_auto__add_field_release_helptext__chg_field_release_branch__add_index_.py
@@ -0,0 +1,359 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Adding field 'Release.helptext'
+ db.add_column(u'orm_release', 'helptext',
+ self.gf('django.db.models.fields.TextField')(null=True),
+ keep_default=False)
+
+
+ # Renaming column for 'Release.branch' to match new field type.
+ db.delete_column(u'orm_release', 'branch')
+
+ # Changing field 'Release.branch'
+ db.add_column(u'orm_release', 'branch', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['orm.Branch'], default=-1))
+
+ # Deleting field 'Branch.bitbake_branch'
+ db.delete_column(u'orm_branch', 'bitbake_branch')
+
+ # Adding unique constraint on 'Recipe', fields ['layer_version', 'file_path']
+ db.create_unique(u'orm_recipe', ['layer_version_id', 'file_path'])
+
+ # Adding unique constraint on 'ProjectLayer', fields ['project', 'layercommit']
+ db.create_unique(u'orm_projectlayer', ['project_id', 'layercommit_id'])
+
+
+ def backwards(self, orm):
+ # Removing unique constraint on 'ProjectLayer', fields ['project', 'layercommit']
+ db.delete_unique(u'orm_projectlayer', ['project_id', 'layercommit_id'])
+
+ # Removing unique constraint on 'Recipe', fields ['layer_version', 'file_path']
+ db.delete_unique(u'orm_recipe', ['layer_version_id', 'file_path'])
+
+ # Deleting field 'Release.helptext'
+ db.delete_column(u'orm_release', 'helptext')
+
+ # Renaming column for 'Release.branch' to match new field type.
+ db.rename_column(u'orm_release', 'branch_id', 'branch')
+ # Changing field 'Release.branch'
+ db.alter_column(u'orm_release', 'branch', self.gf('django.db.models.fields.CharField')(max_length=32))
+ # Adding field 'Branch.bitbake_branch'
+ db.add_column(u'orm_branch', 'bitbake_branch',
+ self.gf('django.db.models.fields.CharField')(default='', max_length=50, blank=True),
+ keep_default=False)
+
+
+ models = {
+ u'orm.bitbakeversion': {
+ 'Meta': {'object_name': 'BitbakeVersion'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'giturl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.branch': {
+ 'Meta': {'unique_together': "(('layer_source', 'name'), ('layer_source', 'up_id'))", 'object_name': 'Branch'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'True', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.build': {
+ 'Meta': {'object_name': 'Build'},
+ 'bitbake_version': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'build_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'completed_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'cooker_log_path': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'distro': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'distro_version': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'errors_no': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'machine': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']", 'null': 'True'}),
+ 'started_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'timespent': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'warnings_no': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+ },
+ u'orm.helptext': {
+ 'Meta': {'object_name': 'HelpText'},
+ 'area': ('django.db.models.fields.IntegerField', [], {}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'helptext_build'", 'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'text': ('django.db.models.fields.TextField', [], {})
+ },
+ u'orm.layer': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'), ('layer_source', 'name'))", 'object_name': 'Layer'},
+ 'description': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_index_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'local_path': ('django.db.models.fields.FilePathField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'vcs_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_file_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_tree_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'})
+ },
+ u'orm.layer_version': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Layer_Version'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'layer_version_build'", 'null': 'True', 'to': u"orm['orm.Build']"}),
+ 'commit': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'layer_version_layer'", 'to': u"orm['orm.Layer']"}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'up_branch': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.Branch']", 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.layersource': {
+ 'Meta': {'unique_together': "(('sourcetype', 'apiurl'),)", 'object_name': 'LayerSource'},
+ 'apiurl': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '63'}),
+ 'sourcetype': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.layerversiondependency': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'LayerVersionDependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependees'", 'to': u"orm['orm.Layer_Version']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependencies'", 'to': u"orm['orm.Layer_Version']"}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.logmessage': {
+ 'Meta': {'object_name': 'LogMessage'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'level': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'lineno': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'pathname': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Task']", 'null': 'True', 'blank': 'True'})
+ },
+ u'orm.machine': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Machine'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.package': {
+ 'Meta': {'object_name': 'Package'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'installed_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100'}),
+ 'installed_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Recipe']", 'null': 'True'}),
+ 'revision': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.package_dependency': {
+ 'Meta': {'object_name': 'Package_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_target'", 'to': u"orm['orm.Package']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_source'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']", 'null': 'True'})
+ },
+ u'orm.package_file': {
+ 'Meta': {'object_name': 'Package_File'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildfilelist_package'", 'to': u"orm['orm.Package']"}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.project': {
+ 'Meta': {'object_name': 'Project'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'user_id': ('django.db.models.fields.IntegerField', [], {'null': 'True'})
+ },
+ u'orm.projectlayer': {
+ 'Meta': {'unique_together': "(('project', 'layercommit'),)", 'object_name': 'ProjectLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layercommit': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']", 'null': 'True'}),
+ 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"})
+ },
+ u'orm.projecttarget': {
+ 'Meta': {'object_name': 'ProjectTarget'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'task': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'})
+ },
+ u'orm.projectvariable': {
+ 'Meta': {'object_name': 'ProjectVariable'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.recipe': {
+ 'Meta': {'unique_together': "(('layer_version', 'file_path'),)", 'object_name': 'Recipe'},
+ 'bugtracker': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'file_path': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ 'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'recipe_layer_version'", 'to': u"orm['orm.Layer_Version']"}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.recipe_dependency': {
+ 'Meta': {'object_name': 'Recipe_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_depends'", 'to': u"orm['orm.Recipe']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_recipe'", 'to': u"orm['orm.Recipe']"})
+ },
+ u'orm.release': {
+ 'Meta': {'object_name': 'Release'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'branch': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Branch']"}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'helptext': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.releasedefaultlayer': {
+ 'Meta': {'object_name': 'ReleaseDefaultLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer']"}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"})
+ },
+ u'orm.target': {
+ 'Meta': {'object_name': 'Target'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'is_image': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'license_manifest_path': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ u'orm.target_file': {
+ 'Meta': {'object_name': 'Target_File'},
+ 'directory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'directory_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'group': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inodetype': ('django.db.models.fields.IntegerField', [], {}),
+ 'owner': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '100'}),
+ 'permission': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {}),
+ 'sym_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'symlink_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_image_file': {
+ 'Meta': {'object_name': 'Target_Image_File'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '254'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_installed_package': {
+ 'Meta': {'object_name': 'Target_Installed_Package'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildtargetlist_package'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.task': {
+ 'Meta': {'ordering': "('order', 'recipe')", 'unique_together': "(('build', 'recipe', 'task_name'),)", 'object_name': 'Task'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_build'", 'to': u"orm['orm.Build']"}),
+ 'cpu_usage': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ 'disk_io': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'elapsed_time': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'logfile': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
+ 'path_to_sstate_obj': ('django.db.models.fields.FilePathField', [], {'max_length': '500', 'blank': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'build_recipe'", 'to': u"orm['orm.Recipe']"}),
+ 'script_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'source_url': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'sstate_checksum': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'sstate_result': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'task_executed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'task_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'work_directory': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'orm.task_dependency': {
+ 'Meta': {'object_name': 'Task_Dependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_depends'", 'to': u"orm['orm.Task']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_task'", 'to': u"orm['orm.Task']"})
+ },
+ u'orm.toastersetting': {
+ 'Meta': {'object_name': 'ToasterSetting'},
+ 'helptext': ('django.db.models.fields.TextField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '63'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ u'orm.toastersettingdefaultlayer': {
+ 'Meta': {'object_name': 'ToasterSettingDefaultLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']"})
+ },
+ u'orm.variable': {
+ 'Meta': {'object_name': 'Variable'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'variable_build'", 'to': u"orm['orm.Build']"}),
+ 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'human_readable_name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'variable_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'variable_value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.variablehistory': {
+ 'Meta': {'object_name': 'VariableHistory'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'operation': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'variable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vhistory'", 'to': u"orm['orm.Variable']"})
+ }
+ }
+
+ complete_apps = ['orm']
diff --git a/bitbake/lib/toaster/orm/migrations/0017_auto__del_toastersettingdefaultlayer__add_releaselayersourcepriority__.py b/bitbake/lib/toaster/orm/migrations/0017_auto__del_toastersettingdefaultlayer__add_releaselayersourcepriority__.py
new file mode 100644
index 0000000000..6685b55640
--- /dev/null
+++ b/bitbake/lib/toaster/orm/migrations/0017_auto__del_toastersettingdefaultlayer__add_releaselayersourcepriority__.py
@@ -0,0 +1,396 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Deleting model 'ToasterSettingDefaultLayer'
+ db.delete_table(u'orm_toastersettingdefaultlayer')
+
+ # Adding model 'ReleaseLayerSourcePriority'
+ db.create_table(u'orm_releaselayersourcepriority', (
+ (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('release', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['orm.Release'])),
+ ('layer_source', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['orm.LayerSource'])),
+ ('priority', self.gf('django.db.models.fields.IntegerField')(default=0)),
+ ))
+ db.send_create_signal(u'orm', ['ReleaseLayerSourcePriority'])
+
+ # Adding unique constraint on 'ReleaseLayerSourcePriority', fields ['release', 'layer_source']
+ db.create_unique(u'orm_releaselayersourcepriority', ['release_id', 'layer_source_id'])
+
+ # Deleting field 'Release.branch'
+ db.delete_column(u'orm_release', 'branch_id')
+
+ # Adding field 'Release.branch_name'
+ db.add_column(u'orm_release', 'branch_name',
+ self.gf('django.db.models.fields.CharField')(default='', max_length=50),
+ keep_default=False)
+
+ # Adding unique constraint on 'LayerSource', fields ['name']
+ db.create_unique(u'orm_layersource', ['name'])
+
+ # Deleting field 'ReleaseDefaultLayer.layer'
+ db.delete_column(u'orm_releasedefaultlayer', 'layer_id')
+
+ # Adding field 'ReleaseDefaultLayer.layer_name'
+ db.add_column(u'orm_releasedefaultlayer', 'layer_name',
+ self.gf('django.db.models.fields.CharField')(default='', max_length=100),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Removing unique constraint on 'LayerSource', fields ['name']
+ db.delete_unique(u'orm_layersource', ['name'])
+
+ # Removing unique constraint on 'ReleaseLayerSourcePriority', fields ['release', 'layer_source']
+ db.delete_unique(u'orm_releaselayersourcepriority', ['release_id', 'layer_source_id'])
+
+ # Adding model 'ToasterSettingDefaultLayer'
+ db.create_table(u'orm_toastersettingdefaultlayer', (
+ (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('layer_version', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['orm.Layer_Version'])),
+ ))
+ db.send_create_signal(u'orm', ['ToasterSettingDefaultLayer'])
+
+ # Deleting model 'ReleaseLayerSourcePriority'
+ db.delete_table(u'orm_releaselayersourcepriority')
+
+
+ # User chose to not deal with backwards NULL issues for 'Release.branch'
+ raise RuntimeError("Cannot reverse this migration. 'Release.branch' and its values cannot be restored.")
+
+ # The following code is provided here to aid in writing a correct migration # Adding field 'Release.branch'
+ db.add_column(u'orm_release', 'branch',
+ self.gf('django.db.models.fields.related.ForeignKey')(to=orm['orm.Branch']),
+ keep_default=False)
+
+ # Deleting field 'Release.branch_name'
+ db.delete_column(u'orm_release', 'branch_name')
+
+
+ # User chose to not deal with backwards NULL issues for 'ReleaseDefaultLayer.layer'
+ raise RuntimeError("Cannot reverse this migration. 'ReleaseDefaultLayer.layer' and its values cannot be restored.")
+
+ # The following code is provided here to aid in writing a correct migration # Adding field 'ReleaseDefaultLayer.layer'
+ db.add_column(u'orm_releasedefaultlayer', 'layer',
+ self.gf('django.db.models.fields.related.ForeignKey')(to=orm['orm.Layer']),
+ keep_default=False)
+
+ # Deleting field 'ReleaseDefaultLayer.layer_name'
+ db.delete_column(u'orm_releasedefaultlayer', 'layer_name')
+
+
+ models = {
+ u'orm.bitbakeversion': {
+ 'Meta': {'object_name': 'BitbakeVersion'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'giturl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.branch': {
+ 'Meta': {'unique_together': "(('layer_source', 'name'), ('layer_source', 'up_id'))", 'object_name': 'Branch'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'True', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.build': {
+ 'Meta': {'object_name': 'Build'},
+ 'bitbake_version': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'build_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'completed_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'cooker_log_path': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'distro': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'distro_version': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'errors_no': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'machine': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']", 'null': 'True'}),
+ 'started_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'timespent': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'warnings_no': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+ },
+ u'orm.helptext': {
+ 'Meta': {'object_name': 'HelpText'},
+ 'area': ('django.db.models.fields.IntegerField', [], {}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'helptext_build'", 'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'text': ('django.db.models.fields.TextField', [], {})
+ },
+ u'orm.layer': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'), ('layer_source', 'name'))", 'object_name': 'Layer'},
+ 'description': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_index_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'local_path': ('django.db.models.fields.FilePathField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'vcs_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_file_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_tree_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'})
+ },
+ u'orm.layer_version': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Layer_Version'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'layer_version_build'", 'null': 'True', 'to': u"orm['orm.Build']"}),
+ 'commit': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'layer_version_layer'", 'to': u"orm['orm.Layer']"}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'up_branch': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.Branch']", 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.layersource': {
+ 'Meta': {'unique_together': "(('sourcetype', 'apiurl'),)", 'object_name': 'LayerSource'},
+ 'apiurl': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '63'}),
+ 'sourcetype': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.layerversiondependency': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'LayerVersionDependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependees'", 'to': u"orm['orm.Layer_Version']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependencies'", 'to': u"orm['orm.Layer_Version']"}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.logmessage': {
+ 'Meta': {'object_name': 'LogMessage'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'level': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'lineno': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'pathname': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Task']", 'null': 'True', 'blank': 'True'})
+ },
+ u'orm.machine': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Machine'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.package': {
+ 'Meta': {'object_name': 'Package'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'installed_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100'}),
+ 'installed_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Recipe']", 'null': 'True'}),
+ 'revision': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.package_dependency': {
+ 'Meta': {'object_name': 'Package_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_target'", 'to': u"orm['orm.Package']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_source'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']", 'null': 'True'})
+ },
+ u'orm.package_file': {
+ 'Meta': {'object_name': 'Package_File'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildfilelist_package'", 'to': u"orm['orm.Package']"}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.project': {
+ 'Meta': {'object_name': 'Project'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'user_id': ('django.db.models.fields.IntegerField', [], {'null': 'True'})
+ },
+ u'orm.projectlayer': {
+ 'Meta': {'unique_together': "(('project', 'layercommit'),)", 'object_name': 'ProjectLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layercommit': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']", 'null': 'True'}),
+ 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"})
+ },
+ u'orm.projecttarget': {
+ 'Meta': {'object_name': 'ProjectTarget'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'task': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'})
+ },
+ u'orm.projectvariable': {
+ 'Meta': {'object_name': 'ProjectVariable'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.recipe': {
+ 'Meta': {'unique_together': "(('layer_version', 'file_path'),)", 'object_name': 'Recipe'},
+ 'bugtracker': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'file_path': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ 'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'recipe_layer_version'", 'to': u"orm['orm.Layer_Version']"}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.recipe_dependency': {
+ 'Meta': {'object_name': 'Recipe_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_depends'", 'to': u"orm['orm.Recipe']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_recipe'", 'to': u"orm['orm.Recipe']"})
+ },
+ u'orm.release': {
+ 'Meta': {'object_name': 'Release'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'branch_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'helptext': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.releasedefaultlayer': {
+ 'Meta': {'object_name': 'ReleaseDefaultLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"})
+ },
+ u'orm.releaselayersourcepriority': {
+ 'Meta': {'unique_together': "(('release', 'layer_source'),)", 'object_name': 'ReleaseLayerSourcePriority'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.LayerSource']"}),
+ 'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"})
+ },
+ u'orm.target': {
+ 'Meta': {'object_name': 'Target'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'is_image': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'license_manifest_path': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ u'orm.target_file': {
+ 'Meta': {'object_name': 'Target_File'},
+ 'directory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'directory_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'group': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inodetype': ('django.db.models.fields.IntegerField', [], {}),
+ 'owner': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '100'}),
+ 'permission': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {}),
+ 'sym_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'symlink_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_image_file': {
+ 'Meta': {'object_name': 'Target_Image_File'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '254'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_installed_package': {
+ 'Meta': {'object_name': 'Target_Installed_Package'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildtargetlist_package'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.task': {
+ 'Meta': {'ordering': "('order', 'recipe')", 'unique_together': "(('build', 'recipe', 'task_name'),)", 'object_name': 'Task'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_build'", 'to': u"orm['orm.Build']"}),
+ 'cpu_usage': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ 'disk_io': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'elapsed_time': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'logfile': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
+ 'path_to_sstate_obj': ('django.db.models.fields.FilePathField', [], {'max_length': '500', 'blank': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'build_recipe'", 'to': u"orm['orm.Recipe']"}),
+ 'script_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'source_url': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'sstate_checksum': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'sstate_result': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'task_executed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'task_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'work_directory': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'orm.task_dependency': {
+ 'Meta': {'object_name': 'Task_Dependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_depends'", 'to': u"orm['orm.Task']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_task'", 'to': u"orm['orm.Task']"})
+ },
+ u'orm.toastersetting': {
+ 'Meta': {'object_name': 'ToasterSetting'},
+ 'helptext': ('django.db.models.fields.TextField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '63'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ u'orm.variable': {
+ 'Meta': {'object_name': 'Variable'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'variable_build'", 'to': u"orm['orm.Build']"}),
+ 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'human_readable_name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'variable_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'variable_value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.variablehistory': {
+ 'Meta': {'object_name': 'VariableHistory'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'operation': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'variable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vhistory'", 'to': u"orm['orm.Variable']"})
+ }
+ }
+
+ complete_apps = ['orm'] \ No newline at end of file
diff --git a/bitbake/lib/toaster/orm/migrations/0018_auto__add_field_layer_version_project.py b/bitbake/lib/toaster/orm/migrations/0018_auto__add_field_layer_version_project.py
new file mode 100644
index 0000000000..7284bb8429
--- /dev/null
+++ b/bitbake/lib/toaster/orm/migrations/0018_auto__add_field_layer_version_project.py
@@ -0,0 +1,331 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Adding field 'Layer_Version.project'
+ db.add_column(u'orm_layer_version', 'project',
+ self.gf('django.db.models.fields.related.ForeignKey')(default=None, to=orm['orm.Project'], null=True),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting field 'Layer_Version.project'
+ db.delete_column(u'orm_layer_version', 'project_id')
+
+
+ models = {
+ u'orm.bitbakeversion': {
+ 'Meta': {'object_name': 'BitbakeVersion'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'giturl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.branch': {
+ 'Meta': {'unique_together': "(('layer_source', 'name'), ('layer_source', 'up_id'))", 'object_name': 'Branch'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'True', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.build': {
+ 'Meta': {'object_name': 'Build'},
+ 'bitbake_version': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'build_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'completed_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'cooker_log_path': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'distro': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'distro_version': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'errors_no': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'machine': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']", 'null': 'True'}),
+ 'started_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'timespent': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'warnings_no': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+ },
+ u'orm.helptext': {
+ 'Meta': {'object_name': 'HelpText'},
+ 'area': ('django.db.models.fields.IntegerField', [], {}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'helptext_build'", 'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'text': ('django.db.models.fields.TextField', [], {})
+ },
+ u'orm.layer': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'), ('layer_source', 'name'))", 'object_name': 'Layer'},
+ 'description': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_index_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'local_path': ('django.db.models.fields.FilePathField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'vcs_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_file_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_tree_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'})
+ },
+ u'orm.layer_version': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Layer_Version'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'layer_version_build'", 'null': 'True', 'to': u"orm['orm.Build']"}),
+ 'commit': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'layer_version_layer'", 'to': u"orm['orm.Layer']"}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.Project']", 'null': 'True'}),
+ 'up_branch': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.Branch']", 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.layersource': {
+ 'Meta': {'unique_together': "(('sourcetype', 'apiurl'),)", 'object_name': 'LayerSource'},
+ 'apiurl': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '63'}),
+ 'sourcetype': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.layerversiondependency': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'LayerVersionDependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependees'", 'to': u"orm['orm.Layer_Version']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependencies'", 'to': u"orm['orm.Layer_Version']"}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.logmessage': {
+ 'Meta': {'object_name': 'LogMessage'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'level': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'lineno': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'pathname': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Task']", 'null': 'True', 'blank': 'True'})
+ },
+ u'orm.machine': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Machine'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.package': {
+ 'Meta': {'object_name': 'Package'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'installed_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100'}),
+ 'installed_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Recipe']", 'null': 'True'}),
+ 'revision': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.package_dependency': {
+ 'Meta': {'object_name': 'Package_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_target'", 'to': u"orm['orm.Package']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_source'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']", 'null': 'True'})
+ },
+ u'orm.package_file': {
+ 'Meta': {'object_name': 'Package_File'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildfilelist_package'", 'to': u"orm['orm.Package']"}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.project': {
+ 'Meta': {'object_name': 'Project'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'user_id': ('django.db.models.fields.IntegerField', [], {'null': 'True'})
+ },
+ u'orm.projectlayer': {
+ 'Meta': {'unique_together': "(('project', 'layercommit'),)", 'object_name': 'ProjectLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layercommit': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']", 'null': 'True'}),
+ 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"})
+ },
+ u'orm.projecttarget': {
+ 'Meta': {'object_name': 'ProjectTarget'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'task': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'})
+ },
+ u'orm.projectvariable': {
+ 'Meta': {'object_name': 'ProjectVariable'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.recipe': {
+ 'Meta': {'unique_together': "(('layer_version', 'file_path'),)", 'object_name': 'Recipe'},
+ 'bugtracker': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'file_path': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ 'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'recipe_layer_version'", 'to': u"orm['orm.Layer_Version']"}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.recipe_dependency': {
+ 'Meta': {'object_name': 'Recipe_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_depends'", 'to': u"orm['orm.Recipe']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_recipe'", 'to': u"orm['orm.Recipe']"})
+ },
+ u'orm.release': {
+ 'Meta': {'object_name': 'Release'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'branch_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'helptext': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.releasedefaultlayer': {
+ 'Meta': {'object_name': 'ReleaseDefaultLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"})
+ },
+ u'orm.releaselayersourcepriority': {
+ 'Meta': {'unique_together': "(('release', 'layer_source'),)", 'object_name': 'ReleaseLayerSourcePriority'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.LayerSource']"}),
+ 'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"})
+ },
+ u'orm.target': {
+ 'Meta': {'object_name': 'Target'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'is_image': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'license_manifest_path': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ u'orm.target_file': {
+ 'Meta': {'object_name': 'Target_File'},
+ 'directory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'directory_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'group': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inodetype': ('django.db.models.fields.IntegerField', [], {}),
+ 'owner': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '100'}),
+ 'permission': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {}),
+ 'sym_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'symlink_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_image_file': {
+ 'Meta': {'object_name': 'Target_Image_File'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '254'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_installed_package': {
+ 'Meta': {'object_name': 'Target_Installed_Package'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildtargetlist_package'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.task': {
+ 'Meta': {'ordering': "('order', 'recipe')", 'unique_together': "(('build', 'recipe', 'task_name'),)", 'object_name': 'Task'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_build'", 'to': u"orm['orm.Build']"}),
+ 'cpu_usage': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ 'disk_io': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'elapsed_time': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'logfile': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
+ 'path_to_sstate_obj': ('django.db.models.fields.FilePathField', [], {'max_length': '500', 'blank': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'build_recipe'", 'to': u"orm['orm.Recipe']"}),
+ 'script_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'source_url': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'sstate_checksum': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'sstate_result': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'task_executed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'task_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'work_directory': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'orm.task_dependency': {
+ 'Meta': {'object_name': 'Task_Dependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_depends'", 'to': u"orm['orm.Task']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_task'", 'to': u"orm['orm.Task']"})
+ },
+ u'orm.toastersetting': {
+ 'Meta': {'object_name': 'ToasterSetting'},
+ 'helptext': ('django.db.models.fields.TextField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '63'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ u'orm.variable': {
+ 'Meta': {'object_name': 'Variable'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'variable_build'", 'to': u"orm['orm.Build']"}),
+ 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'human_readable_name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'variable_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'variable_value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.variablehistory': {
+ 'Meta': {'object_name': 'VariableHistory'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'operation': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'variable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vhistory'", 'to': u"orm['orm.Variable']"})
+ }
+ }
+
+ complete_apps = ['orm'] \ No newline at end of file
diff --git a/bitbake/lib/toaster/orm/migrations/0019_auto__add_buildartifact.py b/bitbake/lib/toaster/orm/migrations/0019_auto__add_buildartifact.py
new file mode 100644
index 0000000000..0dce9ead20
--- /dev/null
+++ b/bitbake/lib/toaster/orm/migrations/0019_auto__add_buildartifact.py
@@ -0,0 +1,342 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Adding model 'BuildArtifact'
+ db.create_table(u'orm_buildartifact', (
+ (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('build', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['orm.Build'])),
+ ('file_name', self.gf('django.db.models.fields.FilePathField')(max_length=100)),
+ ('file_size', self.gf('django.db.models.fields.IntegerField')()),
+ ))
+ db.send_create_signal(u'orm', ['BuildArtifact'])
+
+
+ def backwards(self, orm):
+ # Deleting model 'BuildArtifact'
+ db.delete_table(u'orm_buildartifact')
+
+
+ models = {
+ u'orm.bitbakeversion': {
+ 'Meta': {'object_name': 'BitbakeVersion'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'giturl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.branch': {
+ 'Meta': {'unique_together': "(('layer_source', 'name'), ('layer_source', 'up_id'))", 'object_name': 'Branch'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'True', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.build': {
+ 'Meta': {'object_name': 'Build'},
+ 'bitbake_version': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'build_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'completed_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'cooker_log_path': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'distro': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'distro_version': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'errors_no': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'machine': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']", 'null': 'True'}),
+ 'started_on': ('django.db.models.fields.DateTimeField', [], {}),
+ 'timespent': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'warnings_no': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+ },
+ u'orm.buildartifact': {
+ 'Meta': {'object_name': 'BuildArtifact'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '100'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ },
+ u'orm.helptext': {
+ 'Meta': {'object_name': 'HelpText'},
+ 'area': ('django.db.models.fields.IntegerField', [], {}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'helptext_build'", 'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'text': ('django.db.models.fields.TextField', [], {})
+ },
+ u'orm.layer': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'), ('layer_source', 'name'))", 'object_name': 'Layer'},
+ 'description': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_index_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'local_path': ('django.db.models.fields.FilePathField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'vcs_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_file_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_tree_base_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'}),
+ 'vcs_web_url': ('django.db.models.fields.URLField', [], {'default': 'None', 'max_length': '200', 'null': 'True'})
+ },
+ u'orm.layer_version': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Layer_Version'},
+ 'branch': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'layer_version_build'", 'null': 'True', 'to': u"orm['orm.Build']"}),
+ 'commit': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'dirpath': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'layer_version_layer'", 'to': u"orm['orm.Layer']"}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.Project']", 'null': 'True'}),
+ 'up_branch': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.Branch']", 'null': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.layersource': {
+ 'Meta': {'unique_together': "(('sourcetype', 'apiurl'),)", 'object_name': 'LayerSource'},
+ 'apiurl': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '63'}),
+ 'sourcetype': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.layerversiondependency': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'LayerVersionDependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependees'", 'to': u"orm['orm.Layer_Version']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dependencies'", 'to': u"orm['orm.Layer_Version']"}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.logmessage': {
+ 'Meta': {'object_name': 'LogMessage'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'level': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'lineno': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'pathname': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Task']", 'null': 'True', 'blank': 'True'})
+ },
+ u'orm.machine': {
+ 'Meta': {'unique_together': "(('layer_source', 'up_id'),)", 'object_name': 'Machine'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'})
+ },
+ u'orm.package': {
+ 'Meta': {'object_name': 'Package'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'installed_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100'}),
+ 'installed_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Recipe']", 'null': 'True'}),
+ 'revision': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.package_dependency': {
+ 'Meta': {'object_name': 'Package_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_target'", 'to': u"orm['orm.Package']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_dependencies_source'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']", 'null': 'True'})
+ },
+ u'orm.package_file': {
+ 'Meta': {'object_name': 'Package_File'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildfilelist_package'", 'to': u"orm['orm.Package']"}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'orm.project': {
+ 'Meta': {'object_name': 'Project'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"}),
+ 'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'user_id': ('django.db.models.fields.IntegerField', [], {'null': 'True'})
+ },
+ u'orm.projectlayer': {
+ 'Meta': {'unique_together': "(('project', 'layercommit'),)", 'object_name': 'ProjectLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layercommit': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Layer_Version']", 'null': 'True'}),
+ 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"})
+ },
+ u'orm.projecttarget': {
+ 'Meta': {'object_name': 'ProjectTarget'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'task': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'})
+ },
+ u'orm.projectvariable': {
+ 'Meta': {'object_name': 'ProjectVariable'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Project']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.recipe': {
+ 'Meta': {'unique_together': "(('layer_version', 'file_path'),)", 'object_name': 'Recipe'},
+ 'bugtracker': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'file_path': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ 'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['orm.LayerSource']", 'null': 'True'}),
+ 'layer_version': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'recipe_layer_version'", 'to': u"orm['orm.Layer_Version']"}),
+ 'license': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'up_date': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}),
+ 'up_id': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
+ 'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ u'orm.recipe_dependency': {
+ 'Meta': {'object_name': 'Recipe_Dependency'},
+ 'dep_type': ('django.db.models.fields.IntegerField', [], {}),
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_depends'", 'to': u"orm['orm.Recipe']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'r_dependencies_recipe'", 'to': u"orm['orm.Recipe']"})
+ },
+ u'orm.release': {
+ 'Meta': {'object_name': 'Release'},
+ 'bitbake_version': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.BitbakeVersion']"}),
+ 'branch_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'helptext': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'})
+ },
+ u'orm.releasedefaultlayer': {
+ 'Meta': {'object_name': 'ReleaseDefaultLayer'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"})
+ },
+ u'orm.releaselayersourcepriority': {
+ 'Meta': {'unique_together': "(('release', 'layer_source'),)", 'object_name': 'ReleaseLayerSourcePriority'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'layer_source': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.LayerSource']"}),
+ 'priority': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Release']"})
+ },
+ u'orm.target': {
+ 'Meta': {'object_name': 'Target'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Build']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image_size': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'is_image': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'license_manifest_path': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ u'orm.target_file': {
+ 'Meta': {'object_name': 'Target_File'},
+ 'directory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'directory_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'group': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inodetype': ('django.db.models.fields.IntegerField', [], {}),
+ 'owner': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'path': ('django.db.models.fields.FilePathField', [], {'max_length': '100'}),
+ 'permission': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'size': ('django.db.models.fields.IntegerField', [], {}),
+ 'sym_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'symlink_set'", 'null': 'True', 'to': u"orm['orm.Target_File']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_image_file': {
+ 'Meta': {'object_name': 'Target_Image_File'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '254'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.target_installed_package': {
+ 'Meta': {'object_name': 'Target_Installed_Package'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buildtargetlist_package'", 'to': u"orm['orm.Package']"}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['orm.Target']"})
+ },
+ u'orm.task': {
+ 'Meta': {'ordering': "('order', 'recipe')", 'unique_together': "(('build', 'recipe', 'task_name'),)", 'object_name': 'Task'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_build'", 'to': u"orm['orm.Build']"}),
+ 'cpu_usage': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ 'disk_io': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'elapsed_time': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'logfile': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'message': ('django.db.models.fields.CharField', [], {'max_length': '240'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'outcome': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
+ 'path_to_sstate_obj': ('django.db.models.fields.FilePathField', [], {'max_length': '500', 'blank': 'True'}),
+ 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'build_recipe'", 'to': u"orm['orm.Recipe']"}),
+ 'script_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'source_url': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'}),
+ 'sstate_checksum': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'sstate_result': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'task_executed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'task_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'work_directory': ('django.db.models.fields.FilePathField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'orm.task_dependency': {
+ 'Meta': {'object_name': 'Task_Dependency'},
+ 'depends_on': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_depends'", 'to': u"orm['orm.Task']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'task': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_dependencies_task'", 'to': u"orm['orm.Task']"})
+ },
+ u'orm.toastersetting': {
+ 'Meta': {'object_name': 'ToasterSetting'},
+ 'helptext': ('django.db.models.fields.TextField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '63'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ u'orm.variable': {
+ 'Meta': {'object_name': 'Variable'},
+ 'build': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'variable_build'", 'to': u"orm['orm.Build']"}),
+ 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'human_readable_name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'variable_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'variable_value': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ u'orm.variablehistory': {
+ 'Meta': {'object_name': 'VariableHistory'},
+ 'file_name': ('django.db.models.fields.FilePathField', [], {'max_length': '255'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'line_number': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'operation': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+ 'value': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'variable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vhistory'", 'to': u"orm['orm.Variable']"})
+ }
+ }
+
+ complete_apps = ['orm'] \ No newline at end of file
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index 77afe35861..625eb1ee85 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -20,17 +20,39 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from django.db import models
-from django.db.models import F
-from django.utils.encoding import python_2_unicode_compatible
+from django.db.models import F, Q
from django.utils import timezone
+
+from django.core import validators
+from django.conf import settings
+
+class GitURLValidator(validators.URLValidator):
+ import re
+ regex = re.compile(
+ r'^(?:ssh|git|http|ftp)s?://' # http:// or https://
+ r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' # domain...
+ r'localhost|' # localhost...
+ r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|' # ...or ipv4
+ r'\[?[A-F0-9]*:[A-F0-9:]+\]?)' # ...or ipv6
+ r'(?::\d+)?' # optional port
+ r'(?:/?|[/?]\S+)$', re.IGNORECASE)
+
+def GitURLField(**kwargs):
+ r = models.URLField(**kwargs)
+ for i in xrange(len(r.validators)):
+ if isinstance(r.validators[i], validators.URLValidator):
+ r.validators[i] = GitURLValidator()
+ return r
+
+
class ToasterSetting(models.Model):
name = models.CharField(max_length=63)
helptext = models.TextField()
value = models.CharField(max_length=255)
-class ToasterSettingDefaultLayer(models.Model):
- layer_version = models.ForeignKey('Layer_Version')
+ def __unicode__(self):
+ return "Setting %s = " % (self.name, self.value)
class ProjectManager(models.Manager):
def create_project(self, name, release):
@@ -43,12 +65,16 @@ class ProjectManager(models.Manager):
name = name,
value = defaultconf.value)
- for layer in map(lambda x: x.layer, ReleaseDefaultLayer.objects.filter(release = release)):
- for branches in Branch.objects.filter(name = release.branch):
- for lv in Layer_Version.objects.filter(layer = layer, up_branch = branches ):
- ProjectLayer.objects.create( project = prj,
+
+ for rdl in release.releasedefaultlayer_set.all():
+ try:
+ lv =Layer_Version.objects.filter(layer__name = rdl.layer_name, up_branch__name = release.branch_name)[0].get_equivalents_wpriority(prj)[0]
+ ProjectLayer.objects.create( project = prj,
layercommit = lv,
optional = False )
+ except IndexError:
+ # we may have no valid layer version objects, and that's ok
+ pass
return prj
@@ -59,6 +85,7 @@ class ProjectManager(models.Manager):
raise Exception("Invalid call to Project.objects.get_or_create. Use Project.objects.create_project() to create a project")
class Project(models.Model):
+ search_allowed_fields = ['name', 'short_description', 'release__name', 'release__branch_name']
name = models.CharField(max_length=100)
short_description = models.CharField(max_length=50, blank=True)
bitbake_version = models.ForeignKey('BitbakeVersion')
@@ -72,25 +99,115 @@ class Project(models.Model):
user_id = models.IntegerField(null = True)
objects = ProjectManager()
+ def __unicode__(self):
+ return "%s (Release %s, BBV %s)" % (self.name, self.release, self.bitbake_version)
+
+ def get_current_machine_name(self):
+ try:
+ return self.projectvariable_set.get(name="MACHINE").value
+ except (ProjectVariable.DoesNotExist,IndexError):
+ return( "None" );
+
+ def get_number_of_builds(self):
+ try:
+ return len(Build.objects.filter( project = self.id ))
+ except (Build.DoesNotExist,IndexError):
+ return( 0 )
+
+ def get_last_build_id(self):
+ try:
+ return Build.objects.filter( project = self.id ).order_by('-completed_on')[0].id
+ except (Build.DoesNotExist,IndexError):
+ return( -1 )
+
+ def get_last_outcome(self):
+ build_id = self.get_last_build_id
+ if (-1 == build_id):
+ return( "" )
+ try:
+ return Build.objects.filter( id = self.get_last_build_id )[ 0 ].outcome
+ except (Build.DoesNotExist,IndexError):
+ return( "not_found" )
+
+ def get_last_target(self):
+ build_id = self.get_last_build_id
+ if (-1 == build_id):
+ return( "" )
+ try:
+ return Target.objects.filter(build = build_id)[0].target
+ except (Target.DoesNotExist,IndexError):
+ return( "not_found" )
+
+ def get_last_errors(self):
+ build_id = self.get_last_build_id
+ if (-1 == build_id):
+ return( 0 )
+ try:
+ return Build.objects.filter(id = build_id)[ 0 ].errors_no
+ except (Build.DoesNotExist,IndexError):
+ return( "not_found" )
+
+ def get_last_warnings(self):
+ build_id = self.get_last_build_id
+ if (-1 == build_id):
+ return( 0 )
+ try:
+ return Build.objects.filter(id = build_id)[ 0 ].warnings_no
+ except (Build.DoesNotExist,IndexError):
+ return( "not_found" )
+
+ def get_last_imgfiles(self):
+ build_id = self.get_last_build_id
+ if (-1 == build_id):
+ return( "" )
+ try:
+ return Variable.objects.filter(build = build_id, variable_name = "IMAGE_FSTYPES")[ 0 ].variable_value
+ except (Variable.DoesNotExist,IndexError):
+ return( "not_found" )
+
+ # returns a queryset of compatible layers for a project
+ def compatible_layerversions(self, release = None, layer_name = None):
+ if release == None:
+ release = self.release
+ # layers on the same branch or layers specifically set for this project
+ queryset = Layer_Version.objects.filter((Q(up_branch__name = release.branch_name) & Q(project = None)) | Q(project = self) | Q(build__project = self))
+ if layer_name is not None:
+ # we select only a layer name
+ queryset = queryset.filter(layer__name = layer_name)
+
+ # order by layer version priority
+ queryset = queryset.filter(layer_source__releaselayersourcepriority__release = release).order_by("-layer_source__releaselayersourcepriority__priority")
+
+ return queryset
+
+ # returns a set of layer-equivalent set of layers already in project
+ def projectlayer_equivalent_set(self):
+ return [j for i in [x.layercommit.get_equivalents_wpriority(self) for x in self.projectlayer_set.all().select_related("up_branch")] for j in i]
def schedule_build(self):
from bldcontrol.models import BuildRequest, BRTarget, BRLayer, BRVariable, BRBitbake
br = BuildRequest.objects.create(project = self)
+ try:
- BRBitbake.objects.create(req = br,
- giturl = self.bitbake_version.giturl,
- commit = self.bitbake_version.branch,
- dirpath = self.bitbake_version.dirpath)
-
- for l in self.projectlayer_set.all():
- BRLayer.objects.create(req = br, name = l.layercommit.layer.name, giturl = l.layercommit.layer.vcs_url, commit = l.layercommit.commit, dirpath = l.layercommit.dirpath)
- for t in self.projecttarget_set.all():
- BRTarget.objects.create(req = br, target = t.target, task = t.task)
- for v in self.projectvariable_set.all():
- BRVariable.objects.create(req = br, name = v.name, value = v.value)
-
- br.state = BuildRequest.REQ_QUEUED
- br.save()
+ BRBitbake.objects.create(req = br,
+ giturl = self.bitbake_version.giturl,
+ commit = self.bitbake_version.branch,
+ dirpath = self.bitbake_version.dirpath)
+
+ for l in self.projectlayer_set.all().order_by("pk"):
+ commit = l.layercommit.get_vcs_reference()
+ print("ii Building layer ", l.layercommit.layer.name, " at vcs point ", commit)
+ BRLayer.objects.create(req = br, name = l.layercommit.layer.name, giturl = l.layercommit.layer.vcs_url, commit = commit, dirpath = l.layercommit.dirpath)
+ for t in self.projecttarget_set.all():
+ BRTarget.objects.create(req = br, target = t.target, task = t.task)
+ for v in self.projectvariable_set.all():
+ BRVariable.objects.create(req = br, name = v.name, value = v.value)
+
+ br.state = BuildRequest.REQ_QUEUED
+ br.save()
+ except Exception as e:
+ br.delete()
+ raise e
return br
class Build(models.Model):
@@ -131,10 +248,10 @@ class Build(models.Model):
def eta(self):
from django.utils import timezone
- eta = 0
+ eta = timezone.now()
completeper = self.completeper()
if self.completeper() > 0:
- eta = timezone.now() + ((timezone.now() - self.started_on)*(100-completeper)/completeper)
+ eta += ((eta - self.started_on)*(100-completeper))/completeper
return eta
@@ -142,12 +259,38 @@ class Build(models.Model):
tgts = Target.objects.filter(build_id = self.id).order_by( 'target' );
return( tgts );
+ @property
+ def toaster_exceptions(self):
+ return self.logmessage_set.filter(level=LogMessage.EXCEPTION)
+
+
+# an Artifact is anything that results from a Build, and may be of interest to the user, and is not stored elsewhere
+class BuildArtifact(models.Model):
+ build = models.ForeignKey(Build)
+ file_name = models.FilePathField()
+ file_size = models.IntegerField()
+
+
+ def get_local_file_name(self):
+ try:
+ deploydir = Variable.objects.get(build = self.build, variable_name="DEPLOY_DIR").variable_value
+ return self.file_name[len(deploydir)+1:]
+ except:
+ raise
+
+ return self.file_name
+
+
+ def is_available(self):
+ if settings.MANAGED and build.project is not None:
+ return build.buildrequest.environment.has_artifact(file_path)
+ return False
+
class ProjectTarget(models.Model):
project = models.ForeignKey(Project)
target = models.CharField(max_length=100)
task = models.CharField(max_length=100, null=True)
-@python_2_unicode_compatible
class Target(models.Model):
search_allowed_fields = ['target', 'file_name']
build = models.ForeignKey(Build)
@@ -159,7 +302,7 @@ class Target(models.Model):
def package_count(self):
return Target_Installed_Package.objects.filter(target_id__exact=self.id).count()
- def __str__(self):
+ def __unicode__(self):
return self.target
class Target_Image_File(models.Model):
@@ -195,10 +338,6 @@ class Target_File(models.Model):
sym_target = models.ForeignKey('Target_File', related_name="symlink_set", null=True)
-class TaskManager(models.Manager):
- def related_setscene(self, task_object):
- return Task.objects.filter(task_executed=True, build = task_object.build, recipe = task_object.recipe, task_name=task_object.task_name+"_setscene")
-
class Task(models.Model):
SSTATE_NA = 0
@@ -253,10 +392,8 @@ class Task(models.Model):
search_allowed_fields = [ "recipe__name", "recipe__version", "task_name", "logfile" ]
- objects = TaskManager()
-
def get_related_setscene(self):
- return Task.objects.related_setscene(self)
+ return Task.objects.filter(task_executed=True, build = self.build, recipe = self.recipe, task_name=self.task_name+"_setscene")
def get_outcome_text(self):
return Task.TASK_OUTCOME[self.outcome + 1][1]
@@ -276,11 +413,14 @@ class Task(models.Model):
return "Not Executed"
def get_description(self):
- helptext = HelpText.objects.filter(key=self.task_name, area=HelpText.VARIABLE, build=self.build)
+ if '_helptext' in vars(self) and self._helptext != None:
+ return self._helptext
try:
- return helptext[0].text
- except IndexError:
- return ''
+ self._helptext = HelpText.objects.get(key=self.task_name, area=HelpText.VARIABLE, build=self.build).text
+ except HelpText.DoesNotExist:
+ self._helptext = None
+
+ return self._helptext
build = models.ForeignKey(Build, related_name='task_build')
order = models.IntegerField(null=True)
@@ -288,7 +428,7 @@ class Task(models.Model):
outcome = models.IntegerField(choices=TASK_OUTCOME, default=OUTCOME_NA)
sstate_checksum = models.CharField(max_length=100, blank=True)
path_to_sstate_obj = models.FilePathField(max_length=500, blank=True)
- recipe = models.ForeignKey('Recipe', related_name='build_recipe')
+ recipe = models.ForeignKey('Recipe', related_name='tasks')
task_name = models.CharField(max_length=100)
source_url = models.FilePathField(max_length=255, blank=True)
work_directory = models.FilePathField(max_length=255, blank=True)
@@ -304,6 +444,9 @@ class Task(models.Model):
outcome_text = property(get_outcome_text)
sstate_text = property(get_sstate_text)
+ def __unicode__(self):
+ return "%d(%d) %s:%s" % (self.pk, self.build.pk, self.recipe.name, self.task_name)
+
class Meta:
ordering = ('order', 'recipe' ,)
unique_together = ('build', 'recipe', 'task_name', )
@@ -321,7 +464,7 @@ class Package(models.Model):
installed_name = models.CharField(max_length=100, default='')
version = models.CharField(max_length=100, blank=True)
revision = models.CharField(max_length=32, blank=True)
- summary = models.CharField(max_length=200, blank=True)
+ summary = models.TextField(blank=True)
description = models.TextField(blank=True)
size = models.IntegerField(default=0)
installed_size = models.IntegerField(default=0)
@@ -354,10 +497,10 @@ class Package_Dependency(models.Model):
(TYPE_RREPLACES, "replaces"),
(TYPE_RCONFLICTS, "conflicts"),
)
- ''' Indexed by dep_type, in view order, key for short name and help
+ """ Indexed by dep_type, in view order, key for short name and help
description which when viewed will be printf'd with the
package name.
- '''
+ """
DEPENDS_DICT = {
TYPE_RDEPENDS : ("depends", "%s is required to run %s"),
TYPE_TRDEPENDS : ("depends", "%s is required to run %s"),
@@ -385,7 +528,7 @@ class Package_File(models.Model):
size = models.IntegerField()
class Recipe(models.Model):
- search_allowed_fields = ['name', 'version', 'file_path', 'section', 'license', 'layer_version__layer__name', 'layer_version__branch', 'layer_version__commit', 'layer_version__layer__local_path']
+ search_allowed_fields = ['name', 'version', 'file_path', 'section', 'summary', 'description', 'license', 'layer_version__layer__name', 'layer_version__branch', 'layer_version__commit', 'layer_version__layer__local_path', 'layer_version__layer_source__name']
layer_source = models.ForeignKey('LayerSource', default = None, null = True) # from where did we get this recipe
up_id = models.IntegerField(null = True, default = None) # id of entry in the source
@@ -394,7 +537,7 @@ class Recipe(models.Model):
name = models.CharField(max_length=100, blank=True) # pn
version = models.CharField(max_length=100, blank=True) # pv
layer_version = models.ForeignKey('Layer_Version', related_name='recipe_layer_version')
- summary = models.CharField(max_length=100, blank=True)
+ summary = models.TextField(blank=True)
description = models.TextField(blank=True)
section = models.CharField(max_length=100, blank=True)
license = models.CharField(max_length=200, blank=True)
@@ -402,11 +545,6 @@ class Recipe(models.Model):
bugtracker = models.URLField(blank=True)
file_path = models.FilePathField(max_length=255)
- def get_vcs_link_url(self):
- if self.layer_version.layer.vcs_web_file_base_url is None:
- return ""
- return self.layer_version.layer.vcs_web_file_base_url.replace('%path%', self.file_path).replace('%branch%', self.layer_version.up_branch.name)
-
def get_layersource_view_url(self):
if self.layer_source is None:
return ""
@@ -417,6 +555,15 @@ class Recipe(models.Model):
def __unicode__(self):
return "Recipe " + self.name + ":" + self.version
+ def get_local_path(self):
+ if settings.MANAGED and self.layer_version.build.project is not None:
+ return self.file_path[len(self.layer_version.layer.local_path)+1:]
+
+ return self.file_path
+
+ class Meta:
+ unique_together = ("layer_version", "file_path")
+
class Recipe_DependencyManager(models.Manager):
use_for_related_fields = True
@@ -438,6 +585,7 @@ class Recipe_Dependency(models.Model):
class Machine(models.Model):
+ search_allowed_fields = ["name", "description", "layer_version__layer__name"]
layer_source = models.ForeignKey('LayerSource', default = None, null = True) # from where did we get this machine
up_id = models.IntegerField(null = True, default = None) # id of entry in the source
up_date = models.DateTimeField(null = True, default = None)
@@ -446,6 +594,11 @@ class Machine(models.Model):
name = models.CharField(max_length=255)
description = models.CharField(max_length=255)
+ def get_vcs_machine_file_link_url(self):
+ path = 'conf/machine/'+self.name+'.conf'
+
+ return self.layer_version.get_vcs_file_link_url(path)
+
def __unicode__(self):
return "Machine " + self.name + "(" + self.description + ")"
@@ -469,33 +622,47 @@ class LayerSource(models.Model):
TYPE_LOCAL = 0
TYPE_LAYERINDEX = 1
+ TYPE_IMPORTED = 2
SOURCE_TYPE = (
(TYPE_LOCAL, "local"),
(TYPE_LAYERINDEX, "layerindex"),
+ (TYPE_IMPORTED, "imported"),
)
- name = models.CharField(max_length=63)
+ name = models.CharField(max_length=63, unique = True)
sourcetype = models.IntegerField(choices=SOURCE_TYPE)
apiurl = models.CharField(max_length=255, null=True, default=None)
+ def update(self):
+ """
+ Updates the local database information from the upstream layer source
+ """
+ raise Exception("Abstract, update() must be implemented by all LayerSource-derived classes (object is %s)" % str(vars(self)))
+
def save(self, *args, **kwargs):
if isinstance(self, LocalLayerSource):
self.sourcetype = LayerSource.TYPE_LOCAL
elif isinstance(self, LayerIndexLayerSource):
self.sourcetype = LayerSource.TYPE_LAYERINDEX
+ elif isinstance(self, ImportedLayerSource):
+ self.sourcetype = LayerSource.TYPE_IMPORTED
elif self.sourcetype == None:
- raise Exception("Invalid LayerSource type")
+ raise Exception("Unknown LayerSource-derived class. If you added a new layer source type, fill out all code stubs.")
return super(LayerSource, self).save(*args, **kwargs)
def get_object(self):
- if self.sourcetype is not None:
- if self.sourcetype == LayerSource.TYPE_LOCAL:
- self.__class__ = LocalLayerSource
- if self.sourcetype == LayerSource.TYPE_LAYERINDEX:
- self.__class__ = LayerIndexLayerSource
+ if self.sourcetype == LayerSource.TYPE_LOCAL:
+ self.__class__ = LocalLayerSource
+ elif self.sourcetype == LayerSource.TYPE_LAYERINDEX:
+ self.__class__ = LayerIndexLayerSource
+ elif self.sourcetype == LayerSource.TYPE_IMPORTED:
+ self.__class__ = ImportedLayerSource
+ else:
+ raise Exception("Unknown LayerSource type. If you added a new layer source type, fill out all code stubs.")
return self
- return "LS " + self.sourcetype + " " + self.name
+ def __unicode__(self):
+ return "%s (%s)" % (self.name, self.sourcetype)
class LocalLayerSource(LayerSource):
@@ -507,11 +674,26 @@ class LocalLayerSource(LayerSource):
self.sourcetype = LayerSource.TYPE_LOCAL
def update(self):
- '''
+ """
+ Fetches layer, recipe and machine information from local repository
+ """
+ pass
+
+class ImportedLayerSource(LayerSource):
+ class Meta(LayerSource._meta.__class__):
+ proxy = True
+
+ def __init__(self, *args, **kwargs):
+ super(ImportedLayerSource, self).__init__(args, kwargs)
+ self.sourcetype = LayerSource.TYPE_IMPORTED
+
+ def update(self):
+ """
Fetches layer, recipe and machine information from local repository
- '''
+ """
pass
+
class LayerIndexLayerSource(LayerSource):
class Meta(LayerSource._meta.__class__):
proxy = True
@@ -521,42 +703,67 @@ class LayerIndexLayerSource(LayerSource):
self.sourcetype = LayerSource.TYPE_LAYERINDEX
def get_object_view(self, branch, objectype, upid):
- if self != branch.layer_source:
- raise Exception("Invalid branch specification")
return self.apiurl + "../branch/" + branch.name + "/" + objectype + "/?q=" + str(upid)
def update(self):
- '''
+ """
Fetches layer, recipe and machine information from remote repository
- '''
+ """
assert self.apiurl is not None
+ from django.db import IntegrityError
+ from django.db import transaction, connection
+
+ import httplib, urlparse, json
+ import os
+ proxy_settings = os.environ.get("http_proxy", None)
def _get_json_response(apiurl = self.apiurl):
- import httplib, urlparse, json
- parsedurl = urlparse.urlparse(apiurl)
- (host, port) = parsedurl.netloc.split(":")
- if port is None:
- port = 80
+ conn = None
+ _parsedurl = urlparse.urlparse(apiurl)
+ path = _parsedurl.path
+ query = _parsedurl.query
+ def parse_url(url):
+ parsedurl = urlparse.urlparse(url)
+ try:
+ (host, port) = parsedurl.netloc.split(":")
+ except ValueError:
+ host = parsedurl.netloc
+ port = None
+
+ if port is None:
+ port = 80
+ else:
+ port = int(port)
+ return (host, port)
+
+ if proxy_settings is None:
+ host, port = parse_url(apiurl)
+ conn = httplib.HTTPConnection(host, port)
+ conn.request("GET", path + "?" + query)
else:
- port = int(port)
- #print "-- connect to: http://%s:%s%s?%s" % (host, port, parsedurl.path, parsedurl.query)
- conn = httplib.HTTPConnection(host, port)
- conn.request("GET", parsedurl.path + "?" + parsedurl.query)
+ host, port = parse_url(proxy_settings)
+ conn = httplib.HTTPConnection(host, port)
+ conn.request("GET", apiurl)
+
r = conn.getresponse()
if r.status != 200:
- raise Exception("Failed to read " + parsedurl.path + ": %d %s" % (r.status, r.reason))
+ raise Exception("Failed to read " + path + ": %d %s" % (r.status, r.reason))
return json.loads(r.read())
# verify we can get the basic api
try:
apilinks = _get_json_response()
- except:
- print "EE: could not connect to %s, skipping update" % self.apiurl
+ except Exception as e:
+ import traceback
+ if proxy_settings is not None:
+ print "EE: Using proxy ", proxy_settings
+ print "EE: could not connect to %s, skipping update: %s\n%s" % (self.apiurl, e, traceback.format_exc(e))
return
- # update branches; only those that we already have names listed in the database
- whitelist_branch_names = map(lambda x: x.name, Branch.objects.all())
+ # update branches; only those that we already have names listed in the Releases table
+ whitelist_branch_names = map(lambda x: x.branch_name, Release.objects.all())
+ print "Fetching branches"
branches_info = _get_json_response(apilinks['branches']
+ "?filter=name:%s" % "OR".join(whitelist_branch_names))
for bi in branches_info:
@@ -564,90 +771,160 @@ class LayerIndexLayerSource(LayerSource):
b.up_id = bi['id']
b.up_date = bi['updated']
b.name = bi['name']
- b.bitbake_branch = bi['bitbake_branch']
b.short_description = bi['short_description']
b.save()
# update layers
layers_info = _get_json_response(apilinks['layerItems'])
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(False)
for li in layers_info:
- l, created = Layer.objects.get_or_create(layer_source = self, up_id = li['id'])
+ l, created = Layer.objects.get_or_create(layer_source = self, name = li['name'])
+ l.up_id = li['id']
l.up_date = li['updated']
- l.name = li['name']
l.vcs_url = li['vcs_url']
+ l.vcs_web_url = li['vcs_web_url']
+ l.vcs_web_tree_base_url = li['vcs_web_tree_base_url']
l.vcs_web_file_base_url = li['vcs_web_file_base_url']
l.summary = li['summary']
l.description = li['description']
l.save()
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(True)
# update layerbranches/layer_versions
+ print "Fetching layer information"
layerbranches_info = _get_json_response(apilinks['layerBranches']
- + "?filter=branch:%s" % "OR".join(map(lambda x: str(x.up_id), Branch.objects.filter(layer_source = self)))
+ + "?filter=branch:%s" % "OR".join(map(lambda x: str(x.up_id), [i for i in Branch.objects.filter(layer_source = self) if i.up_id is not None] ))
)
+
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(False)
for lbi in layerbranches_info:
- lv, created = Layer_Version.objects.get_or_create(layer_source = self, up_id = lbi['id'])
+ lv, created = Layer_Version.objects.get_or_create(layer_source = self,
+ up_id = lbi['id'],
+ layer=Layer.objects.get(layer_source = self, up_id = lbi['layer'])
+ )
lv.up_date = lbi['updated']
- lv.layer = Layer.objects.get(layer_source = self, up_id = lbi['layer'])
lv.up_branch = Branch.objects.get(layer_source = self, up_id = lbi['branch'])
lv.branch = lbi['actual_branch']
- lv.commit = lbi['vcs_last_rev']
+ lv.commit = lbi['actual_branch']
lv.dirpath = lbi['vcs_subdir']
lv.save()
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(True)
+
+ # update layer dependencies
+ layerdependencies_info = _get_json_response(apilinks['layerDependencies'])
+ dependlist = {}
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(False)
+ for ldi in layerdependencies_info:
+ try:
+ lv = Layer_Version.objects.get(layer_source = self, up_id = ldi['layerbranch'])
+ except Layer_Version.DoesNotExist as e:
+ continue
+
+ if lv not in dependlist:
+ dependlist[lv] = []
+ try:
+ dependlist[lv].append(Layer_Version.objects.get(layer_source = self, layer__up_id = ldi['dependency'], up_branch = lv.up_branch))
+ except Layer_Version.DoesNotExist as e:
+ print "Cannot find layer version ", self, ldi['dependency'], lv.up_branch
+ raise e
+
+ for lv in dependlist:
+ LayerVersionDependency.objects.filter(layer_version = lv).delete()
+ for lvd in dependlist[lv]:
+ LayerVersionDependency.objects.get_or_create(layer_version = lv, depends_on = lvd)
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(True)
# update machines
+ print "Fetching machine information"
machines_info = _get_json_response(apilinks['machines']
+ "?filter=layerbranch:%s" % "OR".join(map(lambda x: str(x.up_id), Layer_Version.objects.filter(layer_source = self)))
)
+
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(False)
for mi in machines_info:
- mo, created = Machine.objects.get_or_create(layer_source = self, up_id = mi['id'])
+ mo, created = Machine.objects.get_or_create(layer_source = self, up_id = mi['id'], layer_version = Layer_Version.objects.get(layer_source = self, up_id = mi['layerbranch']))
mo.up_date = mi['updated']
- mo.layer_version = Layer_Version.objects.get(layer_source = self, up_id = mi['layerbranch'])
mo.name = mi['name']
mo.description = mi['description']
mo.save()
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(True)
+
# update recipes; paginate by layer version / layer branch
+ print "Fetching target information"
recipes_info = _get_json_response(apilinks['recipes']
+ "?filter=layerbranch:%s" % "OR".join(map(lambda x: str(x.up_id), Layer_Version.objects.filter(layer_source = self)))
)
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(False)
for ri in recipes_info:
- ro, created = Recipe.objects.get_or_create(layer_source = self, up_id = ri['id'])
-
- ro.up_date = ri['updated']
- ro.layer_version = Layer_Version.objects.get(layer_source = self, up_id = mi['layerbranch'])
-
- ro.name = ri['pn']
- ro.version = ri['pv']
- ro.summary = ri['summary']
- ro.description = ri['description']
- ro.section = ri['section']
- ro.license = ri['license']
- ro.homepage = ri['homepage']
- ro.bugtracker = ri['bugtracker']
- ro.file_path = ri['filepath'] + ri['filename']
- ro.save()
-
+ try:
+ ro, created = Recipe.objects.get_or_create(layer_source = self, up_id = ri['id'], layer_version = Layer_Version.objects.get(layer_source = self, up_id = ri['layerbranch']))
+ ro.up_date = ri['updated']
+ ro.name = ri['pn']
+ ro.version = ri['pv']
+ ro.summary = ri['summary']
+ ro.description = ri['description']
+ ro.section = ri['section']
+ ro.license = ri['license']
+ ro.homepage = ri['homepage']
+ ro.bugtracker = ri['bugtracker']
+ ro.file_path = ri['filepath'] + "/" + ri['filename']
+ ro.save()
+ except:
+ #print "Duplicate Recipe, ignoring: ", vars(ro)
+ pass
+ if not connection.features.autocommits_when_autocommit_is_off:
+ transaction.set_autocommit(True)
pass
class BitbakeVersion(models.Model):
+
name = models.CharField(max_length=32, unique = True)
- giturl = models.URLField()
+ giturl = GitURLField()
branch = models.CharField(max_length=32)
dirpath = models.CharField(max_length=255)
+ def __unicode__(self):
+ return "%s (Branch: %s)" % (self.name, self.branch)
+
class Release(models.Model):
+ """ A release is a project template, used to pre-populate Project settings with a configuration set """
name = models.CharField(max_length=32, unique = True)
description = models.CharField(max_length=255)
bitbake_version = models.ForeignKey(BitbakeVersion)
- branch = models.CharField(max_length=32)
+ branch_name = models.CharField(max_length=50, default = "")
+ helptext = models.TextField(null=True)
+
+ def __unicode__(self):
+ return "%s (%s)" % (self.name, self.branch_name)
+
+class ReleaseLayerSourcePriority(models.Model):
+ """ Each release selects layers from the set up layer sources, ordered by priority """
+ release = models.ForeignKey("Release")
+ layer_source = models.ForeignKey("LayerSource")
+ priority = models.IntegerField(default = 0)
+
+ def __unicode__(self):
+ return "%s-%s:%d" % (self.release.name, self.layer_source.name, self.priority)
+ class Meta:
+ unique_together = (('release', 'layer_source'),)
class ReleaseDefaultLayer(models.Model):
release = models.ForeignKey(Release)
- layer = models.ForeignKey('Layer')
+ layer_name = models.CharField(max_length=100, default="")
# Branch class is synced with layerindex.Branch, branches can only come from remote layer indexes
@@ -657,7 +934,6 @@ class Branch(models.Model):
up_date = models.DateTimeField(null = True, default = None)
name = models.CharField(max_length=50)
- bitbake_branch = models.CharField(max_length=50, blank=True)
short_description = models.CharField(max_length=50, blank=True)
class Meta:
@@ -677,14 +953,16 @@ class Layer(models.Model):
name = models.CharField(max_length=100)
local_path = models.FilePathField(max_length=255, null = True, default = None)
layer_index_url = models.URLField()
- vcs_url = models.URLField(default = None, null = True)
+ vcs_url = GitURLField(default = None, null = True)
+ vcs_web_url = models.URLField(null = True, default = None)
+ vcs_web_tree_base_url = models.URLField(null = True, default = None)
vcs_web_file_base_url = models.URLField(null = True, default = None)
- summary = models.CharField(max_length=200, help_text='One-line description of the layer', null = True, default = None)
+ summary = models.TextField(help_text='One-line description of the layer', null = True, default = None)
description = models.TextField(null = True, default = None)
def __unicode__(self):
- return "L " + self.name
+ return "%s / %s " % (self.name, self.layer_source)
class Meta:
unique_together = (("layer_source", "up_id"), ("layer_source", "name"))
@@ -692,7 +970,7 @@ class Layer(models.Model):
# LayerCommit class is synced with layerindex.LayerBranch
class Layer_Version(models.Model):
- search_allowed_fields = ["layer__name", "layer__summary",]
+ search_allowed_fields = ["layer__name", "layer__summary", "layer__description", "layer__vcs_url", "dirpath", "up_branch__name", "commit", "branch"]
build = models.ForeignKey(Build, related_name='layer_version_build', default = None, null = True)
layer = models.ForeignKey(Layer, related_name='layer_version_layer')
@@ -706,8 +984,106 @@ class Layer_Version(models.Model):
dirpath = models.CharField(max_length=255, null = True, default = None) # LayerBranch.vcs_subdir
priority = models.IntegerField(default = 0) # if -1, this is a default layer
+ project = models.ForeignKey('Project', null = True, default = None) # Set if this layer is project-specific; always set for imported layers, and project-set branches
+
+ # code lifted, with adaptations, from the layerindex-web application https://git.yoctoproject.org/cgit/cgit.cgi/layerindex-web/
+ def _handle_url_path(self, base_url, path):
+ import re, posixpath
+ if base_url:
+ if self.dirpath:
+ if path:
+ extra_path = self.dirpath + '/' + path
+ # Normalise out ../ in path for usage URL
+ extra_path = posixpath.normpath(extra_path)
+ # Minor workaround to handle case where subdirectory has been added between branches
+ # (should probably support usage URL per branch to handle this... sigh...)
+ if extra_path.startswith('../'):
+ extra_path = extra_path[3:]
+ else:
+ extra_path = self.dirpath
+ else:
+ extra_path = path
+ branchname = self.up_branch.name
+ url = base_url.replace('%branch%', branchname)
+
+ # If there's a % in the path (e.g. a wildcard bbappend) we need to encode it
+ if extra_path:
+ extra_path = extra_path.replace('%', '%25')
+
+ if '%path%' in base_url:
+ if extra_path:
+ url = re.sub(r'\[([^\]]*%path%[^\]]*)\]', '\\1', url)
+ else:
+ url = re.sub(r'\[([^\]]*%path%[^\]]*)\]', '', url)
+ return url.replace('%path%', extra_path)
+ else:
+ return url + extra_path
+ return None
+
+ def get_vcs_link_url(self):
+ if self.layer.vcs_web_url is None:
+ return None
+ return self.layer.vcs_web_url
+
+ def get_vcs_file_link_url(self, file_path=""):
+ if self.layer.vcs_web_file_base_url is None:
+ return None
+ return self._handle_url_path(self.layer.vcs_web_file_base_url, file_path)
+
+ def get_vcs_dirpath_link_url(self):
+ if self.layer.vcs_web_tree_base_url is None:
+ return None
+ return self._handle_url_path(self.layer.vcs_web_tree_base_url, '')
+
+ def get_equivalents_wpriority(self, project):
+ """ Returns an ordered layerversion list that satisfies a LayerVersionDependency using the layer name and the current Project Releases' LayerSource priority """
+
+ # layers created for this project, or coming from a build inthe project
+ query = Q(project = project) | Q(build__project = project)
+ if self.up_branch is not None:
+ # the same up_branch name
+ query |= Q(up_branch__name=self.up_branch.name)
+ else:
+ # or we have a layer in the project that's similar to mine (See the layer.name constraint below)
+ query |= Q(projectlayer__project=project)
+
+ candidate_layer_versions = list(Layer_Version.objects.filter(layer__name = self.layer.name).filter(query).select_related('layer_source', 'layer', 'up_branch').order_by("-id"))
+
+ # optimization - if we have only one, we don't need no stinking sort
+ if len(candidate_layer_versions) == 1:
+ return candidate_layer_versions
+
+# raise Exception(candidate_layer_versions)
+
+ release_priorities = {}
+
+ for ls_id, prio in map(lambda x: (x.layer_source_id, x.priority), project.release.releaselayersourcepriority_set.all().order_by("-priority")):
+ release_priorities[ls_id] = prio
+
+ def _get_ls_priority(ls):
+ # if there is no layer source, we have minus infinite priority, as we don't want this layer selected
+ if ls == None:
+ return -10000
+ try:
+ return release_priorities[ls.id]
+ except IndexError:
+ raise Exception("Unknown %d %s" % (ls.id, release_priorities))
+
+ return sorted( candidate_layer_versions ,
+ key = lambda x: _get_ls_priority(x.layer_source),
+ reverse = True)
+
+ def get_vcs_reference(self):
+ if self.commit is not None and len(self.commit) > 0:
+ return self.commit
+ if self.branch is not None and len(self.branch) > 0:
+ return self.branch
+ if self.up_branch is not None:
+ return self.up_branch.name
+ return ("Cannot determine the vcs_reference for layer version %s" % vars(self))
+
def __unicode__(self):
- return "LV " + str(self.layer) + " " + self.commit
+ return "%d %s (VCS %s, Project %s)" % (self.pk, str(self.layer), self.get_vcs_reference(), self.build.project if self.build is not None else "No project")
class Meta:
unique_together = ("layer_source", "up_id")
@@ -727,6 +1103,12 @@ class ProjectLayer(models.Model):
layercommit = models.ForeignKey(Layer_Version, null=True)
optional = models.BooleanField(default = True)
+ def __unicode__(self):
+ return "%s, %s" % (self.project.name, self.layercommit)
+
+ class Meta:
+ unique_together = (("project", "layercommit"),)
+
class ProjectVariable(models.Model):
project = models.ForeignKey(Project)
name = models.CharField(max_length=100)
@@ -759,13 +1141,15 @@ class HelpText(models.Model):
text = models.TextField()
class LogMessage(models.Model):
+ EXCEPTION = -1 # used to signal self-toaster-exceptions
INFO = 0
WARNING = 1
ERROR = 2
LOG_LEVEL = ( (INFO, "info"),
(WARNING, "warn"),
- (ERROR, "error") )
+ (ERROR, "error"),
+ (EXCEPTION, "toaster exception"))
build = models.ForeignKey(Build)
task = models.ForeignKey(Task, blank = True, null=True)
diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index f2f561bff9..7b1b9633f9 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -1,16 +1,25 @@
from django.test import TestCase
-from orm.models import LocalLayerSource, LayerIndexLayerSource, LayerSource
+from orm.models import LocalLayerSource, LayerIndexLayerSource, ImportedLayerSource, LayerSource
from orm.models import Branch
+from orm.models import Project, Build, Layer, Layer_Version, Branch, ProjectLayer
+from orm.models import Release, ReleaseLayerSourcePriority, BitbakeVersion
+
+from django.utils import timezone
+
+# tests to verify inheritance for the LayerSource proxy-inheritance classes
class LayerSourceVerifyInheritanceSaveLoad(TestCase):
def test_object_creation(self):
lls = LayerSource.objects.create(name = "a1", sourcetype = LayerSource.TYPE_LOCAL, apiurl = "")
- lils = LayerSource.objects.create(name = "a1", sourcetype = LayerSource.TYPE_LAYERINDEX, apiurl = "")
+ lils = LayerSource.objects.create(name = "a2", sourcetype = LayerSource.TYPE_LAYERINDEX, apiurl = "")
+ imls = LayerSource.objects.create(name = "a3", sourcetype = LayerSource.TYPE_IMPORTED, apiurl = "")
- print LayerSource.objects.all()
+ import pprint
+ pprint.pprint([(x.__class__,vars(x)) for x in LayerSource.objects.all()])
self.assertTrue(True in map(lambda x: isinstance(x, LocalLayerSource), LayerSource.objects.all()))
self.assertTrue(True in map(lambda x: isinstance(x, LayerIndexLayerSource), LayerSource.objects.all()))
+ self.assertTrue(True in map(lambda x: isinstance(x, ImportedLayerSource), LayerSource.objects.all()))
def test_duplicate_error(self):
def duplicate():
@@ -18,9 +27,9 @@ class LayerSourceVerifyInheritanceSaveLoad(TestCase):
LayerSource.objects.create(name = "a1", sourcetype = LayerSource.TYPE_LOCAL, apiurl = "")
self.assertRaises(Exception, duplicate)
-
+# test to verify the layer source update functionality for layerindex. edit to pass the URL to a layerindex application
class LILSUpdateTestCase(TestCase):
def test_update(self):
lils = LayerSource.objects.create(name = "b1", sourcetype = LayerSource.TYPE_LAYERINDEX, apiurl = "http://adamian-desk.local:8080/layerindex/api/")
@@ -31,3 +40,126 @@ class LILSUpdateTestCase(TestCase):
# print vars(lils)
#print map(lambda x: vars(x), Branch.objects.all())
+
+ # run asserts
+ self.assertTrue(lils.branch_set.all().count() > 0, "update() needs to fetch some branches")
+
+
+
+# tests to verify layer_version priority selection
+class LayerVersionEquivalenceTestCase(TestCase):
+ def setUp(self):
+ # create layer sources
+ ls = LayerSource.objects.create(name = "dummy-layersource", sourcetype = LayerSource.TYPE_LOCAL)
+
+ # create bitbake version
+ bbv = BitbakeVersion.objects.create(name="master", giturl="git://git.openembedded.org/bitbake")
+ # create release
+ release = Release.objects.create(name="default-release", bitbake_version = bbv, branch_name = "master")
+ # attach layer source to release
+ ReleaseLayerSourcePriority.objects.create(release = release, layer_source = ls, priority = 1)
+
+ # create layer attach
+ self.layer = Layer.objects.create(name="meta-testlayer", layer_source = ls)
+ # create branch
+ self.branch = Branch.objects.create(name="master", layer_source = ls)
+
+ # set a layer version for the layer on the specified branch
+ self.layerversion = Layer_Version.objects.create(layer = self.layer, layer_source = ls, up_branch = self.branch)
+
+ # create spoof layer that should not appear in the search results
+ Layer_Version.objects.create(layer = Layer.objects.create(name="meta-notvalid", layer_source = ls), layer_source = ls, up_branch = self.branch)
+
+
+ # create a project ...
+ self.project = Project.objects.create_project(name="test-project", release = release)
+ # ... and set it up with a single layer version
+ ProjectLayer.objects.create(project= self.project, layercommit = self.layerversion)
+
+ def test_single_layersource(self):
+ # when we have a single layer version, get_equivalents_wpriority() should return a list with just this layer_version
+ equivalent_list = self.layerversion.get_equivalents_wpriority(self.project)
+ self.assertTrue(len(equivalent_list) == 1)
+ self.assertTrue(equivalent_list[0] == self.layerversion)
+
+ def test_dual_layersource(self):
+ # if we have two layers with the same name, from different layer sources, we expect both layers in, in increasing priority of the layer source
+ ls2 = LayerSource.objects.create(name = "dummy-layersource2", sourcetype = LayerSource.TYPE_LOCAL)
+
+ # assign a lower priority for the second layer source
+ Release.objects.get(name="default-release").releaselayersourcepriority_set.create(layer_source = ls2, priority = 2)
+
+ # create a new layer_version for a layer with the same name coming from the second layer source
+ self.layer2 = Layer.objects.create(name="meta-testlayer", layer_source = ls2)
+ self.layerversion2 = Layer_Version.objects.create(layer = self.layer2, layer_source = ls2, up_branch = self.branch)
+
+ # expect two layer versions, in the priority order
+ equivalent_list = self.layerversion.get_equivalents_wpriority(self.project)
+ self.assertTrue(len(equivalent_list) == 2)
+ self.assertTrue(equivalent_list[0] == self.layerversion2)
+ self.assertTrue(equivalent_list[1] == self.layerversion)
+
+ def test_build_layerversion(self):
+ # any layer version coming from the build should show up before any layer version coming from upstream
+ build = Build.objects.create(project = self.project, started_on = timezone.now(), completed_on = timezone.now())
+ self.layerversion_build = Layer_Version.objects.create(layer = self.layer, build = build, commit = "deadbeef")
+
+ # a build layerversion must be in the equivalence list for the original layerversion
+ equivalent_list = self.layerversion.get_equivalents_wpriority(self.project)
+ self.assertTrue(len(equivalent_list) == 2)
+ self.assertTrue(equivalent_list[0] == self.layerversion)
+ self.assertTrue(equivalent_list[1] == self.layerversion_build)
+
+ # getting the build layerversion equivalent list must return the same list as the original layer
+ build_equivalent_list = self.layerversion_build.get_equivalents_wpriority(self.project)
+
+ self.assertTrue(equivalent_list == build_equivalent_list, "%s is not %s" % (equivalent_list, build_equivalent_list))
+
+class ProjectLVSelectionTestCase(TestCase):
+ def setUp(self):
+ # create layer sources
+ ls = LayerSource.objects.create(name = "dummy-layersource", sourcetype = LayerSource.TYPE_LOCAL)
+
+ # create bitbake version
+ bbv = BitbakeVersion.objects.create(name="master", giturl="git://git.openembedded.org/bitbake")
+ # create release
+ release = Release.objects.create(name="default-release", bitbake_version = bbv, branch_name="master")
+ # attach layer source to release
+ ReleaseLayerSourcePriority.objects.create(release = release, layer_source = ls, priority = 1)
+
+ # create layer attach
+ self.layer = Layer.objects.create(name="meta-testlayer", layer_source = ls)
+ # create branch
+ self.branch = Branch.objects.create(name="master", layer_source = ls)
+
+ # set a layer version for the layer on the specified branch
+ self.layerversion = Layer_Version.objects.create(layer = self.layer, layer_source = ls, up_branch = self.branch)
+
+
+ # create a project ...
+ self.project = Project.objects.create_project(name="test-project", release = release)
+ # ... and set it up with a single layer version
+ ProjectLayer.objects.create(project= self.project, layercommit = self.layerversion)
+
+ def test_single_layersource(self):
+ compatible_layerversions = self.project.compatible_layerversions()
+ self.assertTrue(len(compatible_layerversions) == 1)
+ self.assertTrue(compatible_layerversions[0] == self.layerversion)
+
+
+ def test_dual_layersource(self):
+ # if we have two layers with the same name, from different layer sources, we expect both layers in, in increasing priority of the layer source
+ ls2 = LayerSource.objects.create(name = "dummy-layersource2", sourcetype = LayerSource.TYPE_LOCAL)
+
+ # assign a lower priority for the second layer source
+ Release.objects.get(name="default-release").releaselayersourcepriority_set.create(layer_source = ls2, priority = 2)
+
+ # create a new layer_version for a layer with the same name coming from the second layer source
+ self.layer2 = Layer.objects.create(name="meta-testlayer", layer_source = ls2)
+ self.layerversion2 = Layer_Version.objects.create(layer = self.layer2, layer_source = ls2, up_branch = self.branch)
+
+ # expect two layer versions, in the priority order
+ equivalent_list = self.project.compatible_layerversions()
+ self.assertTrue(len(equivalent_list) == 2)
+ self.assertTrue(equivalent_list[0] == self.layerversion2)
+ self.assertTrue(equivalent_list[1] == self.layerversion)
diff --git a/bitbake/lib/toaster/orm/urls.py b/bitbake/lib/toaster/orm/urls.py
new file mode 100644
index 0000000000..961bc19070
--- /dev/null
+++ b/bitbake/lib/toaster/orm/urls.py
@@ -0,0 +1,27 @@
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2014 Intel Corporation
+#
+# 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.
+
+
+from django.conf.urls import patterns, include, url
+from django.views.generic import RedirectView
+
+urlpatterns = patterns('orm.views',
+ # landing point for pushing a bitbake_eventlog.json file to this toaster instace
+ url(r'^eventfile$', 'eventfile', name='eventfile'),
+ )
+
diff --git a/bitbake/lib/toaster/orm/views.py b/bitbake/lib/toaster/orm/views.py
new file mode 100644
index 0000000000..97d792b99e
--- /dev/null
+++ b/bitbake/lib/toaster/orm/views.py
@@ -0,0 +1,60 @@
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2014 Intel Corporation
+#
+# 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.
+
+from django.views.decorators.cache import cache_control
+from django.core.urlresolvers import reverse
+from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
+from django.http import HttpResponseBadRequest, HttpResponse
+from django.utils import timezone
+from django.utils.html import escape
+from datetime import timedelta
+from django.utils import formats
+from toastergui.templatetags.projecttags import json as jsonfilter
+import json
+import os
+import tempfile
+import subprocess
+import toastermain
+from django.views.decorators.csrf import csrf_exempt
+
+
+@csrf_exempt
+def eventfile(request):
+ """ Receives a file by POST, and runs toaster-eventreply on this file """
+ if request.method != "POST":
+ return HttpResponseBadRequest("This API only accepts POST requests. Post a file with:\n\ncurl -F eventlog=@bitbake_eventlog.json http[s]://[server-address]/orm/eventfile\n", content_type="text/plain;utf8")
+
+ # write temporary file
+ (handle, abstemppath) = tempfile.mkstemp(dir="/tmp/")
+ with os.fdopen(handle, "w") as tmpfile:
+ for chunk in request.FILES['eventlog'].chunks():
+ tmpfile.write(chunk)
+ tmpfile.close()
+
+ # compute the path to "bitbake/bin/toaster-eventreplay"
+ from os.path import dirname as DN
+ import_script = os.path.join(DN(DN(DN(DN(os.path.abspath(__file__))))), "bin/toaster-eventreplay")
+ if not os.path.exists(import_script):
+ raise Exception("script missing %s" % import_script)
+ scriptenv = os.environ.copy()
+ scriptenv["DATABASE_URL"] = toastermain.settings.getDATABASE_URL()
+
+ # run the data loading process and return the results
+ (out, err) = subprocess.Popen([import_script, abstemppath], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=scriptenv).communicate()
+ os.remove(abstemppath)
+ return HttpResponse("%s\n%s" % (out, err), content_type="text/plain;utf8")
diff --git a/bitbake/lib/toaster/toastergui/static/css/default.css b/bitbake/lib/toaster/toastergui/static/css/default.css
index 778d8b8456..7ee1251529 100644
--- a/bitbake/lib/toaster/toastergui/static/css/default.css
+++ b/bitbake/lib/toaster/toastergui/static/css/default.css
@@ -2,16 +2,27 @@
.logo img { height: 30px; width: auto !important; }
.logo { padding-top: 4px !important; padding-bottom:0px !important; }
+/* style the version information */
+.brand > a { color: #777; }
+.brand > a:hover { color: #999; text-decoration: none; }
+.icon-info-sign { color: #777; font-size: 16px; margin-left: 5px;}
+.icon-info-sign:hover { color: #999; cursor: pointer; }
+
/* Style the breadcrumb */
.breadcrumb { display: inline-block; background-color: transparent; }
.section { margin: 20px 0; }
/* Styles for the help information */
.get-help { color: #CCCCCC; }
-.get-help:hover { color: #999999; cursor: pointer; }
+.get-help:hover, .icon-plus-sign:hover { color: #999999; cursor: pointer; }
.get-help-blue { color: #3A87AD; }
.get-help-blue:hover { color: #005580; cursor: pointer; }
-.manual { margin-top: 11px; }
+.get-help-yellow { color: #C09853; }
+.get-help-yellow:hover { color: #B38942; cursor: pointer; }
+.get-help-red { color: #B94A48; font-size: 16px; padding-left: 2px; }
+.get-help-red:hover { color: #943A38; cursor: pointer; }
+.build-form>i:first-of-type { margin-left: 5px; }
+.manual { margin: 11px 15px;}
.heading-help { font-size: 14px; }
/* Styles for the external link */
@@ -33,7 +44,7 @@ dd code, .alert code { white-space: pre-wrap; word-break: break-all; word-wrap:
dd ul { list-style-type: none; margin: 0px; }
dt, dd {line-height: 25px; }
dd li { line-height: 25px; }
-dd p { line-height: 20px; }
+.item-info dd { line-height: 20px; margin-bottom: 10px; }
/* Style the filter modal dialogs */
.modal { width: 800px; margin-left: -400px; }
@@ -44,6 +55,7 @@ dd p { line-height: 20px; }
/* Some extra space before headings when needed */
.details { margin-top: 30px; }
+.air { margin-top: 30px; }
/* Required classes for the highlight behaviour in tables */
.highlight { -webkit-animation: target-fade 10s 1; -moz-animation: target-fade 10s 1; animation: target-fade 10s 1; }
@@ -55,11 +67,12 @@ dd p { line-height: 20px; }
.tooltip { z-index: 2000 !important; }
/* Override default Twitter Boostrap styles for anchor tags inside tables */
-td a { color: #333333; }
-td a:hover { color: #000000; text-decoration: underline; }
+td a, td a > code { color: #333333; }
+td code { white-space: normal; }
+td a:hover, td a > code:hover { color: #000000; text-decoration: underline; }
/* Override default Twitter Bootstrap styles for tr.error */
-.table tbody tr.error > td { background-color: #FFFFFF; } /* override default Bootstrap behaviour */
+.table tbody tr.error > td { background-color: transparent; } /* override default Bootstrap behaviour */
.table-hover tbody tr.error:hover > td { background-color: #F5F5F5;} /* override default Bootstrap behaviour */
/* Right justify Bootstrap table columns for size fields */
@@ -96,6 +109,10 @@ th > a, th > span { font-weight: normal; }
.content-directory a:hover { color: #005580; text-decoration: underline; }
.symlink { color: #CCCCCC; }
+/* Styles for the navbar actions */
+.btn-group + .btn-group { margin-right: 10px; }
+.navbar-inner > .btn-group { margin-top: 6px; }
+
/* Other styles */
.dropdown-menu { padding: 10px; }
select { width: auto; }
@@ -103,25 +120,57 @@ select { width: auto; }
.top-air { margin-top: 40px;}
.progress { margin-bottom: 0px; }
.lead .badge { font-size: 18px; font-weight: normal; border-radius: 15px; padding: 9px; }
+.lead ol, .lead ul { padding: 10px 0 0 20px; }
+.lead ol > li, .lead ul > li {
+ line-height: 35px;
+}
.well > .lead, .alert .lead { margin-bottom: 0px; }
+.well-transparent { background-color: transparent; }
.no-results { margin: 10px 0; }
.task-name { margin-left: 7px; }
.icon-hand-right {color: #CCCCCC; }
.help-inline { margin: 5px; }
+.dashboard-section { background-color: transparent; }
+
+/* styles for landing page - analysis mode */
.hero-unit { margin: 20px 0 30px; }
.hero-unit > .close { font-size:40px; }
.hero-actions { margin-top: 30px; }
-.dashboard-section { background-color: transparent; }
+
+/* styles for landing page - build mode */
+.hero-unit p { line-height: 25px; }
+.hero-unit p, .hero-unit .btn-large { margin-top: 15px; }
+.hero-unit ul { margin-top: 20px; }
+.hero-unit li { line-height: 30px; }
+.hero-unit img { background-color: #eee; margin-top: 15px; }
/* make tables Chrome-happy (me, not so much) */
#otable { table-layout: fixed; word-wrap: break-word; }
+/* styles for the new build button */
+.new-build .btn-primary { padding: 4px 30px; }
+.new-build .alert { margin-top: 10px; }
+.new-build .alert p { margin-top: 10px; }
+
+/* styles for showing the project name in build mode */
+.project-name { padding-top: 0; }
+.project-name .label { font-weight: normal; margin-bottom: 5px; margin-left: -15px; padding: 5px; }
+.project-name .label > a { color: #fff; font-weight: normal; }
+
+/* Remove bottom margin for forms inside modal dialogs */
+#dependencies_modal_form { margin-bottom: 0px; }
+
/* Configuration styles */
-.icon-trash { color: #B94A48; font-size: 16px; padding-left: 2px; }
+.icon-trash { color: #B94A48; font-size: 16px; padding-left: 5px; }
.icon-trash:hover { color: #943A38; text-decoration: none; cursor: pointer; }
-.icon-pencil, .icon-download-alt { font-size: 16px; color: #0088CC; padding-left: 2px; }
-.icon-pencil:hover, .icon-download-alt:hover { color: #005580; text-decoration: none; cursor: pointer; }
-.configuration-list li { line-height: 35px; font-size: 21px; font-weight: 200; }
+.icon-pencil, .icon-download-alt, .icon-refresh, .icon-star-empty, .icon-star, .icon-tasks { font-size: 16px; color: #0088CC; padding-left: 2px; }
+.icon-pencil:hover, .icon-download-alt:hover, .icon-refresh:hover, .icon-star-empty:hover, .icon-star:hover, .icon-tasks:hover { color: #005580; text-decoration: none; cursor: pointer; }
+.icon-share { padding-left: 2px; }
+.alert-success .icon-refresh, .alert-success .icon-tasks { color: #468847; }
+.alert-success .icon-refresh:hover, .alert-success .icon-tasks:hover { color: #347132; }
+.alert-error .icon-refresh, .alert-error .icon-tasks { color: #b94a48; }
+.alert-error .icon-refresh:hover, .alert-error .icon-tasks:hover { color: #943A38; }
+.configuration-list li, .configuration-list label { line-height: 35px; font-size: 21px; font-weight: 200; margin-bottom: 0px;}
.configuration-list { font-size: 16px; margin-bottom: 1.5em; }
.configuration-list i { font-size: 16px; }
/*.configuration-layers { height: 135px; overflow: scroll; }*/
@@ -132,15 +181,78 @@ select { width: auto; }
.configuration-alert p { margin-bottom: 0px; }
fieldset { padding-left: 19px; }
.project-form { margin-top: 10px; }
-.add-layers .btn-block + .btn-block { margin-top: 0px; }
+.add-layers .btn-block + .btn-block, .build .btn-block + .btn-block { margin-top: 0px; }
input.huge { font-size: 17.5px; padding: 11px 19px; }
-.build-form { margin-bottom: 0px; padding-left: 20px; }
+.build-form { margin-bottom: 0px; }
+.build-form .input-append { margin-bottom: 0px; }
+.build-form .btn-large { padding: 11px 35px; }
+.build-form p { font-size:17.5px ;margin:12px 0 0 10px;}
+#layer-container form, #target-container form { margin-bottom: 0px; }
+.btn-primary .icon-question-sign, .btn-danger .icon-question-sign { color: #fff; }
+.btn-primary .icon-question-sign:hover, .btn-danger .icon-question-sign:hover { color: #999; }
a code { color: #0088CC; }
a code:hover { color: #005580; }
.localconf { font-size: 17.5px; margin-top: 40px; }
.localconf code { font-size: 17.5px; }
#add-layer-dependencies { margin-top: 5px; }
+.link-action { font-size: 17.5px; margin-top: 40px; }
+.link-action code { font-size: 17.5px; }
.artifact { width: 9em; }
.control-group { margin-bottom: 0px; }
#project-details form { margin: 0px; }
dd form { margin: 10px 0 0 0; }
+dl textarea { resize: vertical; }
+.navbar-fixed-top { z-index: 1; }
+.popover { z-index: 2; }
+.btn-danger .icon-trash { color: #fff; }
+.bbappends { list-style-type: none; margin-left: 0; }
+.bbappends li { line-height: 25px; }
+.configuration-list input[type="checkbox"] { margin-top:13px;margin-right:10px; }
+.alert input[type="checkbox"] { margin-top: 0px; margin-right: 3px; }
+.alert ol { padding: 10px 0px 0px 20px; }
+.alert ol > li { line-height: 35px; }
+.dl-vertical form { margin-top: 10px; }
+.scrolling { border: 1px solid #dddddd; height: 154px; overflow: auto; padding: 8px; width: 27.5%; margin-bottom: 10px; }
+.lead .help-block { font-size: 14px; line-height: 20px; font-weight: normal; }
+.button-place .btn { margin: 0 0 20px 0; }
+.tooltip-inner { max-width: 250px; }
+.new-build { padding: 20px; }
+.new-build li { line-height: 30px; }
+.new-build h6 { margin: 10px 0 0 0; color: #5a5a5a; }
+.new-build h3 { margin: 0; color: #5a5a5a; }
+.new-build form { margin: 5px 0 0; }
+.new-build .input-append { margin-bottom: 0; }
+#build-selected { margin-top: 15px; }
+div.add-deps { margin-top: 15px; }
+.btn.log { margin-left: 20px; }
+
+
+.animate-repeat {
+ list-style:none;
+ box-sizing:border-box;
+}
+
+.animate-repeat.ng-move,
+.animate-repeat.ng-enter,
+.animate-repeat.ng-leave {
+ -webkit-transition:all linear 0.5s;
+ transition:all linear 0.5s;
+}
+
+.animate-repeat.ng-leave.ng-leave-active,
+.animate-repeat.ng-move,
+.animate-repeat.ng-enter {
+ opacity:0;
+}
+
+.animate-repeat.ng-leave,
+.animate-repeat.ng-enter.ng-enter-active {
+ opacity:1;
+}
+
+@keyframes machines-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }
+@-webkit-keyframes machines-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }
+
+.machines-highlight { -webkit-animation: machines-fade 7s 1; -moz-animation: machines-fade 7s 1; animation: machines-fade 7s 1; }
+
+.tab-pane table { margin-top: 10px; }
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png
new file mode 100755
index 0000000000..d5d78a3cfc
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_diagonals-thick_20_666666_40x40.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_diagonals-thick_20_666666_40x40.png
new file mode 100755
index 0000000000..1b0a045e45
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_diagonals-thick_20_666666_40x40.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_flat_10_000000_40x100.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_flat_10_000000_40x100.png
new file mode 100755
index 0000000000..c55f8ef7b8
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_flat_10_000000_40x100.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_100_f6f6f6_1x400.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_100_f6f6f6_1x400.png
new file mode 100755
index 0000000000..ea4fa0fc47
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_100_f6f6f6_1x400.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_100_fdf5ce_1x400.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_100_fdf5ce_1x400.png
new file mode 100755
index 0000000000..2f59e2d8cb
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_100_fdf5ce_1x400.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_65_ffffff_1x400.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100755
index 0000000000..f172b302fc
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_glass_65_ffffff_1x400.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png
new file mode 100644
index 0000000000..1039d548c4
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
new file mode 100755
index 0000000000..1089b70c7b
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
new file mode 100755
index 0000000000..561b7f8422
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_222222_256x240.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000..e9c8e16ac5
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_222222_256x240.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_228ef1_256x240.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_228ef1_256x240.png
new file mode 100644
index 0000000000..8d68c543e0
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_228ef1_256x240.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ef8c08_256x240.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ef8c08_256x240.png
new file mode 100644
index 0000000000..18bbfe8215
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ef8c08_256x240.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ffd27a_256x240.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ffd27a_256x240.png
new file mode 100644
index 0000000000..4435b497eb
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ffd27a_256x240.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ffffff_256x240.png b/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000..4d66f596e5
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/images/ui-icons_ffffff_256x240.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/css/jquery-ui.min.css b/bitbake/lib/toaster/toastergui/static/css/jquery-ui.min.css
new file mode 100755
index 0000000000..c486ec0457
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/jquery-ui.min.css
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.11.4 - 2015-03-17
+* http://jqueryui.com
+* Includes: core.css, datepicker.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#c77405}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_228ef1_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffd27a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x;opacity:.2;filter:Alpha(Opacity=20);border-radius:5px} \ No newline at end of file
diff --git a/bitbake/lib/toaster/toastergui/static/css/jquery-ui.structure.min.css b/bitbake/lib/toaster/toastergui/static/css/jquery-ui.structure.min.css
new file mode 100755
index 0000000000..d1578a4e95
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/jquery-ui.structure.min.css
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.11.4 - 2015-03-15
+* http://jqueryui.com
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px} \ No newline at end of file
diff --git a/bitbake/lib/toaster/toastergui/static/css/jquery-ui.theme.min.css b/bitbake/lib/toaster/toastergui/static/css/jquery-ui.theme.min.css
new file mode 100755
index 0000000000..34543111e3
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/css/jquery-ui.theme.min.css
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.11.4 - 2015-03-17
+* http://jqueryui.com
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#c77405}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_228ef1_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffd27a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x;opacity:.2;filter:Alpha(Opacity=20);border-radius:5px} \ No newline at end of file
diff --git a/bitbake/lib/toaster/toastergui/static/img/toaster_1.7.png b/bitbake/lib/toaster/toastergui/static/img/toaster_1.7.png
new file mode 100644
index 0000000000..7c303fd15e
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/img/toaster_1.7.png
Binary files differ
diff --git a/bitbake/lib/toaster/toastergui/static/js/.jshintrc b/bitbake/lib/toaster/toastergui/static/js/.jshintrc
new file mode 100644
index 0000000000..b02f3efa1c
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/.jshintrc
@@ -0,0 +1,11 @@
+{
+ "curly" : false,
+ "predef" : [ "$","libtoaster", "prettyPrint" ],
+ "eqnull": true,
+ "plusplus" : false,
+ "browser" : true,
+ "jquery" : true,
+ "devel" : true,
+ "unused" : true,
+ "maxerr" : 60
+}
diff --git a/bitbake/lib/toaster/toastergui/static/js/angular-animate.min.js b/bitbake/lib/toaster/toastergui/static/js/angular-animate.min.js
new file mode 100644
index 0000000000..591544a51a
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/angular-animate.min.js
@@ -0,0 +1,28 @@
+/*
+ AngularJS v1.2.23
+ (c) 2010-2014 Google, Inc. http://angularjs.org
+ License: MIT
+*/
+(function(F,e,O){'use strict';e.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){return function(G,s,g){g=g.ngAnimateChildren;e.isString(g)&&0===g.length?s.data("$$ngAnimateChildren",!0):G.$watch(g,function(e){s.data("$$ngAnimateChildren",!!e)})}}).factory("$$animateReflow",["$$rAF","$document",function(e,s){return function(g){return e(function(){g()})}}]).config(["$provide","$animateProvider",function(G,s){function g(e){for(var g=0;g<e.length;g++){var l=e[g];if(l.nodeType==aa)return l}}
+function B(l){return e.element(g(l))}var m=e.noop,u=e.forEach,P=s.$$selectors,aa=1,l="$$ngAnimateState",V="$$ngAnimateChildren",J="ng-animate",n={running:!0};G.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement","$$asyncCallback","$rootScope","$document",function(z,F,$,R,E,H,O){function K(a){var b=a.data(l)||{};b.running=!0;a.data(l,b)}function L(a){if(a){var b=[],c={};a=a.substr(1).split(".");($.transitions||$.animations)&&b.push(F.get(P[""]));for(var d=0;d<a.length;d++){var f=
+a[d],e=P[f];e&&!c[f]&&(b.push(F.get(e)),c[f]=!0)}return b}}function G(a,b,c){function d(a,b){var c=a[b],d=a["before"+b.charAt(0).toUpperCase()+b.substr(1)];if(c||d)return"leave"==b&&(d=c,c=null),n.push({event:b,fn:c}),h.push({event:b,fn:d}),!0}function f(b,d,e){var f=[];u(b,function(a){a.fn&&f.push(a)});var g=0;u(f,function(b,l){var C=function(){a:{if(d){(d[l]||m)();if(++g<f.length)break a;d=null}e()}};switch(b.event){case "setClass":d.push(b.fn(a,A,k,C));break;case "addClass":d.push(b.fn(a,A||c,
+C));break;case "removeClass":d.push(b.fn(a,k||c,C));break;default:d.push(b.fn(a,C))}});d&&0===d.length&&e()}var g=a[0];if(g){var l="setClass"==b,p=l||"addClass"==b||"removeClass"==b,A,k;e.isArray(c)&&(A=c[0],k=c[1],c=A+" "+k);var x=a.attr("class")+" "+c;if(M(x)){var t=m,w=[],h=[],q=m,y=[],n=[],x=(" "+x).replace(/\s+/g,".");u(L(x),function(a){!d(a,b)&&l&&(d(a,"addClass"),d(a,"removeClass"))});return{node:g,event:b,className:c,isClassBased:p,isSetClassOperation:l,before:function(a){t=a;f(h,w,function(){t=
+m;a()})},after:function(a){q=a;f(n,y,function(){q=m;a()})},cancel:function(){w&&(u(w,function(a){(a||m)(!0)}),t(!0));y&&(u(y,function(a){(a||m)(!0)}),q(!0))}}}}}function r(a,b,c,d,f,g,n){function p(d){var e="$animate:"+d;q&&(q[e]&&0<q[e].length)&&E(function(){c.triggerHandler(e,{event:a,className:b})})}function A(){p("before")}function m(){p("after")}function x(){p("close");n&&E(function(){n()})}function t(){t.hasBeenRun||(t.hasBeenRun=!0,g())}function w(){if(!w.hasBeenRun){w.hasBeenRun=!0;var d=
+c.data(l);d&&(h&&h.isClassBased?k(c,b):(E(function(){var d=c.data(l)||{};r==d.index&&k(c,b,a)}),c.data(l,d)));x()}}var h=G(c,a,b);if(h){b=h.className;var q=e.element._data(h.node),q=q&&q.events;d||(d=f?f.parent():c.parent());var y=c.data(l)||{};f=y.active||{};var z=y.totalActive||0,C=y.last,D;h.isClassBased&&(D=y.running||y.disabled||C&&!C.isClassBased);if(D||N(c,d))t(),A(),m(),w();else{d=!1;if(0<z){D=[];if(h.isClassBased)"setClass"==C.event?(D.push(C),k(c,b)):f[b]&&(v=f[b],v.event==a?d=!0:(D.push(v),
+k(c,b)));else if("leave"==a&&f["ng-leave"])d=!0;else{for(var v in f)D.push(f[v]),k(c,v);f={};z=0}0<D.length&&u(D,function(a){a.cancel()})}!h.isClassBased||(h.isSetClassOperation||d)||(d="addClass"==a==c.hasClass(b));if(d)t(),A(),m(),x();else{if("leave"==a)c.one("$destroy",function(a){a=e.element(this);var b=a.data(l);b&&(b=b.active["ng-leave"])&&(b.cancel(),k(a,"ng-leave"))});c.addClass(J);var r=Y++;z++;f[b]=h;c.data(l,{last:h,active:f,index:r,totalActive:z});A();h.before(function(d){var e=c.data(l);
+d=d||!e||!e.active[b]||h.isClassBased&&e.active[b].event!=a;t();!0===d?w():(m(),h.after(w))})}}}else t(),A(),m(),w()}function T(a){if(a=g(a))a=e.isFunction(a.getElementsByClassName)?a.getElementsByClassName(J):a.querySelectorAll("."+J),u(a,function(a){a=e.element(a);(a=a.data(l))&&a.active&&u(a.active,function(a){a.cancel()})})}function k(a,b){if(g(a)==g(R))n.disabled||(n.running=!1,n.structural=!1);else if(b){var c=a.data(l)||{},d=!0===b;!d&&(c.active&&c.active[b])&&(c.totalActive--,delete c.active[b]);
+if(d||!c.totalActive)a.removeClass(J),a.removeData(l)}}function N(a,b){if(n.disabled)return!0;if(g(a)==g(R))return n.running;var c,d,f;do{if(0===b.length)break;var m=g(b)==g(R),k=m?n:b.data(l)||{};if(k.disabled)return!0;m&&(f=!0);!1!==c&&(m=b.data(V),e.isDefined(m)&&(c=m));d=d||k.running||k.last&&!k.last.isClassBased}while(b=b.parent());return!f||!c&&d}var Y=0;R.data(l,n);H.$$postDigest(function(){H.$$postDigest(function(){n.running=!1})});var Q=s.classNameFilter(),M=Q?function(a){return Q.test(a)}:
+function(){return!0};return{enter:function(a,b,c,d){a=e.element(a);b=b&&e.element(b);c=c&&e.element(c);K(a);z.enter(a,b,c);H.$$postDigest(function(){a=B(a);r("enter","ng-enter",a,b,c,m,d)})},leave:function(a,b){a=e.element(a);T(a);K(a);H.$$postDigest(function(){r("leave","ng-leave",B(a),null,null,function(){z.leave(a)},b)})},move:function(a,b,c,d){a=e.element(a);b=b&&e.element(b);c=c&&e.element(c);T(a);K(a);z.move(a,b,c);H.$$postDigest(function(){a=B(a);r("move","ng-move",a,b,c,m,d)})},addClass:function(a,
+b,c){a=e.element(a);a=B(a);r("addClass",b,a,null,null,function(){z.addClass(a,b)},c)},removeClass:function(a,b,c){a=e.element(a);a=B(a);r("removeClass",b,a,null,null,function(){z.removeClass(a,b)},c)},setClass:function(a,b,c,d){a=e.element(a);a=B(a);r("setClass",[b,c],a,null,null,function(){z.setClass(a,b,c)},d)},enabled:function(a,b){switch(arguments.length){case 2:if(a)k(b);else{var c=b.data(l)||{};c.disabled=!0;b.data(l,c)}break;case 1:n.disabled=!a;break;default:a=!n.disabled}return!!a}}}]);s.register("",
+["$window","$sniffer","$timeout","$$animateReflow",function(l,n,s,B){function E(a,U){S&&S();W.push(U);S=B(function(){u(W,function(a){a()});W=[];S=null;v={}})}function H(a,U){var b=g(a);a=e.element(b);Z.push(a);b=Date.now()+U;b<=da||(s.cancel(ca),da=b,ca=s(function(){G(Z);Z=[]},U,!1))}function G(a){u(a,function(a){(a=a.data(q))&&(a.closeAnimationFn||m)()})}function K(a,b){var c=b?v[b]:null;if(!c){var d=0,e=0,f=0,g=0,m,k,h,q;u(a,function(a){if(a.nodeType==aa){a=l.getComputedStyle(a)||{};h=a[I+P];d=
+Math.max(L(h),d);q=a[I+x];m=a[I+t];e=Math.max(L(m),e);k=a[p+t];g=Math.max(L(k),g);var b=L(a[p+P]);0<b&&(b*=parseInt(a[p+w],10)||1);f=Math.max(b,f)}});c={total:0,transitionPropertyStyle:q,transitionDurationStyle:h,transitionDelayStyle:m,transitionDelay:e,transitionDuration:d,animationDelayStyle:k,animationDelay:g,animationDuration:f};b&&(v[b]=c)}return c}function L(a){var b=0;a=e.isString(a)?a.split(/\s*,\s*/):[];u(a,function(a){b=Math.max(parseFloat(a)||0,b)});return b}function J(a){var b=a.parent(),
+c=b.data(h);c||(b.data(h,++ba),c=ba);return c+"-"+g(a).getAttribute("class")}function r(a,b,c,d){var e=J(b),f=e+" "+c,l=v[f]?++v[f].total:0,k={};if(0<l){var h=c+"-stagger",k=e+" "+h;(e=!v[k])&&b.addClass(h);k=K(b,k);e&&b.removeClass(h)}d=d||function(a){return a()};b.addClass(c);var h=b.data(q)||{},n=d(function(){return K(b,f)});d=n.transitionDuration;e=n.animationDuration;if(0===d&&0===e)return b.removeClass(c),!1;b.data(q,{running:h.running||0,itemIndex:l,stagger:k,timings:n,closeAnimationFn:m});
+a=0<h.running||"setClass"==a;0<d&&T(b,c,a);0<e&&(0<k.animationDelay&&0===k.animationDuration)&&(g(b).style[p]="none 0s");return!0}function T(a,b,c){"ng-enter"!=b&&("ng-move"!=b&&"ng-leave"!=b)&&c?a.addClass(y):g(a).style[I+x]="none"}function k(a,b){var c=I+x,d=g(a);d.style[c]&&0<d.style[c].length&&(d.style[c]="");a.removeClass(y)}function N(a){var b=p;a=g(a);a.style[b]&&0<a.style[b].length&&(a.style[b]="")}function Y(a,b,d,e){function k(a){b.off(x,l);b.removeClass(m);c(b,d);a=g(b);for(var e in s)a.style.removeProperty(s[e])}
+function l(a){a.stopPropagation();var b=a.originalEvent||a;a=b.$manualTimeStamp||b.timeStamp||Date.now();b=parseFloat(b.elapsedTime.toFixed(V));Math.max(a-z,0)>=y&&b>=v&&e()}var h=g(b);a=b.data(q);if(-1!=h.getAttribute("class").indexOf(d)&&a){var m="";u(d.split(" "),function(a,b){m+=(0<b?" ":"")+a+"-active"});var n=a.stagger,p=a.timings,t=a.itemIndex,v=Math.max(p.transitionDuration,p.animationDuration),w=Math.max(p.transitionDelay,p.animationDelay),y=w*D,z=Date.now(),x=A+" "+X,r="",s=[];if(0<p.transitionDuration){var B=
+p.transitionPropertyStyle;-1==B.indexOf("all")&&(r+=f+"transition-property: "+B+";",r+=f+"transition-duration: "+p.transitionDurationStyle+";",s.push(f+"transition-property"),s.push(f+"transition-duration"))}0<t&&(0<n.transitionDelay&&0===n.transitionDuration&&(r+=f+"transition-delay: "+Q(p.transitionDelayStyle,n.transitionDelay,t)+"; ",s.push(f+"transition-delay")),0<n.animationDelay&&0===n.animationDuration&&(r+=f+"animation-delay: "+Q(p.animationDelayStyle,n.animationDelay,t)+"; ",s.push(f+"animation-delay")));
+0<s.length&&(p=h.getAttribute("style")||"",h.setAttribute("style",p+"; "+r));b.on(x,l);b.addClass(m);a.closeAnimationFn=function(){k();e()};h=(t*(Math.max(n.animationDelay,n.transitionDelay)||0)+(w+v)*C)*D;a.running++;H(b,h);return k}e()}function Q(a,b,c){var d="";u(a.split(","),function(a,e){d+=(0<e?",":"")+(c*b+parseInt(a,10))+"s"});return d}function M(a,b,d,e){if(r(a,b,d,e))return function(a){a&&c(b,d)}}function a(a,b,d,e){if(b.data(q))return Y(a,b,d,e);c(b,d);e()}function b(b,c,d,e){var f=M(b,
+c,d);if(f){var g=f;E(c,function(){k(c,d);N(c);g=a(b,c,d,e)});return function(a){(g||m)(a)}}e()}function c(a,b){a.removeClass(b);var c=a.data(q);c&&(c.running&&c.running--,c.running&&0!==c.running||a.removeData(q))}function d(a,b){var c="";a=e.isArray(a)?a:a.split(/\s+/);u(a,function(a,d){a&&0<a.length&&(c+=(0<d?" ":"")+a+b)});return c}var f="",I,X,p,A;F.ontransitionend===O&&F.onwebkittransitionend!==O?(f="-webkit-",I="WebkitTransition",X="webkitTransitionEnd transitionend"):(I="transition",X="transitionend");
+F.onanimationend===O&&F.onwebkitanimationend!==O?(f="-webkit-",p="WebkitAnimation",A="webkitAnimationEnd animationend"):(p="animation",A="animationend");var P="Duration",x="Property",t="Delay",w="IterationCount",h="$$ngAnimateKey",q="$$ngAnimateCSS3Data",y="ng-animate-block-transitions",V=3,C=1.5,D=1E3,v={},ba=0,W=[],S,ca=null,da=0,Z=[];return{enter:function(a,c){return b("enter",a,"ng-enter",c)},leave:function(a,c){return b("leave",a,"ng-leave",c)},move:function(a,c){return b("move",a,"ng-move",
+c)},beforeSetClass:function(a,b,c,e){var f=d(c,"-remove")+" "+d(b,"-add"),g=M("setClass",a,f,function(d){var e=a.attr("class");a.removeClass(c);a.addClass(b);d=d();a.attr("class",e);return d});if(g)return E(a,function(){k(a,f);N(a);e()}),g;e()},beforeAddClass:function(a,b,c){var e=M("addClass",a,d(b,"-add"),function(c){a.addClass(b);c=c();a.removeClass(b);return c});if(e)return E(a,function(){k(a,b);N(a);c()}),e;c()},setClass:function(b,c,e,f){e=d(e,"-remove");c=d(c,"-add");return a("setClass",b,
+e+" "+c,f)},addClass:function(b,c,e){return a("addClass",b,d(c,"-add"),e)},beforeRemoveClass:function(a,b,c){var e=M("removeClass",a,d(b,"-remove"),function(c){var d=a.attr("class");a.removeClass(b);c=c();a.attr("class",d);return c});if(e)return E(a,function(){k(a,b);N(a);c()}),e;c()},removeClass:function(b,c,e){return a("removeClass",b,d(c,"-remove"),e)}}}])}])})(window,window.angular);
+//# sourceMappingURL=angular-animate.min.js.map
diff --git a/bitbake/lib/toaster/toastergui/static/js/angular-cookies.min.js b/bitbake/lib/toaster/toastergui/static/js/angular-cookies.min.js
new file mode 100644
index 0000000000..24a1d50016
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/angular-cookies.min.js
@@ -0,0 +1,8 @@
+/*
+ AngularJS v1.2.23
+ (c) 2010-2014 Google, Inc. http://angularjs.org
+ License: MIT
+*/
+(function(p,f,n){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(e,b){var c={},g={},h,k=!1,l=f.copy,m=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,l(a,g),l(a,c),k&&e.$apply())})();k=!0;e.$watch(function(){var a,d,e;for(a in g)m(c[a])&&b.cookies(a,n);for(a in c)d=c[a],f.isString(d)||(d=""+d,c[a]=d),d!==g[a]&&(b.cookies(a,d),e=!0);if(e)for(a in d=b.cookies(),c)c[a]!==d[a]&&(m(d[a])?delete c[a]:c[a]=d[a])});return c}]).factory("$cookieStore",
+["$cookies",function(e){return{get:function(b){return(b=e[b])?f.fromJson(b):b},put:function(b,c){e[b]=f.toJson(c)},remove:function(b){delete e[b]}}}])})(window,window.angular);
+//# sourceMappingURL=angular-cookies.min.js.map
diff --git a/bitbake/lib/toaster/toastergui/static/js/angular-route.min.js b/bitbake/lib/toaster/toastergui/static/js/angular-route.min.js
new file mode 100644
index 0000000000..ef8d614e18
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/angular-route.min.js
@@ -0,0 +1,14 @@
+/*
+ AngularJS v1.2.23
+ (c) 2010-2014 Google, Inc. http://angularjs.org
+ License: MIT
+*/
+(function(n,e,A){'use strict';function x(s,g,h){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,c,b,f,w){function y(){p&&(p.remove(),p=null);k&&(k.$destroy(),k=null);l&&(h.leave(l,function(){p=null}),p=l,l=null)}function v(){var b=s.current&&s.current.locals;if(e.isDefined(b&&b.$template)){var b=a.$new(),d=s.current;l=w(b,function(d){h.enter(d,null,l||c,function(){!e.isDefined(t)||t&&!a.$eval(t)||g()});y()});k=d.scope=b;k.$emit("$viewContentLoaded");k.$eval(u)}else y()}
+var k,l,p,t=b.autoscroll,u=b.onload||"";a.$on("$routeChangeSuccess",v);v()}}}function z(e,g,h){return{restrict:"ECA",priority:-400,link:function(a,c){var b=h.current,f=b.locals;c.html(f.$template);var w=e(c.contents());b.controller&&(f.$scope=a,f=g(b.controller,f),b.controllerAs&&(a[b.controllerAs]=f),c.data("$ngControllerController",f),c.children().data("$ngControllerController",f));w(a)}}}n=e.module("ngRoute",["ng"]).provider("$route",function(){function s(a,c){return e.extend(new (e.extend(function(){},
+{prototype:a})),c)}function g(a,e){var b=e.caseInsensitiveMatch,f={originalPath:a,regexp:a},h=f.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(a,e,b,c){a="?"===c?c:null;c="*"===c?c:null;h.push({name:b,optional:!!a});e=e||"";return""+(a?"":e)+"(?:"+(a?e:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1");f.regexp=RegExp("^"+a+"$",b?"i":"");return f}var h={};this.when=function(a,c){h[a]=e.extend({reloadOnSearch:!0},c,a&&g(a,c));if(a){var b=
+"/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";h[b]=e.extend({redirectTo:a},g(b,c))}return this};this.otherwise=function(a){this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(a,c,b,f,g,n,v,k){function l(){var d=p(),m=r.current;if(d&&m&&d.$$route===m.$$route&&e.equals(d.pathParams,m.pathParams)&&!d.reloadOnSearch&&!u)m.params=d.params,e.copy(m.params,b),a.$broadcast("$routeUpdate",m);else if(d||m)u=!1,a.$broadcast("$routeChangeStart",
+d,m),(r.current=d)&&d.redirectTo&&(e.isString(d.redirectTo)?c.path(t(d.redirectTo,d.params)).search(d.params).replace():c.url(d.redirectTo(d.pathParams,c.path(),c.search())).replace()),f.when(d).then(function(){if(d){var a=e.extend({},d.resolve),c,b;e.forEach(a,function(d,c){a[c]=e.isString(d)?g.get(d):g.invoke(d)});e.isDefined(c=d.template)?e.isFunction(c)&&(c=c(d.params)):e.isDefined(b=d.templateUrl)&&(e.isFunction(b)&&(b=b(d.params)),b=k.getTrustedResourceUrl(b),e.isDefined(b)&&(d.loadedTemplateUrl=
+b,c=n.get(b,{cache:v}).then(function(a){return a.data})));e.isDefined(c)&&(a.$template=c);return f.all(a)}}).then(function(c){d==r.current&&(d&&(d.locals=c,e.copy(d.params,b)),a.$broadcast("$routeChangeSuccess",d,m))},function(c){d==r.current&&a.$broadcast("$routeChangeError",d,m,c)})}function p(){var a,b;e.forEach(h,function(f,h){var q;if(q=!b){var g=c.path();q=f.keys;var l={};if(f.regexp)if(g=f.regexp.exec(g)){for(var k=1,p=g.length;k<p;++k){var n=q[k-1],r=g[k];n&&r&&(l[n.name]=r)}q=l}else q=null;
+else q=null;q=a=q}q&&(b=s(f,{params:e.extend({},c.search(),a),pathParams:a}),b.$$route=f)});return b||h[null]&&s(h[null],{params:{},pathParams:{}})}function t(a,c){var b=[];e.forEach((a||"").split(":"),function(a,d){if(0===d)b.push(a);else{var e=a.match(/(\w+)(.*)/),f=e[1];b.push(c[f]);b.push(e[2]||"");delete c[f]}});return b.join("")}var u=!1,r={routes:h,reload:function(){u=!0;a.$evalAsync(l)}};a.$on("$locationChangeSuccess",l);return r}]});n.provider("$routeParams",function(){this.$get=function(){return{}}});
+n.directive("ngView",x);n.directive("ngView",z);x.$inject=["$route","$anchorScroll","$animate"];z.$inject=["$compile","$controller","$route"]})(window,window.angular);
+//# sourceMappingURL=angular-route.min.js.map
diff --git a/bitbake/lib/toaster/toastergui/static/js/angular-sanitize.min.js b/bitbake/lib/toaster/toastergui/static/js/angular-sanitize.min.js
new file mode 100644
index 0000000000..e10308b6ff
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/angular-sanitize.min.js
@@ -0,0 +1,15 @@
+/*
+ AngularJS v1.2.23
+ (c) 2010-2014 Google, Inc. http://angularjs.org
+ License: MIT
+*/
+(function(q,g,r){'use strict';function F(a){var d=[];t(d,g.noop).chars(a);return d.join("")}function m(a){var d={};a=a.split(",");var c;for(c=0;c<a.length;c++)d[a[c]]=!0;return d}function G(a,d){function c(a,b,c,h){b=g.lowercase(b);if(u[b])for(;f.last()&&v[f.last()];)e("",f.last());w[b]&&f.last()==b&&e("",b);(h=x[b]||!!h)||f.push(b);var n={};c.replace(H,function(a,b,d,c,e){n[b]=s(d||c||e||"")});d.start&&d.start(b,n,h)}function e(a,b){var c=0,e;if(b=g.lowercase(b))for(c=f.length-1;0<=c&&f[c]!=b;c--);
+if(0<=c){for(e=f.length-1;e>=c;e--)d.end&&d.end(f[e]);f.length=c}}"string"!==typeof a&&(a=null===a||"undefined"===typeof a?"":""+a);var b,l,f=[],n=a,h;for(f.last=function(){return f[f.length-1]};a;){h="";l=!0;if(f.last()&&y[f.last()])a=a.replace(RegExp("(.*)<\\s*\\/\\s*"+f.last()+"[^>]*>","i"),function(a,b){b=b.replace(I,"$1").replace(J,"$1");d.chars&&d.chars(s(b));return""}),e("",f.last());else{if(0===a.indexOf("\x3c!--"))b=a.indexOf("--",4),0<=b&&a.lastIndexOf("--\x3e",b)===b&&(d.comment&&d.comment(a.substring(4,
+b)),a=a.substring(b+3),l=!1);else if(z.test(a)){if(b=a.match(z))a=a.replace(b[0],""),l=!1}else if(K.test(a)){if(b=a.match(A))a=a.substring(b[0].length),b[0].replace(A,e),l=!1}else L.test(a)&&((b=a.match(B))?(b[4]&&(a=a.substring(b[0].length),b[0].replace(B,c)),l=!1):(h+="<",a=a.substring(1)));l&&(b=a.indexOf("<"),h+=0>b?a:a.substring(0,b),a=0>b?"":a.substring(b),d.chars&&d.chars(s(h)))}if(a==n)throw M("badparse",a);n=a}e()}function s(a){if(!a)return"";var d=N.exec(a);a=d[1];var c=d[3];if(d=d[2])p.innerHTML=
+d.replace(/</g,"&lt;"),d="textContent"in p?p.textContent:p.innerText;return a+d+c}function C(a){return a.replace(/&/g,"&amp;").replace(O,function(a){var c=a.charCodeAt(0);a=a.charCodeAt(1);return"&#"+(1024*(c-55296)+(a-56320)+65536)+";"}).replace(P,function(a){return"&#"+a.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function t(a,d){var c=!1,e=g.bind(a,a.push);return{start:function(a,l,f){a=g.lowercase(a);!c&&y[a]&&(c=a);c||!0!==D[a]||(e("<"),e(a),g.forEach(l,function(c,f){var k=
+g.lowercase(f),l="img"===a&&"src"===k||"background"===k;!0!==Q[k]||!0===E[k]&&!d(c,l)||(e(" "),e(f),e('="'),e(C(c)),e('"'))}),e(f?"/>":">"))},end:function(a){a=g.lowercase(a);c||!0!==D[a]||(e("</"),e(a),e(">"));a==c&&(c=!1)},chars:function(a){c||e(C(a))}}}var M=g.$$minErr("$sanitize"),B=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,A=/^<\/\s*([\w:-]+)[^>]*>/,H=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,L=/^</,
+K=/^<\//,I=/\x3c!--(.*?)--\x3e/g,z=/<!DOCTYPE([^>]*?)>/i,J=/<!\[CDATA\[(.*?)]]\x3e/g,O=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,P=/([^\#-~| |!])/g,x=m("area,br,col,hr,img,wbr");q=m("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr");r=m("rp,rt");var w=g.extend({},r,q),u=g.extend({},q,m("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),v=g.extend({},r,m("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),
+y=m("script,style"),D=g.extend({},x,u,v,w),E=m("background,cite,href,longdesc,src,usemap"),Q=g.extend({},E,m("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,type,valign,value,vspace,width")),p=document.createElement("pre"),N=/^(\s*)([\s\S]*?)(\s*)$/;g.module("ngSanitize",[]).provider("$sanitize",
+function(){this.$get=["$$sanitizeUri",function(a){return function(d){var c=[];G(d,t(c,function(c,b){return!/^unsafe/.test(a(c,b))}));return c.join("")}}]});g.module("ngSanitize").filter("linky",["$sanitize",function(a){var d=/((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"]/,c=/^mailto:/;return function(e,b){function l(a){a&&k.push(F(a))}function f(a,c){k.push("<a ");g.isDefined(b)&&(k.push('target="'),k.push(b),k.push('" '));k.push('href="');k.push(a);k.push('">');l(c);k.push("</a>")}
+if(!e)return e;for(var n,h=e,k=[],m,p;n=h.match(d);)m=n[0],n[2]==n[3]&&(m="mailto:"+m),p=n.index,l(h.substr(0,p)),f(m,n[0].replace(c,"")),h=h.substring(p+n[0].length);l(h);return a(k.join(""))}}])})(window,window.angular);
+//# sourceMappingURL=angular-sanitize.min.js.map
diff --git a/bitbake/lib/toaster/toastergui/static/js/angular.min.js b/bitbake/lib/toaster/toastergui/static/js/angular.min.js
new file mode 100644
index 0000000000..22af422a19
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/angular.min.js
@@ -0,0 +1,215 @@
+/*
+ AngularJS v1.2.23
+ (c) 2010-2014 Google, Inc. http://angularjs.org
+ License: MIT
+*/
+(function(Q,X,t){'use strict';function x(b){return function(){var a=arguments[0],c,a="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.2.23/"+(b?b+"/":"")+a;for(c=1;c<arguments.length;c++)a=a+(1==c?"?":"&")+"p"+(c-1)+"="+encodeURIComponent("function"==typeof arguments[c]?arguments[c].toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof arguments[c]?"undefined":"string"!=typeof arguments[c]?JSON.stringify(arguments[c]):arguments[c]);return Error(a)}}function fb(b){if(null==b||Fa(b))return!1;
+var a=b.length;return 1===b.nodeType&&a?!0:z(b)||H(b)||0===a||"number"===typeof a&&0<a&&a-1 in b}function r(b,a,c){var d;if(b)if(P(b))for(d in b)"prototype"==d||("length"==d||"name"==d||b.hasOwnProperty&&!b.hasOwnProperty(d))||a.call(c,b[d],d);else if(H(b)||fb(b))for(d=0;d<b.length;d++)a.call(c,b[d],d);else if(b.forEach&&b.forEach!==r)b.forEach(a,c);else for(d in b)b.hasOwnProperty(d)&&a.call(c,b[d],d);return b}function Zb(b){var a=[],c;for(c in b)b.hasOwnProperty(c)&&a.push(c);return a.sort()}function Tc(b,
+a,c){for(var d=Zb(b),e=0;e<d.length;e++)a.call(c,b[d[e]],d[e]);return d}function $b(b){return function(a,c){b(c,a)}}function gb(){for(var b=la.length,a;b;){b--;a=la[b].charCodeAt(0);if(57==a)return la[b]="A",la.join("");if(90==a)la[b]="0";else return la[b]=String.fromCharCode(a+1),la.join("")}la.unshift("0");return la.join("")}function ac(b,a){a?b.$$hashKey=a:delete b.$$hashKey}function B(b){var a=b.$$hashKey;r(arguments,function(a){a!==b&&r(a,function(a,c){b[c]=a})});ac(b,a);return b}function Z(b){return parseInt(b,
+10)}function bc(b,a){return B(new (B(function(){},{prototype:b})),a)}function y(){}function Ga(b){return b}function $(b){return function(){return b}}function D(b){return"undefined"===typeof b}function A(b){return"undefined"!==typeof b}function T(b){return null!=b&&"object"===typeof b}function z(b){return"string"===typeof b}function Ab(b){return"number"===typeof b}function sa(b){return"[object Date]"===ya.call(b)}function P(b){return"function"===typeof b}function hb(b){return"[object RegExp]"===ya.call(b)}
+function Fa(b){return b&&b.document&&b.location&&b.alert&&b.setInterval}function Uc(b){return!(!b||!(b.nodeName||b.prop&&b.attr&&b.find))}function Vc(b,a,c){var d=[];r(b,function(b,f,g){d.push(a.call(c,b,f,g))});return d}function Qa(b,a){if(b.indexOf)return b.indexOf(a);for(var c=0;c<b.length;c++)if(a===b[c])return c;return-1}function Ra(b,a){var c=Qa(b,a);0<=c&&b.splice(c,1);return a}function Ha(b,a,c,d){if(Fa(b)||b&&b.$evalAsync&&b.$watch)throw Sa("cpws");if(a){if(b===a)throw Sa("cpi");c=c||[];
+d=d||[];if(T(b)){var e=Qa(c,b);if(-1!==e)return d[e];c.push(b);d.push(a)}if(H(b))for(var f=a.length=0;f<b.length;f++)e=Ha(b[f],null,c,d),T(b[f])&&(c.push(b[f]),d.push(e)),a.push(e);else{var g=a.$$hashKey;H(a)?a.length=0:r(a,function(b,c){delete a[c]});for(f in b)e=Ha(b[f],null,c,d),T(b[f])&&(c.push(b[f]),d.push(e)),a[f]=e;ac(a,g)}}else if(a=b)H(b)?a=Ha(b,[],c,d):sa(b)?a=new Date(b.getTime()):hb(b)?(a=RegExp(b.source,b.toString().match(/[^\/]*$/)[0]),a.lastIndex=b.lastIndex):T(b)&&(a=Ha(b,{},c,d));
+return a}function ga(b,a){if(H(b)){a=a||[];for(var c=0;c<b.length;c++)a[c]=b[c]}else if(T(b))for(c in a=a||{},b)!ib.call(b,c)||"$"===c.charAt(0)&&"$"===c.charAt(1)||(a[c]=b[c]);return a||b}function za(b,a){if(b===a)return!0;if(null===b||null===a)return!1;if(b!==b&&a!==a)return!0;var c=typeof b,d;if(c==typeof a&&"object"==c)if(H(b)){if(!H(a))return!1;if((c=b.length)==a.length){for(d=0;d<c;d++)if(!za(b[d],a[d]))return!1;return!0}}else{if(sa(b))return sa(a)?isNaN(b.getTime())&&isNaN(a.getTime())||b.getTime()===
+a.getTime():!1;if(hb(b)&&hb(a))return b.toString()==a.toString();if(b&&b.$evalAsync&&b.$watch||a&&a.$evalAsync&&a.$watch||Fa(b)||Fa(a)||H(a))return!1;c={};for(d in b)if("$"!==d.charAt(0)&&!P(b[d])){if(!za(b[d],a[d]))return!1;c[d]=!0}for(d in a)if(!c.hasOwnProperty(d)&&"$"!==d.charAt(0)&&a[d]!==t&&!P(a[d]))return!1;return!0}return!1}function Bb(b,a){var c=2<arguments.length?Aa.call(arguments,2):[];return!P(a)||a instanceof RegExp?a:c.length?function(){return arguments.length?a.apply(b,c.concat(Aa.call(arguments,
+0))):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}}function Wc(b,a){var c=a;"string"===typeof b&&"$"===b.charAt(0)?c=t:Fa(a)?c="$WINDOW":a&&X===a?c="$DOCUMENT":a&&(a.$evalAsync&&a.$watch)&&(c="$SCOPE");return c}function ta(b,a){return"undefined"===typeof b?t:JSON.stringify(b,Wc,a?" ":null)}function cc(b){return z(b)?JSON.parse(b):b}function Ta(b){"function"===typeof b?b=!0:b&&0!==b.length?(b=N(""+b),b=!("f"==b||"0"==b||"false"==b||"no"==b||"n"==b||"[]"==b)):b=!1;
+return b}function ha(b){b=u(b).clone();try{b.empty()}catch(a){}var c=u("<div>").append(b).html();try{return 3===b[0].nodeType?N(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+N(b)})}catch(d){return N(c)}}function dc(b){try{return decodeURIComponent(b)}catch(a){}}function ec(b){var a={},c,d;r((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=dc(c[0]),A(d)&&(b=A(c[1])?dc(c[1]):!0,ib.call(a,d)?H(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Cb(b){var a=
+[];r(b,function(b,d){H(b)?r(b,function(b){a.push(Ba(d,!0)+(!0===b?"":"="+Ba(b,!0)))}):a.push(Ba(d,!0)+(!0===b?"":"="+Ba(b,!0)))});return a.length?a.join("&"):""}function jb(b){return Ba(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ba(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,a?"%20":"+")}function Xc(b,a){function c(a){a&&d.push(a)}var d=[b],e,f,g=["ng:app","ng-app","x-ng-app",
+"data-ng-app"],k=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;r(g,function(a){g[a]=!0;c(X.getElementById(a));a=a.replace(":","\\:");b.querySelectorAll&&(r(b.querySelectorAll("."+a),c),r(b.querySelectorAll("."+a+"\\:"),c),r(b.querySelectorAll("["+a+"]"),c))});r(d,function(a){if(!e){var b=k.exec(" "+a.className+" ");b?(e=a,f=(b[2]||"").replace(/\s+/g,",")):r(a.attributes,function(b){!e&&g[b.name]&&(e=a,f=b.value)})}});e&&a(e,f?[f]:[])}function fc(b,a){var c=function(){b=u(b);if(b.injector()){var c=b[0]===X?
+"document":ha(b);throw Sa("btstrpd",c.replace(/</,"&lt;").replace(/>/,"&gt;"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);a.unshift("ng");c=gc(a);c.invoke(["$rootScope","$rootElement","$compile","$injector","$animate",function(a,b,c,d,e){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},d=/^NG_DEFER_BOOTSTRAP!/;if(Q&&!d.test(Q.name))return c();Q.name=Q.name.replace(d,"");Ua.resumeBootstrap=function(b){r(b,function(b){a.push(b)});c()}}function kb(b,a){a=
+a||"_";return b.replace(Yc,function(b,d){return(d?a:"")+b.toLowerCase()})}function Db(b,a,c){if(!b)throw Sa("areq",a||"?",c||"required");return b}function Va(b,a,c){c&&H(b)&&(b=b[b.length-1]);Db(P(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ca(b,a){if("hasOwnProperty"===b)throw Sa("badname",a);}function hc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g<f;g++)d=a[g],b&&(b=(e=b)[d]);return!c&&P(b)?Bb(e,b):b}function Eb(b){var a=
+b[0];b=b[b.length-1];if(a===b)return u(a);var c=[a];do{a=a.nextSibling;if(!a)break;c.push(a)}while(a!==b);return u(c)}function Zc(b){var a=x("$injector"),c=x("ng");b=b.angular||(b.angular={});b.$$minErr=b.$$minErr||x;return b.module||(b.module=function(){var b={};return function(e,f,g){if("hasOwnProperty"===e)throw c("badname","module");f&&b.hasOwnProperty(e)&&(b[e]=null);return b[e]||(b[e]=function(){function b(a,d,e){return function(){c[e||"push"]([a,d,arguments]);return n}}if(!f)throw a("nomod",
+e);var c=[],d=[],l=b("$injector","invoke"),n={_invokeQueue:c,_runBlocks:d,requires:f,name:e,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:b("$provide","value"),constant:b("$provide","constant","unshift"),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider","directive"),config:l,run:function(a){d.push(a);return this}};g&&l(g);return n}())}}())}
+function $c(b){B(b,{bootstrap:fc,copy:Ha,extend:B,equals:za,element:u,forEach:r,injector:gc,noop:y,bind:Bb,toJson:ta,fromJson:cc,identity:Ga,isUndefined:D,isDefined:A,isString:z,isFunction:P,isObject:T,isNumber:Ab,isElement:Uc,isArray:H,version:ad,isDate:sa,lowercase:N,uppercase:Ia,callbacks:{counter:0},$$minErr:x,$$csp:Wa});Xa=Zc(Q);try{Xa("ngLocale")}catch(a){Xa("ngLocale",[]).provider("$locale",bd)}Xa("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:cd});a.provider("$compile",
+ic).directive({a:dd,input:jc,textarea:jc,form:ed,script:fd,select:gd,style:hd,option:id,ngBind:jd,ngBindHtml:kd,ngBindTemplate:ld,ngClass:md,ngClassEven:nd,ngClassOdd:od,ngCloak:pd,ngController:qd,ngForm:rd,ngHide:sd,ngIf:td,ngInclude:ud,ngInit:vd,ngNonBindable:wd,ngPluralize:xd,ngRepeat:yd,ngShow:zd,ngStyle:Ad,ngSwitch:Bd,ngSwitchWhen:Cd,ngSwitchDefault:Dd,ngOptions:Ed,ngTransclude:Fd,ngModel:Gd,ngList:Hd,ngChange:Id,required:kc,ngRequired:kc,ngValue:Jd}).directive({ngInclude:Kd}).directive(Fb).directive(lc);
+a.provider({$anchorScroll:Ld,$animate:Md,$browser:Nd,$cacheFactory:Od,$controller:Pd,$document:Qd,$exceptionHandler:Rd,$filter:mc,$interpolate:Sd,$interval:Td,$http:Ud,$httpBackend:Vd,$location:Wd,$log:Xd,$parse:Yd,$rootScope:Zd,$q:$d,$sce:ae,$sceDelegate:be,$sniffer:ce,$templateCache:de,$timeout:ee,$window:fe,$$rAF:ge,$$asyncCallback:he})}])}function Ya(b){return b.replace(ie,function(a,b,d,e){return e?d.toUpperCase():d}).replace(je,"Moz$1")}function Gb(b,a,c,d){function e(b){var e=c&&b?[this.filter(b)]:
+[this],m=a,h,l,n,p,q,s;if(!d||null!=b)for(;e.length;)for(h=e.shift(),l=0,n=h.length;l<n;l++)for(p=u(h[l]),m?p.triggerHandler("$destroy"):m=!m,q=0,p=(s=p.children()).length;q<p;q++)e.push(Da(s[q]));return f.apply(this,arguments)}var f=Da.fn[b],f=f.$original||f;e.$original=f;Da.fn[b]=e}function S(b){if(b instanceof S)return b;z(b)&&(b=aa(b));if(!(this instanceof S)){if(z(b)&&"<"!=b.charAt(0))throw Hb("nosel");return new S(b)}if(z(b)){var a=b;b=X;var c;if(c=ke.exec(a))b=[b.createElement(c[1])];else{var d=
+b,e;b=d.createDocumentFragment();c=[];if(Ib.test(a)){d=b.appendChild(d.createElement("div"));e=(le.exec(a)||["",""])[1].toLowerCase();e=ba[e]||ba._default;d.innerHTML="<div>&#160;</div>"+e[1]+a.replace(me,"<$1></$2>")+e[2];d.removeChild(d.firstChild);for(a=e[0];a--;)d=d.lastChild;a=0;for(e=d.childNodes.length;a<e;++a)c.push(d.childNodes[a]);d=b.firstChild;d.textContent=""}else c.push(d.createTextNode(a));b.textContent="";b.innerHTML="";b=c}Jb(this,b);u(X.createDocumentFragment()).append(this)}else Jb(this,
+b)}function Kb(b){return b.cloneNode(!0)}function Ja(b){Lb(b);var a=0;for(b=b.childNodes||[];a<b.length;a++)Ja(b[a])}function nc(b,a,c,d){if(A(d))throw Hb("offargs");var e=ma(b,"events");ma(b,"handle")&&(D(a)?r(e,function(a,c){Za(b,c,a);delete e[c]}):r(a.split(" "),function(a){D(c)?(Za(b,a,e[a]),delete e[a]):Ra(e[a]||[],c)}))}function Lb(b,a){var c=b.ng339,d=$a[c];d&&(a?delete $a[c].data[a]:(d.handle&&(d.events.$destroy&&d.handle({},"$destroy"),nc(b)),delete $a[c],b.ng339=t))}function ma(b,a,c){var d=
+b.ng339,d=$a[d||-1];if(A(c))d||(b.ng339=d=++ne,d=$a[d]={}),d[a]=c;else return d&&d[a]}function Mb(b,a,c){var d=ma(b,"data"),e=A(c),f=!e&&A(a),g=f&&!T(a);d||g||ma(b,"data",d={});if(e)d[a]=c;else if(f){if(g)return d&&d[a];B(d,a)}else return d}function Nb(b,a){return b.getAttribute?-1<(" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+a+" "):!1}function lb(b,a){a&&b.setAttribute&&r(a.split(" "),function(a){b.setAttribute("class",aa((" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g,
+" ").replace(" "+aa(a)+" "," ")))})}function mb(b,a){if(a&&b.setAttribute){var c=(" "+(b.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");r(a.split(" "),function(a){a=aa(a);-1===c.indexOf(" "+a+" ")&&(c+=a+" ")});b.setAttribute("class",aa(c))}}function Jb(b,a){if(a){a=a.nodeName||!A(a.length)||Fa(a)?[a]:a;for(var c=0;c<a.length;c++)b.push(a[c])}}function oc(b,a){return nb(b,"$"+(a||"ngController")+"Controller")}function nb(b,a,c){9==b.nodeType&&(b=b.documentElement);for(a=H(a)?a:[a];b;){for(var d=
+0,e=a.length;d<e;d++)if((c=u.data(b,a[d]))!==t)return c;b=b.parentNode||11===b.nodeType&&b.host}}function pc(b){for(var a=0,c=b.childNodes;a<c.length;a++)Ja(c[a]);for(;b.firstChild;)b.removeChild(b.firstChild)}function qc(b,a){var c=ob[a.toLowerCase()];return c&&rc[b.nodeName]&&c}function oe(b,a){var c=function(c,e){c.preventDefault||(c.preventDefault=function(){c.returnValue=!1});c.stopPropagation||(c.stopPropagation=function(){c.cancelBubble=!0});c.target||(c.target=c.srcElement||X);if(D(c.defaultPrevented)){var f=
+c.preventDefault;c.preventDefault=function(){c.defaultPrevented=!0;f.call(c)};c.defaultPrevented=!1}c.isDefaultPrevented=function(){return c.defaultPrevented||!1===c.returnValue};var g=ga(a[e||c.type]||[]);r(g,function(a){a.call(b,c)});8>=R?(c.preventDefault=null,c.stopPropagation=null,c.isDefaultPrevented=null):(delete c.preventDefault,delete c.stopPropagation,delete c.isDefaultPrevented)};c.elem=b;return c}function Ka(b,a){var c=typeof b,d;"function"==c||"object"==c&&null!==b?"function"==typeof(d=
+b.$$hashKey)?d=b.$$hashKey():d===t&&(d=b.$$hashKey=(a||gb)()):d=b;return c+":"+d}function ab(b,a){if(a){var c=0;this.nextUid=function(){return++c}}r(b,this.put,this)}function sc(b){var a,c;"function"===typeof b?(a=b.$inject)||(a=[],b.length&&(c=b.toString().replace(pe,""),c=c.match(qe),r(c[1].split(re),function(b){b.replace(se,function(b,c,d){a.push(d)})})),b.$inject=a):H(b)?(c=b.length-1,Va(b[c],"fn"),a=b.slice(0,c)):Va(b,"fn",!0);return a}function gc(b){function a(a){return function(b,c){if(T(b))r(b,
+$b(a));else return a(b,c)}}function c(a,b){Ca(a,"service");if(P(b)||H(b))b=n.instantiate(b);if(!b.$get)throw bb("pget",a);return l[a+k]=b}function d(a,b){return c(a,{$get:b})}function e(a){var b=[],c,d,f,k;r(a,function(a){if(!h.get(a)){h.put(a,!0);try{if(z(a))for(c=Xa(a),b=b.concat(e(c.requires)).concat(c._runBlocks),d=c._invokeQueue,f=0,k=d.length;f<k;f++){var g=d[f],m=n.get(g[0]);m[g[1]].apply(m,g[2])}else P(a)?b.push(n.invoke(a)):H(a)?b.push(n.invoke(a)):Va(a,"module")}catch(l){throw H(a)&&(a=
+a[a.length-1]),l.message&&(l.stack&&-1==l.stack.indexOf(l.message))&&(l=l.message+"\n"+l.stack),bb("modulerr",a,l.stack||l.message||l);}}});return b}function f(a,b){function c(d){if(a.hasOwnProperty(d)){if(a[d]===g)throw bb("cdep",d+" <- "+m.join(" <- "));return a[d]}try{return m.unshift(d),a[d]=g,a[d]=b(d)}catch(e){throw a[d]===g&&delete a[d],e;}finally{m.shift()}}function d(a,b,e){var f=[],k=sc(a),g,m,h;m=0;for(g=k.length;m<g;m++){h=k[m];if("string"!==typeof h)throw bb("itkn",h);f.push(e&&e.hasOwnProperty(h)?
+e[h]:c(h))}H(a)&&(a=a[g]);return a.apply(b,f)}return{invoke:d,instantiate:function(a,b){var c=function(){},e;c.prototype=(H(a)?a[a.length-1]:a).prototype;c=new c;e=d(a,c,b);return T(e)||P(e)?e:c},get:c,annotate:sc,has:function(b){return l.hasOwnProperty(b+k)||a.hasOwnProperty(b)}}}var g={},k="Provider",m=[],h=new ab([],!0),l={$provide:{provider:a(c),factory:a(d),service:a(function(a,b){return d(a,["$injector",function(a){return a.instantiate(b)}])}),value:a(function(a,b){return d(a,$(b))}),constant:a(function(a,
+b){Ca(a,"constant");l[a]=b;p[a]=b}),decorator:function(a,b){var c=n.get(a+k),d=c.$get;c.$get=function(){var a=q.invoke(d,c);return q.invoke(b,null,{$delegate:a})}}}},n=l.$injector=f(l,function(){throw bb("unpr",m.join(" <- "));}),p={},q=p.$injector=f(p,function(a){a=n.get(a+k);return q.invoke(a.$get,a)});r(e(b),function(a){q.invoke(a||y)});return q}function Ld(){var b=!0;this.disableAutoScrolling=function(){b=!1};this.$get=["$window","$location","$rootScope",function(a,c,d){function e(a){var b=null;
+r(a,function(a){b||"a"!==N(a.nodeName)||(b=a)});return b}function f(){var b=c.hash(),d;b?(d=g.getElementById(b))?d.scrollIntoView():(d=e(g.getElementsByName(b)))?d.scrollIntoView():"top"===b&&a.scrollTo(0,0):a.scrollTo(0,0)}var g=a.document;b&&d.$watch(function(){return c.hash()},function(){d.$evalAsync(f)});return f}]}function he(){this.$get=["$$rAF","$timeout",function(b,a){return b.supported?function(a){return b(a)}:function(b){return a(b,0,!1)}}]}function te(b,a,c,d){function e(a){try{a.apply(null,
+Aa.call(arguments,1))}finally{if(s--,0===s)for(;L.length;)try{L.pop()()}catch(b){c.error(b)}}}function f(a,b){(function ca(){r(v,function(a){a()});C=b(ca,a)})()}function g(){w=null;O!=k.url()&&(O=k.url(),r(da,function(a){a(k.url())}))}var k=this,m=a[0],h=b.location,l=b.history,n=b.setTimeout,p=b.clearTimeout,q={};k.isMock=!1;var s=0,L=[];k.$$completeOutstandingRequest=e;k.$$incOutstandingRequestCount=function(){s++};k.notifyWhenNoOutstandingRequests=function(a){r(v,function(a){a()});0===s?a():L.push(a)};
+var v=[],C;k.addPollFn=function(a){D(C)&&f(100,n);v.push(a);return a};var O=h.href,I=a.find("base"),w=null;k.url=function(a,c){h!==b.location&&(h=b.location);l!==b.history&&(l=b.history);if(a){if(O!=a)return O=a,d.history?c?l.replaceState(null,"",a):(l.pushState(null,"",a),I.attr("href",I.attr("href"))):(w=a,c?h.replace(a):h.href=a),k}else return w||h.href.replace(/%27/g,"'")};var da=[],K=!1;k.onUrlChange=function(a){if(!K){if(d.history)u(b).on("popstate",g);if(d.hashchange)u(b).on("hashchange",g);
+else k.addPollFn(g);K=!0}da.push(a);return a};k.baseHref=function(){var a=I.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var W={},ea="",J=k.baseHref();k.cookies=function(a,b){var d,e,f,k;if(a)b===t?m.cookie=escape(a)+"=;path="+J+";expires=Thu, 01 Jan 1970 00:00:00 GMT":z(b)&&(d=(m.cookie=escape(a)+"="+escape(b)+";path="+J).length+1,4096<d&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+d+" > 4096 bytes)!"));else{if(m.cookie!==ea)for(ea=m.cookie,
+d=ea.split("; "),W={},f=0;f<d.length;f++)e=d[f],k=e.indexOf("="),0<k&&(a=unescape(e.substring(0,k)),W[a]===t&&(W[a]=unescape(e.substring(k+1))));return W}};k.defer=function(a,b){var c;s++;c=n(function(){delete q[c];e(a)},b||0);q[c]=!0;return c};k.defer.cancel=function(a){return q[a]?(delete q[a],p(a),e(y),!0):!1}}function Nd(){this.$get=["$window","$log","$sniffer","$document",function(b,a,c,d){return new te(b,d,a,c)}]}function Od(){this.$get=function(){function b(b,d){function e(a){a!=n&&(p?p==a&&
+(p=a.n):p=a,f(a.n,a.p),f(a,n),n=a,n.n=null)}function f(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(b in a)throw x("$cacheFactory")("iid",b);var g=0,k=B({},d,{id:b}),m={},h=d&&d.capacity||Number.MAX_VALUE,l={},n=null,p=null;return a[b]={put:function(a,b){if(h<Number.MAX_VALUE){var c=l[a]||(l[a]={key:a});e(c)}if(!D(b))return a in m||g++,m[a]=b,g>h&&this.remove(p.key),b},get:function(a){if(h<Number.MAX_VALUE){var b=l[a];if(!b)return;e(b)}return m[a]},remove:function(a){if(h<Number.MAX_VALUE){var b=l[a];if(!b)return;
+b==n&&(n=b.p);b==p&&(p=b.n);f(b.n,b.p);delete l[a]}delete m[a];g--},removeAll:function(){m={};g=0;l={};n=p=null},destroy:function(){l=k=m=null;delete a[b]},info:function(){return B({},k,{size:g})}}}var a={};b.info=function(){var b={};r(a,function(a,e){b[e]=a.info()});return b};b.get=function(b){return a[b]};return b}}function de(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function ic(b,a){var c={},d="Directive",e=/^\s*directive\:\s*([\d\w_\-]+)\s+(.*)$/,f=/(([\d\w_\-]+)(?:\:([^;]+))?;?)/,
+g=/^(on[a-z]+|formaction)$/;this.directive=function m(a,e){Ca(a,"directive");z(a)?(Db(e,"directiveFactory"),c.hasOwnProperty(a)||(c[a]=[],b.factory(a+d,["$injector","$exceptionHandler",function(b,d){var e=[];r(c[a],function(c,f){try{var g=b.invoke(c);P(g)?g={compile:$(g)}:!g.compile&&g.link&&(g.compile=$(g.link));g.priority=g.priority||0;g.index=f;g.name=g.name||a;g.require=g.require||g.controller&&g.name;g.restrict=g.restrict||"A";e.push(g)}catch(m){d(m)}});return e}])),c[a].push(e)):r(a,$b(m));
+return this};this.aHrefSanitizationWhitelist=function(b){return A(b)?(a.aHrefSanitizationWhitelist(b),this):a.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(b){return A(b)?(a.imgSrcSanitizationWhitelist(b),this):a.imgSrcSanitizationWhitelist()};this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(a,b,l,n,p,q,s,L,v,C,O,I){function w(a,b,c,d,e){a instanceof
+u||(a=u(a));r(a,function(b,c){3==b.nodeType&&b.nodeValue.match(/\S+/)&&(a[c]=u(b).wrap("<span></span>").parent()[0])});var f=K(a,b,a,c,d,e);da(a,"ng-scope");return function(b,c,d,e){Db(b,"scope");var g=c?La.clone.call(a):a;r(d,function(a,b){g.data("$"+b+"Controller",a)});d=0;for(var m=g.length;d<m;d++){var h=g[d].nodeType;1!==h&&9!==h||g.eq(d).data("$scope",b)}c&&c(g,b);f&&f(b,g,g,e);return g}}function da(a,b){try{a.addClass(b)}catch(c){}}function K(a,b,c,d,e,f){function g(a,c,d,e){var f,h,l,q,n,
+p,s;f=c.length;var M=Array(f);for(q=0;q<f;q++)M[q]=c[q];p=q=0;for(n=m.length;q<n;p++)h=M[p],c=m[q++],f=m[q++],c?(c.scope?(l=a.$new(),u.data(h,"$scope",l)):l=a,s=c.transcludeOnThisElement?W(a,c.transclude,e):!c.templateOnThisElement&&e?e:!e&&b?W(a,b):null,c(f,l,h,d,s)):f&&f(a,h.childNodes,t,e)}for(var m=[],h,l,q,n,p=0;p<a.length;p++)h=new Ob,l=ea(a[p],[],h,0===p?d:t,e),(f=l.length?F(l,a[p],h,b,c,null,[],[],f):null)&&f.scope&&da(h.$$element,"ng-scope"),h=f&&f.terminal||!(q=a[p].childNodes)||!q.length?
+null:K(q,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b),m.push(f,h),n=n||f||h,f=null;return n?g:null}function W(a,b,c){return function(d,e,f){var g=!1;d||(d=a.$new(),g=d.$$transcluded=!0);e=b(d,e,f,c);if(g)e.on("$destroy",function(){d.$destroy()});return e}}function ea(a,b,c,d,g){var h=c.$attr,m;switch(a.nodeType){case 1:ca(b,na(Ma(a).toLowerCase()),"E",d,g);for(var l,q,n,p=a.attributes,s=0,L=p&&p.length;s<L;s++){var C=!1,O=!1;l=p[s];if(!R||8<=R||l.specified){m=l.name;q=
+aa(l.value);l=na(m);if(n=V.test(l))m=kb(l.substr(6),"-");var v=l.replace(/(Start|End)$/,"");l===v+"Start"&&(C=m,O=m.substr(0,m.length-5)+"end",m=m.substr(0,m.length-6));l=na(m.toLowerCase());h[l]=m;if(n||!c.hasOwnProperty(l))c[l]=q,qc(a,l)&&(c[l]=!0);Q(a,b,q,l);ca(b,l,"A",d,g,C,O)}}a=a.className;if(z(a)&&""!==a)for(;m=f.exec(a);)l=na(m[2]),ca(b,l,"C",d,g)&&(c[l]=aa(m[3])),a=a.substr(m.index+m[0].length);break;case 3:x(b,a.nodeValue);break;case 8:try{if(m=e.exec(a.nodeValue))l=na(m[1]),ca(b,l,"M",
+d,g)&&(c[l]=aa(m[2]))}catch(w){}}b.sort(D);return b}function J(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw ia("uterdir",b,c);1==a.nodeType&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return u(d)}function E(a,b,c){return function(d,e,f,g,m){e=J(e[0],b,c);return a(d,e,f,g,m)}}function F(a,c,d,e,f,g,m,n,p){function L(a,b,c,d){if(a){c&&(a=E(a,c,d));a.require=G.require;a.directiveName=oa;if(K===G||G.$$isolateScope)a=
+tc(a,{isolateScope:!0});m.push(a)}if(b){c&&(b=E(b,c,d));b.require=G.require;b.directiveName=oa;if(K===G||G.$$isolateScope)b=tc(b,{isolateScope:!0});n.push(b)}}function C(a,b,c,d){var e,f="data",g=!1;if(z(b)){for(;"^"==(e=b.charAt(0))||"?"==e;)b=b.substr(1),"^"==e&&(f="inheritedData"),g=g||"?"==e;e=null;d&&"data"===f&&(e=d[b]);e=e||c[f]("$"+b+"Controller");if(!e&&!g)throw ia("ctreq",b,a);}else H(b)&&(e=[],r(b,function(b){e.push(C(a,b,c,d))}));return e}function O(a,e,f,g,p){function L(a,b){var c;2>
+arguments.length&&(b=a,a=t);Ea&&(c=ea);return p(a,b,c)}var v,M,w,I,E,J,ea={},qb;v=c===f?d:ga(d,new Ob(u(f),d.$attr));M=v.$$element;if(K){var Na=/^\s*([@=&])(\??)\s*(\w*)\s*$/;J=e.$new(!0);!F||F!==K&&F!==K.$$originalDirective?M.data("$isolateScopeNoTemplate",J):M.data("$isolateScope",J);da(M,"ng-isolate-scope");r(K.scope,function(a,c){var d=a.match(Na)||[],f=d[3]||c,g="?"==d[2],d=d[1],m,l,n,p;J.$$isolateBindings[c]=d+f;switch(d){case "@":v.$observe(f,function(a){J[c]=a});v.$$observers[f].$$scope=e;
+v[f]&&(J[c]=b(v[f])(e));break;case "=":if(g&&!v[f])break;l=q(v[f]);p=l.literal?za:function(a,b){return a===b||a!==a&&b!==b};n=l.assign||function(){m=J[c]=l(e);throw ia("nonassign",v[f],K.name);};m=J[c]=l(e);J.$watch(function(){var a=l(e);p(a,J[c])||(p(a,m)?n(e,a=J[c]):J[c]=a);return m=a},null,l.literal);break;case "&":l=q(v[f]);J[c]=function(a){return l(e,a)};break;default:throw ia("iscp",K.name,c,a);}})}qb=p&&L;W&&r(W,function(a){var b={$scope:a===K||a.$$isolateScope?J:e,$element:M,$attrs:v,$transclude:qb},
+c;E=a.controller;"@"==E&&(E=v[a.name]);c=s(E,b);ea[a.name]=c;Ea||M.data("$"+a.name+"Controller",c);a.controllerAs&&(b.$scope[a.controllerAs]=c)});g=0;for(w=m.length;g<w;g++)try{I=m[g],I(I.isolateScope?J:e,M,v,I.require&&C(I.directiveName,I.require,M,ea),qb)}catch(ca){l(ca,ha(M))}g=e;K&&(K.template||null===K.templateUrl)&&(g=J);a&&a(g,f.childNodes,t,p);for(g=n.length-1;0<=g;g--)try{I=n[g],I(I.isolateScope?J:e,M,v,I.require&&C(I.directiveName,I.require,M,ea),qb)}catch(pb){l(pb,ha(M))}}p=p||{};for(var v=
+-Number.MAX_VALUE,I,W=p.controllerDirectives,K=p.newIsolateScopeDirective,F=p.templateDirective,ca=p.nonTlbTranscludeDirective,D=!1,B=!1,Ea=p.hasElementTranscludeDirective,x=d.$$element=u(c),G,oa,U,S=e,R,Q=0,pa=a.length;Q<pa;Q++){G=a[Q];var V=G.$$start,Y=G.$$end;V&&(x=J(c,V,Y));U=t;if(v>G.priority)break;if(U=G.scope)I=I||G,G.templateUrl||(N("new/isolated scope",K,G,x),T(U)&&(K=G));oa=G.name;!G.templateUrl&&G.controller&&(U=G.controller,W=W||{},N("'"+oa+"' controller",W[oa],G,x),W[oa]=G);if(U=G.transclude)D=
+!0,G.$$tlb||(N("transclusion",ca,G,x),ca=G),"element"==U?(Ea=!0,v=G.priority,U=x,x=d.$$element=u(X.createComment(" "+oa+": "+d[oa]+" ")),c=x[0],Na(f,Aa.call(U,0),c),S=w(U,e,v,g&&g.name,{nonTlbTranscludeDirective:ca})):(U=u(Kb(c)).contents(),x.empty(),S=w(U,e));if(G.template)if(B=!0,N("template",F,G,x),F=G,U=P(G.template)?G.template(x,d):G.template,U=Z(U),G.replace){g=G;U=Ib.test(U)?u(aa(U)):[];c=U[0];if(1!=U.length||1!==c.nodeType)throw ia("tplrt",oa,"");Na(f,x,c);pa={$attr:{}};U=ea(c,[],pa);var $=
+a.splice(Q+1,a.length-(Q+1));K&&pb(U);a=a.concat(U).concat($);A(d,pa);pa=a.length}else x.html(U);if(G.templateUrl)B=!0,N("template",F,G,x),F=G,G.replace&&(g=G),O=y(a.splice(Q,a.length-Q),x,d,f,D&&S,m,n,{controllerDirectives:W,newIsolateScopeDirective:K,templateDirective:F,nonTlbTranscludeDirective:ca}),pa=a.length;else if(G.compile)try{R=G.compile(x,d,S),P(R)?L(null,R,V,Y):R&&L(R.pre,R.post,V,Y)}catch(ba){l(ba,ha(x))}G.terminal&&(O.terminal=!0,v=Math.max(v,G.priority))}O.scope=I&&!0===I.scope;O.transcludeOnThisElement=
+D;O.templateOnThisElement=B;O.transclude=S;p.hasElementTranscludeDirective=Ea;return O}function pb(a){for(var b=0,c=a.length;b<c;b++)a[b]=bc(a[b],{$$isolateScope:!0})}function ca(b,e,f,g,h,q,n){if(e===h)return null;h=null;if(c.hasOwnProperty(e)){var p;e=a.get(e+d);for(var s=0,v=e.length;s<v;s++)try{p=e[s],(g===t||g>p.priority)&&-1!=p.restrict.indexOf(f)&&(q&&(p=bc(p,{$$start:q,$$end:n})),b.push(p),h=p)}catch(L){l(L)}}return h}function A(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;r(a,function(d,e){"$"!=
+e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});r(b,function(b,f){"class"==f?(da(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function y(a,b,c,d,e,f,g,m){var h=[],l,q,s=b[0],v=a.shift(),L=B({},v,{templateUrl:null,transclude:null,replace:null,$$originalDirective:v}),O=P(v.templateUrl)?v.templateUrl(b,c):v.templateUrl;
+b.empty();n.get(C.getTrustedResourceUrl(O),{cache:p}).success(function(n){var p,C;n=Z(n);if(v.replace){n=Ib.test(n)?u(aa(n)):[];p=n[0];if(1!=n.length||1!==p.nodeType)throw ia("tplrt",v.name,O);n={$attr:{}};Na(d,b,p);var w=ea(p,[],n);T(v.scope)&&pb(w);a=w.concat(a);A(c,n)}else p=s,b.html(n);a.unshift(L);l=F(a,p,c,e,b,v,f,g,m);r(d,function(a,c){a==p&&(d[c]=b[0])});for(q=K(b[0].childNodes,e);h.length;){n=h.shift();C=h.shift();var I=h.shift(),E=h.shift(),w=b[0];if(C!==s){var J=C.className;m.hasElementTranscludeDirective&&
+v.replace||(w=Kb(p));Na(I,u(C),w);da(u(w),J)}C=l.transcludeOnThisElement?W(n,l.transclude,E):E;l(q,n,w,d,C)}h=null}).error(function(a,b,c,d){throw ia("tpload",d.url);});return function(a,b,c,d,e){a=e;h?(h.push(b),h.push(c),h.push(d),h.push(a)):(l.transcludeOnThisElement&&(a=W(b,l.transclude,e)),l(q,b,c,d,a))}}function D(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function N(a,b,c,d){if(b)throw ia("multidir",b.name,c.name,a,ha(d));}function x(a,
+c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){var b=a.parent().length;b&&da(a.parent(),"ng-binding");return function(a,c){var e=c.parent(),f=e.data("$binding")||[];f.push(d);e.data("$binding",f);b||da(e,"ng-binding");a.$watch(d,function(a){c[0].nodeValue=a})}}})}function S(a,b){if("srcdoc"==b)return C.HTML;var c=Ma(a);if("xlinkHref"==b||"FORM"==c&&"action"==b||"IMG"!=c&&("src"==b||"ngSrc"==b))return C.RESOURCE_URL}function Q(a,c,d,e){var f=b(d,!0);if(f){if("multiple"===e&&"SELECT"===
+Ma(a))throw ia("selmulti",ha(a));c.push({priority:100,compile:function(){return{pre:function(c,d,m){d=m.$$observers||(m.$$observers={});if(g.test(e))throw ia("nodomevents");if(f=b(m[e],!0,S(a,e)))m[e]=f(c),(d[e]||(d[e]=[])).$$inter=!0,(m.$$observers&&m.$$observers[e].$$scope||c).$watch(f,function(a,b){"class"===e&&a!=b?m.$updateClass(a,b):m.$set(e,a)})}}}})}}function Na(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,m;if(a)for(g=0,m=a.length;g<m;g++)if(a[g]==d){a[g++]=c;m=g+e-1;for(var h=a.length;g<
+h;g++,m++)m<h?a[g]=a[m]:delete a[g];a.length-=e-1;break}f&&f.replaceChild(c,d);a=X.createDocumentFragment();a.appendChild(d);c[u.expando]=d[u.expando];d=1;for(e=b.length;d<e;d++)f=b[d],u(f).remove(),a.appendChild(f),delete b[d];b[0]=c;b.length=1}function tc(a,b){return B(function(){return a.apply(null,arguments)},a,b)}var Ob=function(a,b){this.$$element=a;this.$attr=b||{}};Ob.prototype={$normalize:na,$addClass:function(a){a&&0<a.length&&O.addClass(this.$$element,a)},$removeClass:function(a){a&&0<
+a.length&&O.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=uc(a,b),d=uc(b,a);0===c.length?O.removeClass(this.$$element,d):0===d.length?O.addClass(this.$$element,c):O.setClass(this.$$element,c,d)},$set:function(a,b,c,d){var e=qc(this.$$element[0],a);e&&(this.$$element.prop(a,b),d=e);this[a]=b;d?this.$attr[a]=d:(d=this.$attr[a])||(this.$attr[a]=d=kb(a,"-"));e=Ma(this.$$element);if("A"===e&&"href"===a||"IMG"===e&&"src"===a)this[a]=b=I(b,"src"===a);!1!==c&&(null===b||b===t?this.$$element.removeAttr(d):
+this.$$element.attr(d,b));(c=this.$$observers)&&r(c[a],function(a){try{a(b)}catch(c){l(c)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers={}),e=d[a]||(d[a]=[]);e.push(b);L.$evalAsync(function(){e.$$inter||b(c[a])});return b}};var pa=b.startSymbol(),Ea=b.endSymbol(),Z="{{"==pa||"}}"==Ea?Ga:function(a){return a.replace(/\{\{/g,pa).replace(/}}/g,Ea)},V=/^ngAttr[A-Z]/;return w}]}function na(b){return Ya(b.replace(ue,""))}function uc(b,a){var c="",d=b.split(/\s+/),e=a.split(/\s+/),
+f=0;a:for(;f<d.length;f++){for(var g=d[f],k=0;k<e.length;k++)if(g==e[k])continue a;c+=(0<c.length?" ":"")+g}return c}function Pd(){var b={},a=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,d){Ca(a,"controller");T(a)?B(b,a):b[a]=d};this.$get=["$injector","$window",function(c,d){return function(e,f){var g,k,m;z(e)&&(g=e.match(a),k=g[1],m=g[3],e=b.hasOwnProperty(k)?b[k]:hc(f.$scope,k,!0)||hc(d,k,!0),Va(e,k,!0));g=c.instantiate(e,f);if(m){if(!f||"object"!==typeof f.$scope)throw x("$controller")("noscp",
+k||e.name,m);f.$scope[m]=g}return g}}]}function Qd(){this.$get=["$window",function(b){return u(b.document)}]}function Rd(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function vc(b){var a={},c,d,e;if(!b)return a;r(b.split("\n"),function(b){e=b.indexOf(":");c=N(aa(b.substr(0,e)));d=aa(b.substr(e+1));c&&(a[c]=a[c]?a[c]+", "+d:d)});return a}function wc(b){var a=T(b)?b:t;return function(c){a||(a=vc(b));return c?a[N(c)]||null:a}}function xc(b,a,c){if(P(c))return c(b,
+a);r(c,function(c){b=c(b,a)});return b}function Ud(){var b=/^\s*(\[|\{[^\{])/,a=/[\}\]]\s*$/,c=/^\)\]\}',?\n/,d={"Content-Type":"application/json;charset=utf-8"},e=this.defaults={transformResponse:[function(d){z(d)&&(d=d.replace(c,""),b.test(d)&&a.test(d)&&(d=cc(d)));return d}],transformRequest:[function(a){return T(a)&&"[object File]"!==ya.call(a)&&"[object Blob]"!==ya.call(a)?ta(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ga(d),put:ga(d),patch:ga(d)},xsrfCookieName:"XSRF-TOKEN",
+xsrfHeaderName:"X-XSRF-TOKEN"},f=this.interceptors=[],g=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,b,c,d,n,p){function q(a){function b(a){var d=B({},a,{data:xc(a.data,a.headers,c.transformResponse)});return 200<=a.status&&300>a.status?d:n.reject(d)}var c={method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse},d=function(a){var b=e.headers,c=B({},a.headers),d,f,b=B({},b.common,b[N(a.method)]);
+a:for(d in b){a=N(d);for(f in c)if(N(f)===a)continue a;c[d]=b[d]}(function(a){var b;r(a,function(c,d){P(c)&&(b=c(),null!=b?a[d]=b:delete a[d])})})(c);return c}(a);B(c,a);c.headers=d;c.method=Ia(c.method);var f=[function(a){d=a.headers;var c=xc(a.data,wc(d),a.transformRequest);D(c)&&r(d,function(a,b){"content-type"===N(b)&&delete d[b]});D(a.withCredentials)&&!D(e.withCredentials)&&(a.withCredentials=e.withCredentials);return s(a,c,d).then(b,b)},t],g=n.when(c);for(r(C,function(a){(a.request||a.requestError)&&
+f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var m=f.shift(),g=g.then(a,m)}g.success=function(a){g.then(function(b){a(b.data,b.status,b.headers,c)});return g};g.error=function(a){g.then(null,function(b){a(b.data,b.status,b.headers,c)});return g};return g}function s(c,f,g){function h(a,b,c,e){E&&(200<=a&&300>a?E.put(u,[a,b,vc(c),e]):E.remove(u));p(b,a,c,e);d.$$phase||d.$apply()}function p(a,b,d,e){b=Math.max(b,0);(200<=
+b&&300>b?C.resolve:C.reject)({data:a,status:b,headers:wc(d),config:c,statusText:e})}function s(){var a=Qa(q.pendingRequests,c);-1!==a&&q.pendingRequests.splice(a,1)}var C=n.defer(),r=C.promise,E,F,u=L(c.url,c.params);q.pendingRequests.push(c);r.then(s,s);!c.cache&&!e.cache||(!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method)||(E=T(c.cache)?c.cache:T(e.cache)?e.cache:v);if(E)if(F=E.get(u),A(F)){if(F&&P(F.then))return F.then(s,s),F;H(F)?p(F[1],F[0],ga(F[2]),F[3]):p(F,200,{},"OK")}else E.put(u,r);D(F)&&
+((F=Pb(c.url)?b.cookies()[c.xsrfCookieName||e.xsrfCookieName]:t)&&(g[c.xsrfHeaderName||e.xsrfHeaderName]=F),a(c.method,u,f,h,g,c.timeout,c.withCredentials,c.responseType));return r}function L(a,b){if(!b)return a;var c=[];Tc(b,function(a,b){null===a||D(a)||(H(a)||(a=[a]),r(a,function(a){T(a)&&(sa(a)?a=a.toISOString():T(a)&&(a=ta(a)));c.push(Ba(b)+"="+Ba(a))}))});0<c.length&&(a+=(-1==a.indexOf("?")?"?":"&")+c.join("&"));return a}var v=c("$http"),C=[];r(f,function(a){C.unshift(z(a)?p.get(a):p.invoke(a))});
+r(g,function(a,b){var c=z(a)?p.get(a):p.invoke(a);C.splice(b,0,{response:function(a){return c(n.when(a))},responseError:function(a){return c(n.reject(a))}})});q.pendingRequests=[];(function(a){r(arguments,function(a){q[a]=function(b,c){return q(B(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){r(arguments,function(a){q[a]=function(b,c,d){return q(B(d||{},{method:a,url:b,data:c}))}})})("post","put");q.defaults=e;return q}]}function ve(b){if(8>=R&&(!b.match(/^(get|post|head|put|delete|options)$/i)||
+!Q.XMLHttpRequest))return new Q.ActiveXObject("Microsoft.XMLHTTP");if(Q.XMLHttpRequest)return new Q.XMLHttpRequest;throw x("$httpBackend")("noxhr");}function Vd(){this.$get=["$browser","$window","$document",function(b,a,c){return we(b,ve,b.defer,a.angular.callbacks,c[0])}]}function we(b,a,c,d,e){function f(a,b,c){var f=e.createElement("script"),g=null;f.type="text/javascript";f.src=a;f.async=!0;g=function(a){Za(f,"load",g);Za(f,"error",g);e.body.removeChild(f);f=null;var k=-1,s="unknown";a&&("load"!==
+a.type||d[b].called||(a={type:"error"}),s=a.type,k="error"===a.type?404:200);c&&c(k,s)};rb(f,"load",g);rb(f,"error",g);8>=R&&(f.onreadystatechange=function(){z(f.readyState)&&/loaded|complete/.test(f.readyState)&&(f.onreadystatechange=null,g({type:"load"}))});e.body.appendChild(f);return g}var g=-1;return function(e,m,h,l,n,p,q,s){function L(){C=g;I&&I();w&&w.abort()}function v(a,d,e,f,g){K&&c.cancel(K);I=w=null;0===d&&(d=e?200:"file"==ua(m).protocol?404:0);a(1223===d?204:d,e,f,g||"");b.$$completeOutstandingRequest(y)}
+var C;b.$$incOutstandingRequestCount();m=m||b.url();if("jsonp"==N(e)){var O="_"+(d.counter++).toString(36);d[O]=function(a){d[O].data=a;d[O].called=!0};var I=f(m.replace("JSON_CALLBACK","angular.callbacks."+O),O,function(a,b){v(l,a,d[O].data,"",b);d[O]=y})}else{var w=a(e);w.open(e,m,!0);r(n,function(a,b){A(a)&&w.setRequestHeader(b,a)});w.onreadystatechange=function(){if(w&&4==w.readyState){var a=null,b=null,c="";C!==g&&(a=w.getAllResponseHeaders(),b="response"in w?w.response:w.responseText);C===g&&
+10>R||(c=w.statusText);v(l,C||w.status,b,a,c)}};q&&(w.withCredentials=!0);if(s)try{w.responseType=s}catch(da){if("json"!==s)throw da;}w.send(h||null)}if(0<p)var K=c(L,p);else p&&P(p.then)&&p.then(L)}}function Sd(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this):b};this.endSymbol=function(b){return b?(a=b,this):a};this.$get=["$parse","$exceptionHandler","$sce",function(c,d,e){function f(f,h,l){for(var n,p,q=0,s=[],L=f.length,v=!1,C=[];q<L;)-1!=(n=f.indexOf(b,q))&&-1!=(p=f.indexOf(a,
+n+g))?(q!=n&&s.push(f.substring(q,n)),s.push(q=c(v=f.substring(n+g,p))),q.exp=v,q=p+k,v=!0):(q!=L&&s.push(f.substring(q)),q=L);(L=s.length)||(s.push(""),L=1);if(l&&1<s.length)throw yc("noconcat",f);if(!h||v)return C.length=L,q=function(a){try{for(var b=0,c=L,g;b<c;b++){if("function"==typeof(g=s[b]))if(g=g(a),g=l?e.getTrusted(l,g):e.valueOf(g),null==g)g="";else switch(typeof g){case "string":break;case "number":g=""+g;break;default:g=ta(g)}C[b]=g}return C.join("")}catch(k){a=yc("interr",f,k.toString()),
+d(a)}},q.exp=f,q.parts=s,q}var g=b.length,k=a.length;f.startSymbol=function(){return b};f.endSymbol=function(){return a};return f}]}function Td(){this.$get=["$rootScope","$window","$q",function(b,a,c){function d(d,g,k,m){var h=a.setInterval,l=a.clearInterval,n=c.defer(),p=n.promise,q=0,s=A(m)&&!m;k=A(k)?k:0;p.then(null,null,d);p.$$intervalId=h(function(){n.notify(q++);0<k&&q>=k&&(n.resolve(q),l(p.$$intervalId),delete e[p.$$intervalId]);s||b.$apply()},g);e[p.$$intervalId]=n;return p}var e={};d.cancel=
+function(b){return b&&b.$$intervalId in e?(e[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete e[b.$$intervalId],!0):!1};return d}]}function bd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "),
+SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return 1===b?"one":"other"}}}}function Qb(b){b=b.split("/");for(var a=b.length;a--;)b[a]=
+jb(b[a]);return b.join("/")}function zc(b,a,c){b=ua(b,c);a.$$protocol=b.protocol;a.$$host=b.hostname;a.$$port=Z(b.port)||xe[b.protocol]||null}function Ac(b,a,c){var d="/"!==b.charAt(0);d&&(b="/"+b);b=ua(b,c);a.$$path=decodeURIComponent(d&&"/"===b.pathname.charAt(0)?b.pathname.substring(1):b.pathname);a.$$search=ec(b.search);a.$$hash=decodeURIComponent(b.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function qa(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function cb(b){var a=
+b.indexOf("#");return-1==a?b:b.substr(0,a)}function Rb(b){return b.substr(0,cb(b).lastIndexOf("/")+1)}function Bc(b,a){this.$$html5=!0;a=a||"";var c=Rb(b);zc(b,this,b);this.$$parse=function(a){var e=qa(c,a);if(!z(e))throw Sb("ipthprfx",a,c);Ac(e,this,b);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Cb(this.$$search),b=this.$$hash?"#"+jb(this.$$hash):"";this.$$url=Qb(this.$$path)+(a?"?"+a:"")+b;this.$$absUrl=c+this.$$url.substr(1)};this.$$rewrite=function(d){var e;
+if((e=qa(b,d))!==t)return d=e,(e=qa(a,e))!==t?c+(qa("/",e)||e):b+d;if((e=qa(c,d))!==t)return c+e;if(c==d+"/")return c}}function Tb(b,a){var c=Rb(b);zc(b,this,b);this.$$parse=function(d){var e=qa(b,d)||qa(c,d),e="#"==e.charAt(0)?qa(a,e):this.$$html5?e:"";if(!z(e))throw Sb("ihshprfx",d,a);Ac(e,this,b);d=this.$$path;var f=/^\/[A-Z]:(\/.*)/;0===e.indexOf(b)&&(e=e.replace(b,""));f.exec(e)||(d=(e=f.exec(d))?e[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var c=Cb(this.$$search),e=this.$$hash?
+"#"+jb(this.$$hash):"";this.$$url=Qb(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+(this.$$url?a+this.$$url:"")};this.$$rewrite=function(a){if(cb(b)==cb(a))return a}}function Ub(b,a){this.$$html5=!0;Tb.apply(this,arguments);var c=Rb(b);this.$$rewrite=function(d){var e;if(b==cb(d))return d;if(e=qa(c,d))return b+a+e;if(c===d+"/")return c};this.$$compose=function(){var c=Cb(this.$$search),e=this.$$hash?"#"+jb(this.$$hash):"";this.$$url=Qb(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+a+this.$$url}}function sb(b){return function(){return this[b]}}
+function Cc(b,a){return function(c){if(D(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Wd(){var b="",a=!1;this.hashPrefix=function(a){return A(a)?(b=a,this):b};this.html5Mode=function(b){return A(b)?(a=b,this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(c,d,e,f){function g(a){c.$broadcast("$locationChangeSuccess",k.absUrl(),a)}var k,m,h=d.baseHref(),l=d.url(),n;a?(n=l.substring(0,l.indexOf("/",l.indexOf("//")+2))+(h||"/"),m=e.history?Bc:Ub):(n=
+cb(l),m=Tb);k=new m(n,"#"+b);k.$$parse(k.$$rewrite(l));var p=/^\s*(javascript|mailto):/i;f.on("click",function(a){if(!a.ctrlKey&&!a.metaKey&&2!=a.which){for(var e=u(a.target);"a"!==N(e[0].nodeName);)if(e[0]===f[0]||!(e=e.parent())[0])return;var g=e.prop("href");T(g)&&"[object SVGAnimatedString]"===g.toString()&&(g=ua(g.animVal).href);if(!p.test(g)){if(m===Ub){var h=e.attr("href")||e.attr("xlink:href");if(h&&0>h.indexOf("://"))if(g="#"+b,"/"==h[0])g=n+g+h;else if("#"==h[0])g=n+g+(k.path()||"/")+h;
+else{var l=k.path().split("/"),h=h.split("/");2!==l.length||l[1]||(l.length=1);for(var q=0;q<h.length;q++)"."!=h[q]&&(".."==h[q]?l.pop():h[q].length&&l.push(h[q]));g=n+g+l.join("/")}}l=k.$$rewrite(g);g&&(!e.attr("target")&&l&&!a.isDefaultPrevented())&&(a.preventDefault(),l!=d.url()&&(k.$$parse(l),c.$apply(),Q.angular["ff-684208-preventDefault"]=!0))}}});k.absUrl()!=l&&d.url(k.absUrl(),!0);d.onUrlChange(function(a){k.absUrl()!=a&&(c.$evalAsync(function(){var b=k.absUrl();k.$$parse(a);c.$broadcast("$locationChangeStart",
+a,b).defaultPrevented?(k.$$parse(b),d.url(b)):g(b)}),c.$$phase||c.$digest())});var q=0;c.$watch(function(){var a=d.url(),b=k.$$replace;q&&a==k.absUrl()||(q++,c.$evalAsync(function(){c.$broadcast("$locationChangeStart",k.absUrl(),a).defaultPrevented?k.$$parse(a):(d.url(k.absUrl(),b),g(a))}));k.$$replace=!1;return q});return k}]}function Xd(){var b=!0,a=this;this.debugEnabled=function(a){return A(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&
+-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||y;a=!1;try{a=!!e.apply}catch(m){}return a?function(){var a=[];r(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function ja(b,
+a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw ka("isecfld",a);return b}function Oa(b,a){if(b){if(b.constructor===b)throw ka("isecfn",a);if(b.document&&b.location&&b.alert&&b.setInterval)throw ka("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw ka("isecdom",a);if(b===Object)throw ka("isecobj",a);}return b}function tb(b,a,c,d,e){e=e||{};a=a.split(".");for(var f,g=0;1<a.length;g++){f=ja(a.shift(),d);
+var k=b[f];k||(k={},b[f]=k);b=k;b.then&&e.unwrapPromises&&(va(d),"$$v"in b||function(a){a.then(function(b){a.$$v=b})}(b),b.$$v===t&&(b.$$v={}),b=b.$$v)}f=ja(a.shift(),d);Oa(b,d);Oa(b[f],d);return b[f]=c}function Dc(b,a,c,d,e,f,g){ja(b,f);ja(a,f);ja(c,f);ja(d,f);ja(e,f);return g.unwrapPromises?function(g,m){var h=m&&m.hasOwnProperty(b)?m:g,l;if(null==h)return h;(h=h[b])&&h.then&&(va(f),"$$v"in h||(l=h,l.$$v=t,l.then(function(a){l.$$v=a})),h=h.$$v);if(!a)return h;if(null==h)return t;(h=h[a])&&h.then&&
+(va(f),"$$v"in h||(l=h,l.$$v=t,l.then(function(a){l.$$v=a})),h=h.$$v);if(!c)return h;if(null==h)return t;(h=h[c])&&h.then&&(va(f),"$$v"in h||(l=h,l.$$v=t,l.then(function(a){l.$$v=a})),h=h.$$v);if(!d)return h;if(null==h)return t;(h=h[d])&&h.then&&(va(f),"$$v"in h||(l=h,l.$$v=t,l.then(function(a){l.$$v=a})),h=h.$$v);if(!e)return h;if(null==h)return t;(h=h[e])&&h.then&&(va(f),"$$v"in h||(l=h,l.$$v=t,l.then(function(a){l.$$v=a})),h=h.$$v);return h}:function(f,g){var h=g&&g.hasOwnProperty(b)?g:f;if(null==
+h)return h;h=h[b];if(!a)return h;if(null==h)return t;h=h[a];if(!c)return h;if(null==h)return t;h=h[c];if(!d)return h;if(null==h)return t;h=h[d];return e?null==h?t:h=h[e]:h}}function Ec(b,a,c){if(Vb.hasOwnProperty(b))return Vb[b];var d=b.split("."),e=d.length,f;if(a.csp)f=6>e?Dc(d[0],d[1],d[2],d[3],d[4],c,a):function(b,f){var g=0,k;do k=Dc(d[g++],d[g++],d[g++],d[g++],d[g++],c,a)(b,f),f=t,b=k;while(g<e);return k};else{var g="var p;\n";r(d,function(b,d){ja(b,c);g+="if(s == null) return undefined;\ns="+
+(d?"s":'((k&&k.hasOwnProperty("'+b+'"))?k:s)')+'["'+b+'"];\n'+(a.unwrapPromises?'if (s && s.then) {\n pw("'+c.replace(/(["\r\n])/g,"\\$1")+'");\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n':"")});var g=g+"return s;",k=new Function("s","k","pw",g);k.toString=$(g);f=a.unwrapPromises?function(a,b){return k(a,b,va)}:k}"hasOwnProperty"!==b&&(Vb[b]=f);return f}function Yd(){var b={},a={csp:!1,unwrapPromises:!1,logPromiseWarnings:!0};this.unwrapPromises=
+function(b){return A(b)?(a.unwrapPromises=!!b,this):a.unwrapPromises};this.logPromiseWarnings=function(b){return A(b)?(a.logPromiseWarnings=b,this):a.logPromiseWarnings};this.$get=["$filter","$sniffer","$log",function(c,d,e){a.csp=d.csp;va=function(b){a.logPromiseWarnings&&!Fc.hasOwnProperty(b)&&(Fc[b]=!0,e.warn("[$parse] Promise found in the expression `"+b+"`. Automatic unwrapping of promises in Angular expressions is deprecated."))};return function(d){var e;switch(typeof d){case "string":if(b.hasOwnProperty(d))return b[d];
+e=new Wb(a);e=(new db(e,c,a)).parse(d);"hasOwnProperty"!==d&&(b[d]=e);return e;case "function":return d;default:return y}}}]}function $d(){this.$get=["$rootScope","$exceptionHandler",function(b,a){return ye(function(a){b.$evalAsync(a)},a)}]}function ye(b,a){function c(a){return a}function d(a){return g(a)}var e=function(){var g=[],h,l;return l={resolve:function(a){if(g){var c=g;g=t;h=f(a);c.length&&b(function(){for(var a,b=0,d=c.length;b<d;b++)a=c[b],h.then(a[0],a[1],a[2])})}},reject:function(a){l.resolve(k(a))},
+notify:function(a){if(g){var c=g;g.length&&b(function(){for(var b,d=0,e=c.length;d<e;d++)b=c[d],b[2](a)})}},promise:{then:function(b,f,k){var l=e(),L=function(d){try{l.resolve((P(b)?b:c)(d))}catch(e){l.reject(e),a(e)}},v=function(b){try{l.resolve((P(f)?f:d)(b))}catch(c){l.reject(c),a(c)}},C=function(b){try{l.notify((P(k)?k:c)(b))}catch(d){a(d)}};g?g.push([L,v,C]):h.then(L,v,C);return l.promise},"catch":function(a){return this.then(null,a)},"finally":function(a){function b(a,c){var d=e();c?d.resolve(a):
+d.reject(a);return d.promise}function d(e,f){var g=null;try{g=(a||c)()}catch(k){return b(k,!1)}return g&&P(g.then)?g.then(function(){return b(e,f)},function(a){return b(a,!1)}):b(e,f)}return this.then(function(a){return d(a,!0)},function(a){return d(a,!1)})}}}},f=function(a){return a&&P(a.then)?a:{then:function(c){var d=e();b(function(){d.resolve(c(a))});return d.promise}}},g=function(a){var b=e();b.reject(a);return b.promise},k=function(c){return{then:function(f,g){var k=e();b(function(){try{k.resolve((P(g)?
+g:d)(c))}catch(b){k.reject(b),a(b)}});return k.promise}}};return{defer:e,reject:g,when:function(k,h,l,n){var p=e(),q,s=function(b){try{return(P(h)?h:c)(b)}catch(d){return a(d),g(d)}},L=function(b){try{return(P(l)?l:d)(b)}catch(c){return a(c),g(c)}},v=function(b){try{return(P(n)?n:c)(b)}catch(d){a(d)}};b(function(){f(k).then(function(a){q||(q=!0,p.resolve(f(a).then(s,L,v)))},function(a){q||(q=!0,p.resolve(L(a)))},function(a){q||p.notify(v(a))})});return p.promise},all:function(a){var b=e(),c=0,d=H(a)?
+[]:{};r(a,function(a,e){c++;f(a).then(function(a){d.hasOwnProperty(e)||(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})});0===c&&b.resolve(d);return b.promise}}}function ge(){this.$get=["$window","$timeout",function(b,a){var c=b.requestAnimationFrame||b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame,d=b.cancelAnimationFrame||b.webkitCancelAnimationFrame||b.mozCancelAnimationFrame||b.webkitCancelRequestAnimationFrame,e=!!c,f=e?function(a){var b=c(a);return function(){d(b)}}:
+function(b){var c=a(b,16.66,!1);return function(){a.cancel(c)}};f.supported=e;return f}]}function Zd(){var b=10,a=x("$rootScope"),c=null;this.digestTtl=function(a){arguments.length&&(b=a);return b};this.$get=["$injector","$exceptionHandler","$parse","$browser",function(d,e,f,g){function k(){this.$id=gb();this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this["this"]=this.$root=this;this.$$destroyed=!1;this.$$asyncQueue=[];this.$$postDigestQueue=
+[];this.$$listeners={};this.$$listenerCount={};this.$$isolateBindings={}}function m(b){if(p.$$phase)throw a("inprog",p.$$phase);p.$$phase=b}function h(a,b){var c=f(a);Va(c,b);return c}function l(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function n(){}k.prototype={constructor:k,$new:function(a){a?(a=new k,a.$root=this.$root,a.$$asyncQueue=this.$$asyncQueue,a.$$postDigestQueue=this.$$postDigestQueue):(this.$$childScopeClass||(this.$$childScopeClass=
+function(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$id=gb();this.$$childScopeClass=null},this.$$childScopeClass.prototype=this),a=new this.$$childScopeClass);a["this"]=a;a.$parent=this;a.$$prevSibling=this.$$childTail;this.$$childHead?this.$$childTail=this.$$childTail.$$nextSibling=a:this.$$childHead=this.$$childTail=a;return a},$watch:function(a,b,d){var e=h(a,"watch"),f=this.$$watchers,g={fn:b,last:n,get:e,exp:a,
+eq:!!d};c=null;if(!P(b)){var k=h(b||y,"listener");g.fn=function(a,b,c){k(c)}}if("string"==typeof a&&e.constant){var m=g.fn;g.fn=function(a,b,c){m.call(this,a,b,c);Ra(f,g)}}f||(f=this.$$watchers=[]);f.unshift(g);return function(){Ra(f,g);c=null}},$watchCollection:function(a,b){var c=this,d,e,g,k=1<b.length,h=0,m=f(a),l=[],p={},n=!0,r=0;return this.$watch(function(){d=m(c);var a,b,f;if(T(d))if(fb(d))for(e!==l&&(e=l,r=e.length=0,h++),a=d.length,r!==a&&(h++,e.length=r=a),b=0;b<a;b++)f=e[b]!==e[b]&&d[b]!==
+d[b],f||e[b]===d[b]||(h++,e[b]=d[b]);else{e!==p&&(e=p={},r=0,h++);a=0;for(b in d)d.hasOwnProperty(b)&&(a++,e.hasOwnProperty(b)?(f=e[b]!==e[b]&&d[b]!==d[b],f||e[b]===d[b]||(h++,e[b]=d[b])):(r++,e[b]=d[b],h++));if(r>a)for(b in h++,e)e.hasOwnProperty(b)&&!d.hasOwnProperty(b)&&(r--,delete e[b])}else e!==d&&(e=d,h++);return h},function(){n?(n=!1,b(d,d,c)):b(d,g,c);if(k)if(T(d))if(fb(d)){g=Array(d.length);for(var a=0;a<d.length;a++)g[a]=d[a]}else for(a in g={},d)ib.call(d,a)&&(g[a]=d[a]);else g=d})},$digest:function(){var d,
+f,g,k,h=this.$$asyncQueue,l=this.$$postDigestQueue,r,w,t=b,K,W=[],u,J,E;m("$digest");c=null;do{w=!1;for(K=this;h.length;){try{E=h.shift(),E.scope.$eval(E.expression)}catch(F){p.$$phase=null,e(F)}c=null}a:do{if(k=K.$$watchers)for(r=k.length;r--;)try{if(d=k[r])if((f=d.get(K))!==(g=d.last)&&!(d.eq?za(f,g):"number"===typeof f&&"number"===typeof g&&isNaN(f)&&isNaN(g)))w=!0,c=d,d.last=d.eq?Ha(f,null):f,d.fn(f,g===n?f:g,K),5>t&&(u=4-t,W[u]||(W[u]=[]),J=P(d.exp)?"fn: "+(d.exp.name||d.exp.toString()):d.exp,
+J+="; newVal: "+ta(f)+"; oldVal: "+ta(g),W[u].push(J));else if(d===c){w=!1;break a}}catch(A){p.$$phase=null,e(A)}if(!(k=K.$$childHead||K!==this&&K.$$nextSibling))for(;K!==this&&!(k=K.$$nextSibling);)K=K.$parent}while(K=k);if((w||h.length)&&!t--)throw p.$$phase=null,a("infdig",b,ta(W));}while(w||h.length);for(p.$$phase=null;l.length;)try{l.shift()()}catch(x){e(x)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this!==p&&(r(this.$$listenerCount,
+Bb(null,l,this)),a.$$childHead==this&&(a.$$childHead=this.$$nextSibling),a.$$childTail==this&&(a.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=null,this.$$listeners={},this.$$watchers=this.$$asyncQueue=this.$$postDigestQueue=[],this.$destroy=this.$digest=this.$apply=y,this.$on=
+this.$watch=function(){return y})}},$eval:function(a,b){return f(a)(this,b)},$evalAsync:function(a){p.$$phase||p.$$asyncQueue.length||g.defer(function(){p.$$asyncQueue.length&&p.$digest()});this.$$asyncQueue.push({scope:this,expression:a})},$$postDigest:function(a){this.$$postDigestQueue.push(a)},$apply:function(a){try{return m("$apply"),this.$eval(a)}catch(b){e(b)}finally{p.$$phase=null;try{p.$digest()}catch(c){throw e(c),c;}}},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=
+c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){c[Qa(c,b)]=null;l(e,1,a)}},$emit:function(a,b){var c=[],d,f=this,g=!1,k={name:a,targetScope:f,stopPropagation:function(){g=!0},preventDefault:function(){k.defaultPrevented=!0},defaultPrevented:!1},h=[k].concat(Aa.call(arguments,1)),m,l;do{d=f.$$listeners[a]||c;k.currentScope=f;m=0;for(l=d.length;m<l;m++)if(d[m])try{d[m].apply(null,h)}catch(p){e(p)}else d.splice(m,
+1),m--,l--;if(g)break;f=f.$parent}while(f);return k},$broadcast:function(a,b){for(var c=this,d=this,f={name:a,targetScope:this,preventDefault:function(){f.defaultPrevented=!0},defaultPrevented:!1},g=[f].concat(Aa.call(arguments,1)),k,h;c=d;){f.currentScope=c;d=c.$$listeners[a]||[];k=0;for(h=d.length;k<h;k++)if(d[k])try{d[k].apply(null,g)}catch(m){e(m)}else d.splice(k,1),k--,h--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}return f}};
+var p=new k;return p}]}function cd(){var b=/^\s*(https?|ftp|mailto|tel|file):/,a=/^\s*((https?|ftp|file):|data:image\/)/;this.aHrefSanitizationWhitelist=function(a){return A(a)?(b=a,this):b};this.imgSrcSanitizationWhitelist=function(b){return A(b)?(a=b,this):a};this.$get=function(){return function(c,d){var e=d?a:b,f;if(!R||8<=R)if(f=ua(c).href,""!==f&&!f.match(e))return"unsafe:"+f;return c}}}function ze(b){if("self"===b)return b;if(z(b)){if(-1<b.indexOf("***"))throw wa("iwcard",b);b=b.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,
+"\\$1").replace(/\x08/g,"\\x08").replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*");return RegExp("^"+b+"$")}if(hb(b))return RegExp("^"+b.source+"$");throw wa("imatcher");}function Gc(b){var a=[];A(b)&&r(b,function(b){a.push(ze(b))});return a}function be(){this.SCE_CONTEXTS=fa;var b=["self"],a=[];this.resourceUrlWhitelist=function(a){arguments.length&&(b=Gc(a));return b};this.resourceUrlBlacklist=function(b){arguments.length&&(a=Gc(b));return a};this.$get=["$injector",function(c){function d(a){var b=
+function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};return b}var e=function(a){throw wa("unsafe");};c.has("$sanitize")&&(e=c.get("$sanitize"));var f=d(),g={};g[fa.HTML]=d(f);g[fa.CSS]=d(f);g[fa.URL]=d(f);g[fa.JS]=d(f);g[fa.RESOURCE_URL]=d(g[fa.URL]);return{trustAs:function(a,b){var c=g.hasOwnProperty(a)?g[a]:null;if(!c)throw wa("icontext",
+a,b);if(null===b||b===t||""===b)return b;if("string"!==typeof b)throw wa("itype",a);return new c(b)},getTrusted:function(c,d){if(null===d||d===t||""===d)return d;var f=g.hasOwnProperty(c)?g[c]:null;if(f&&d instanceof f)return d.$$unwrapTrustedValue();if(c===fa.RESOURCE_URL){var f=ua(d.toString()),l,n,p=!1;l=0;for(n=b.length;l<n;l++)if("self"===b[l]?Pb(f):b[l].exec(f.href)){p=!0;break}if(p)for(l=0,n=a.length;l<n;l++)if("self"===a[l]?Pb(f):a[l].exec(f.href)){p=!1;break}if(p)return d;throw wa("insecurl",
+d.toString());}if(c===fa.HTML)return e(d);throw wa("unsafe");},valueOf:function(a){return a instanceof f?a.$$unwrapTrustedValue():a}}}]}function ae(){var b=!0;this.enabled=function(a){arguments.length&&(b=!!a);return b};this.$get=["$parse","$sniffer","$sceDelegate",function(a,c,d){if(b&&c.msie&&8>c.msieDocumentMode)throw wa("iequirks");var e=ga(fa);e.isEnabled=function(){return b};e.trustAs=d.trustAs;e.getTrusted=d.getTrusted;e.valueOf=d.valueOf;b||(e.trustAs=e.getTrusted=function(a,b){return b},
+e.valueOf=Ga);e.parseAs=function(b,c){var d=a(c);return d.literal&&d.constant?d:function(a,c){return e.getTrusted(b,d(a,c))}};var f=e.parseAs,g=e.getTrusted,k=e.trustAs;r(fa,function(a,b){var c=N(b);e[Ya("parse_as_"+c)]=function(b){return f(a,b)};e[Ya("get_trusted_"+c)]=function(b){return g(a,b)};e[Ya("trust_as_"+c)]=function(b){return k(a,b)}});return e}]}function ce(){this.$get=["$window","$document",function(b,a){var c={},d=Z((/android (\d+)/.exec(N((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||
+{}).userAgent),f=a[0]||{},g=f.documentMode,k,m=/^(Moz|webkit|O|ms)(?=[A-Z])/,h=f.body&&f.body.style,l=!1,n=!1;if(h){for(var p in h)if(l=m.exec(p)){k=l[0];k=k.substr(0,1).toUpperCase()+k.substr(1);break}k||(k="WebkitOpacity"in h&&"webkit");l=!!("transition"in h||k+"Transition"in h);n=!!("animation"in h||k+"Animation"in h);!d||l&&n||(l=z(f.body.style.webkitTransition),n=z(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hashchange:"onhashchange"in b&&(!g||7<
+g),hasEvent:function(a){if("input"==a&&9==R)return!1;if(D(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:Wa(),vendorPrefix:k,transitions:l,animations:n,android:d,msie:R,msieDocumentMode:g}}]}function ee(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(b,a,c,d){function e(e,k,m){var h=c.defer(),l=h.promise,n=A(m)&&!m;k=a.defer(function(){try{h.resolve(e())}catch(a){h.reject(a),d(a)}finally{delete f[l.$$timeoutId]}n||b.$apply()},k);l.$$timeoutId=k;f[k]=h;
+return l}var f={};e.cancel=function(b){return b&&b.$$timeoutId in f?(f[b.$$timeoutId].reject("canceled"),delete f[b.$$timeoutId],a.defer.cancel(b.$$timeoutId)):!1};return e}]}function ua(b,a){var c=b;R&&(V.setAttribute("href",c),c=V.href);V.setAttribute("href",c);return{href:V.href,protocol:V.protocol?V.protocol.replace(/:$/,""):"",host:V.host,search:V.search?V.search.replace(/^\?/,""):"",hash:V.hash?V.hash.replace(/^#/,""):"",hostname:V.hostname,port:V.port,pathname:"/"===V.pathname.charAt(0)?V.pathname:
+"/"+V.pathname}}function Pb(b){b=z(b)?ua(b):b;return b.protocol===Hc.protocol&&b.host===Hc.host}function fe(){this.$get=$(Q)}function mc(b){function a(d,e){if(T(d)){var f={};r(d,function(b,c){f[c]=a(c,b)});return f}return b.factory(d+c,e)}var c="Filter";this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}];a("currency",Ic);a("date",Jc);a("filter",Ae);a("json",Be);a("limitTo",Ce);a("lowercase",De);a("number",Kc);a("orderBy",Lc);a("uppercase",Ee)}function Ae(){return function(b,
+a,c){if(!H(b))return b;var d=typeof c,e=[];e.check=function(a){for(var b=0;b<e.length;b++)if(!e[b](a))return!1;return!0};"function"!==d&&(c="boolean"===d&&c?function(a,b){return Ua.equals(a,b)}:function(a,b){if(a&&b&&"object"===typeof a&&"object"===typeof b){for(var d in a)if("$"!==d.charAt(0)&&ib.call(a,d)&&c(a[d],b[d]))return!0;return!1}b=(""+b).toLowerCase();return-1<(""+a).toLowerCase().indexOf(b)});var f=function(a,b){if("string"==typeof b&&"!"===b.charAt(0))return!f(a,b.substr(1));switch(typeof a){case "boolean":case "number":case "string":return c(a,
+b);case "object":switch(typeof b){case "object":return c(a,b);default:for(var d in a)if("$"!==d.charAt(0)&&f(a[d],b))return!0}return!1;case "array":for(d=0;d<a.length;d++)if(f(a[d],b))return!0;return!1;default:return!1}};switch(typeof a){case "boolean":case "number":case "string":a={$:a};case "object":for(var g in a)(function(b){"undefined"!==typeof a[b]&&e.push(function(c){return f("$"==b?c:c&&c[b],a[b])})})(g);break;case "function":e.push(a);break;default:return b}d=[];for(g=0;g<b.length;g++){var k=
+b[g];e.check(k)&&d.push(k)}return d}}function Ic(b){var a=b.NUMBER_FORMATS;return function(b,d){D(d)&&(d=a.CURRENCY_SYM);return Mc(b,a.PATTERNS[1],a.GROUP_SEP,a.DECIMAL_SEP,2).replace(/\u00A4/g,d)}}function Kc(b){var a=b.NUMBER_FORMATS;return function(b,d){return Mc(b,a.PATTERNS[0],a.GROUP_SEP,a.DECIMAL_SEP,d)}}function Mc(b,a,c,d,e){if(null==b||!isFinite(b)||T(b))return"";var f=0>b;b=Math.abs(b);var g=b+"",k="",m=[],h=!1;if(-1!==g.indexOf("e")){var l=g.match(/([\d\.]+)e(-?)(\d+)/);l&&"-"==l[2]&&
+l[3]>e+1?(g="0",b=0):(k=g,h=!0)}if(h)0<e&&(-1<b&&1>b)&&(k=b.toFixed(e));else{g=(g.split(Nc)[1]||"").length;D(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);b=(""+b).split(Nc);g=b[0];b=b[1]||"";var l=0,n=a.lgSize,p=a.gSize;if(g.length>=n+p)for(l=g.length-n,h=0;h<l;h++)0===(l-h)%p&&0!==h&&(k+=c),k+=g.charAt(h);for(h=l;h<g.length;h++)0===(g.length-h)%n&&0!==h&&(k+=c),k+=g.charAt(h);for(;b.length<e;)b+="0";e&&"0"!==e&&(k+=d+b.substr(0,e))}m.push(f?
+a.negPre:a.posPre);m.push(k);m.push(f?a.negSuf:a.posSuf);return m.join("")}function Xb(b,a,c){var d="";0>b&&(d="-",b=-b);for(b=""+b;b.length<a;)b="0"+b;c&&(b=b.substr(b.length-a));return d+b}function Y(b,a,c,d){c=c||0;return function(e){e=e["get"+b]();if(0<c||e>-c)e+=c;0===e&&-12==c&&(e=12);return Xb(e,a,d)}}function ub(b,a){return function(c,d){var e=c["get"+b](),f=Ia(a?"SHORT"+b:b);return d[f][e]}}function Jc(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,k=b[8]?a.setUTCFullYear:
+a.setFullYear,m=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=Z(b[9]+b[10]),g=Z(b[9]+b[11]));k.call(a,Z(b[1]),Z(b[2])-1,Z(b[3]));f=Z(b[4]||0)-f;g=Z(b[5]||0)-g;k=Z(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));m.call(a,f,g,k,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e){var f="",g=[],k,m;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;z(c)&&(c=Fe.test(c)?Z(c):a(c));Ab(c)&&(c=new Date(c));if(!sa(c))return c;
+for(;e;)(m=Ge.exec(e))?(g=g.concat(Aa.call(m,1)),e=g.pop()):(g.push(e),e=null);r(g,function(a){k=He[a];f+=k?k(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return f}}function Be(){return function(b){return ta(b,!0)}}function Ce(){return function(b,a){if(!H(b)&&!z(b))return b;a=Infinity===Math.abs(Number(a))?Number(a):Z(a);if(z(b))return a?0<=a?b.slice(0,a):b.slice(a,b.length):"";var c=[],d,e;a>b.length?a=b.length:a<-b.length&&(a=-b.length);0<a?(d=0,e=a):(d=b.length+a,e=b.length);
+for(;d<e;d++)c.push(b[d]);return c}}function Lc(b){return function(a,c,d){function e(a,b){return Ta(b)?function(b,c){return a(c,b)}:a}function f(a,b){var c=typeof a,d=typeof b;return c==d?(sa(a)&&sa(b)&&(a=a.valueOf(),b=b.valueOf()),"string"==c&&(a=a.toLowerCase(),b=b.toLowerCase()),a===b?0:a<b?-1:1):c<d?-1:1}if(!H(a)||!c)return a;c=H(c)?c:[c];c=Vc(c,function(a){var c=!1,d=a||Ga;if(z(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))c="-"==a.charAt(0),a=a.substring(1);d=b(a);if(d.constant){var g=d();return e(function(a,
+b){return f(a[g],b[g])},c)}}return e(function(a,b){return f(d(a),d(b))},c)});for(var g=[],k=0;k<a.length;k++)g.push(a[k]);return g.sort(e(function(a,b){for(var d=0;d<c.length;d++){var e=c[d](a,b);if(0!==e)return e}return 0},d))}}function xa(b){P(b)&&(b={link:b});b.restrict=b.restrict||"AC";return $(b)}function Oc(b,a,c,d){function e(a,c){c=c?"-"+kb(c,"-"):"";d.removeClass(b,(a?vb:wb)+c);d.addClass(b,(a?wb:vb)+c)}var f=this,g=b.parent().controller("form")||xb,k=0,m=f.$error={},h=[];f.$name=a.name||
+a.ngForm;f.$dirty=!1;f.$pristine=!0;f.$valid=!0;f.$invalid=!1;g.$addControl(f);b.addClass(Pa);e(!0);f.$addControl=function(a){Ca(a.$name,"input");h.push(a);a.$name&&(f[a.$name]=a)};f.$removeControl=function(a){a.$name&&f[a.$name]===a&&delete f[a.$name];r(m,function(b,c){f.$setValidity(c,!0,a)});Ra(h,a)};f.$setValidity=function(a,b,c){var d=m[a];if(b)d&&(Ra(d,c),d.length||(k--,k||(e(b),f.$valid=!0,f.$invalid=!1),m[a]=!1,e(!0,a),g.$setValidity(a,!0,f)));else{k||e(b);if(d){if(-1!=Qa(d,c))return}else m[a]=
+d=[],k++,e(!1,a),g.$setValidity(a,!1,f);d.push(c);f.$valid=!1;f.$invalid=!0}};f.$setDirty=function(){d.removeClass(b,Pa);d.addClass(b,yb);f.$dirty=!0;f.$pristine=!1;g.$setDirty()};f.$setPristine=function(){d.removeClass(b,yb);d.addClass(b,Pa);f.$dirty=!1;f.$pristine=!0;r(h,function(a){a.$setPristine()})}}function ra(b,a,c,d){b.$setValidity(a,c);return c?d:t}function Pc(b,a){var c,d;if(a)for(c=0;c<a.length;++c)if(d=a[c],b[d])return!0;return!1}function Ie(b,a,c,d,e){T(e)&&(b.$$hasNativeValidators=!0,
+b.$parsers.push(function(f){if(b.$error[a]||Pc(e,d)||!Pc(e,c))return f;b.$setValidity(a,!1)}))}function zb(b,a,c,d,e,f){var g=a.prop(Je),k=a[0].placeholder,m={},h=N(a[0].type);d.$$validityState=g;if(!e.android){var l=!1;a.on("compositionstart",function(a){l=!0});a.on("compositionend",function(){l=!1;n()})}var n=function(e){if(!l){var f=a.val();if(R&&"input"===(e||m).type&&a[0].placeholder!==k)k=a[0].placeholder;else if("password"!==h&&Ta(c.ngTrim||"T")&&(f=aa(f)),e=g&&d.$$hasNativeValidators,d.$viewValue!==
+f||""===f&&e)b.$$phase?d.$setViewValue(f):b.$apply(function(){d.$setViewValue(f)})}};if(e.hasEvent("input"))a.on("input",n);else{var p,q=function(){p||(p=f.defer(function(){n();p=null}))};a.on("keydown",function(a){a=a.keyCode;91===a||(15<a&&19>a||37<=a&&40>=a)||q()});if(e.hasEvent("paste"))a.on("paste cut",q)}a.on("change",n);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)};var s=c.ngPattern;s&&((e=s.match(/^\/(.*)\/([gim]*)$/))?(s=RegExp(e[1],e[2]),e=function(a){return ra(d,
+"pattern",d.$isEmpty(a)||s.test(a),a)}):e=function(c){var e=b.$eval(s);if(!e||!e.test)throw x("ngPattern")("noregexp",s,e,ha(a));return ra(d,"pattern",d.$isEmpty(c)||e.test(c),c)},d.$formatters.push(e),d.$parsers.push(e));if(c.ngMinlength){var r=Z(c.ngMinlength);e=function(a){return ra(d,"minlength",d.$isEmpty(a)||a.length>=r,a)};d.$parsers.push(e);d.$formatters.push(e)}if(c.ngMaxlength){var v=Z(c.ngMaxlength);e=function(a){return ra(d,"maxlength",d.$isEmpty(a)||a.length<=v,a)};d.$parsers.push(e);
+d.$formatters.push(e)}}function Yb(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],l=0;l<b.length;l++)if(e==b[l])continue a;c.push(e)}return c}function e(a){if(!H(a)){if(z(a))return a.split(" ");if(T(a)){var b=[];r(a,function(a,c){a&&(b=b.concat(c.split(" ")))});return b}}return a}return{restrict:"AC",link:function(f,g,k){function m(a,b){var c=g.data("$classCounts")||{},d=[];r(a,function(a){if(0<b||c[a])c[a]=(c[a]||0)+b,c[a]===+(0<
+b)&&d.push(a)});g.data("$classCounts",c);return d.join(" ")}function h(b){if(!0===a||f.$index%2===a){var h=e(b||[]);if(!l){var q=m(h,1);k.$addClass(q)}else if(!za(b,l)){var s=e(l),q=d(h,s),h=d(s,h),h=m(h,-1),q=m(q,1);0===q.length?c.removeClass(g,h):0===h.length?c.addClass(g,q):c.setClass(g,q,h)}}l=ga(b)}var l;f.$watch(k[b],h,!0);k.$observe("class",function(a){h(f.$eval(k[b]))});"ngClass"!==b&&f.$watch("$index",function(c,d){var g=c&1;if(g!==(d&1)){var h=e(f.$eval(k[b]));g===a?(g=m(h,1),k.$addClass(g)):
+(g=m(h,-1),k.$removeClass(g))}})}}}]}var Je="validity",N=function(b){return z(b)?b.toLowerCase():b},ib=Object.prototype.hasOwnProperty,Ia=function(b){return z(b)?b.toUpperCase():b},R,u,Da,Aa=[].slice,Ke=[].push,ya=Object.prototype.toString,Sa=x("ng"),Ua=Q.angular||(Q.angular={}),Xa,Ma,la=["0","0","0"];R=Z((/msie (\d+)/.exec(N(navigator.userAgent))||[])[1]);isNaN(R)&&(R=Z((/trident\/.*; rv:(\d+)/.exec(N(navigator.userAgent))||[])[1]));y.$inject=[];Ga.$inject=[];var H=function(){return P(Array.isArray)?
+Array.isArray:function(b){return"[object Array]"===ya.call(b)}}(),aa=function(){return String.prototype.trim?function(b){return z(b)?b.trim():b}:function(b){return z(b)?b.replace(/^\s\s*/,"").replace(/\s\s*$/,""):b}}();Ma=9>R?function(b){b=b.nodeName?b:b[0];return b.scopeName&&"HTML"!=b.scopeName?Ia(b.scopeName+":"+b.nodeName):b.nodeName}:function(b){return b.nodeName?b.nodeName:b[0].nodeName};var Wa=function(){if(A(Wa.isActive_))return Wa.isActive_;var b=!(!X.querySelector("[ng-csp]")&&!X.querySelector("[data-ng-csp]"));
+if(!b)try{new Function("")}catch(a){b=!0}return Wa.isActive_=b},Yc=/[A-Z]/g,ad={full:"1.2.23",major:1,minor:2,dot:23,codeName:"superficial-malady"};S.expando="ng339";var $a=S.cache={},ne=1,rb=Q.document.addEventListener?function(b,a,c){b.addEventListener(a,c,!1)}:function(b,a,c){b.attachEvent("on"+a,c)},Za=Q.document.removeEventListener?function(b,a,c){b.removeEventListener(a,c,!1)}:function(b,a,c){b.detachEvent("on"+a,c)};S._data=function(b){return this.cache[b[this.expando]]||{}};var ie=/([\:\-\_]+(.))/g,
+je=/^moz([A-Z])/,Hb=x("jqLite"),ke=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Ib=/<|&#?\w+;/,le=/<([\w:]+)/,me=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ba.optgroup=ba.option;ba.tbody=ba.tfoot=ba.colgroup=ba.caption=ba.thead;ba.th=
+ba.td;var La=S.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===X.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),S(Q).on("load",a))},toString:function(){var b=[];r(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?u(this[b]):u(this[this.length+b])},length:0,push:Ke,sort:[].sort,splice:[].splice},ob={};r("multiple selected checked disabled readOnly required open".split(" "),function(b){ob[N(b)]=b});var rc={};r("input select option textarea button form details".split(" "),
+function(b){rc[Ia(b)]=!0});r({data:Mb,removeData:Lb},function(b,a){S[a]=b});r({data:Mb,inheritedData:nb,scope:function(b){return u.data(b,"$scope")||nb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return u.data(b,"$isolateScope")||u.data(b,"$isolateScopeNoTemplate")},controller:oc,injector:function(b){return nb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Nb,css:function(b,a,c){a=Ya(a);if(A(c))b.style[a]=c;else{var d;8>=R&&(d=b.currentStyle&&b.currentStyle[a],
+""===d&&(d="auto"));d=d||b.style[a];8>=R&&(d=""===d?t:d);return d}},attr:function(b,a,c){var d=N(a);if(ob[d])if(A(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||y).specified?d:t;else if(A(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?t:b},prop:function(b,a,c){if(A(c))b[a]=c;else return b[a]},text:function(){function b(b,d){var e=a[b.nodeType];if(D(d))return e?b[e]:"";b[e]=d}var a=[];9>R?(a[1]=
+"innerText",a[3]="nodeValue"):a[1]=a[3]="textContent";b.$dv="";return b}(),val:function(b,a){if(D(a)){if("SELECT"===Ma(b)&&b.multiple){var c=[];r(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(D(a))return b.innerHTML;for(var c=0,d=b.childNodes;c<d.length;c++)Ja(d[c]);b.innerHTML=a},empty:pc},function(b,a){S.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==pc&&(2==b.length&&b!==Nb&&b!==oc?a:d)===t){if(T(a)){for(e=
+0;e<g;e++)if(b===Mb)b(this[e],a);else for(f in a)b(this[e],f,a[f]);return this}e=b.$dv;g=e===t?Math.min(g,1):g;for(f=0;f<g;f++){var k=b(this[f],a,d);e=e?e+k:k}return e}for(e=0;e<g;e++)b(this[e],a,d);return this}});r({removeData:Lb,dealoc:Ja,on:function a(c,d,e,f){if(A(f))throw Hb("onargs");var g=ma(c,"events"),k=ma(c,"handle");g||ma(c,"events",g={});k||ma(c,"handle",k=oe(c,g));r(d.split(" "),function(d){var f=g[d];if(!f){if("mouseenter"==d||"mouseleave"==d){var l=X.body.contains||X.body.compareDocumentPosition?
+function(a,c){var d=9===a.nodeType?a.documentElement:a,e=c&&c.parentNode;return a===e||!!(e&&1===e.nodeType&&(d.contains?d.contains(e):a.compareDocumentPosition&&a.compareDocumentPosition(e)&16))}:function(a,c){if(c)for(;c=c.parentNode;)if(c===a)return!0;return!1};g[d]=[];a(c,{mouseleave:"mouseout",mouseenter:"mouseover"}[d],function(a){var c=a.relatedTarget;c&&(c===this||l(this,c))||k(a,d)})}else rb(c,d,k),g[d]=[];f=g[d]}f.push(e)})},off:nc,one:function(a,c,d){a=u(a);a.on(c,function f(){a.off(c,
+d);a.off(c,f)});a.on(c,d)},replaceWith:function(a,c){var d,e=a.parentNode;Ja(a);r(new S(c),function(c){d?e.insertBefore(c,d.nextSibling):e.replaceChild(c,a);d=c})},children:function(a){var c=[];r(a.childNodes,function(a){1===a.nodeType&&c.push(a)});return c},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,c){r(new S(c),function(c){1!==a.nodeType&&11!==a.nodeType||a.appendChild(c)})},prepend:function(a,c){if(1===a.nodeType){var d=a.firstChild;r(new S(c),function(c){a.insertBefore(c,
+d)})}},wrap:function(a,c){c=u(c)[0];var d=a.parentNode;d&&d.replaceChild(c,a);c.appendChild(a)},remove:function(a){Ja(a);var c=a.parentNode;c&&c.removeChild(a)},after:function(a,c){var d=a,e=a.parentNode;r(new S(c),function(a){e.insertBefore(a,d.nextSibling);d=a})},addClass:mb,removeClass:lb,toggleClass:function(a,c,d){c&&r(c.split(" "),function(c){var f=d;D(f)&&(f=!Nb(a,c));(f?mb:lb)(a,c)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){if(a.nextElementSibling)return a.nextElementSibling;
+for(a=a.nextSibling;null!=a&&1!==a.nodeType;)a=a.nextSibling;return a},find:function(a,c){return a.getElementsByTagName?a.getElementsByTagName(c):[]},clone:Kb,triggerHandler:function(a,c,d){var e,f;e=c.type||c;var g=(ma(a,"events")||{})[e];g&&(e={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopPropagation:y,type:e,target:a},c.type&&(e=B(e,c)),c=ga(g),f=d?[e].concat(d):[e],r(c,function(c){c.apply(a,f)}))}},function(a,c){S.prototype[c]=
+function(c,e,f){for(var g,k=0;k<this.length;k++)D(g)?(g=a(this[k],c,e,f),A(g)&&(g=u(g))):Jb(g,a(this[k],c,e,f));return A(g)?g:this};S.prototype.bind=S.prototype.on;S.prototype.unbind=S.prototype.off});ab.prototype={put:function(a,c){this[Ka(a,this.nextUid)]=c},get:function(a){return this[Ka(a,this.nextUid)]},remove:function(a){var c=this[a=Ka(a,this.nextUid)];delete this[a];return c}};var qe=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,re=/,/,se=/^\s*(_?)(\S+?)\1\s*$/,pe=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,
+bb=x("$injector"),Le=x("$animate"),Md=["$provide",function(a){this.$$selectors={};this.register=function(c,d){var e=c+"-animation";if(c&&"."!=c.charAt(0))throw Le("notcsel",c);this.$$selectors[c.substr(1)]=e;a.factory(e,d)};this.classNameFilter=function(a){1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?a:null);return this.$$classNameFilter};this.$get=["$timeout","$$asyncCallback",function(a,d){return{enter:function(a,c,g,k){g?g.after(a):(c&&c[0]||(c=g.parent()),c.append(a));k&&
+d(k)},leave:function(a,c){a.remove();c&&d(c)},move:function(a,c,d,k){this.enter(a,c,d,k)},addClass:function(a,c,g){c=z(c)?c:H(c)?c.join(" "):"";r(a,function(a){mb(a,c)});g&&d(g)},removeClass:function(a,c,g){c=z(c)?c:H(c)?c.join(" "):"";r(a,function(a){lb(a,c)});g&&d(g)},setClass:function(a,c,g,k){r(a,function(a){mb(a,c);lb(a,g)});k&&d(k)},enabled:y}}]}],ia=x("$compile");ic.$inject=["$provide","$$sanitizeUriProvider"];var ue=/^(x[\:\-_]|data[\:\-_])/i,yc=x("$interpolate"),Me=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,
+xe={http:80,https:443,ftp:21},Sb=x("$location");Ub.prototype=Tb.prototype=Bc.prototype={$$html5:!1,$$replace:!1,absUrl:sb("$$absUrl"),url:function(a,c){if(D(a))return this.$$url;var d=Me.exec(a);d[1]&&this.path(decodeURIComponent(d[1]));(d[2]||d[1])&&this.search(d[3]||"");this.hash(d[5]||"",c);return this},protocol:sb("$$protocol"),host:sb("$$host"),port:sb("$$port"),path:Cc("$$path",function(a){return"/"==a.charAt(0)?a:"/"+a}),search:function(a,c){switch(arguments.length){case 0:return this.$$search;
+case 1:if(z(a))this.$$search=ec(a);else if(T(a))r(a,function(c,e){null==c&&delete a[e]}),this.$$search=a;else throw Sb("isrcharg");break;default:D(c)||null===c?delete this.$$search[a]:this.$$search[a]=c}this.$$compose();return this},hash:Cc("$$hash",Ga),replace:function(){this.$$replace=!0;return this}};var ka=x("$parse"),Fc={},va,Ne=Function.prototype.call,Oe=Function.prototype.apply,Qc=Function.prototype.bind,eb={"null":function(){return null},"true":function(){return!0},"false":function(){return!1},
+undefined:y,"+":function(a,c,d,e){d=d(a,c);e=e(a,c);return A(d)?A(e)?d+e:d:A(e)?e:t},"-":function(a,c,d,e){d=d(a,c);e=e(a,c);return(A(d)?d:0)-(A(e)?e:0)},"*":function(a,c,d,e){return d(a,c)*e(a,c)},"/":function(a,c,d,e){return d(a,c)/e(a,c)},"%":function(a,c,d,e){return d(a,c)%e(a,c)},"^":function(a,c,d,e){return d(a,c)^e(a,c)},"=":y,"===":function(a,c,d,e){return d(a,c)===e(a,c)},"!==":function(a,c,d,e){return d(a,c)!==e(a,c)},"==":function(a,c,d,e){return d(a,c)==e(a,c)},"!=":function(a,c,d,e){return d(a,
+c)!=e(a,c)},"<":function(a,c,d,e){return d(a,c)<e(a,c)},">":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"&":function(a,c,d,e){return d(a,c)&e(a,c)},"|":function(a,c,d,e){return e(a,c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}},Pe={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Wb=function(a){this.options=a};Wb.prototype=
+{constructor:Wb,lex:function(a){this.text=a;this.index=0;this.ch=t;this.lastCh=":";for(this.tokens=[];this.index<this.text.length;){this.ch=this.text.charAt(this.index);if(this.is("\"'"))this.readString(this.ch);else if(this.isNumber(this.ch)||this.is(".")&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(this.ch))this.readIdent();else if(this.is("(){}[].,;:?"))this.tokens.push({index:this.index,text:this.ch}),this.index++;else if(this.isWhitespace(this.ch)){this.index++;continue}else{a=
+this.ch+this.peek();var c=a+this.peek(2),d=eb[this.ch],e=eb[a],f=eb[c];f?(this.tokens.push({index:this.index,text:c,fn:f}),this.index+=3):e?(this.tokens.push({index:this.index,text:a,fn:e}),this.index+=2):d?(this.tokens.push({index:this.index,text:this.ch,fn:d}),this.index+=1):this.throwError("Unexpected next character ",this.index,this.index+1)}this.lastCh=this.ch}return this.tokens},is:function(a){return-1!==a.indexOf(this.ch)},was:function(a){return-1!==a.indexOf(this.lastCh)},peek:function(a){a=
+a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=A(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw ka("lexerr",a,c,this.text);
+},readNumber:function(){for(var a="",c=this.index;this.index<this.text.length;){var d=N(this.text.charAt(this.index));if("."==d||this.isNumber(d))a+=d;else{var e=this.peek();if("e"==d&&this.isExpOperator(e))a+=d;else if(this.isExpOperator(d)&&e&&this.isNumber(e)&&"e"==a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||e&&this.isNumber(e)||"e"!=a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}a*=1;this.tokens.push({index:c,text:a,literal:!0,constant:!0,fn:function(){return a}})},
+readIdent:function(){for(var a=this,c="",d=this.index,e,f,g,k;this.index<this.text.length;){k=this.text.charAt(this.index);if("."===k||this.isIdent(k)||this.isNumber(k))"."===k&&(e=this.index),c+=k;else break;this.index++}if(e)for(f=this.index;f<this.text.length;){k=this.text.charAt(f);if("("===k){g=c.substr(e-d+1);c=c.substr(0,e-d);this.index=f;break}if(this.isWhitespace(k))f++;else break}d={index:d,text:c};if(eb.hasOwnProperty(c))d.fn=eb[c],d.literal=!0,d.constant=!0;else{var m=Ec(c,this.options,
+this.text);d.fn=B(function(a,c){return m(a,c)},{assign:function(d,e){return tb(d,c,e,a.text,a.options)}})}this.tokens.push(d);g&&(this.tokens.push({index:e,text:"."}),this.tokens.push({index:e+1,text:g}))},readString:function(a){var c=this.index;this.index++;for(var d="",e=a,f=!1;this.index<this.text.length;){var g=this.text.charAt(this.index),e=e+g;if(f)"u"===g?(f=this.text.substring(this.index+1,this.index+5),f.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+f+"]"),this.index+=
+4,d+=String.fromCharCode(parseInt(f,16))):d+=Pe[g]||g,f=!1;else if("\\"===g)f=!0;else{if(g===a){this.index++;this.tokens.push({index:c,text:e,string:d,literal:!0,constant:!0,fn:function(){return d}});return}d+=g}this.index++}this.throwError("Unterminated quote",c)}};var db=function(a,c,d){this.lexer=a;this.$filter=c;this.options=d};db.ZERO=B(function(){return 0},{constant:!0});db.prototype={constructor:db,parse:function(a){this.text=a;this.tokens=this.lexer.lex(a);a=this.statements();0!==this.tokens.length&&
+this.throwError("is an unexpected token",this.tokens[0]);a.literal=!!a.literal;a.constant=!!a.constant;return a},primary:function(){var a;if(this.expect("("))a=this.filterChain(),this.consume(")");else if(this.expect("["))a=this.arrayDeclaration();else if(this.expect("{"))a=this.object();else{var c=this.expect();(a=c.fn)||this.throwError("not a primary expression",c);a.literal=!!c.literal;a.constant=!!c.constant}for(var d;c=this.expect("(","[",".");)"("===c.text?(a=this.functionCall(a,d),d=null):
+"["===c.text?(d=a,a=this.objectIndex(a)):"."===c.text?(d=a,a=this.fieldAccess(a)):this.throwError("IMPOSSIBLE");return a},throwError:function(a,c){throw ka("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},peekToken:function(){if(0===this.tokens.length)throw ka("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){if(0<this.tokens.length){var f=this.tokens[0],g=f.text;if(g===a||g===c||g===d||g===e||!(a||c||d||e))return f}return!1},expect:function(a,c,d,e){return(a=this.peek(a,
+c,d,e))?(this.tokens.shift(),a):!1},consume:function(a){this.expect(a)||this.throwError("is unexpected, expecting ["+a+"]",this.peek())},unaryFn:function(a,c){return B(function(d,e){return a(d,e,c)},{constant:c.constant})},ternaryFn:function(a,c,d){return B(function(e,f){return a(e,f)?c(e,f):d(e,f)},{constant:a.constant&&c.constant&&d.constant})},binaryFn:function(a,c,d){return B(function(e,f){return c(e,f,a,d)},{constant:a.constant&&d.constant})},statements:function(){for(var a=[];;)if(0<this.tokens.length&&
+!this.peek("}",")",";","]")&&a.push(this.filterChain()),!this.expect(";"))return 1===a.length?a[0]:function(c,d){for(var e,f=0;f<a.length;f++){var g=a[f];g&&(e=g(c,d))}return e}},filterChain:function(){for(var a=this.expression(),c;;)if(c=this.expect("|"))a=this.binaryFn(a,c.fn,this.filter());else return a},filter:function(){for(var a=this.expect(),c=this.$filter(a.text),d=[];;)if(a=this.expect(":"))d.push(this.expression());else{var e=function(a,e,k){k=[k];for(var m=0;m<d.length;m++)k.push(d[m](a,
+e));return c.apply(a,k)};return function(){return e}}},expression:function(){return this.assignment()},assignment:function(){var a=this.ternary(),c,d;return(d=this.expect("="))?(a.assign||this.throwError("implies assignment but ["+this.text.substring(0,d.index)+"] can not be assigned to",d),c=this.ternary(),function(d,f){return a.assign(d,c(d,f),f)}):a},ternary:function(){var a=this.logicalOR(),c,d;if(this.expect("?")){c=this.assignment();if(d=this.expect(":"))return this.ternaryFn(a,c,this.assignment());
+this.throwError("expected :",d)}else return a},logicalOR:function(){for(var a=this.logicalAND(),c;;)if(c=this.expect("||"))a=this.binaryFn(a,c.fn,this.logicalAND());else return a},logicalAND:function(){var a=this.equality(),c;if(c=this.expect("&&"))a=this.binaryFn(a,c.fn,this.logicalAND());return a},equality:function(){var a=this.relational(),c;if(c=this.expect("==","!=","===","!=="))a=this.binaryFn(a,c.fn,this.equality());return a},relational:function(){var a=this.additive(),c;if(c=this.expect("<",
+">","<=",">="))a=this.binaryFn(a,c.fn,this.relational());return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.fn,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.fn,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(db.ZERO,a.fn,this.unary()):(a=this.expect("!"))?this.unaryFn(a.fn,this.unary()):
+this.primary()},fieldAccess:function(a){var c=this,d=this.expect().text,e=Ec(d,this.options,this.text);return B(function(c,d,k){return e(k||a(c,d))},{assign:function(e,g,k){(k=a(e,k))||a.assign(e,k={});return tb(k,d,g,c.text,c.options)}})},objectIndex:function(a){var c=this,d=this.expression();this.consume("]");return B(function(e,f){var g=a(e,f),k=d(e,f),m;ja(k,c.text);if(!g)return t;(g=Oa(g[k],c.text))&&(g.then&&c.options.unwrapPromises)&&(m=g,"$$v"in g||(m.$$v=t,m.then(function(a){m.$$v=a})),g=
+g.$$v);return g},{assign:function(e,f,g){var k=ja(d(e,g),c.text);(g=Oa(a(e,g),c.text))||a.assign(e,g={});return g[k]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());while(this.expect(","))}this.consume(")");var e=this;return function(f,g){for(var k=[],m=c?c(f,g):f,h=0;h<d.length;h++)k.push(d[h](f,g));h=a(f,g,m)||y;Oa(m,e.text);var l=e.text;if(h){if(h.constructor===h)throw ka("isecfn",l);if(h===Ne||h===Oe||Qc&&h===Qc)throw ka("isecff",l);}k=h.apply?
+h.apply(m,k):h(k[0],k[1],k[2],k[3],k[4]);return Oa(k,e.text)}},arrayDeclaration:function(){var a=[],c=!0;if("]"!==this.peekToken().text){do{if(this.peek("]"))break;var d=this.expression();a.push(d);d.constant||(c=!1)}while(this.expect(","))}this.consume("]");return B(function(c,d){for(var g=[],k=0;k<a.length;k++)g.push(a[k](c,d));return g},{literal:!0,constant:c})},object:function(){var a=[],c=!0;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;var d=this.expect(),d=d.string||d.text;this.consume(":");
+var e=this.expression();a.push({key:d,value:e});e.constant||(c=!1)}while(this.expect(","))}this.consume("}");return B(function(c,d){for(var e={},m=0;m<a.length;m++){var h=a[m];e[h.key]=h.value(c,d)}return e},{literal:!0,constant:c})}};var Vb={},wa=x("$sce"),fa={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},V=X.createElement("a"),Hc=ua(Q.location.href,!0);mc.$inject=["$provide"];Ic.$inject=["$locale"];Kc.$inject=["$locale"];var Nc=".",He={yyyy:Y("FullYear",4),yy:Y("FullYear",
+2,0,!0),y:Y("FullYear",1),MMMM:ub("Month"),MMM:ub("Month",!0),MM:Y("Month",2,1),M:Y("Month",1,1),dd:Y("Date",2),d:Y("Date",1),HH:Y("Hours",2),H:Y("Hours",1),hh:Y("Hours",2,-12),h:Y("Hours",1,-12),mm:Y("Minutes",2),m:Y("Minutes",1),ss:Y("Seconds",2),s:Y("Seconds",1),sss:Y("Milliseconds",3),EEEE:ub("Day"),EEE:ub("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Xb(Math[0<a?"floor":"ceil"](a/60),2)+Xb(Math.abs(a%60),
+2))}},Ge=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,Fe=/^\-?\d+$/;Jc.$inject=["$locale"];var De=$(N),Ee=$(Ia);Lc.$inject=["$parse"];var dd=$({restrict:"E",compile:function(a,c){8>=R&&(c.href||c.name||c.$set("href",""),a.append(X.createComment("IE fix")));if(!c.href&&!c.xlinkHref&&!c.name)return function(a,c){var f="[object SVGAnimatedString]"===ya.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}),Fb={};r(ob,function(a,
+c){if("multiple"!=a){var d=na("ng-"+c);Fb[d]=function(){return{priority:100,link:function(a,f,g){a.$watch(g[d],function(a){g.$set(c,!!a)})}}}}});r(["src","srcset","href"],function(a){var c=na("ng-"+a);Fb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,k=a;"href"===a&&"[object SVGAnimatedString]"===ya.call(e.prop("href"))&&(k="xlinkHref",f.$attr[k]="xlink:href",g=null);f.$observe(c,function(c){c?(f.$set(k,c),R&&g&&e.prop(g,f[k])):"href"===a&&f.$set(k,null)})}}}});var xb={$addControl:y,
+$removeControl:y,$setValidity:y,$setDirty:y,$setPristine:y};Oc.$inject=["$element","$attrs","$scope","$animate"];var Rc=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:Oc,compile:function(){return{pre:function(a,e,f,g){if(!f.action){var k=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1};rb(e[0],"submit",k);e.on("$destroy",function(){c(function(){Za(e[0],"submit",k)},0,!1)})}var m=e.parent().controller("form"),h=f.name||f.ngForm;h&&tb(a,
+h,g,h);if(m)e.on("$destroy",function(){m.$removeControl(g);h&&tb(a,h,t,h);B(g,xb)})}}}}}]},ed=Rc(),rd=Rc(!0),Qe=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Re=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Se=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Sc={text:zb,number:function(a,c,d,e,f,g){zb(a,c,d,e,f,g);e.$parsers.push(function(a){var c=e.$isEmpty(a);if(c||Se.test(a))return e.$setValidity("number",!0),""===
+a?null:c?a:parseFloat(a);e.$setValidity("number",!1);return t});Ie(e,"number",Te,null,e.$$validityState);e.$formatters.push(function(a){return e.$isEmpty(a)?"":""+a});d.min&&(a=function(a){var c=parseFloat(d.min);return ra(e,"min",e.$isEmpty(a)||a>=c,a)},e.$parsers.push(a),e.$formatters.push(a));d.max&&(a=function(a){var c=parseFloat(d.max);return ra(e,"max",e.$isEmpty(a)||a<=c,a)},e.$parsers.push(a),e.$formatters.push(a));e.$formatters.push(function(a){return ra(e,"number",e.$isEmpty(a)||Ab(a),a)})},
+url:function(a,c,d,e,f,g){zb(a,c,d,e,f,g);a=function(a){return ra(e,"url",e.$isEmpty(a)||Qe.test(a),a)};e.$formatters.push(a);e.$parsers.push(a)},email:function(a,c,d,e,f,g){zb(a,c,d,e,f,g);a=function(a){return ra(e,"email",e.$isEmpty(a)||Re.test(a),a)};e.$formatters.push(a);e.$parsers.push(a)},radio:function(a,c,d,e){D(d.name)&&c.attr("name",gb());c.on("click",function(){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value)})});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",
+e.$render)},checkbox:function(a,c,d,e){var f=d.ngTrueValue,g=d.ngFalseValue;z(f)||(f=!0);z(g)||(g=!1);c.on("click",function(){a.$apply(function(){e.$setViewValue(c[0].checked)})});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return a!==f};e.$formatters.push(function(a){return a===f});e.$parsers.push(function(a){return a?f:g})},hidden:y,button:y,submit:y,reset:y,file:y},Te=["badInput"],jc=["$browser","$sniffer",function(a,c){return{restrict:"E",require:"?ngModel",link:function(d,
+e,f,g){g&&(Sc[N(f.type)]||Sc.text)(d,e,f,g,c,a)}}}],wb="ng-valid",vb="ng-invalid",Pa="ng-pristine",yb="ng-dirty",Ue=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate",function(a,c,d,e,f,g){function k(a,c){c=c?"-"+kb(c,"-"):"";g.removeClass(e,(a?vb:wb)+c);g.addClass(e,(a?wb:vb)+c)}this.$modelValue=this.$viewValue=Number.NaN;this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$name=d.name;var m=f(d.ngModel),
+h=m.assign;if(!h)throw x("ngModel")("nonassign",d.ngModel,ha(e));this.$render=y;this.$isEmpty=function(a){return D(a)||""===a||null===a||a!==a};var l=e.inheritedData("$formController")||xb,n=0,p=this.$error={};e.addClass(Pa);k(!0);this.$setValidity=function(a,c){p[a]!==!c&&(c?(p[a]&&n--,n||(k(!0),this.$valid=!0,this.$invalid=!1)):(k(!1),this.$invalid=!0,this.$valid=!1,n++),p[a]=!c,k(c,a),l.$setValidity(a,c,this))};this.$setPristine=function(){this.$dirty=!1;this.$pristine=!0;g.removeClass(e,yb);g.addClass(e,
+Pa)};this.$setViewValue=function(d){this.$viewValue=d;this.$pristine&&(this.$dirty=!0,this.$pristine=!1,g.removeClass(e,Pa),g.addClass(e,yb),l.$setDirty());r(this.$parsers,function(a){d=a(d)});this.$modelValue!==d&&(this.$modelValue=d,h(a,d),r(this.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}}))};var q=this;a.$watch(function(){var c=m(a);if(q.$modelValue!==c){var d=q.$formatters,e=d.length;for(q.$modelValue=c;e--;)c=d[e](c);q.$viewValue!==c&&(q.$viewValue=c,q.$render())}return c})}],Gd=
+function(){return{require:["ngModel","^?form"],controller:Ue,link:function(a,c,d,e){var f=e[0],g=e[1]||xb;g.$addControl(f);a.$on("$destroy",function(){g.$removeControl(f)})}}},Id=$({require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),kc=function(){return{require:"?ngModel",link:function(a,c,d,e){if(e){d.required=!0;var f=function(a){if(d.required&&e.$isEmpty(a))e.$setValidity("required",!1);else return e.$setValidity("required",!0),a};e.$formatters.push(f);
+e.$parsers.unshift(f);d.$observe("required",function(){f(e.$viewValue)})}}}},Hd=function(){return{require:"ngModel",link:function(a,c,d,e){var f=(a=/\/(.*)\//.exec(d.ngList))&&RegExp(a[1])||d.ngList||",";e.$parsers.push(function(a){if(!D(a)){var c=[];a&&r(a.split(f),function(a){a&&c.push(aa(a))});return c}});e.$formatters.push(function(a){return H(a)?a.join(", "):t});e.$isEmpty=function(a){return!a||!a.length}}}},Ve=/^(true|false|\d+)$/,Jd=function(){return{priority:100,compile:function(a,c){return Ve.test(c.ngValue)?
+function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},jd=xa({compile:function(a){a.addClass("ng-binding");return function(a,d,e){d.data("$binding",e.ngBind);a.$watch(e.ngBind,function(a){d.text(a==t?"":a)})}}}),ld=["$interpolate",function(a){return function(c,d,e){c=a(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",c);e.$observe("ngBindTemplate",function(a){d.text(a)})}}],kd=["$sce","$parse",function(a,c){return{compile:function(d){d.addClass("ng-binding");
+return function(d,f,g){f.data("$binding",g.ngBindHtml);var k=c(g.ngBindHtml);d.$watch(function(){return(k(d)||"").toString()},function(c){f.html(a.getTrustedHtml(k(d))||"")})}}}}],md=Yb("",!0),od=Yb("Odd",0),nd=Yb("Even",1),pd=xa({compile:function(a,c){c.$set("ngCloak",t);a.removeClass("ng-cloak")}}),qd=[function(){return{scope:!0,controller:"@",priority:500}}],lc={};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),
+function(a){var c=na("ng-"+a);lc[c]=["$parse",function(d){return{compile:function(e,f){var g=d(f[c]);return function(c,d){d.on(N(a),function(a){c.$apply(function(){g(c,{$event:a})})})}}}}]});var td=["$animate",function(a){return{transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var k,m,h;c.$watch(e.ngIf,function(f){Ta(f)?m||(m=c.$new(),g(m,function(c){c[c.length++]=X.createComment(" end ngIf: "+e.ngIf+" ");k={clone:c};a.enter(c,d.parent(),d)})):(h&&(h.remove(),
+h=null),m&&(m.$destroy(),m=null),k&&(h=Eb(k.clone),a.leave(h,function(){h=null}),k=null))})}}}],ud=["$http","$templateCache","$anchorScroll","$animate","$sce",function(a,c,d,e,f){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Ua.noop,compile:function(g,k){var m=k.ngInclude||k.src,h=k.onload||"",l=k.autoscroll;return function(g,k,q,r,L){var v=0,t,u,I,w=function(){u&&(u.remove(),u=null);t&&(t.$destroy(),t=null);I&&(e.leave(I,function(){u=null}),u=I,I=null)};g.$watch(f.parseAsResourceUrl(m),
+function(f){var m=function(){!A(l)||l&&!g.$eval(l)||d()},q=++v;f?(a.get(f,{cache:c}).success(function(a){if(q===v){var c=g.$new();r.template=a;a=L(c,function(a){w();e.enter(a,null,k,m)});t=c;I=a;t.$emit("$includeContentLoaded");g.$eval(h)}}).error(function(){q===v&&w()}),g.$emit("$includeContentRequested")):(w(),r.template=null)})}}}}],Kd=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){d.html(f.template);a(d.contents())(c)}}}],vd=xa({priority:450,
+compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),wd=xa({terminal:!0,priority:1E3}),xd=["$locale","$interpolate",function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,f,g){var k=g.count,m=g.$attr.when&&f.attr(g.$attr.when),h=g.offset||0,l=e.$eval(m)||{},n={},p=c.startSymbol(),q=c.endSymbol(),s=/^when(Minus)?(.+)$/;r(g,function(a,c){s.test(c)&&(l[N(c.replace("when","").replace("Minus","-"))]=f.attr(g.$attr[c]))});r(l,function(a,e){n[e]=c(a.replace(d,p+k+"-"+h+q))});e.$watch(function(){var c=
+parseFloat(e.$eval(k));if(isNaN(c))return"";c in l||(c=a.pluralCat(c-h));return n[c](e,f,!0)},function(a){f.text(a)})}}}],yd=["$parse","$animate",function(a,c){var d=x("ngRepeat");return{transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,link:function(e,f,g,k,m){var h=g.ngRepeat,l=h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),n,p,q,s,t,v,C={$id:Ka};if(!l)throw d("iexp",h);g=l[1];k=l[2];(l=l[3])?(n=a(l),p=function(a,c,d){v&&(C[v]=a);C[t]=c;C.$index=d;return n(e,
+C)}):(q=function(a,c){return Ka(c)},s=function(a){return a});l=g.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!l)throw d("iidexp",g);t=l[3]||l[1];v=l[2];var A={};e.$watchCollection(k,function(a){var g,k,l=f[0],n,C={},J,E,F,x,z,y,H=[];if(fb(a))z=a,n=p||q;else{n=p||s;z=[];for(F in a)a.hasOwnProperty(F)&&"$"!=F.charAt(0)&&z.push(F);z.sort()}J=z.length;k=H.length=z.length;for(g=0;g<k;g++)if(F=a===z?g:z[g],x=a[F],x=n(F,x,g),Ca(x,"`track by` id"),A.hasOwnProperty(x))y=A[x],delete A[x],C[x]=
+y,H[g]=y;else{if(C.hasOwnProperty(x))throw r(H,function(a){a&&a.scope&&(A[a.id]=a)}),d("dupes",h,x);H[g]={id:x};C[x]=!1}for(F in A)A.hasOwnProperty(F)&&(y=A[F],g=Eb(y.clone),c.leave(g),r(g,function(a){a.$$NG_REMOVED=!0}),y.scope.$destroy());g=0;for(k=z.length;g<k;g++){F=a===z?g:z[g];x=a[F];y=H[g];H[g-1]&&(l=H[g-1].clone[H[g-1].clone.length-1]);if(y.scope){E=y.scope;n=l;do n=n.nextSibling;while(n&&n.$$NG_REMOVED);y.clone[0]!=n&&c.move(Eb(y.clone),null,u(l));l=y.clone[y.clone.length-1]}else E=e.$new();
+E[t]=x;v&&(E[v]=F);E.$index=g;E.$first=0===g;E.$last=g===J-1;E.$middle=!(E.$first||E.$last);E.$odd=!(E.$even=0===(g&1));y.scope||m(E,function(a){a[a.length++]=X.createComment(" end ngRepeat: "+h+" ");c.enter(a,null,u(l));l=a;y.scope=E;y.clone=a;C[y.id]=y})}A=C})}}}],zd=["$animate",function(a){return function(c,d,e){c.$watch(e.ngShow,function(c){a[Ta(c)?"removeClass":"addClass"](d,"ng-hide")})}}],sd=["$animate",function(a){return function(c,d,e){c.$watch(e.ngHide,function(c){a[Ta(c)?"addClass":"removeClass"](d,
+"ng-hide")})}}],Ad=xa(function(a,c,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&r(d,function(a,d){c.css(d,"")});a&&c.css(a)},!0)}),Bd=["$animate",function(a){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(c,d,e,f){var g=[],k=[],m=[],h=[];c.$watch(e.ngSwitch||e.on,function(d){var n,p;n=0;for(p=m.length;n<p;++n)m[n].remove();n=m.length=0;for(p=h.length;n<p;++n){var q=k[n];h[n].$destroy();m[n]=q;a.leave(q,function(){m.splice(n,1)})}k.length=0;h.length=
+0;if(g=f.cases["!"+d]||f.cases["?"])c.$eval(e.change),r(g,function(d){var e=c.$new();h.push(e);d.transclude(e,function(c){var e=d.element;k.push(c);a.enter(c,e.parent(),e)})})})}}}],Cd=xa({transclude:"element",priority:800,require:"^ngSwitch",link:function(a,c,d,e,f){e.cases["!"+d.ngSwitchWhen]=e.cases["!"+d.ngSwitchWhen]||[];e.cases["!"+d.ngSwitchWhen].push({transclude:f,element:c})}}),Dd=xa({transclude:"element",priority:800,require:"^ngSwitch",link:function(a,c,d,e,f){e.cases["?"]=e.cases["?"]||
+[];e.cases["?"].push({transclude:f,element:c})}}),Fd=xa({link:function(a,c,d,e,f){if(!f)throw x("ngTransclude")("orphan",ha(c));f(function(a){c.empty();c.append(a)})}}),fd=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,d){"text/ng-template"==d.type&&a.put(d.id,c[0].text)}}}],We=x("ngOptions"),Ed=$({terminal:!0}),gd=["$compile","$parse",function(a,c){var d=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,
+e={$setViewValue:y};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(a,c,d){var m=this,h={},l=e,n;m.databound=d.ngModel;m.init=function(a,c,d){l=a;n=d};m.addOption=function(c){Ca(c,'"option value"');h[c]=!0;l.$viewValue==c&&(a.val(c),n.parent()&&n.remove())};m.removeOption=function(a){this.hasOption(a)&&(delete h[a],l.$viewValue==a&&this.renderUnknownOption(a))};m.renderUnknownOption=function(c){c="? "+Ka(c)+" ?";n.val(c);a.prepend(n);a.val(c);n.prop("selected",
+!0)};m.hasOption=function(a){return h.hasOwnProperty(a)};c.$on("$destroy",function(){m.renderUnknownOption=y})}],link:function(e,g,k,m){function h(a,c,d,e){d.$render=function(){var a=d.$viewValue;e.hasOption(a)?(z.parent()&&z.remove(),c.val(a),""===a&&v.prop("selected",!0)):D(a)&&v?c.val(""):e.renderUnknownOption(a)};c.on("change",function(){a.$apply(function(){z.parent()&&z.remove();d.$setViewValue(c.val())})})}function l(a,c,d){var e;d.$render=function(){var a=new ab(d.$viewValue);r(c.find("option"),
+function(c){c.selected=A(a.get(c.value))})};a.$watch(function(){za(e,d.$viewValue)||(e=ga(d.$viewValue),d.$render())});c.on("change",function(){a.$apply(function(){var a=[];r(c.find("option"),function(c){c.selected&&a.push(c.value)});d.$setViewValue(a)})})}function n(e,f,g){function k(){var a={"":[]},c=[""],d,h,s,t,w;s=g.$modelValue;t=v(e)||[];var E=n?Zb(t):t,I,M,B;M={};B=!1;if(q)if(h=g.$modelValue,u&&H(h))for(B=new ab([]),d={},w=0;w<h.length;w++)d[m]=h[w],B.put(u(e,d),h[w]);else B=new ab(h);w=B;
+var D,J;for(B=0;I=E.length,B<I;B++){h=B;if(n){h=E[B];if("$"===h.charAt(0))continue;M[n]=h}M[m]=t[h];d=p(e,M)||"";(h=a[d])||(h=a[d]=[],c.push(d));q?d=A(w.remove(u?u(e,M):r(e,M))):(u?(d={},d[m]=s,d=u(e,d)===u(e,M)):d=s===r(e,M),w=w||d);D=l(e,M);D=A(D)?D:"";h.push({id:u?u(e,M):n?E[B]:B,label:D,selected:d})}q||(x||null===s?a[""].unshift({id:"",label:"",selected:!w}):w||a[""].unshift({id:"?",label:"",selected:!0}));M=0;for(E=c.length;M<E;M++){d=c[M];h=a[d];z.length<=M?(s={element:y.clone().attr("label",
+d),label:h.label},t=[s],z.push(t),f.append(s.element)):(t=z[M],s=t[0],s.label!=d&&s.element.attr("label",s.label=d));D=null;B=0;for(I=h.length;B<I;B++)d=h[B],(w=t[B+1])?(D=w.element,w.label!==d.label&&D.text(w.label=d.label),w.id!==d.id&&D.val(w.id=d.id),D[0].selected!==d.selected&&(D.prop("selected",w.selected=d.selected),R&&D.prop("selected",w.selected))):(""===d.id&&x?J=x:(J=C.clone()).val(d.id).prop("selected",d.selected).attr("selected",d.selected).text(d.label),t.push({element:J,label:d.label,
+id:d.id,selected:d.selected}),D?D.after(J):s.element.append(J),D=J);for(B++;t.length>B;)t.pop().element.remove()}for(;z.length>M;)z.pop()[0].element.remove()}var h;if(!(h=s.match(d)))throw We("iexp",s,ha(f));var l=c(h[2]||h[1]),m=h[4]||h[6],n=h[5],p=c(h[3]||""),r=c(h[2]?h[1]:m),v=c(h[7]),u=h[8]?c(h[8]):null,z=[[{element:f,label:""}]];x&&(a(x)(e),x.removeClass("ng-scope"),x.remove());f.empty();f.on("change",function(){e.$apply(function(){var a,c=v(e)||[],d={},h,l,p,s,w,x,y;if(q)for(l=[],s=0,x=z.length;s<
+x;s++)for(a=z[s],p=1,w=a.length;p<w;p++){if((h=a[p].element)[0].selected){h=h.val();n&&(d[n]=h);if(u)for(y=0;y<c.length&&(d[m]=c[y],u(e,d)!=h);y++);else d[m]=c[h];l.push(r(e,d))}}else if(h=f.val(),"?"==h)l=t;else if(""===h)l=null;else if(u)for(y=0;y<c.length;y++){if(d[m]=c[y],u(e,d)==h){l=r(e,d);break}}else d[m]=c[h],n&&(d[n]=h),l=r(e,d);g.$setViewValue(l);k()})});g.$render=k;e.$watchCollection(v,k);q&&e.$watchCollection(function(){return g.$modelValue},k)}if(m[1]){var p=m[0];m=m[1];var q=k.multiple,
+s=k.ngOptions,x=!1,v,C=u(X.createElement("option")),y=u(X.createElement("optgroup")),z=C.clone();k=0;for(var w=g.children(),B=w.length;k<B;k++)if(""===w[k].value){v=x=w.eq(k);break}p.init(m,x,z);q&&(m.$isEmpty=function(a){return!a||0===a.length});s?n(e,g,m):q?l(e,g,m):h(e,g,m,p)}}}}],id=["$interpolate",function(a){var c={addOption:y,removeOption:y};return{restrict:"E",priority:100,compile:function(d,e){if(D(e.value)){var f=a(d.text(),!0);f||e.$set("value",d.text())}return function(a,d,e){var h=d.parent(),
+l=h.data("$selectController")||h.parent().data("$selectController");l&&l.databound?d.prop("selected",!1):l=c;f?a.$watch(f,function(a,c){e.$set("value",a);a!==c&&l.removeOption(c);l.addOption(a)}):l.addOption(e.value);d.on("$destroy",function(){l.removeOption(e.value)})}}}}],hd=$({restrict:"E",terminal:!0});Q.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):((Da=Q.jQuery)&&Da.fn.on?(u=Da,B(Da.fn,{scope:La.scope,isolateScope:La.isolateScope,controller:La.controller,injector:La.injector,
+inheritedData:La.inheritedData}),Gb("remove",!0,!0,!1),Gb("empty",!1,!1,!1),Gb("html",!1,!1,!0)):u=S,Ua.element=u,$c(Ua),u(X).ready(function(){Xc(X,fc)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document).find("head").prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}.ng-hide-add-active,.ng-hide-remove{display:block!important;}</style>');
+//# sourceMappingURL=angular.min.js.map
diff --git a/bitbake/lib/toaster/toastergui/static/js/angular.min.js.map b/bitbake/lib/toaster/toastergui/static/js/angular.min.js.map
new file mode 100644
index 0000000000..8aa40d383c
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/angular.min.js.map
@@ -0,0 +1,8 @@
+{
+"version":3,
+"file":"angular.min.js",
+"lineCount":214,
+"mappings":"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",
+"sources":["angular.js"],
+"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","nodeType","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","sortedKeys","keys","push","sort","forEachSorted","i","reverseParams","iteratorFn","value","nextUid","index","uid","digit","charCodeAt","join","String","fromCharCode","unshift","setHashKey","h","$$hashKey","extend","dst","arguments","int","str","parseInt","inherit","parent","extra","noop","identity","$","valueFn","isUndefined","isDefined","isObject","isNumber","isDate","toString","isRegExp","location","alert","setInterval","isElement","node","nodeName","prop","attr","find","map","results","list","indexOf","array","arrayRemove","splice","copy","source","destination","stackSource","stackDest","$evalAsync","$watch","ngMinErr","result","Date","getTime","RegExp","match","lastIndex","shallowCopy","src","charAt","equals","o1","o2","t1","t2","isNaN","keySet","bind","self","fn","curryArgs","slice","startIndex","apply","concat","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","toBoolean","v","lowercase","startingTag","element","jqLite","clone","empty","e","elemHtml","append","html","TEXT_NODE","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","key_value","split","toKeyValue","parts","arrayValue","encodeUriQuery","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","angularInit","bootstrap","elements","appElement","module","names","NG_APP_CLASS_REGEXP","name","getElementById","querySelectorAll","exec","className","attributes","modules","doBootstrap","injector","tag","$provide","createInjector","invoke","scope","compile","animate","$apply","data","NG_DEFER_BOOTSTRAP","test","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","constructor","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockElements","nodes","startNode","endNode","nextSibling","setupModuleLoader","$injectorMinErr","$$minErr","factory","requires","configFn","invokeLater","provider","method","insertMethod","invokeQueue","moduleInstance","runBlocks","config","run","block","publishExternalAPI","version","uppercase","csp","angularModule","$LocaleProvider","ngModule","$$SanitizeUriProvider","$CompileProvider","directive","htmlAnchorDirective","inputDirective","formDirective","scriptDirective","selectDirective","styleDirective","optionDirective","ngBindDirective","ngBindHtmlDirective","ngBindTemplateDirective","ngClassDirective","ngClassEvenDirective","ngClassOddDirective","ngCloakDirective","ngControllerDirective","ngFormDirective","ngHideDirective","ngIfDirective","ngIncludeDirective","ngInitDirective","ngNonBindableDirective","ngPluralizeDirective","ngRepeatDirective","ngShowDirective","ngStyleDirective","ngSwitchDirective","ngSwitchWhenDirective","ngSwitchDefaultDirective","ngOptionsDirective","ngTranscludeDirective","ngModelDirective","ngListDirective","ngChangeDirective","requiredDirective","ngValueDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$AnchorScrollProvider","$AnimateProvider","$BrowserProvider","$CacheFactoryProvider","$ControllerProvider","$DocumentProvider","$ExceptionHandlerProvider","$FilterProvider","$InterpolateProvider","$IntervalProvider","$HttpProvider","$HttpBackendProvider","$LocationProvider","$LogProvider","$ParseProvider","$RootScopeProvider","$QProvider","$SceProvider","$SceDelegateProvider","$SnifferProvider","$TemplateCacheProvider","$TimeoutProvider","$WindowProvider","$$RAFProvider","$$AsyncCallbackProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLitePatchJQueryRemove","dispatchThis","filterElems","getterIfNoArguments","removePatch","param","filter","fireEvent","set","setIndex","setLength","childIndex","children","shift","triggerHandler","childLength","jQuery","originalJqFn","$original","JQLite","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","fragment","createDocumentFragment","HTML_REGEXP","tmp","appendChild","createElement","TAG_NAME_REGEXP","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","removeChild","firstChild","lastChild","j","jj","childNodes","textContent","createTextNode","jqLiteAddNodes","jqLiteClone","cloneNode","jqLiteDealoc","jqLiteRemoveData","jqLiteOff","type","unsupported","events","jqLiteExpandoStore","handle","eventHandler","removeEventListenerFn","expandoId","ng339","expandoStore","jqCache","$destroy","jqId","jqLiteData","isSetter","keyDefined","isSimpleGetter","jqLiteHasClass","selector","getAttribute","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","jqLiteController","jqLiteInheritedData","documentElement","ii","parentNode","host","jqLiteEmpty","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","createEventHandler","event","preventDefault","event.preventDefault","returnValue","stopPropagation","event.stopPropagation","cancelBubble","target","srcElement","defaultPrevented","prevent","isDefaultPrevented","event.isDefaultPrevented","eventHandlersCopy","msie","elem","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","annotate","$inject","fnText","STRIP_COMMENTS","argDecl","FN_ARGS","FN_ARG_SPLIT","FN_ARG","all","underscore","last","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","$get","providerCache","providerSuffix","factoryFn","loadModules","moduleFn","loadedModules","get","_runBlocks","_invokeQueue","invokeArgs","message","stack","createInternalInjector","cache","getService","serviceName","INSTANTIATING","err","locals","args","Type","Constructor","returnedValue","prototype","instance","has","service","$injector","constant","instanceCache","decorator","decorFn","origProvider","orig$get","origProvider.$get","origInstance","instanceInjector","servicename","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","$window","$location","$rootScope","getFirstAnchor","scroll","hash","elm","scrollIntoView","getElementsByName","scrollTo","autoScrollWatch","autoScrollWatchAction","$$rAF","$timeout","supported","Browser","$log","$sniffer","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","startPoller","interval","setTimeout","check","pollFns","pollFn","pollTimeout","fireUrlChange","newLocation","lastBrowserUrl","url","urlChangeListeners","listener","rawDocument","history","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","addPollFn","self.addPollFn","href","baseElement","self.url","replaceState","pushState","urlChangeInit","onUrlChange","self.onUrlChange","on","hashchange","baseHref","self.baseHref","lastCookies","lastCookieString","cookiePath","cookies","self.cookies","cookieLength","cookie","escape","warn","cookieArray","unescape","substring","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","$document","this.$get","cacheFactory","cacheId","options","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$cacheFactory","$$sanitizeUriProvider","hasDirectives","Suffix","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","$exceptionHandler","directives","priority","require","controller","restrict","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","$interpolate","$http","$templateCache","$parse","$controller","$sce","$animate","$$sanitizeUri","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","safeAddClass","publicLinkFn","cloneConnectFn","transcludeControllers","parentBoundTranscludeFn","$linkNode","JQLitePrototype","eq","$element","addClass","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","nodeListLength","stableNodeList","Array","linkFns","nodeLinkFn","$new","transcludeOnThisElement","createBoundTranscludeFn","transclude","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","boundTranscludeFn","transcludedScope","cloneFn","controllers","scopeCreated","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","nodeName_","isNgAttr","nAttrs","attrStartName","attrEndName","specified","ngAttrName","NG_ATTR_BINDING","substr","directiveNName","nName","addAttrInterpolateDirective","addTextInterpolateDirective","byPriority","groupScan","attrStart","attrEnd","depth","hasAttribute","$compileMinErr","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","directiveName","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","retrievalMethod","optional","linkNode","controllersBoundTransclude","cloneAttachFn","hasElementTranscludeDirective","isolateScope","LOCAL_REGEXP","templateDirective","$$originalDirective","definition","scopeName","attrName","mode","lastValue","parentGet","parentSet","compare","$$isolateBindings","$observe","$$observers","$$scope","literal","a","b","assign","parentValueWatch","parentValue","controllerDirectives","controllerInstance","controllerAs","$scope","scopeToChild","template","templateUrl","terminalPriority","newScopeDirective","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","getTrustedResourceUrl","success","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","oldClasses","response","code","headers","delayedNodeLinkFn","ignoreChildLinkFn","rootElement","diff","what","previousDirective","text","interpolateFn","textInterpolateCompileFn","templateNode","hasCompileParent","textInterpolateLinkFn","bindings","interpolateFnWatchAction","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","attrInterpolatePreLinkFn","$$inter","newValue","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","expando","k","kk","annotation","$addClass","classVal","$removeClass","removeClass","newClasses","toAdd","tokenDifference","toRemove","setClass","writeAttr","booleanKey","removeAttr","listeners","startSymbol","endSymbol","PREFIX_REGEXP","str1","str2","values","tokens1","tokens2","token","CNTRL_REG","register","this.register","expression","identifier","exception","cause","parseHeaders","line","headersGetter","headersObj","transformData","fns","JSON_START","JSON_END","PROTECTION_PREFIX","CONTENT_TYPE_APPLICATION_JSON","defaults","d","interceptorFactories","interceptors","responseInterceptorFactories","responseInterceptors","$httpBackend","$browser","$q","requestConfig","transformResponse","resp","status","reject","transformRequest","mergeHeaders","defHeaders","reqHeaders","defHeaderName","reqHeaderName","common","lowercaseDefHeaderName","execHeaders","headerContent","headerFn","header","chain","serverRequest","reqData","withCredentials","sendReq","then","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","promise.success","promise.error","done","headersString","statusText","resolvePromise","$$phase","deferred","resolve","removePendingReq","idx","pendingRequests","cachedResp","buildUrl","params","defaultCache","xsrfValue","urlIsSameOrigin","xsrfCookieName","xsrfHeaderName","timeout","responseType","toISOString","interceptorFactory","responseFn","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","ActiveXObject","createHttpBackend","callbacks","$browserDefer","jsonpReq","callbackId","script","async","body","called","addEventListenerFn","onreadystatechange","script.onreadystatechange","readyState","ABORTED","timeoutRequest","jsonpDone","xhr","abort","completeRequest","urlResolve","protocol","counter","open","setRequestHeader","xhr.onreadystatechange","responseHeaders","getAllResponseHeaders","responseText","send","this.startSymbol","this.endSymbol","mustHaveExpression","trustedContext","endIndex","hasInterpolation","startSymbolLength","exp","endSymbolLength","$interpolateMinErr","part","getTrusted","valueOf","newErr","$interpolate.startSymbol","$interpolate.endSymbol","count","invokeApply","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","short","pluralCat","num","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","appBase","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","stripHash","stripFile","lastIndexOf","LocationHtml5Url","basePrefix","$$html5","appBaseNoFile","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$rewrite","this.$$rewrite","appUrl","prevAppUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","this.hashPrefix","prefix","this.html5Mode","afterLocationChange","oldUrl","$broadcast","absUrl","LocationMode","initialUrl","IGNORE_URI_REGEXP","ctrlKey","metaKey","which","absHref","animVal","rewrittenUrl","newUrl","$digest","changeCounter","$locationWatch","currentReplace","$$replace","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","Object","setter","setValue","fullExp","propertyObj","unwrapPromises","promiseWarning","$$v","cspSafeGetterFn","key0","key1","key2","key3","key4","cspSafePromiseEnabledGetter","pathVal","cspSafeGetter","getterFn","getterFnCache","pathKeys","pathKeysLength","evaledFnGetter","Function","$parseOptions","this.unwrapPromises","logPromiseWarnings","this.logPromiseWarnings","$filter","promiseWarningCache","parsedExpression","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","defaultCallback","defaultErrback","pending","ref","createInternalRejectedPromise","progress","errback","progressback","wrappedCallback","wrappedErrback","wrappedProgressback","catch","finally","makePromise","resolved","handleCallback","isResolved","callbackOutput","promises","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","id","timer","TTL","$rootScopeMinErr","lastDirtyWatch","digestTtl","this.digestTtl","Scope","$id","$parent","$$watchers","$$nextSibling","$$prevSibling","$$childHead","$$childTail","$root","$$destroyed","$$asyncQueue","$$postDigestQueue","$$listeners","$$listenerCount","beginPhase","phase","compileToFn","decrementListenerCount","current","initWatchVal","isolate","child","$$childScopeClass","this.$$childScopeClass","watchExp","objectEquality","watcher","listenFn","watcher.fn","newVal","oldVal","originalFn","deregisterWatch","$watchCollection","veryOldValue","trackVeryOldValue","changeDetected","objGetter","internalArray","internalObject","initRun","oldLength","$watchCollectionWatch","newLength","bothNaN","$watchCollectionAction","watch","watchers","asyncQueue","postDigestQueue","dirty","ttl","watchLog","logIdx","logMsg","asyncTask","$eval","next","$on","this.$watch","expr","$$postDigest","namedListeners","$emit","listenerArgs","array1","currentScope","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","maybeTrusted","allowed","enabled","this.enabled","$sceDelegate","msieDocumentMode","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","sceParseAsTrusted","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","documentMode","vendorPrefix","vendorRegex","bodyStyle","style","transitions","animations","webkitTransition","webkitAnimation","hasEvent","divElm","deferreds","$$timeoutId","timeout.cancel","base","urlParsingNode","requestUrl","originUrl","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","comparatorType","predicates","predicates.check","objKey","filtered","$locale","formats","NUMBER_FORMATS","amount","currencySymbol","CURRENCY_SYM","formatNumber","PATTERNS","GROUP_SEP","DECIMAL_SEP","number","fractionSize","pattern","groupSep","decimalSep","isFinite","isNegative","abs","numStr","formatedText","hasExponent","toFixed","fractionLen","min","minFrac","maxFrac","round","fraction","lgroup","lgSize","group","gSize","negPre","posPre","negSuf","posSuf","padNumber","digits","neg","dateGetter","date","dateStrGetter","shortForm","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","s","ms","parseFloat","format","DATETIME_FORMATS","NUMBER_STRING","DATE_FORMATS_SPLIT","DATE_FORMATS","object","input","limit","Infinity","out","sortPredicate","reverseOrder","reverseComparator","comp","descending","v1","v2","predicate","arrayCopy","ngDirective","FormController","toggleValidCss","isValid","validationErrorKey","INVALID_CLASS","VALID_CLASS","form","parentForm","nullFormCtrl","invalidCount","errors","$error","controls","$name","ngForm","$dirty","$pristine","$valid","$invalid","$addControl","PRISTINE_CLASS","form.$addControl","control","$removeControl","form.$removeControl","queue","validationToken","$setValidity","form.$setValidity","$setDirty","form.$setDirty","DIRTY_CLASS","$setPristine","form.$setPristine","validate","ctrl","validatorName","validity","testFlags","flags","addNativeHtml5Validators","badFlags","ignoreFlags","$$hasNativeValidators","$parsers","validator","textInputType","VALIDITY_STATE_PROPERTY","placeholder","noevent","$$validityState","composing","ev","ngTrim","revalidate","$viewValue","$setViewValue","deferListener","keyCode","$render","ctrl.$render","$isEmpty","ngPattern","patternValidator","patternObj","$formatters","ngMinlength","minlength","minLengthValidator","ngMaxlength","maxlength","maxLengthValidator","classDirective","arrayDifference","arrayClasses","classes","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","isActive_","active","querySelector","addEventListener","attachEvent","removeEventListener","detachEvent","_data","JQLite._data","optgroup","option","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeAttribute","css","currentStyle","lowercasedName","getNamedItem","ret","getText","textProp","NODE_TYPE_TEXT_PROPERTY","$dv","multiple","selected","nodeCount","onFn","eventFns","contains","compareDocumentPosition","adown","bup","eventmap","related","relatedTarget","one","off","replaceNode","insertBefore","contentDocument","prepend","wrapNode","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventName","eventFnsCopy","arg3","unbind","$animateMinErr","$$selectors","classNameFilter","this.classNameFilter","$$classNameFilter","$$asyncCallback","enter","leave","move","add","PATH_MATCH","paramValue","CALL","APPLY","BIND","OPERATORS","null","true","false","+","-","*","/","%","^","===","!==","==","!=","<",">","<=",">=","&&","||","&","|","!","ESCAPE","lex","ch","lastCh","tokens","is","readString","peek","readNumber","isIdent","readIdent","isWhitespace","ch2","ch3","fn2","fn3","throwError","chars","was","isExpOperator","start","end","colStr","peekCh","ident","lastDot","peekIndex","methodName","quote","rawString","hex","rep","ZERO","statements","primary","expect","filterChain","consume","arrayDeclaration","functionCall","objectIndex","fieldAccess","msg","peekToken","e1","e2","e3","e4","t","unaryFn","right","ternaryFn","left","middle","binaryFn","statement","argsFn","fnInvoke","assignment","ternary","logicalOR","logicalAND","equality","relational","additive","multiplicative","unary","field","o","indexFn","contextGetter","fnPtr","elementFns","allConstant","elementFn","keyValues","ampmGetter","getHours","AMPMS","timeZoneGetter","zone","getTimezoneOffset","paddedZone","xlinkHref","propName","normalized","ngBooleanAttrWatchAction","formDirectiveFactory","isNgForm","formElement","action","preventDefaultListener","parentFormCtrl","alias","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","inputType","numberInputType","numberBadFlags","minValidator","maxValidator","urlInputType","urlValidator","emailInputType","emailValidator","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","NgModelController","$modelValue","NaN","$viewChangeListeners","ngModelGet","ngModel","ngModelSet","this.$isEmpty","inheritedData","this.$setValidity","this.$setPristine","this.$setViewValue","ngModelWatch","formatters","ctrls","modelCtrl","formCtrl","ngChange","required","ngList","viewValue","CONSTANT_VALUE_REGEXP","tpl","tplAttr","ngValue","ngValueConstantLink","ngValueLink","valueWatchAction","templateElement","ngBind","ngBindWatchAction","ngBindTemplate","tElement","ngBindHtml","getStringValue","ngBindHtmlWatchAction","getTrustedHtml","ngEventHandler","$transclude","previousElements","ngIf","ngIfWatchAction","$anchorScroll","srcExp","ngInclude","onloadExp","onload","autoScrollExp","autoscroll","previousElement","currentElement","cleanupLastIncludeContent","parseAsResourceUrl","ngIncludeWatchAction","afterAnimation","thisChangeId","newScope","$compile","ngInit","BRACE","numberExp","whenExp","whens","whensExpFns","isWhen","attributeName","ngPluralizeWatch","ngPluralizeWatchAction","ngRepeatMinErr","ngRepeat","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","valueIdentifier","keyIdentifier","hashFnLocals","lhs","rhs","trackByExp","lastBlockMap","ngRepeatAction","collection","previousNode","nextNode","nextBlockMap","arrayLength","collectionKeys","nextBlockOrder","trackByIdFn","trackById","$first","$last","$middle","$odd","$even","ngShow","ngShowWatchAction","ngHide","ngHideWatchAction","ngStyle","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","selectedScopes","ngSwitch","ngSwitchWatchAction","change","selectedTransclude","selectedScope","caseElement","anchor","ngSwitchWhen","$attrs","ngOptionsMinErr","NG_OPTIONS_REGEXP","nullModelCtrl","optionsMap","ngModelCtrl","unknownOption","databound","init","self.init","ngModelCtrl_","nullOption_","unknownOption_","addOption","self.addOption","removeOption","self.removeOption","hasOption","renderUnknownOption","self.renderUnknownOption","unknownVal","self.hasOption","setupAsSingle","selectElement","selectCtrl","ngModelCtrl.$render","emptyOption","setupAsMultiple","lastView","items","selectMultipleWatch","setupAsOptions","render","optionGroups","optionGroupNames","optionGroupName","optionGroup","existingParent","existingOptions","existingOption","modelValue","valuesFn","keyName","groupIndex","selectedSet","trackFn","trackIndex","valueName","lastElement","groupByFn","modelCast","label","displayFn","nullOption","groupLength","optionGroupsCache","optGroupTemplate","optionTemplate","optionsExp","track","optionElement","ngOptions","ngModelCtrl.$isEmpty","nullSelectCtrl","selectCtrlName","interpolateWatchAction","$$csp"]
+}
diff --git a/bitbake/lib/toaster/toastergui/static/js/base.js b/bitbake/lib/toaster/toastergui/static/js/base.js
new file mode 100644
index 0000000000..777ab432c2
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/base.js
@@ -0,0 +1,136 @@
+
+
+function basePageInit (ctx) {
+
+ var newBuildButton = $("#new-build-button");
+ /* Hide the button if we're on the project,newproject or importlyaer page
+ * or if there are no projects yet defined
+ */
+ if (ctx.numProjects == 0 || ctx.currentUrl.search('newproject|project/\\d/$|importlayer/$') > 0){
+ newBuildButton.hide();
+ return;
+ }
+
+ /* Hide the change project icon when there is only one project */
+ if (ctx.numProjects == 1){
+ $('#project .icon-pencil').hide();
+ }
+
+ newBuildButton.show().removeAttr("disabled");
+
+ _checkProjectBuildable()
+ _setupNewBuildButton();
+
+
+ function _checkProjectBuildable(){
+ if (ctx.projectId == undefined)
+ return;
+
+ libtoaster.getProjectInfo(ctx.projectInfoUrl, ctx.projectId,
+ function(data){
+ if (data.machine.name == undefined || data.layers.length == 0) {
+ /* we can't build anything with out a machine and some layers */
+ $("#new-build-button #targets-form").hide();
+ $("#new-build-button .alert").show();
+ } else {
+ $("#new-build-button #targets-form").show();
+ $("#new-build-button .alert").hide();
+ }
+ }, null);
+ }
+
+ function _setupNewBuildButton() {
+ /* Setup New build button */
+ var newBuildProjectInput = $("#new-build-button #project-name-input");
+ var newBuildTargetBuildBtn = $("#new-build-button #build-button");
+ var newBuildTargetInput = $("#new-build-button #build-target-input");
+ var newBuildProjectSaveBtn = $("#new-build-button #save-project-button");
+ var selectedTarget;
+ var selectedProject;
+
+ /* If we don't have a current project then present the set project
+ * form.
+ */
+ if (ctx.projectId == undefined) {
+ $('#change-project-form').show();
+ $('#project .icon-pencil').hide();
+ }
+
+ libtoaster.makeTypeahead(newBuildTargetInput, ctx.xhrDataTypeaheadUrl, { type : "targets", project_id: ctx.projectId }, function(item){
+ /* successfully selected a target */
+ selectedTarget = item;
+ });
+
+
+ libtoaster.makeTypeahead(newBuildProjectInput, ctx.xhrDataTypeaheadUrl, { type : "projects" }, function(item){
+ /* successfully selected a project */
+ newBuildProjectSaveBtn.removeAttr("disabled");
+ selectedProject = item;
+ });
+
+ /* Any typing in the input apart from enter key is going to invalidate
+ * the value that has been set by selecting a suggestion from the typeahead
+ */
+ newBuildProjectInput.on('input', function(event) {
+ if (event.keyCode == 13)
+ return;
+ newBuildProjectSaveBtn.attr("disabled", "disabled");
+ });
+
+ newBuildTargetInput.on('input', function() {
+ if ($(this).val().length == 0)
+ newBuildTargetBuildBtn.attr("disabled", "disabled");
+ else
+ newBuildTargetBuildBtn.removeAttr("disabled");
+ });
+
+ newBuildTargetBuildBtn.click(function() {
+ if (!newBuildTargetInput.val())
+ return;
+
+ if (!selectedTarget)
+ selectedTarget = { name: newBuildTargetInput.val() };
+ /* fire and forget */
+ libtoaster.startABuild(ctx.projectBuildUrl, ctx.projectId, selectedTarget.name, null, null);
+ window.location.replace(ctx.projectPageUrl+ctx.projectId);
+ });
+
+ newBuildProjectSaveBtn.click(function() {
+ ctx.projectId = selectedProject.id
+ /* Update the typeahead project_id paramater */
+ _checkProjectBuildable();
+ newBuildTargetInput.data('typeahead').options.xhrParams.project_id = ctx.projectId;
+ newBuildTargetInput.val("");
+
+ $("#new-build-button #project a").text(selectedProject.name).attr('href', ctx.projectPageUrl+ctx.projectId);
+ $("#new-build-button .alert a").attr('href', ctx.projectPageUrl+ctx.projectId);
+
+
+ $("#change-project-form").slideUp({ 'complete' : function() {
+ $("#new-build-button #project").show();
+ }});
+ });
+
+ $('#new-build-button #project .icon-pencil').click(function() {
+ newBuildProjectSaveBtn.attr("disabled", "disabled");
+ newBuildProjectInput.val($("#new-build-button #project a").text());
+ $(this).parent().hide();
+ $("#change-project-form").slideDown();
+ });
+
+ $("#new-build-button #cancel-change-project").click(function() {
+ $("#change-project-form").hide(function(){
+ $('#new-build-button #project').show();
+ });
+
+ newBuildProjectInput.val("");
+ newBuildProjectSaveBtn.attr("disabled", "disabled");
+ });
+
+ /* Keep the dropdown open even unless we click outside the dropdown area */
+ $(".new-build").click (function(event) {
+ event.stopPropagation();
+ });
+ };
+
+}
diff --git a/bitbake/lib/toaster/toastergui/static/js/bootstrap.min.js b/bitbake/lib/toaster/toastergui/static/js/bootstrap.min.js
index e4f481784e..848258d380 100644
--- a/bitbake/lib/toaster/toastergui/static/js/bootstrap.min.js
+++ b/bitbake/lib/toaster/toastergui/static/js/bootstrap.min.js
@@ -1,7 +1,6 @@
/*!
- * Bootstrap v3.0.3 (http://getbootstrap.com)
- * Copyright 2013 Twitter, Inc.
- * Licensed under http://www.apache.org/licenses/LICENSE-2.0
- */
-
-if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]'),b=!0;if(a.length){var c=this.$element.find("input");"radio"===c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?b=!1:a.find(".active").removeClass("active")),b&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}b&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.load(this.options.remote)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show(),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h<o?"right":d,c.removeClass(k).addClass(d)}var p=this.getCalculatedOffset(d,g,h,i);this.applyPlacement(p,d),this.$element.trigger("shown.bs."+this.type)}},b.prototype.applyPlacement=function(a,b){var c,d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),a.top=a.top+g,a.left=a.left+h,d.offset(a).addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;if("top"==b&&j!=f&&(c=!0,a.top=a.top+f-j),/bottom|top/.test(b)){var k=0;a.left<0&&(k=-2*a.left,a.left=0,d.offset(a),i=d[0].offsetWidth,j=d[0].offsetHeight),this.replaceArrow(k-e+i,i,"left")}else this.replaceArrow(j-f,j,"top");c&&d.offset(a)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach()}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.$element.trigger("hidden.bs."+this.type),this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery);
+* Bootstrap.js by @fat & @mdo
+* Copyright 2013 Twitter, Inc.
+* http://www.apache.org/licenses/LICENSE-2.0.txt
+*/
+!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(t){var n=this.getActiveIndex(),r=this;if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){r.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",e(this.$items[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("carousel").pause().to(o).cycle(),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning||this.$element.hasClass("in"))return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning||!this.$element.hasClass("in"))return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},e.fn.collapse.defaults,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(".dropdown-backdrop").remove(),e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=n&&e(n);if(!r||!r.length)r=t.parent();return r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||("ontouchstart"in document.documentElement&&e('<div class="dropdown-backdrop"/>').insertBefore(e(this)).on("click",r),s.toggleClass("open")),n.focus(),!1},keydown:function(n){var r,s,o,u,a,f;if(!/(38|40|27)/.test(n.keyCode))return;r=e(this),n.preventDefault(),n.stopPropagation();if(r.is(".disabled, :disabled"))return;u=i(r),a=u.hasClass("open");if(!a||a&&n.keyCode==27)return n.which==27&&u.find(t).focus(),r.click();s=e("[role=menu] li:not(.divider):visible a",u);if(!s.length)return;f=s.index(s.filter(":focus")),n.keyCode==38&&f>0&&f--,n.keyCode==40&&f<s.length-1&&f++,~f||(f=0),s.eq(f).focus()}};var s=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.dropdown.data-api",r).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!t)return;i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s,o,u,a;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,o=this.options.trigger.split(" ");for(a=o.length;a--;)u=o[a],u=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):u!="manual"&&(i=u=="hover"?"mouseenter":"focus",s=u=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e.fn[this.type].defaults,r={},i;this._options&&e.each(this._options,function(e,t){n[e]!=t&&(r[e]=t)},this),i=e(t.currentTarget)[this.type](r).data(this.type);if(!i.options.delay||!i.options.delay.show)return i.show();clearTimeout(this.timeout),i.hoverState="in",this.timeout=setTimeout(function(){i.hoverState=="in"&&i.show()},i.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var t,n,r,i,s,o,u=e.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(u);if(u.isDefaultPrevented())return;t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight;switch(s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}this.applyPlacement(o,s),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n=this.tip(),r=n[0].offsetWidth,i=n[0].offsetHeight,s,o,u,a;n.offset(e).addClass(t).addClass("in"),s=n[0].offsetWidth,o=n[0].offsetHeight,t=="top"&&o!=i&&(e.top=e.top+i-o,a=!0),t=="bottom"||t=="top"?(u=0,e.left<0&&(u=e.left*-2,e.left=0,n.offset(e),s=n[0].offsetWidth,o=n[0].offsetHeight),this.replaceArrow(u-r+s,s,"left")):this.replaceArrow(o-i,o,"top"),a&&n.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function i(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var t=this,n=this.tip(),r=e.Event("hide");this.$element.trigger(r);if(r.isDefaultPrevented())return;return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?i():n.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},typeof t.getBoundingClientRect=="function"?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=(typeof n.content=="function"?n.content.call(t[0]):n.content)||t.attr("data-content"),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var n=e(this),r=n.data("target")||n.attr("href"),i=/^#\w/.test(r)&&e(r);return i&&i.length&&[[i.position().top+(!e.isWindow(t.$scrollElement.get(0))&&t.$scrollElement.scrollTop()),r]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}};var n=e.fn.scrollspy;e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=n,this},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active:last a")[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}};var n=e.fn.tab;e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this},e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=e(this.options.menu),this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},focus:function(e){this.focused=!0},blur:function(e){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(e){e.stopPropagation(),e.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(t){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")},mouseleave:function(e){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var n=e.fn.typeahead;e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e.fn.typeahead.noConflict=function(){return e.fn.typeahead=n,this},e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;n.typeahead(n.data())})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))};var n=e.fn.affix;e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery); \ No newline at end of file
diff --git a/bitbake/lib/toaster/toastergui/static/js/filtersnippet.js b/bitbake/lib/toaster/toastergui/static/js/filtersnippet.js
new file mode 100755
index 0000000000..27b057e64e
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/filtersnippet.js
@@ -0,0 +1,95 @@
+"use strict"
+
+// The disable removes the 'datepicker' attribute and
+// settings, so you have to re-initialize it each time
+// the date range is selected and enabled
+// DOM is used instead of jQuery to find the elements
+// in all contexts
+function date_enable (key, action) {
+
+ var elemFrom=document.getElementById("date_from_"+key);
+ var elemTo=document.getElementById("date_to_"+key);
+
+ if ('enable' == action) {
+ elemFrom.removeAttribute("disabled");
+ elemTo.removeAttribute("disabled");
+
+ $(elemFrom).datepicker();
+ $(elemTo).datepicker();
+
+ $(elemFrom).datepicker( "option", "dateFormat", "dd/mm/yy" );
+ $(elemTo).datepicker( "option", "dateFormat", "dd/mm/yy" );
+
+ $(elemFrom).datepicker( "setDate", elemFrom.getAttribute( "data-setDate") );
+ $(elemTo).datepicker( "setDate", elemTo.getAttribute( "data-setDate") );
+ $(elemFrom).datepicker( "option", "minDate", elemFrom.getAttribute( "data-minDate"));
+ $(elemTo).datepicker( "option", "minDate", elemTo.getAttribute( "data-minDate"));
+ $(elemFrom).datepicker( "option", "maxDate", elemFrom.getAttribute( "data-maxDate"));
+ $(elemTo).datepicker( "option", "maxDate", elemTo.getAttribute( "data-maxDate"));
+ } else {
+ elemFrom.setAttribute("disabled","disabled");
+ elemTo.setAttribute("disabled","disabled");
+ }
+}
+
+// Initialize the date picker elements with their default state variables, and
+// register the radio button and form actions
+function date_init (key, from_date, to_date, min_date, max_date, initial_enable) {
+
+ var elemFrom=document.getElementById("date_from_"+key);
+ var elemTo=document.getElementById("date_to_"+key);
+
+ // Were there any daterange filters instantiated? (e.g. no builds found)
+ if (null == elemFrom) {
+ return;
+ }
+
+ // init the datepicker context data
+ elemFrom.setAttribute( "data-setDate", from_date );
+ elemTo.setAttribute( "data-setDate", to_date );
+ elemFrom.setAttribute( "data-minDate", min_date);
+ elemTo.setAttribute( "data-minDate", min_date);
+ elemFrom.setAttribute( "data-maxDate", max_date);
+ elemTo.setAttribute( "data-maxDate", max_date);
+
+ // does the date set start enabled?
+ if (key == initial_enable) {
+ date_enable (key, "enable");
+ } else {
+ date_enable (key, "disable");
+ }
+
+ // catch the radio button selects for enable/disable
+ $('input:radio[name="filter"]').change(function(){
+ if ($(this).val() == 'daterange') {
+ key=$(this).attr("data-key");
+ date_enable (key, 'enable');
+ } else {
+ key=$(this).attr("data-key");
+ date_enable (key, 'disable');
+ }
+ });
+
+ // catch any new 'from' date as minDate for 'to' date
+ $("#date_from_"+key).change(function(){
+ from_date = $("#date_from_"+key).val();
+ $("#date_to_"+key).datepicker( "option", "minDate", from_date );
+ });
+
+ // catch the submit (just once)
+ $("form").unbind('submit');
+ $("form").submit(function(e) {
+ // format a composite daterange filter value so that it can be parsed and post-processed in the view
+ var key=e.originalEvent.explicitOriginalTarget.getAttribute("data-key")
+ if (typeof key != "undefined") {
+ if ($("#date_from_"+key).length) {
+ var filter=key+"__gte!"+key+"__lt:"+$("#date_from_"+key).val()+"!"+$("#date_to_"+key).val()+"_daterange";
+ $("#last_date_from_"+key).val($("#date_from_"+key).val());
+ $("#last_date_to_"+key).val($("#date_to_"+key).val());
+ $("#filter_value_"+key).val(filter);
+ }
+ }
+ return true;
+ });
+
+};
diff --git a/bitbake/lib/toaster/toastergui/static/js/importlayer.js b/bitbake/lib/toaster/toastergui/static/js/importlayer.js
new file mode 100644
index 0000000000..d14a8abcaf
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/importlayer.js
@@ -0,0 +1,274 @@
+"use strict"
+
+function importLayerPageInit (ctx) {
+
+ var layerDepBtn = $("#add-layer-dependency-btn");
+ var importAndAddBtn = $("#import-and-add-btn");
+ var layerNameInput = $("#import-layer-name");
+ var vcsURLInput = $("#layer-git-repo-url");
+ var gitRefInput = $("#layer-git-ref");
+ var layerDepInput = $("#layer-dependency");
+ var layerNameCtrl = $("#layer-name-ctrl");
+ var duplicatedLayerName = $("#duplicated-layer-name-hint");
+
+ var layerDeps = {};
+ var layerDepsDeps = {};
+ var currentLayerDepSelection;
+ var validLayerName = /^(\w|-)+$/;
+
+ $("#new-project-button").hide();
+
+ libtoaster.makeTypeahead(layerDepInput, ctx.xhrDataTypeaheadUrl, { type : "layers", project_id: ctx.projectId, include_added: "true" }, function(item){
+ currentLayerDepSelection = item;
+
+ layerDepBtn.removeAttr("disabled");
+ });
+
+
+ /* We automatically add "openembedded-core" layer for convenience as a
+ * dependency as pretty much all layers depend on this one
+ */
+ $.getJSON(ctx.xhrDataTypeaheadUrl, { type : "layers", project_id: ctx.projectId, include_added: "true" , value: "openembedded-core" }, function(layer) {
+ if (layer.list.length == 1) {
+ currentLayerDepSelection = layer.list[0];
+ layerDepBtn.click();
+ }
+ });
+
+ layerDepBtn.click(function(){
+ if (currentLayerDepSelection == undefined)
+ return;
+
+ layerDeps[currentLayerDepSelection.id] = currentLayerDepSelection;
+
+ /* Make a list item for the new layer dependency */
+ var newLayerDep = $("<li><a></a><span class=\"icon-trash\" data-toggle=\"tooltip\" title=\"Delete\"></span></li>");
+
+ newLayerDep.data('layer-id', currentLayerDepSelection.id);
+ newLayerDep.children("span").tooltip();
+
+ var link = newLayerDep.children("a");
+ link.attr("href", ctx.layerDetailsUrl+String(currentLayerDepSelection.id));
+ link.text(currentLayerDepSelection.name);
+ link.tooltip({title: currentLayerDepSelection.tooltip, placement: "right"});
+
+ var trashItem = newLayerDep.children("span");
+ trashItem.click(function () {
+ var toRemove = $(this).parent().data('layer-id');
+ delete layerDeps[toRemove];
+ $(this).parent().fadeOut(function (){
+ $(this).remove();
+ });
+ });
+
+ $("#layer-deps-list").append(newLayerDep);
+
+ libtoaster.getLayerDepsForProject(ctx.xhrDataTypeaheadUrl, ctx.projectId, currentLayerDepSelection.id, function (data){
+ /* These are the dependencies of the layer added as a dependency */
+ if (data.list.length > 0) {
+ currentLayerDepSelection.url = ctx.layerDetailsUrl+currentLayerDepSelection.id;
+ layerDeps[currentLayerDepSelection.id].deps = data.list
+ }
+
+ /* Clear the current selection */
+ layerDepInput.val("");
+ currentLayerDepSelection = undefined;
+ layerDepBtn.attr("disabled","disabled");
+ }, null);
+ });
+
+ importAndAddBtn.click(function(){
+ /* This is a list of the names from layerDeps for the layer deps
+ * modal dialog body
+ */
+ var depNames = [];
+
+ /* arrray of all layer dep ids includes parent and child deps */
+ var allDeps = [];
+
+ /* temporary object to use to do a reduce on the dependencies for each
+ * layer dependency added
+ */
+ var depDeps = {};
+
+ /* the layers that have dependencies have an extra property "deps"
+ * look in this for each layer and reduce this to a unquie object
+ * of deps.
+ */
+ for (var key in layerDeps){
+ if (layerDeps[key].hasOwnProperty('deps')){
+ for (var dep in layerDeps[key].deps){
+ var layer = layerDeps[key].deps[dep];
+ depDeps[layer.id] = layer;
+ }
+ }
+ depNames.push(layerDeps[key].name);
+ allDeps.push(layerDeps[key].id);
+ }
+
+ /* we actually want it as an array so convert it now */
+ var depDepsArray = [];
+ for (var key in depDeps)
+ depDepsArray.push (depDeps[key]);
+
+ if (depDepsArray.length > 0) {
+ var layer = { name: layerNameInput.val(), url: "#", id: -1 };
+ var title = "Layer";
+ var body = "<strong>"+layer.name+"</strong>'s dependencies ("+
+ depNames.join(", ")+"</span>) require some layers that are not added to your project. Select the ones you want to add:</p>";
+
+ show_layer_deps_modal(ctx.projectId, layer, depDepsArray, title, body, false, function(selected){
+ /* Add the accepted dependencies to the allDeps array */
+ if (selected.length > 0){
+ allDeps = allDeps.concat (selected);
+ }
+ import_and_add ();
+ });
+ } else {
+ import_and_add ();
+ }
+
+ function import_and_add () {
+ /* convert to a csv of all the deps to be added */
+ var layerDepsCsv = allDeps.join(",");
+
+ var layerData = {
+ name: layerNameInput.val(),
+ vcs_url: vcsURLInput.val(),
+ git_ref: gitRefInput.val(),
+ dir_path: $("#layer-subdir").val(),
+ project_id: ctx.projectId,
+ layer_deps: layerDepsCsv,
+ };
+
+ $.ajax({
+ type: "POST",
+ url: ctx.xhrImportLayerUrl,
+ data: layerData,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (data) {
+ if (data.error != "ok") {
+ console.log(data.error);
+ } else {
+ /* Success layer import now go to the project page */
+ $.cookie('layer-imported-alert', JSON.stringify(data), { path: '/'});
+ window.location.replace(ctx.projectPageUrl+'#/layerimported');
+ }
+ },
+ error: function (data) {
+ console.log("Call failed");
+ console.log(data);
+ }
+ });
+ }
+ });
+
+ function enable_import_btn(enabled) {
+ var importAndAddHint = $("#import-and-add-hint");
+
+ if (enabled) {
+ importAndAddBtn.removeAttr("disabled");
+ importAndAddHint.hide();
+ return;
+ }
+
+ importAndAddBtn.attr("disabled", "disabled");
+ importAndAddHint.show();
+ }
+
+ function check_form() {
+ var valid = false;
+ var inputs = $("input:required");
+
+ for (var i=0; i<inputs.length; i++){
+ if (!(valid = inputs[i].value)){
+ enable_import_btn(false);
+ break;
+ }
+ }
+
+ if (valid)
+ enable_import_btn(true);
+ }
+
+ function layerExistsError(layer){
+ var dupLayerInfo = $("#duplicate-layer-info");
+ dupLayerInfo.find(".dup-layer-name").text(layer.name);
+ dupLayerInfo.find(".dup-layer-link").attr("href", layer.layerdetailurl);
+ dupLayerInfo.find("#dup-layer-vcs-url").text(layer.giturl);
+ dupLayerInfo.find("#dup-layer-revision").text(layer.revision);
+
+ $(".fields-apart-from-layer-name").fadeOut(function(){
+
+ dupLayerInfo.fadeIn();
+ });
+ }
+
+ layerNameInput.on('blur', function() {
+ if (!$(this).val()){
+ return;
+ }
+ var name = $(this).val();
+
+ /* Check if the layer name exists */
+ $.getJSON(ctx.xhrDataTypeaheadUrl, { type : "layers", project_id: ctx.projectId, include_added: "true" , value: name }, function(layer) {
+ if (layer.list.length > 0) {
+ for (var i in layer.list){
+ if (layer.list[i].name == name) {
+ console.log(layer.list[i])
+ layerExistsError(layer.list[i]);
+ }
+ }
+ }
+ });
+ });
+
+ vcsURLInput.on('input', function() {
+ check_form();
+ });
+
+ gitRefInput.on('input', function() {
+ check_form();
+ });
+
+ layerNameInput.on('input', function() {
+ if ($(this).val() && !validLayerName.test($(this).val())){
+ layerNameCtrl.addClass("error")
+ $("#invalid-layer-name-hint").show();
+ enable_import_btn(false);
+ return;
+ }
+
+ if ($("#duplicate-layer-info").css("display") != "None"){
+ $("#duplicate-layer-info").fadeOut(function(){
+ $(".fields-apart-from-layer-name").show();
+ });
+
+ }
+
+ /* Don't remove the error class if we're displaying the error for another
+ * reason.
+ */
+ if (!duplicatedLayerName.is(":visible"))
+ layerNameCtrl.removeClass("error")
+
+ $("#invalid-layer-name-hint").hide();
+ check_form();
+ });
+
+ /* Have a guess at the layer name */
+ vcsURLInput.focusout(function (){
+ /* If we a layer name specified don't overwrite it or if there isn't a
+ * url typed in yet return
+ */
+ if (layerNameInput.val() || !$(this).val())
+ return;
+
+ if ($(this).val().search("/")){
+ var urlPts = $(this).val().split("/");
+ var suggestion = urlPts[urlPts.length-1].replace(".git","");
+ layerNameInput.val(suggestion);
+ }
+ });
+
+}
diff --git a/bitbake/lib/toaster/toastergui/static/js/jquery-ui.js b/bitbake/lib/toaster/toastergui/static/js/jquery-ui.js
deleted file mode 100644
index 7b727e7435..0000000000
--- a/bitbake/lib/toaster/toastergui/static/js/jquery-ui.js
+++ /dev/null
@@ -1,15003 +0,0 @@
-/*! jQuery UI - v1.10.3 - 2013-05-03
-* http://jqueryui.com
-* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.effect.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js, jquery.ui.menu.js, jquery.ui.position.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js
-* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
-(function( $, undefined ) {
-
-var uuid = 0,
- runiqueId = /^ui-id-\d+$/;
-
-// $.ui might exist from components with no dependencies, e.g., $.ui.position
-$.ui = $.ui || {};
-
-$.extend( $.ui, {
- version: "1.10.3",
-
- keyCode: {
- BACKSPACE: 8,
- COMMA: 188,
- DELETE: 46,
- DOWN: 40,
- END: 35,
- ENTER: 13,
- ESCAPE: 27,
- HOME: 36,
- LEFT: 37,
- NUMPAD_ADD: 107,
- NUMPAD_DECIMAL: 110,
- NUMPAD_DIVIDE: 111,
- NUMPAD_ENTER: 108,
- NUMPAD_MULTIPLY: 106,
- NUMPAD_SUBTRACT: 109,
- PAGE_DOWN: 34,
- PAGE_UP: 33,
- PERIOD: 190,
- RIGHT: 39,
- SPACE: 32,
- TAB: 9,
- UP: 38
- }
-});
-
-// plugins
-$.fn.extend({
- focus: (function( orig ) {
- return function( delay, fn ) {
- return typeof delay === "number" ?
- this.each(function() {
- var elem = this;
- setTimeout(function() {
- $( elem ).focus();
- if ( fn ) {
- fn.call( elem );
- }
- }, delay );
- }) :
- orig.apply( this, arguments );
- };
- })( $.fn.focus ),
-
- scrollParent: function() {
- var scrollParent;
- if (($.ui.ie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) {
- scrollParent = this.parents().filter(function() {
- return (/(relative|absolute|fixed)/).test($.css(this,"position")) && (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
- }).eq(0);
- } else {
- scrollParent = this.parents().filter(function() {
- return (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
- }).eq(0);
- }
-
- return (/fixed/).test(this.css("position")) || !scrollParent.length ? $(document) : scrollParent;
- },
-
- zIndex: function( zIndex ) {
- if ( zIndex !== undefined ) {
- return this.css( "zIndex", zIndex );
- }
-
- if ( this.length ) {
- var elem = $( this[ 0 ] ), position, value;
- while ( elem.length && elem[ 0 ] !== document ) {
- // Ignore z-index if position is set to a value where z-index is ignored by the browser
- // This makes behavior of this function consistent across browsers
- // WebKit always returns auto if the element is positioned
- position = elem.css( "position" );
- if ( position === "absolute" || position === "relative" || position === "fixed" ) {
- // IE returns 0 when zIndex is not specified
- // other browsers return a string
- // we ignore the case of nested elements with an explicit value of 0
- // <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
- value = parseInt( elem.css( "zIndex" ), 10 );
- if ( !isNaN( value ) && value !== 0 ) {
- return value;
- }
- }
- elem = elem.parent();
- }
- }
-
- return 0;
- },
-
- uniqueId: function() {
- return this.each(function() {
- if ( !this.id ) {
- this.id = "ui-id-" + (++uuid);
- }
- });
- },
-
- removeUniqueId: function() {
- return this.each(function() {
- if ( runiqueId.test( this.id ) ) {
- $( this ).removeAttr( "id" );
- }
- });
- }
-});
-
-// selectors
-function focusable( element, isTabIndexNotNaN ) {
- var map, mapName, img,
- nodeName = element.nodeName.toLowerCase();
- if ( "area" === nodeName ) {
- map = element.parentNode;
- mapName = map.name;
- if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
- return false;
- }
- img = $( "img[usemap=#" + mapName + "]" )[0];
- return !!img && visible( img );
- }
- return ( /input|select|textarea|button|object/.test( nodeName ) ?
- !element.disabled :
- "a" === nodeName ?
- element.href || isTabIndexNotNaN :
- isTabIndexNotNaN) &&
- // the element and all of its ancestors must be visible
- visible( element );
-}
-
-function visible( element ) {
- return $.expr.filters.visible( element ) &&
- !$( element ).parents().addBack().filter(function() {
- return $.css( this, "visibility" ) === "hidden";
- }).length;
-}
-
-$.extend( $.expr[ ":" ], {
- data: $.expr.createPseudo ?
- $.expr.createPseudo(function( dataName ) {
- return function( elem ) {
- return !!$.data( elem, dataName );
- };
- }) :
- // support: jQuery <1.8
- function( elem, i, match ) {
- return !!$.data( elem, match[ 3 ] );
- },
-
- focusable: function( element ) {
- return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
- },
-
- tabbable: function( element ) {
- var tabIndex = $.attr( element, "tabindex" ),
- isTabIndexNaN = isNaN( tabIndex );
- return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
- }
-});
-
-// support: jQuery <1.8
-if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
- $.each( [ "Width", "Height" ], function( i, name ) {
- var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
- type = name.toLowerCase(),
- orig = {
- innerWidth: $.fn.innerWidth,
- innerHeight: $.fn.innerHeight,
- outerWidth: $.fn.outerWidth,
- outerHeight: $.fn.outerHeight
- };
-
- function reduce( elem, size, border, margin ) {
- $.each( side, function() {
- size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
- if ( border ) {
- size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
- }
- if ( margin ) {
- size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
- }
- });
- return size;
- }
-
- $.fn[ "inner" + name ] = function( size ) {
- if ( size === undefined ) {
- return orig[ "inner" + name ].call( this );
- }
-
- return this.each(function() {
- $( this ).css( type, reduce( this, size ) + "px" );
- });
- };
-
- $.fn[ "outer" + name] = function( size, margin ) {
- if ( typeof size !== "number" ) {
- return orig[ "outer" + name ].call( this, size );
- }
-
- return this.each(function() {
- $( this).css( type, reduce( this, size, true, margin ) + "px" );
- });
- };
- });
-}
-
-// support: jQuery <1.8
-if ( !$.fn.addBack ) {
- $.fn.addBack = function( selector ) {
- return this.add( selector == null ?
- this.prevObject : this.prevObject.filter( selector )
- );
- };
-}
-
-// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
-if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
- $.fn.removeData = (function( removeData ) {
- return function( key ) {
- if ( arguments.length ) {
- return removeData.call( this, $.camelCase( key ) );
- } else {
- return removeData.call( this );
- }
- };
- })( $.fn.removeData );
-}
-
-
-
-
-
-// deprecated
-$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
-
-$.support.selectstart = "onselectstart" in document.createElement( "div" );
-$.fn.extend({
- disableSelection: function() {
- return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
- ".ui-disableSelection", function( event ) {
- event.preventDefault();
- });
- },
-
- enableSelection: function() {
- return this.unbind( ".ui-disableSelection" );
- }
-});
-
-$.extend( $.ui, {
- // $.ui.plugin is deprecated. Use $.widget() extensions instead.
- plugin: {
- add: function( module, option, set ) {
- var i,
- proto = $.ui[ module ].prototype;
- for ( i in set ) {
- proto.plugins[ i ] = proto.plugins[ i ] || [];
- proto.plugins[ i ].push( [ option, set[ i ] ] );
- }
- },
- call: function( instance, name, args ) {
- var i,
- set = instance.plugins[ name ];
- if ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) {
- return;
- }
-
- for ( i = 0; i < set.length; i++ ) {
- if ( instance.options[ set[ i ][ 0 ] ] ) {
- set[ i ][ 1 ].apply( instance.element, args );
- }
- }
- }
- },
-
- // only used by resizable
- hasScroll: function( el, a ) {
-
- //If overflow is hidden, the element might have extra content, but the user wants to hide it
- if ( $( el ).css( "overflow" ) === "hidden") {
- return false;
- }
-
- var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
- has = false;
-
- if ( el[ scroll ] > 0 ) {
- return true;
- }
-
- // TODO: determine which cases actually cause this to happen
- // if the element doesn't have the scroll set, see if it's possible to
- // set the scroll
- el[ scroll ] = 1;
- has = ( el[ scroll ] > 0 );
- el[ scroll ] = 0;
- return has;
- }
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-var uuid = 0,
- slice = Array.prototype.slice,
- _cleanData = $.cleanData;
-$.cleanData = function( elems ) {
- for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
- try {
- $( elem ).triggerHandler( "remove" );
- // http://bugs.jquery.com/ticket/8235
- } catch( e ) {}
- }
- _cleanData( elems );
-};
-
-$.widget = function( name, base, prototype ) {
- var fullName, existingConstructor, constructor, basePrototype,
- // proxiedPrototype allows the provided prototype to remain unmodified
- // so that it can be used as a mixin for multiple widgets (#8876)
- proxiedPrototype = {},
- namespace = name.split( "." )[ 0 ];
-
- name = name.split( "." )[ 1 ];
- fullName = namespace + "-" + name;
-
- if ( !prototype ) {
- prototype = base;
- base = $.Widget;
- }
-
- // create selector for plugin
- $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
- return !!$.data( elem, fullName );
- };
-
- $[ namespace ] = $[ namespace ] || {};
- existingConstructor = $[ namespace ][ name ];
- constructor = $[ namespace ][ name ] = function( options, element ) {
- // allow instantiation without "new" keyword
- if ( !this._createWidget ) {
- return new constructor( options, element );
- }
-
- // allow instantiation without initializing for simple inheritance
- // must use "new" keyword (the code above always passes args)
- if ( arguments.length ) {
- this._createWidget( options, element );
- }
- };
- // extend with the existing constructor to carry over any static properties
- $.extend( constructor, existingConstructor, {
- version: prototype.version,
- // copy the object used to create the prototype in case we need to
- // redefine the widget later
- _proto: $.extend( {}, prototype ),
- // track widgets that inherit from this widget in case this widget is
- // redefined after a widget inherits from it
- _childConstructors: []
- });
-
- basePrototype = new base();
- // we need to make the options hash a property directly on the new instance
- // otherwise we'll modify the options hash on the prototype that we're
- // inheriting from
- basePrototype.options = $.widget.extend( {}, basePrototype.options );
- $.each( prototype, function( prop, value ) {
- if ( !$.isFunction( value ) ) {
- proxiedPrototype[ prop ] = value;
- return;
- }
- proxiedPrototype[ prop ] = (function() {
- var _super = function() {
- return base.prototype[ prop ].apply( this, arguments );
- },
- _superApply = function( args ) {
- return base.prototype[ prop ].apply( this, args );
- };
- return function() {
- var __super = this._super,
- __superApply = this._superApply,
- returnValue;
-
- this._super = _super;
- this._superApply = _superApply;
-
- returnValue = value.apply( this, arguments );
-
- this._super = __super;
- this._superApply = __superApply;
-
- return returnValue;
- };
- })();
- });
- constructor.prototype = $.widget.extend( basePrototype, {
- // TODO: remove support for widgetEventPrefix
- // always use the name + a colon as the prefix, e.g., draggable:start
- // don't prefix for widgets that aren't DOM-based
- widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name
- }, proxiedPrototype, {
- constructor: constructor,
- namespace: namespace,
- widgetName: name,
- widgetFullName: fullName
- });
-
- // If this widget is being redefined then we need to find all widgets that
- // are inheriting from it and redefine all of them so that they inherit from
- // the new version of this widget. We're essentially trying to replace one
- // level in the prototype chain.
- if ( existingConstructor ) {
- $.each( existingConstructor._childConstructors, function( i, child ) {
- var childPrototype = child.prototype;
-
- // redefine the child widget using the same prototype that was
- // originally used, but inherit from the new version of the base
- $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
- });
- // remove the list of existing child constructors from the old constructor
- // so the old child constructors can be garbage collected
- delete existingConstructor._childConstructors;
- } else {
- base._childConstructors.push( constructor );
- }
-
- $.widget.bridge( name, constructor );
-};
-
-$.widget.extend = function( target ) {
- var input = slice.call( arguments, 1 ),
- inputIndex = 0,
- inputLength = input.length,
- key,
- value;
- for ( ; inputIndex < inputLength; inputIndex++ ) {
- for ( key in input[ inputIndex ] ) {
- value = input[ inputIndex ][ key ];
- if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
- // Clone objects
- if ( $.isPlainObject( value ) ) {
- target[ key ] = $.isPlainObject( target[ key ] ) ?
- $.widget.extend( {}, target[ key ], value ) :
- // Don't extend strings, arrays, etc. with objects
- $.widget.extend( {}, value );
- // Copy everything else by reference
- } else {
- target[ key ] = value;
- }
- }
- }
- }
- return target;
-};
-
-$.widget.bridge = function( name, object ) {
- var fullName = object.prototype.widgetFullName || name;
- $.fn[ name ] = function( options ) {
- var isMethodCall = typeof options === "string",
- args = slice.call( arguments, 1 ),
- returnValue = this;
-
- // allow multiple hashes to be passed on init
- options = !isMethodCall && args.length ?
- $.widget.extend.apply( null, [ options ].concat(args) ) :
- options;
-
- if ( isMethodCall ) {
- this.each(function() {
- var methodValue,
- instance = $.data( this, fullName );
- if ( !instance ) {
- return $.error( "cannot call methods on " + name + " prior to initialization; " +
- "attempted to call method '" + options + "'" );
- }
- if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
- return $.error( "no such method '" + options + "' for " + name + " widget instance" );
- }
- methodValue = instance[ options ].apply( instance, args );
- if ( methodValue !== instance && methodValue !== undefined ) {
- returnValue = methodValue && methodValue.jquery ?
- returnValue.pushStack( methodValue.get() ) :
- methodValue;
- return false;
- }
- });
- } else {
- this.each(function() {
- var instance = $.data( this, fullName );
- if ( instance ) {
- instance.option( options || {} )._init();
- } else {
- $.data( this, fullName, new object( options, this ) );
- }
- });
- }
-
- return returnValue;
- };
-};
-
-$.Widget = function( /* options, element */ ) {};
-$.Widget._childConstructors = [];
-
-$.Widget.prototype = {
- widgetName: "widget",
- widgetEventPrefix: "",
- defaultElement: "<div>",
- options: {
- disabled: false,
-
- // callbacks
- create: null
- },
- _createWidget: function( options, element ) {
- element = $( element || this.defaultElement || this )[ 0 ];
- this.element = $( element );
- this.uuid = uuid++;
- this.eventNamespace = "." + this.widgetName + this.uuid;
- this.options = $.widget.extend( {},
- this.options,
- this._getCreateOptions(),
- options );
-
- this.bindings = $();
- this.hoverable = $();
- this.focusable = $();
-
- if ( element !== this ) {
- $.data( element, this.widgetFullName, this );
- this._on( true, this.element, {
- remove: function( event ) {
- if ( event.target === element ) {
- this.destroy();
- }
- }
- });
- this.document = $( element.style ?
- // element within the document
- element.ownerDocument :
- // element is window or document
- element.document || element );
- this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
- }
-
- this._create();
- this._trigger( "create", null, this._getCreateEventData() );
- this._init();
- },
- _getCreateOptions: $.noop,
- _getCreateEventData: $.noop,
- _create: $.noop,
- _init: $.noop,
-
- destroy: function() {
- this._destroy();
- // we can probably remove the unbind calls in 2.0
- // all event bindings should go through this._on()
- this.element
- .unbind( this.eventNamespace )
- // 1.9 BC for #7810
- // TODO remove dual storage
- .removeData( this.widgetName )
- .removeData( this.widgetFullName )
- // support: jquery <1.6.3
- // http://bugs.jquery.com/ticket/9413
- .removeData( $.camelCase( this.widgetFullName ) );
- this.widget()
- .unbind( this.eventNamespace )
- .removeAttr( "aria-disabled" )
- .removeClass(
- this.widgetFullName + "-disabled " +
- "ui-state-disabled" );
-
- // clean up events and states
- this.bindings.unbind( this.eventNamespace );
- this.hoverable.removeClass( "ui-state-hover" );
- this.focusable.removeClass( "ui-state-focus" );
- },
- _destroy: $.noop,
-
- widget: function() {
- return this.element;
- },
-
- option: function( key, value ) {
- var options = key,
- parts,
- curOption,
- i;
-
- if ( arguments.length === 0 ) {
- // don't return a reference to the internal hash
- return $.widget.extend( {}, this.options );
- }
-
- if ( typeof key === "string" ) {
- // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
- options = {};
- parts = key.split( "." );
- key = parts.shift();
- if ( parts.length ) {
- curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
- for ( i = 0; i < parts.length - 1; i++ ) {
- curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
- curOption = curOption[ parts[ i ] ];
- }
- key = parts.pop();
- if ( value === undefined ) {
- return curOption[ key ] === undefined ? null : curOption[ key ];
- }
- curOption[ key ] = value;
- } else {
- if ( value === undefined ) {
- return this.options[ key ] === undefined ? null : this.options[ key ];
- }
- options[ key ] = value;
- }
- }
-
- this._setOptions( options );
-
- return this;
- },
- _setOptions: function( options ) {
- var key;
-
- for ( key in options ) {
- this._setOption( key, options[ key ] );
- }
-
- return this;
- },
- _setOption: function( key, value ) {
- this.options[ key ] = value;
-
- if ( key === "disabled" ) {
- this.widget()
- .toggleClass( this.widgetFullName + "-disabled ui-state-disabled", !!value )
- .attr( "aria-disabled", value );
- this.hoverable.removeClass( "ui-state-hover" );
- this.focusable.removeClass( "ui-state-focus" );
- }
-
- return this;
- },
-
- enable: function() {
- return this._setOption( "disabled", false );
- },
- disable: function() {
- return this._setOption( "disabled", true );
- },
-
- _on: function( suppressDisabledCheck, element, handlers ) {
- var delegateElement,
- instance = this;
-
- // no suppressDisabledCheck flag, shuffle arguments
- if ( typeof suppressDisabledCheck !== "boolean" ) {
- handlers = element;
- element = suppressDisabledCheck;
- suppressDisabledCheck = false;
- }
-
- // no element argument, shuffle and use this.element
- if ( !handlers ) {
- handlers = element;
- element = this.element;
- delegateElement = this.widget();
- } else {
- // accept selectors, DOM elements
- element = delegateElement = $( element );
- this.bindings = this.bindings.add( element );
- }
-
- $.each( handlers, function( event, handler ) {
- function handlerProxy() {
- // allow widgets to customize the disabled handling
- // - disabled as an array instead of boolean
- // - disabled class as method for disabling individual parts
- if ( !suppressDisabledCheck &&
- ( instance.options.disabled === true ||
- $( this ).hasClass( "ui-state-disabled" ) ) ) {
- return;
- }
- return ( typeof handler === "string" ? instance[ handler ] : handler )
- .apply( instance, arguments );
- }
-
- // copy the guid so direct unbinding works
- if ( typeof handler !== "string" ) {
- handlerProxy.guid = handler.guid =
- handler.guid || handlerProxy.guid || $.guid++;
- }
-
- var match = event.match( /^(\w+)\s*(.*)$/ ),
- eventName = match[1] + instance.eventNamespace,
- selector = match[2];
- if ( selector ) {
- delegateElement.delegate( selector, eventName, handlerProxy );
- } else {
- element.bind( eventName, handlerProxy );
- }
- });
- },
-
- _off: function( element, eventName ) {
- eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace;
- element.unbind( eventName ).undelegate( eventName );
- },
-
- _delay: function( handler, delay ) {
- function handlerProxy() {
- return ( typeof handler === "string" ? instance[ handler ] : handler )
- .apply( instance, arguments );
- }
- var instance = this;
- return setTimeout( handlerProxy, delay || 0 );
- },
-
- _hoverable: function( element ) {
- this.hoverable = this.hoverable.add( element );
- this._on( element, {
- mouseenter: function( event ) {
- $( event.currentTarget ).addClass( "ui-state-hover" );
- },
- mouseleave: function( event ) {
- $( event.currentTarget ).removeClass( "ui-state-hover" );
- }
- });
- },
-
- _focusable: function( element ) {
- this.focusable = this.focusable.add( element );
- this._on( element, {
- focusin: function( event ) {
- $( event.currentTarget ).addClass( "ui-state-focus" );
- },
- focusout: function( event ) {
- $( event.currentTarget ).removeClass( "ui-state-focus" );
- }
- });
- },
-
- _trigger: function( type, event, data ) {
- var prop, orig,
- callback = this.options[ type ];
-
- data = data || {};
- event = $.Event( event );
- event.type = ( type === this.widgetEventPrefix ?
- type :
- this.widgetEventPrefix + type ).toLowerCase();
- // the original event may come from any element
- // so we need to reset the target on the new event
- event.target = this.element[ 0 ];
-
- // copy original event properties over to the new event
- orig = event.originalEvent;
- if ( orig ) {
- for ( prop in orig ) {
- if ( !( prop in event ) ) {
- event[ prop ] = orig[ prop ];
- }
- }
- }
-
- this.element.trigger( event, data );
- return !( $.isFunction( callback ) &&
- callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
- event.isDefaultPrevented() );
- }
-};
-
-$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
- $.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
- if ( typeof options === "string" ) {
- options = { effect: options };
- }
- var hasOptions,
- effectName = !options ?
- method :
- options === true || typeof options === "number" ?
- defaultEffect :
- options.effect || defaultEffect;
- options = options || {};
- if ( typeof options === "number" ) {
- options = { duration: options };
- }
- hasOptions = !$.isEmptyObject( options );
- options.complete = callback;
- if ( options.delay ) {
- element.delay( options.delay );
- }
- if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
- element[ method ]( options );
- } else if ( effectName !== method && element[ effectName ] ) {
- element[ effectName ]( options.duration, options.easing, callback );
- } else {
- element.queue(function( next ) {
- $( this )[ method ]();
- if ( callback ) {
- callback.call( element[ 0 ] );
- }
- next();
- });
- }
- };
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-var mouseHandled = false;
-$( document ).mouseup( function() {
- mouseHandled = false;
-});
-
-$.widget("ui.mouse", {
- version: "1.10.3",
- options: {
- cancel: "input,textarea,button,select,option",
- distance: 1,
- delay: 0
- },
- _mouseInit: function() {
- var that = this;
-
- this.element
- .bind("mousedown."+this.widgetName, function(event) {
- return that._mouseDown(event);
- })
- .bind("click."+this.widgetName, function(event) {
- if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) {
- $.removeData(event.target, that.widgetName + ".preventClickEvent");
- event.stopImmediatePropagation();
- return false;
- }
- });
-
- this.started = false;
- },
-
- // TODO: make sure destroying one instance of mouse doesn't mess with
- // other instances of mouse
- _mouseDestroy: function() {
- this.element.unbind("."+this.widgetName);
- if ( this._mouseMoveDelegate ) {
- $(document)
- .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate)
- .unbind("mouseup."+this.widgetName, this._mouseUpDelegate);
- }
- },
-
- _mouseDown: function(event) {
- // don't let more than one widget handle mouseStart
- if( mouseHandled ) { return; }
-
- // we may have missed mouseup (out of window)
- (this._mouseStarted && this._mouseUp(event));
-
- this._mouseDownEvent = event;
-
- var that = this,
- btnIsLeft = (event.which === 1),
- // event.target.nodeName works around a bug in IE 8 with
- // disabled inputs (#7620)
- elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
- if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
- return true;
- }
-
- this.mouseDelayMet = !this.options.delay;
- if (!this.mouseDelayMet) {
- this._mouseDelayTimer = setTimeout(function() {
- that.mouseDelayMet = true;
- }, this.options.delay);
- }
-
- if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
- this._mouseStarted = (this._mouseStart(event) !== false);
- if (!this._mouseStarted) {
- event.preventDefault();
- return true;
- }
- }
-
- // Click event may never have fired (Gecko & Opera)
- if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) {
- $.removeData(event.target, this.widgetName + ".preventClickEvent");
- }
-
- // these delegates are required to keep context
- this._mouseMoveDelegate = function(event) {
- return that._mouseMove(event);
- };
- this._mouseUpDelegate = function(event) {
- return that._mouseUp(event);
- };
- $(document)
- .bind("mousemove."+this.widgetName, this._mouseMoveDelegate)
- .bind("mouseup."+this.widgetName, this._mouseUpDelegate);
-
- event.preventDefault();
-
- mouseHandled = true;
- return true;
- },
-
- _mouseMove: function(event) {
- // IE mouseup check - mouseup happened when mouse was out of window
- if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {
- return this._mouseUp(event);
- }
-
- if (this._mouseStarted) {
- this._mouseDrag(event);
- return event.preventDefault();
- }
-
- if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
- this._mouseStarted =
- (this._mouseStart(this._mouseDownEvent, event) !== false);
- (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
- }
-
- return !this._mouseStarted;
- },
-
- _mouseUp: function(event) {
- $(document)
- .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate)
- .unbind("mouseup."+this.widgetName, this._mouseUpDelegate);
-
- if (this._mouseStarted) {
- this._mouseStarted = false;
-
- if (event.target === this._mouseDownEvent.target) {
- $.data(event.target, this.widgetName + ".preventClickEvent", true);
- }
-
- this._mouseStop(event);
- }
-
- return false;
- },
-
- _mouseDistanceMet: function(event) {
- return (Math.max(
- Math.abs(this._mouseDownEvent.pageX - event.pageX),
- Math.abs(this._mouseDownEvent.pageY - event.pageY)
- ) >= this.options.distance
- );
- },
-
- _mouseDelayMet: function(/* event */) {
- return this.mouseDelayMet;
- },
-
- // These are placeholder methods, to be overriden by extending plugin
- _mouseStart: function(/* event */) {},
- _mouseDrag: function(/* event */) {},
- _mouseStop: function(/* event */) {},
- _mouseCapture: function(/* event */) { return true; }
-});
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.widget("ui.draggable", $.ui.mouse, {
- version: "1.10.3",
- widgetEventPrefix: "drag",
- options: {
- addClasses: true,
- appendTo: "parent",
- axis: false,
- connectToSortable: false,
- containment: false,
- cursor: "auto",
- cursorAt: false,
- grid: false,
- handle: false,
- helper: "original",
- iframeFix: false,
- opacity: false,
- refreshPositions: false,
- revert: false,
- revertDuration: 500,
- scope: "default",
- scroll: true,
- scrollSensitivity: 20,
- scrollSpeed: 20,
- snap: false,
- snapMode: "both",
- snapTolerance: 20,
- stack: false,
- zIndex: false,
-
- // callbacks
- drag: null,
- start: null,
- stop: null
- },
- _create: function() {
-
- if (this.options.helper === "original" && !(/^(?:r|a|f)/).test(this.element.css("position"))) {
- this.element[0].style.position = "relative";
- }
- if (this.options.addClasses){
- this.element.addClass("ui-draggable");
- }
- if (this.options.disabled){
- this.element.addClass("ui-draggable-disabled");
- }
-
- this._mouseInit();
-
- },
-
- _destroy: function() {
- this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" );
- this._mouseDestroy();
- },
-
- _mouseCapture: function(event) {
-
- var o = this.options;
-
- // among others, prevent a drag on a resizable-handle
- if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) {
- return false;
- }
-
- //Quit if we're not on a valid handle
- this.handle = this._getHandle(event);
- if (!this.handle) {
- return false;
- }
-
- $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
- $("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>")
- .css({
- width: this.offsetWidth+"px", height: this.offsetHeight+"px",
- position: "absolute", opacity: "0.001", zIndex: 1000
- })
- .css($(this).offset())
- .appendTo("body");
- });
-
- return true;
-
- },
-
- _mouseStart: function(event) {
-
- var o = this.options;
-
- //Create and append the visible helper
- this.helper = this._createHelper(event);
-
- this.helper.addClass("ui-draggable-dragging");
-
- //Cache the helper size
- this._cacheHelperProportions();
-
- //If ddmanager is used for droppables, set the global draggable
- if($.ui.ddmanager) {
- $.ui.ddmanager.current = this;
- }
-
- /*
- * - Position generation -
- * This block generates everything position related - it's the core of draggables.
- */
-
- //Cache the margins of the original element
- this._cacheMargins();
-
- //Store the helper's css position
- this.cssPosition = this.helper.css( "position" );
- this.scrollParent = this.helper.scrollParent();
- this.offsetParent = this.helper.offsetParent();
- this.offsetParentCssPosition = this.offsetParent.css( "position" );
-
- //The element's absolute position on the page minus margins
- this.offset = this.positionAbs = this.element.offset();
- this.offset = {
- top: this.offset.top - this.margins.top,
- left: this.offset.left - this.margins.left
- };
-
- //Reset scroll cache
- this.offset.scroll = false;
-
- $.extend(this.offset, {
- click: { //Where the click happened, relative to the element
- left: event.pageX - this.offset.left,
- top: event.pageY - this.offset.top
- },
- parent: this._getParentOffset(),
- relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
- });
-
- //Generate the original position
- this.originalPosition = this.position = this._generatePosition(event);
- this.originalPageX = event.pageX;
- this.originalPageY = event.pageY;
-
- //Adjust the mouse offset relative to the helper if "cursorAt" is supplied
- (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
- //Set a containment if given in the options
- this._setContainment();
-
- //Trigger event + callbacks
- if(this._trigger("start", event) === false) {
- this._clear();
- return false;
- }
-
- //Recache the helper size
- this._cacheHelperProportions();
-
- //Prepare the droppable offsets
- if ($.ui.ddmanager && !o.dropBehaviour) {
- $.ui.ddmanager.prepareOffsets(this, event);
- }
-
-
- this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-
- //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
- if ( $.ui.ddmanager ) {
- $.ui.ddmanager.dragStart(this, event);
- }
-
- return true;
- },
-
- _mouseDrag: function(event, noPropagation) {
- // reset any necessary cached properties (see #5009)
- if ( this.offsetParentCssPosition === "fixed" ) {
- this.offset.parent = this._getParentOffset();
- }
-
- //Compute the helpers position
- this.position = this._generatePosition(event);
- this.positionAbs = this._convertPositionTo("absolute");
-
- //Call plugins and callbacks and use the resulting position if something is returned
- if (!noPropagation) {
- var ui = this._uiHash();
- if(this._trigger("drag", event, ui) === false) {
- this._mouseUp({});
- return false;
- }
- this.position = ui.position;
- }
-
- if(!this.options.axis || this.options.axis !== "y") {
- this.helper[0].style.left = this.position.left+"px";
- }
- if(!this.options.axis || this.options.axis !== "x") {
- this.helper[0].style.top = this.position.top+"px";
- }
- if($.ui.ddmanager) {
- $.ui.ddmanager.drag(this, event);
- }
-
- return false;
- },
-
- _mouseStop: function(event) {
-
- //If we are using droppables, inform the manager about the drop
- var that = this,
- dropped = false;
- if ($.ui.ddmanager && !this.options.dropBehaviour) {
- dropped = $.ui.ddmanager.drop(this, event);
- }
-
- //if a drop comes from outside (a sortable)
- if(this.dropped) {
- dropped = this.dropped;
- this.dropped = false;
- }
-
- //if the original element is no longer in the DOM don't bother to continue (see #8269)
- if ( this.options.helper === "original" && !$.contains( this.element[ 0 ].ownerDocument, this.element[ 0 ] ) ) {
- return false;
- }
-
- if((this.options.revert === "invalid" && !dropped) || (this.options.revert === "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
- $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
- if(that._trigger("stop", event) !== false) {
- that._clear();
- }
- });
- } else {
- if(this._trigger("stop", event) !== false) {
- this._clear();
- }
- }
-
- return false;
- },
-
- _mouseUp: function(event) {
- //Remove frame helpers
- $("div.ui-draggable-iframeFix").each(function() {
- this.parentNode.removeChild(this);
- });
-
- //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
- if( $.ui.ddmanager ) {
- $.ui.ddmanager.dragStop(this, event);
- }
-
- return $.ui.mouse.prototype._mouseUp.call(this, event);
- },
-
- cancel: function() {
-
- if(this.helper.is(".ui-draggable-dragging")) {
- this._mouseUp({});
- } else {
- this._clear();
- }
-
- return this;
-
- },
-
- _getHandle: function(event) {
- return this.options.handle ?
- !!$( event.target ).closest( this.element.find( this.options.handle ) ).length :
- true;
- },
-
- _createHelper: function(event) {
-
- var o = this.options,
- helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper === "clone" ? this.element.clone().removeAttr("id") : this.element);
-
- if(!helper.parents("body").length) {
- helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo));
- }
-
- if(helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) {
- helper.css("position", "absolute");
- }
-
- return helper;
-
- },
-
- _adjustOffsetFromHelper: function(obj) {
- if (typeof obj === "string") {
- obj = obj.split(" ");
- }
- if ($.isArray(obj)) {
- obj = {left: +obj[0], top: +obj[1] || 0};
- }
- if ("left" in obj) {
- this.offset.click.left = obj.left + this.margins.left;
- }
- if ("right" in obj) {
- this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
- }
- if ("top" in obj) {
- this.offset.click.top = obj.top + this.margins.top;
- }
- if ("bottom" in obj) {
- this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
- }
- },
-
- _getParentOffset: function() {
-
- //Get the offsetParent and cache its position
- var po = this.offsetParent.offset();
-
- // This is a special case where we need to modify a offset calculated on start, since the following happened:
- // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
- // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
- // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
- if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
- po.left += this.scrollParent.scrollLeft();
- po.top += this.scrollParent.scrollTop();
- }
-
- //This needs to be actually done for all browsers, since pageX/pageY includes this information
- //Ugly IE fix
- if((this.offsetParent[0] === document.body) ||
- (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) {
- po = { top: 0, left: 0 };
- }
-
- return {
- top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
- left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
- };
-
- },
-
- _getRelativeOffset: function() {
-
- if(this.cssPosition === "relative") {
- var p = this.element.position();
- return {
- top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
- left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
- };
- } else {
- return { top: 0, left: 0 };
- }
-
- },
-
- _cacheMargins: function() {
- this.margins = {
- left: (parseInt(this.element.css("marginLeft"),10) || 0),
- top: (parseInt(this.element.css("marginTop"),10) || 0),
- right: (parseInt(this.element.css("marginRight"),10) || 0),
- bottom: (parseInt(this.element.css("marginBottom"),10) || 0)
- };
- },
-
- _cacheHelperProportions: function() {
- this.helperProportions = {
- width: this.helper.outerWidth(),
- height: this.helper.outerHeight()
- };
- },
-
- _setContainment: function() {
-
- var over, c, ce,
- o = this.options;
-
- if ( !o.containment ) {
- this.containment = null;
- return;
- }
-
- if ( o.containment === "window" ) {
- this.containment = [
- $( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
- $( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,
- $( window ).scrollLeft() + $( window ).width() - this.helperProportions.width - this.margins.left,
- $( window ).scrollTop() + ( $( window ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top
- ];
- return;
- }
-
- if ( o.containment === "document") {
- this.containment = [
- 0,
- 0,
- $( document ).width() - this.helperProportions.width - this.margins.left,
- ( $( document ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top
- ];
- return;
- }
-
- if ( o.containment.constructor === Array ) {
- this.containment = o.containment;
- return;
- }
-
- if ( o.containment === "parent" ) {
- o.containment = this.helper[ 0 ].parentNode;
- }
-
- c = $( o.containment );
- ce = c[ 0 ];
-
- if( !ce ) {
- return;
- }
-
- over = c.css( "overflow" ) !== "hidden";
-
- this.containment = [
- ( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ),
- ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ) ,
- ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - this.helperProportions.width - this.margins.left - this.margins.right,
- ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - this.helperProportions.height - this.margins.top - this.margins.bottom
- ];
- this.relative_container = c;
- },
-
- _convertPositionTo: function(d, pos) {
-
- if(!pos) {
- pos = this.position;
- }
-
- var mod = d === "absolute" ? 1 : -1,
- scroll = this.cssPosition === "absolute" && !( this.scrollParent[ 0 ] !== document && $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ? this.offsetParent : this.scrollParent;
-
- //Cache the scroll
- if (!this.offset.scroll) {
- this.offset.scroll = {top : scroll.scrollTop(), left : scroll.scrollLeft()};
- }
-
- return {
- top: (
- pos.top + // The absolute mouse position
- this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent
- this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border)
- ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : this.offset.scroll.top ) * mod )
- ),
- left: (
- pos.left + // The absolute mouse position
- this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent
- this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border)
- ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : this.offset.scroll.left ) * mod )
- )
- };
-
- },
-
- _generatePosition: function(event) {
-
- var containment, co, top, left,
- o = this.options,
- scroll = this.cssPosition === "absolute" && !( this.scrollParent[ 0 ] !== document && $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ? this.offsetParent : this.scrollParent,
- pageX = event.pageX,
- pageY = event.pageY;
-
- //Cache the scroll
- if (!this.offset.scroll) {
- this.offset.scroll = {top : scroll.scrollTop(), left : scroll.scrollLeft()};
- }
-
- /*
- * - Position constraining -
- * Constrain the position to a mix of grid, containment.
- */
-
- // If we are not dragging yet, we won't check for options
- if ( this.originalPosition ) {
- if ( this.containment ) {
- if ( this.relative_container ){
- co = this.relative_container.offset();
- containment = [
- this.containment[ 0 ] + co.left,
- this.containment[ 1 ] + co.top,
- this.containment[ 2 ] + co.left,
- this.containment[ 3 ] + co.top
- ];
- }
- else {
- containment = this.containment;
- }
-
- if(event.pageX - this.offset.click.left < containment[0]) {
- pageX = containment[0] + this.offset.click.left;
- }
- if(event.pageY - this.offset.click.top < containment[1]) {
- pageY = containment[1] + this.offset.click.top;
- }
- if(event.pageX - this.offset.click.left > containment[2]) {
- pageX = containment[2] + this.offset.click.left;
- }
- if(event.pageY - this.offset.click.top > containment[3]) {
- pageY = containment[3] + this.offset.click.top;
- }
- }
-
- if(o.grid) {
- //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)
- top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
- pageY = containment ? ((top - this.offset.click.top >= containment[1] || top - this.offset.click.top > containment[3]) ? top : ((top - this.offset.click.top >= containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
- left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
- pageX = containment ? ((left - this.offset.click.left >= containment[0] || left - this.offset.click.left > containment[2]) ? left : ((left - this.offset.click.left >= containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
- }
-
- }
-
- return {
- top: (
- pageY - // The absolute mouse position
- this.offset.click.top - // Click offset (relative to the element)
- this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent
- this.offset.parent.top + // The offsetParent's offset without borders (offset + border)
- ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : this.offset.scroll.top )
- ),
- left: (
- pageX - // The absolute mouse position
- this.offset.click.left - // Click offset (relative to the element)
- this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent
- this.offset.parent.left + // The offsetParent's offset without borders (offset + border)
- ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : this.offset.scroll.left )
- )
- };
-
- },
-
- _clear: function() {
- this.helper.removeClass("ui-draggable-dragging");
- if(this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {
- this.helper.remove();
- }
- this.helper = null;
- this.cancelHelperRemoval = false;
- },
-
- // From now on bulk stuff - mainly helpers
-
- _trigger: function(type, event, ui) {
- ui = ui || this._uiHash();
- $.ui.plugin.call(this, type, [event, ui]);
- //The absolute position has to be recalculated after plugins
- if(type === "drag") {
- this.positionAbs = this._convertPositionTo("absolute");
- }
- return $.Widget.prototype._trigger.call(this, type, event, ui);
- },
-
- plugins: {},
-
- _uiHash: function() {
- return {
- helper: this.helper,
- position: this.position,
- originalPosition: this.originalPosition,
- offset: this.positionAbs
- };
- }
-
-});
-
-$.ui.plugin.add("draggable", "connectToSortable", {
- start: function(event, ui) {
-
- var inst = $(this).data("ui-draggable"), o = inst.options,
- uiSortable = $.extend({}, ui, { item: inst.element });
- inst.sortables = [];
- $(o.connectToSortable).each(function() {
- var sortable = $.data(this, "ui-sortable");
- if (sortable && !sortable.options.disabled) {
- inst.sortables.push({
- instance: sortable,
- shouldRevert: sortable.options.revert
- });
- sortable.refreshPositions(); // Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page).
- sortable._trigger("activate", event, uiSortable);
- }
- });
-
- },
- stop: function(event, ui) {
-
- //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper
- var inst = $(this).data("ui-draggable"),
- uiSortable = $.extend({}, ui, { item: inst.element });
-
- $.each(inst.sortables, function() {
- if(this.instance.isOver) {
-
- this.instance.isOver = 0;
-
- inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance
- this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)
-
- //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: "valid/invalid"
- if(this.shouldRevert) {
- this.instance.options.revert = this.shouldRevert;
- }
-
- //Trigger the stop of the sortable
- this.instance._mouseStop(event);
-
- this.instance.options.helper = this.instance.options._helper;
-
- //If the helper has been the original item, restore properties in the sortable
- if(inst.options.helper === "original") {
- this.instance.currentItem.css({ top: "auto", left: "auto" });
- }
-
- } else {
- this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance
- this.instance._trigger("deactivate", event, uiSortable);
- }
-
- });
-
- },
- drag: function(event, ui) {
-
- var inst = $(this).data("ui-draggable"), that = this;
-
- $.each(inst.sortables, function() {
-
- var innermostIntersecting = false,
- thisSortable = this;
-
- //Copy over some variables to allow calling the sortable's native _intersectsWith
- this.instance.positionAbs = inst.positionAbs;
- this.instance.helperProportions = inst.helperProportions;
- this.instance.offset.click = inst.offset.click;
-
- if(this.instance._intersectsWith(this.instance.containerCache)) {
- innermostIntersecting = true;
- $.each(inst.sortables, function () {
- this.instance.positionAbs = inst.positionAbs;
- this.instance.helperProportions = inst.helperProportions;
- this.instance.offset.click = inst.offset.click;
- if (this !== thisSortable &&
- this.instance._intersectsWith(this.instance.containerCache) &&
- $.contains(thisSortable.instance.element[0], this.instance.element[0])
- ) {
- innermostIntersecting = false;
- }
- return innermostIntersecting;
- });
- }
-
-
- if(innermostIntersecting) {
- //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
- if(!this.instance.isOver) {
-
- this.instance.isOver = 1;
- //Now we fake the start of dragging for the sortable instance,
- //by cloning the list group item, appending it to the sortable and using it as inst.currentItem
- //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one)
- this.instance.currentItem = $(that).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", true);
- this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it
- this.instance.options.helper = function() { return ui.helper[0]; };
-
- event.target = this.instance.currentItem[0];
- this.instance._mouseCapture(event, true);
- this.instance._mouseStart(event, true, true);
-
- //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes
- this.instance.offset.click.top = inst.offset.click.top;
- this.instance.offset.click.left = inst.offset.click.left;
- this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;
- this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;
-
- inst._trigger("toSortable", event);
- inst.dropped = this.instance.element; //draggable revert needs that
- //hack so receive/update callbacks work (mostly)
- inst.currentItem = inst.element;
- this.instance.fromOutside = inst;
-
- }
-
- //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable
- if(this.instance.currentItem) {
- this.instance._mouseDrag(event);
- }
-
- } else {
-
- //If it doesn't intersect with the sortable, and it intersected before,
- //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
- if(this.instance.isOver) {
-
- this.instance.isOver = 0;
- this.instance.cancelHelperRemoval = true;
-
- //Prevent reverting on this forced stop
- this.instance.options.revert = false;
-
- // The out event needs to be triggered independently
- this.instance._trigger("out", event, this.instance._uiHash(this.instance));
-
- this.instance._mouseStop(event, true);
- this.instance.options.helper = this.instance.options._helper;
-
- //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size
- this.instance.currentItem.remove();
- if(this.instance.placeholder) {
- this.instance.placeholder.remove();
- }
-
- inst._trigger("fromSortable", event);
- inst.dropped = false; //draggable revert needs that
- }
-
- }
-
- });
-
- }
-});
-
-$.ui.plugin.add("draggable", "cursor", {
- start: function() {
- var t = $("body"), o = $(this).data("ui-draggable").options;
- if (t.css("cursor")) {
- o._cursor = t.css("cursor");
- }
- t.css("cursor", o.cursor);
- },
- stop: function() {
- var o = $(this).data("ui-draggable").options;
- if (o._cursor) {
- $("body").css("cursor", o._cursor);
- }
- }
-});
-
-$.ui.plugin.add("draggable", "opacity", {
- start: function(event, ui) {
- var t = $(ui.helper), o = $(this).data("ui-draggable").options;
- if(t.css("opacity")) {
- o._opacity = t.css("opacity");
- }
- t.css("opacity", o.opacity);
- },
- stop: function(event, ui) {
- var o = $(this).data("ui-draggable").options;
- if(o._opacity) {
- $(ui.helper).css("opacity", o._opacity);
- }
- }
-});
-
-$.ui.plugin.add("draggable", "scroll", {
- start: function() {
- var i = $(this).data("ui-draggable");
- if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") {
- i.overflowOffset = i.scrollParent.offset();
- }
- },
- drag: function( event ) {
-
- var i = $(this).data("ui-draggable"), o = i.options, scrolled = false;
-
- if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") {
-
- if(!o.axis || o.axis !== "x") {
- if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {
- i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
- } else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) {
- i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
- }
- }
-
- if(!o.axis || o.axis !== "y") {
- if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {
- i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
- } else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) {
- i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
- }
- }
-
- } else {
-
- if(!o.axis || o.axis !== "x") {
- if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) {
- scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
- } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {
- scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
- }
- }
-
- if(!o.axis || o.axis !== "y") {
- if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {
- scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
- } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {
- scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
- }
- }
-
- }
-
- if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
- $.ui.ddmanager.prepareOffsets(i, event);
- }
-
- }
-});
-
-$.ui.plugin.add("draggable", "snap", {
- start: function() {
-
- var i = $(this).data("ui-draggable"),
- o = i.options;
-
- i.snapElements = [];
-
- $(o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap).each(function() {
- var $t = $(this),
- $o = $t.offset();
- if(this !== i.element[0]) {
- i.snapElements.push({
- item: this,
- width: $t.outerWidth(), height: $t.outerHeight(),
- top: $o.top, left: $o.left
- });
- }
- });
-
- },
- drag: function(event, ui) {
-
- var ts, bs, ls, rs, l, r, t, b, i, first,
- inst = $(this).data("ui-draggable"),
- o = inst.options,
- d = o.snapTolerance,
- x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
- y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
-
- for (i = inst.snapElements.length - 1; i >= 0; i--){
-
- l = inst.snapElements[i].left;
- r = l + inst.snapElements[i].width;
- t = inst.snapElements[i].top;
- b = t + inst.snapElements[i].height;
-
- if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) {
- if(inst.snapElements[i].snapping) {
- (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
- }
- inst.snapElements[i].snapping = false;
- continue;
- }
-
- if(o.snapMode !== "inner") {
- ts = Math.abs(t - y2) <= d;
- bs = Math.abs(b - y1) <= d;
- ls = Math.abs(l - x2) <= d;
- rs = Math.abs(r - x1) <= d;
- if(ts) {
- ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
- }
- if(bs) {
- ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
- }
- if(ls) {
- ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
- }
- if(rs) {
- ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
- }
- }
-
- first = (ts || bs || ls || rs);
-
- if(o.snapMode !== "outer") {
- ts = Math.abs(t - y1) <= d;
- bs = Math.abs(b - y2) <= d;
- ls = Math.abs(l - x1) <= d;
- rs = Math.abs(r - x2) <= d;
- if(ts) {
- ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
- }
- if(bs) {
- ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
- }
- if(ls) {
- ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
- }
- if(rs) {
- ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
- }
- }
-
- if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {
- (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
- }
- inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
-
- }
-
- }
-});
-
-$.ui.plugin.add("draggable", "stack", {
- start: function() {
- var min,
- o = this.data("ui-draggable").options,
- group = $.makeArray($(o.stack)).sort(function(a,b) {
- return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
- });
-
- if (!group.length) { return; }
-
- min = parseInt($(group[0]).css("zIndex"), 10) || 0;
- $(group).each(function(i) {
- $(this).css("zIndex", min + i);
- });
- this.css("zIndex", (min + group.length));
- }
-});
-
-$.ui.plugin.add("draggable", "zIndex", {
- start: function(event, ui) {
- var t = $(ui.helper), o = $(this).data("ui-draggable").options;
- if(t.css("zIndex")) {
- o._zIndex = t.css("zIndex");
- }
- t.css("zIndex", o.zIndex);
- },
- stop: function(event, ui) {
- var o = $(this).data("ui-draggable").options;
- if(o._zIndex) {
- $(ui.helper).css("zIndex", o._zIndex);
- }
- }
-});
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-function isOverAxis( x, reference, size ) {
- return ( x > reference ) && ( x < ( reference + size ) );
-}
-
-$.widget("ui.droppable", {
- version: "1.10.3",
- widgetEventPrefix: "drop",
- options: {
- accept: "*",
- activeClass: false,
- addClasses: true,
- greedy: false,
- hoverClass: false,
- scope: "default",
- tolerance: "intersect",
-
- // callbacks
- activate: null,
- deactivate: null,
- drop: null,
- out: null,
- over: null
- },
- _create: function() {
-
- var o = this.options,
- accept = o.accept;
-
- this.isover = false;
- this.isout = true;
-
- this.accept = $.isFunction(accept) ? accept : function(d) {
- return d.is(accept);
- };
-
- //Store the droppable's proportions
- this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
-
- // Add the reference and positions to the manager
- $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
- $.ui.ddmanager.droppables[o.scope].push(this);
-
- (o.addClasses && this.element.addClass("ui-droppable"));
-
- },
-
- _destroy: function() {
- var i = 0,
- drop = $.ui.ddmanager.droppables[this.options.scope];
-
- for ( ; i < drop.length; i++ ) {
- if ( drop[i] === this ) {
- drop.splice(i, 1);
- }
- }
-
- this.element.removeClass("ui-droppable ui-droppable-disabled");
- },
-
- _setOption: function(key, value) {
-
- if(key === "accept") {
- this.accept = $.isFunction(value) ? value : function(d) {
- return d.is(value);
- };
- }
- $.Widget.prototype._setOption.apply(this, arguments);
- },
-
- _activate: function(event) {
- var draggable = $.ui.ddmanager.current;
- if(this.options.activeClass) {
- this.element.addClass(this.options.activeClass);
- }
- if(draggable){
- this._trigger("activate", event, this.ui(draggable));
- }
- },
-
- _deactivate: function(event) {
- var draggable = $.ui.ddmanager.current;
- if(this.options.activeClass) {
- this.element.removeClass(this.options.activeClass);
- }
- if(draggable){
- this._trigger("deactivate", event, this.ui(draggable));
- }
- },
-
- _over: function(event) {
-
- var draggable = $.ui.ddmanager.current;
-
- // Bail if draggable and droppable are same element
- if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {
- return;
- }
-
- if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
- if(this.options.hoverClass) {
- this.element.addClass(this.options.hoverClass);
- }
- this._trigger("over", event, this.ui(draggable));
- }
-
- },
-
- _out: function(event) {
-
- var draggable = $.ui.ddmanager.current;
-
- // Bail if draggable and droppable are same element
- if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {
- return;
- }
-
- if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
- if(this.options.hoverClass) {
- this.element.removeClass(this.options.hoverClass);
- }
- this._trigger("out", event, this.ui(draggable));
- }
-
- },
-
- _drop: function(event,custom) {
-
- var draggable = custom || $.ui.ddmanager.current,
- childrenIntersection = false;
-
- // Bail if draggable and droppable are same element
- if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {
- return false;
- }
-
- this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() {
- var inst = $.data(this, "ui-droppable");
- if(
- inst.options.greedy &&
- !inst.options.disabled &&
- inst.options.scope === draggable.options.scope &&
- inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) &&
- $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)
- ) { childrenIntersection = true; return false; }
- });
- if(childrenIntersection) {
- return false;
- }
-
- if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
- if(this.options.activeClass) {
- this.element.removeClass(this.options.activeClass);
- }
- if(this.options.hoverClass) {
- this.element.removeClass(this.options.hoverClass);
- }
- this._trigger("drop", event, this.ui(draggable));
- return this.element;
- }
-
- return false;
-
- },
-
- ui: function(c) {
- return {
- draggable: (c.currentItem || c.element),
- helper: c.helper,
- position: c.position,
- offset: c.positionAbs
- };
- }
-
-});
-
-$.ui.intersect = function(draggable, droppable, toleranceMode) {
-
- if (!droppable.offset) {
- return false;
- }
-
- var draggableLeft, draggableTop,
- x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,
- y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height,
- l = droppable.offset.left, r = l + droppable.proportions.width,
- t = droppable.offset.top, b = t + droppable.proportions.height;
-
- switch (toleranceMode) {
- case "fit":
- return (l <= x1 && x2 <= r && t <= y1 && y2 <= b);
- case "intersect":
- return (l < x1 + (draggable.helperProportions.width / 2) && // Right Half
- x2 - (draggable.helperProportions.width / 2) < r && // Left Half
- t < y1 + (draggable.helperProportions.height / 2) && // Bottom Half
- y2 - (draggable.helperProportions.height / 2) < b ); // Top Half
- case "pointer":
- draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left);
- draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top);
- return isOverAxis( draggableTop, t, droppable.proportions.height ) && isOverAxis( draggableLeft, l, droppable.proportions.width );
- case "touch":
- return (
- (y1 >= t && y1 <= b) || // Top edge touching
- (y2 >= t && y2 <= b) || // Bottom edge touching
- (y1 < t && y2 > b) // Surrounded vertically
- ) && (
- (x1 >= l && x1 <= r) || // Left edge touching
- (x2 >= l && x2 <= r) || // Right edge touching
- (x1 < l && x2 > r) // Surrounded horizontally
- );
- default:
- return false;
- }
-
-};
-
-/*
- This manager tracks offsets of draggables and droppables
-*/
-$.ui.ddmanager = {
- current: null,
- droppables: { "default": [] },
- prepareOffsets: function(t, event) {
-
- var i, j,
- m = $.ui.ddmanager.droppables[t.options.scope] || [],
- type = event ? event.type : null, // workaround for #2317
- list = (t.currentItem || t.element).find(":data(ui-droppable)").addBack();
-
- droppablesLoop: for (i = 0; i < m.length; i++) {
-
- //No disabled and non-accepted
- if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) {
- continue;
- }
-
- // Filter out elements in the current dragged item
- for (j=0; j < list.length; j++) {
- if(list[j] === m[i].element[0]) {
- m[i].proportions.height = 0;
- continue droppablesLoop;
- }
- }
-
- m[i].visible = m[i].element.css("display") !== "none";
- if(!m[i].visible) {
- continue;
- }
-
- //Activate the droppable if used directly from draggables
- if(type === "mousedown") {
- m[i]._activate.call(m[i], event);
- }
-
- m[i].offset = m[i].element.offset();
- m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };
-
- }
-
- },
- drop: function(draggable, event) {
-
- var dropped = false;
- // Create a copy of the droppables in case the list changes during the drop (#9116)
- $.each(($.ui.ddmanager.droppables[draggable.options.scope] || []).slice(), function() {
-
- if(!this.options) {
- return;
- }
- if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) {
- dropped = this._drop.call(this, event) || dropped;
- }
-
- if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
- this.isout = true;
- this.isover = false;
- this._deactivate.call(this, event);
- }
-
- });
- return dropped;
-
- },
- dragStart: function( draggable, event ) {
- //Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)
- draggable.element.parentsUntil( "body" ).bind( "scroll.droppable", function() {
- if( !draggable.options.refreshPositions ) {
- $.ui.ddmanager.prepareOffsets( draggable, event );
- }
- });
- },
- drag: function(draggable, event) {
-
- //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
- if(draggable.options.refreshPositions) {
- $.ui.ddmanager.prepareOffsets(draggable, event);
- }
-
- //Run through all droppables and check their positions based on specific tolerance options
- $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
-
- if(this.options.disabled || this.greedyChild || !this.visible) {
- return;
- }
-
- var parentInstance, scope, parent,
- intersects = $.ui.intersect(draggable, this, this.options.tolerance),
- c = !intersects && this.isover ? "isout" : (intersects && !this.isover ? "isover" : null);
- if(!c) {
- return;
- }
-
- if (this.options.greedy) {
- // find droppable parents with same scope
- scope = this.options.scope;
- parent = this.element.parents(":data(ui-droppable)").filter(function () {
- return $.data(this, "ui-droppable").options.scope === scope;
- });
-
- if (parent.length) {
- parentInstance = $.data(parent[0], "ui-droppable");
- parentInstance.greedyChild = (c === "isover");
- }
- }
-
- // we just moved into a greedy child
- if (parentInstance && c === "isover") {
- parentInstance.isover = false;
- parentInstance.isout = true;
- parentInstance._out.call(parentInstance, event);
- }
-
- this[c] = true;
- this[c === "isout" ? "isover" : "isout"] = false;
- this[c === "isover" ? "_over" : "_out"].call(this, event);
-
- // we just moved out of a greedy child
- if (parentInstance && c === "isout") {
- parentInstance.isout = false;
- parentInstance.isover = true;
- parentInstance._over.call(parentInstance, event);
- }
- });
-
- },
- dragStop: function( draggable, event ) {
- draggable.element.parentsUntil( "body" ).unbind( "scroll.droppable" );
- //Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)
- if( !draggable.options.refreshPositions ) {
- $.ui.ddmanager.prepareOffsets( draggable, event );
- }
- }
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-function num(v) {
- return parseInt(v, 10) || 0;
-}
-
-function isNumber(value) {
- return !isNaN(parseInt(value, 10));
-}
-
-$.widget("ui.resizable", $.ui.mouse, {
- version: "1.10.3",
- widgetEventPrefix: "resize",
- options: {
- alsoResize: false,
- animate: false,
- animateDuration: "slow",
- animateEasing: "swing",
- aspectRatio: false,
- autoHide: false,
- containment: false,
- ghost: false,
- grid: false,
- handles: "e,s,se",
- helper: false,
- maxHeight: null,
- maxWidth: null,
- minHeight: 10,
- minWidth: 10,
- // See #7960
- zIndex: 90,
-
- // callbacks
- resize: null,
- start: null,
- stop: null
- },
- _create: function() {
-
- var n, i, handle, axis, hname,
- that = this,
- o = this.options;
- this.element.addClass("ui-resizable");
-
- $.extend(this, {
- _aspectRatio: !!(o.aspectRatio),
- aspectRatio: o.aspectRatio,
- originalElement: this.element,
- _proportionallyResizeElements: [],
- _helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null
- });
-
- //Wrap the element if it cannot hold child nodes
- if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
-
- //Create a wrapper element and set the wrapper to the new current internal element
- this.element.wrap(
- $("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({
- position: this.element.css("position"),
- width: this.element.outerWidth(),
- height: this.element.outerHeight(),
- top: this.element.css("top"),
- left: this.element.css("left")
- })
- );
-
- //Overwrite the original this.element
- this.element = this.element.parent().data(
- "ui-resizable", this.element.data("ui-resizable")
- );
-
- this.elementIsWrapper = true;
-
- //Move margins to the wrapper
- this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") });
- this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0});
-
- //Prevent Safari textarea resize
- this.originalResizeStyle = this.originalElement.css("resize");
- this.originalElement.css("resize", "none");
-
- //Push the actual element to our proportionallyResize internal array
- this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" }));
-
- // avoid IE jump (hard set the margin)
- this.originalElement.css({ margin: this.originalElement.css("margin") });
-
- // fix handlers offset
- this._proportionallyResize();
-
- }
-
- this.handles = o.handles || (!$(".ui-resizable-handle", this.element).length ? "e,s,se" : { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne", nw: ".ui-resizable-nw" });
- if(this.handles.constructor === String) {
-
- if ( this.handles === "all") {
- this.handles = "n,e,s,w,se,sw,ne,nw";
- }
-
- n = this.handles.split(",");
- this.handles = {};
-
- for(i = 0; i < n.length; i++) {
-
- handle = $.trim(n[i]);
- hname = "ui-resizable-"+handle;
- axis = $("<div class='ui-resizable-handle " + hname + "'></div>");
-
- // Apply zIndex to all handles - see #7960
- axis.css({ zIndex: o.zIndex });
-
- //TODO : What's going on here?
- if ("se" === handle) {
- axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se");
- }
-
- //Insert into internal handles object and append to element
- this.handles[handle] = ".ui-resizable-"+handle;
- this.element.append(axis);
- }
-
- }
-
- this._renderAxis = function(target) {
-
- var i, axis, padPos, padWrapper;
-
- target = target || this.element;
-
- for(i in this.handles) {
-
- if(this.handles[i].constructor === String) {
- this.handles[i] = $(this.handles[i], this.element).show();
- }
-
- //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls)
- if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
-
- axis = $(this.handles[i], this.element);
-
- //Checking the correct pad and border
- padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
-
- //The padding type i have to apply...
- padPos = [ "padding",
- /ne|nw|n/.test(i) ? "Top" :
- /se|sw|s/.test(i) ? "Bottom" :
- /^e$/.test(i) ? "Right" : "Left" ].join("");
-
- target.css(padPos, padWrapper);
-
- this._proportionallyResize();
-
- }
-
- //TODO: What's that good for? There's not anything to be executed left
- if(!$(this.handles[i]).length) {
- continue;
- }
- }
- };
-
- //TODO: make renderAxis a prototype function
- this._renderAxis(this.element);
-
- this._handles = $(".ui-resizable-handle", this.element)
- .disableSelection();
-
- //Matching axis name
- this._handles.mouseover(function() {
- if (!that.resizing) {
- if (this.className) {
- axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
- }
- //Axis, default = se
- that.axis = axis && axis[1] ? axis[1] : "se";
- }
- });
-
- //If we want to auto hide the elements
- if (o.autoHide) {
- this._handles.hide();
- $(this.element)
- .addClass("ui-resizable-autohide")
- .mouseenter(function() {
- if (o.disabled) {
- return;
- }
- $(this).removeClass("ui-resizable-autohide");
- that._handles.show();
- })
- .mouseleave(function(){
- if (o.disabled) {
- return;
- }
- if (!that.resizing) {
- $(this).addClass("ui-resizable-autohide");
- that._handles.hide();
- }
- });
- }
-
- //Initialize the mouse interaction
- this._mouseInit();
-
- },
-
- _destroy: function() {
-
- this._mouseDestroy();
-
- var wrapper,
- _destroy = function(exp) {
- $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
- .removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove();
- };
-
- //TODO: Unwrap at same DOM position
- if (this.elementIsWrapper) {
- _destroy(this.element);
- wrapper = this.element;
- this.originalElement.css({
- position: wrapper.css("position"),
- width: wrapper.outerWidth(),
- height: wrapper.outerHeight(),
- top: wrapper.css("top"),
- left: wrapper.css("left")
- }).insertAfter( wrapper );
- wrapper.remove();
- }
-
- this.originalElement.css("resize", this.originalResizeStyle);
- _destroy(this.originalElement);
-
- return this;
- },
-
- _mouseCapture: function(event) {
- var i, handle,
- capture = false;
-
- for (i in this.handles) {
- handle = $(this.handles[i])[0];
- if (handle === event.target || $.contains(handle, event.target)) {
- capture = true;
- }
- }
-
- return !this.options.disabled && capture;
- },
-
- _mouseStart: function(event) {
-
- var curleft, curtop, cursor,
- o = this.options,
- iniPos = this.element.position(),
- el = this.element;
-
- this.resizing = true;
-
- // bugfix for http://dev.jquery.com/ticket/1749
- if ( (/absolute/).test( el.css("position") ) ) {
- el.css({ position: "absolute", top: el.css("top"), left: el.css("left") });
- } else if (el.is(".ui-draggable")) {
- el.css({ position: "absolute", top: iniPos.top, left: iniPos.left });
- }
-
- this._renderProxy();
-
- curleft = num(this.helper.css("left"));
- curtop = num(this.helper.css("top"));
-
- if (o.containment) {
- curleft += $(o.containment).scrollLeft() || 0;
- curtop += $(o.containment).scrollTop() || 0;
- }
-
- //Store needed variables
- this.offset = this.helper.offset();
- this.position = { left: curleft, top: curtop };
- this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
- this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
- this.originalPosition = { left: curleft, top: curtop };
- this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };
- this.originalMousePosition = { left: event.pageX, top: event.pageY };
-
- //Aspect Ratio
- this.aspectRatio = (typeof o.aspectRatio === "number") ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);
-
- cursor = $(".ui-resizable-" + this.axis).css("cursor");
- $("body").css("cursor", cursor === "auto" ? this.axis + "-resize" : cursor);
-
- el.addClass("ui-resizable-resizing");
- this._propagate("start", event);
- return true;
- },
-
- _mouseDrag: function(event) {
-
- //Increase performance, avoid regex
- var data,
- el = this.helper, props = {},
- smp = this.originalMousePosition,
- a = this.axis,
- prevTop = this.position.top,
- prevLeft = this.position.left,
- prevWidth = this.size.width,
- prevHeight = this.size.height,
- dx = (event.pageX-smp.left)||0,
- dy = (event.pageY-smp.top)||0,
- trigger = this._change[a];
-
- if (!trigger) {
- return false;
- }
-
- // Calculate the attrs that will be change
- data = trigger.apply(this, [event, dx, dy]);
-
- // Put this in the mouseDrag handler since the user can start pressing shift while resizing
- this._updateVirtualBoundaries(event.shiftKey);
- if (this._aspectRatio || event.shiftKey) {
- data = this._updateRatio(data, event);
- }
-
- data = this._respectSize(data, event);
-
- this._updateCache(data);
-
- // plugins callbacks need to be called first
- this._propagate("resize", event);
-
- if (this.position.top !== prevTop) {
- props.top = this.position.top + "px";
- }
- if (this.position.left !== prevLeft) {
- props.left = this.position.left + "px";
- }
- if (this.size.width !== prevWidth) {
- props.width = this.size.width + "px";
- }
- if (this.size.height !== prevHeight) {
- props.height = this.size.height + "px";
- }
- el.css(props);
-
- if (!this._helper && this._proportionallyResizeElements.length) {
- this._proportionallyResize();
- }
-
- // Call the user callback if the element was resized
- if ( ! $.isEmptyObject(props) ) {
- this._trigger("resize", event, this.ui());
- }
-
- return false;
- },
-
- _mouseStop: function(event) {
-
- this.resizing = false;
- var pr, ista, soffseth, soffsetw, s, left, top,
- o = this.options, that = this;
-
- if(this._helper) {
-
- pr = this._proportionallyResizeElements;
- ista = pr.length && (/textarea/i).test(pr[0].nodeName);
- soffseth = ista && $.ui.hasScroll(pr[0], "left") /* TODO - jump height */ ? 0 : that.sizeDiff.height;
- soffsetw = ista ? 0 : that.sizeDiff.width;
-
- s = { width: (that.helper.width() - soffsetw), height: (that.helper.height() - soffseth) };
- left = (parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left)) || null;
- top = (parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top)) || null;
-
- if (!o.animate) {
- this.element.css($.extend(s, { top: top, left: left }));
- }
-
- that.helper.height(that.size.height);
- that.helper.width(that.size.width);
-
- if (this._helper && !o.animate) {
- this._proportionallyResize();
- }
- }
-
- $("body").css("cursor", "auto");
-
- this.element.removeClass("ui-resizable-resizing");
-
- this._propagate("stop", event);
-
- if (this._helper) {
- this.helper.remove();
- }
-
- return false;
-
- },
-
- _updateVirtualBoundaries: function(forceAspectRatio) {
- var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,
- o = this.options;
-
- b = {
- minWidth: isNumber(o.minWidth) ? o.minWidth : 0,
- maxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity,
- minHeight: isNumber(o.minHeight) ? o.minHeight : 0,
- maxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity
- };
-
- if(this._aspectRatio || forceAspectRatio) {
- // We want to create an enclosing box whose aspect ration is the requested one
- // First, compute the "projected" size for each dimension based on the aspect ratio and other dimension
- pMinWidth = b.minHeight * this.aspectRatio;
- pMinHeight = b.minWidth / this.aspectRatio;
- pMaxWidth = b.maxHeight * this.aspectRatio;
- pMaxHeight = b.maxWidth / this.aspectRatio;
-
- if(pMinWidth > b.minWidth) {
- b.minWidth = pMinWidth;
- }
- if(pMinHeight > b.minHeight) {
- b.minHeight = pMinHeight;
- }
- if(pMaxWidth < b.maxWidth) {
- b.maxWidth = pMaxWidth;
- }
- if(pMaxHeight < b.maxHeight) {
- b.maxHeight = pMaxHeight;
- }
- }
- this._vBoundaries = b;
- },
-
- _updateCache: function(data) {
- this.offset = this.helper.offset();
- if (isNumber(data.left)) {
- this.position.left = data.left;
- }
- if (isNumber(data.top)) {
- this.position.top = data.top;
- }
- if (isNumber(data.height)) {
- this.size.height = data.height;
- }
- if (isNumber(data.width)) {
- this.size.width = data.width;
- }
- },
-
- _updateRatio: function( data ) {
-
- var cpos = this.position,
- csize = this.size,
- a = this.axis;
-
- if (isNumber(data.height)) {
- data.width = (data.height * this.aspectRatio);
- } else if (isNumber(data.width)) {
- data.height = (data.width / this.aspectRatio);
- }
-
- if (a === "sw") {
- data.left = cpos.left + (csize.width - data.width);
- data.top = null;
- }
- if (a === "nw") {
- data.top = cpos.top + (csize.height - data.height);
- data.left = cpos.left + (csize.width - data.width);
- }
-
- return data;
- },
-
- _respectSize: function( data ) {
-
- var o = this._vBoundaries,
- a = this.axis,
- ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),
- isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height),
- dw = this.originalPosition.left + this.originalSize.width,
- dh = this.position.top + this.size.height,
- cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
- if (isminw) {
- data.width = o.minWidth;
- }
- if (isminh) {
- data.height = o.minHeight;
- }
- if (ismaxw) {
- data.width = o.maxWidth;
- }
- if (ismaxh) {
- data.height = o.maxHeight;
- }
-
- if (isminw && cw) {
- data.left = dw - o.minWidth;
- }
- if (ismaxw && cw) {
- data.left = dw - o.maxWidth;
- }
- if (isminh && ch) {
- data.top = dh - o.minHeight;
- }
- if (ismaxh && ch) {
- data.top = dh - o.maxHeight;
- }
-
- // fixing jump error on top/left - bug #2330
- if (!data.width && !data.height && !data.left && data.top) {
- data.top = null;
- } else if (!data.width && !data.height && !data.top && data.left) {
- data.left = null;
- }
-
- return data;
- },
-
- _proportionallyResize: function() {
-
- if (!this._proportionallyResizeElements.length) {
- return;
- }
-
- var i, j, borders, paddings, prel,
- element = this.helper || this.element;
-
- for ( i=0; i < this._proportionallyResizeElements.length; i++) {
-
- prel = this._proportionallyResizeElements[i];
-
- if (!this.borderDif) {
- this.borderDif = [];
- borders = [prel.css("borderTopWidth"), prel.css("borderRightWidth"), prel.css("borderBottomWidth"), prel.css("borderLeftWidth")];
- paddings = [prel.css("paddingTop"), prel.css("paddingRight"), prel.css("paddingBottom"), prel.css("paddingLeft")];
-
- for ( j = 0; j < borders.length; j++ ) {
- this.borderDif[ j ] = ( parseInt( borders[ j ], 10 ) || 0 ) + ( parseInt( paddings[ j ], 10 ) || 0 );
- }
- }
-
- prel.css({
- height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,
- width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0
- });
-
- }
-
- },
-
- _renderProxy: function() {
-
- var el = this.element, o = this.options;
- this.elementOffset = el.offset();
-
- if(this._helper) {
-
- this.helper = this.helper || $("<div style='overflow:hidden;'></div>");
-
- this.helper.addClass(this._helper).css({
- width: this.element.outerWidth() - 1,
- height: this.element.outerHeight() - 1,
- position: "absolute",
- left: this.elementOffset.left +"px",
- top: this.elementOffset.top +"px",
- zIndex: ++o.zIndex //TODO: Don't modify option
- });
-
- this.helper
- .appendTo("body")
- .disableSelection();
-
- } else {
- this.helper = this.element;
- }
-
- },
-
- _change: {
- e: function(event, dx) {
- return { width: this.originalSize.width + dx };
- },
- w: function(event, dx) {
- var cs = this.originalSize, sp = this.originalPosition;
- return { left: sp.left + dx, width: cs.width - dx };
- },
- n: function(event, dx, dy) {
- var cs = this.originalSize, sp = this.originalPosition;
- return { top: sp.top + dy, height: cs.height - dy };
- },
- s: function(event, dx, dy) {
- return { height: this.originalSize.height + dy };
- },
- se: function(event, dx, dy) {
- return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
- },
- sw: function(event, dx, dy) {
- return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
- },
- ne: function(event, dx, dy) {
- return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
- },
- nw: function(event, dx, dy) {
- return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
- }
- },
-
- _propagate: function(n, event) {
- $.ui.plugin.call(this, n, [event, this.ui()]);
- (n !== "resize" && this._trigger(n, event, this.ui()));
- },
-
- plugins: {},
-
- ui: function() {
- return {
- originalElement: this.originalElement,
- element: this.element,
- helper: this.helper,
- position: this.position,
- size: this.size,
- originalSize: this.originalSize,
- originalPosition: this.originalPosition
- };
- }
-
-});
-
-/*
- * Resizable Extensions
- */
-
-$.ui.plugin.add("resizable", "animate", {
-
- stop: function( event ) {
- var that = $(this).data("ui-resizable"),
- o = that.options,
- pr = that._proportionallyResizeElements,
- ista = pr.length && (/textarea/i).test(pr[0].nodeName),
- soffseth = ista && $.ui.hasScroll(pr[0], "left") /* TODO - jump height */ ? 0 : that.sizeDiff.height,
- soffsetw = ista ? 0 : that.sizeDiff.width,
- style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) },
- left = (parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left)) || null,
- top = (parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top)) || null;
-
- that.element.animate(
- $.extend(style, top && left ? { top: top, left: left } : {}), {
- duration: o.animateDuration,
- easing: o.animateEasing,
- step: function() {
-
- var data = {
- width: parseInt(that.element.css("width"), 10),
- height: parseInt(that.element.css("height"), 10),
- top: parseInt(that.element.css("top"), 10),
- left: parseInt(that.element.css("left"), 10)
- };
-
- if (pr && pr.length) {
- $(pr[0]).css({ width: data.width, height: data.height });
- }
-
- // propagating resize, and updating values for each animation step
- that._updateCache(data);
- that._propagate("resize", event);
-
- }
- }
- );
- }
-
-});
-
-$.ui.plugin.add("resizable", "containment", {
-
- start: function() {
- var element, p, co, ch, cw, width, height,
- that = $(this).data("ui-resizable"),
- o = that.options,
- el = that.element,
- oc = o.containment,
- ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
-
- if (!ce) {
- return;
- }
-
- that.containerElement = $(ce);
-
- if (/document/.test(oc) || oc === document) {
- that.containerOffset = { left: 0, top: 0 };
- that.containerPosition = { left: 0, top: 0 };
-
- that.parentData = {
- element: $(document), left: 0, top: 0,
- width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight
- };
- }
-
- // i'm a node, so compute top, left, right, bottom
- else {
- element = $(ce);
- p = [];
- $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); });
-
- that.containerOffset = element.offset();
- that.containerPosition = element.position();
- that.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };
-
- co = that.containerOffset;
- ch = that.containerSize.height;
- cw = that.containerSize.width;
- width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw );
- height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);
-
- that.parentData = {
- element: ce, left: co.left, top: co.top, width: width, height: height
- };
- }
- },
-
- resize: function( event ) {
- var woset, hoset, isParent, isOffsetRelative,
- that = $(this).data("ui-resizable"),
- o = that.options,
- co = that.containerOffset, cp = that.position,
- pRatio = that._aspectRatio || event.shiftKey,
- cop = { top:0, left:0 }, ce = that.containerElement;
-
- if (ce[0] !== document && (/static/).test(ce.css("position"))) {
- cop = co;
- }
-
- if (cp.left < (that._helper ? co.left : 0)) {
- that.size.width = that.size.width + (that._helper ? (that.position.left - co.left) : (that.position.left - cop.left));
- if (pRatio) {
- that.size.height = that.size.width / that.aspectRatio;
- }
- that.position.left = o.helper ? co.left : 0;
- }
-
- if (cp.top < (that._helper ? co.top : 0)) {
- that.size.height = that.size.height + (that._helper ? (that.position.top - co.top) : that.position.top);
- if (pRatio) {
- that.size.width = that.size.height * that.aspectRatio;
- }
- that.position.top = that._helper ? co.top : 0;
- }
-
- that.offset.left = that.parentData.left+that.position.left;
- that.offset.top = that.parentData.top+that.position.top;
-
- woset = Math.abs( (that._helper ? that.offset.left - cop.left : (that.offset.left - cop.left)) + that.sizeDiff.width );
- hoset = Math.abs( (that._helper ? that.offset.top - cop.top : (that.offset.top - co.top)) + that.sizeDiff.height );
-
- isParent = that.containerElement.get(0) === that.element.parent().get(0);
- isOffsetRelative = /relative|absolute/.test(that.containerElement.css("position"));
-
- if(isParent && isOffsetRelative) {
- woset -= that.parentData.left;
- }
-
- if (woset + that.size.width >= that.parentData.width) {
- that.size.width = that.parentData.width - woset;
- if (pRatio) {
- that.size.height = that.size.width / that.aspectRatio;
- }
- }
-
- if (hoset + that.size.height >= that.parentData.height) {
- that.size.height = that.parentData.height - hoset;
- if (pRatio) {
- that.size.width = that.size.height * that.aspectRatio;
- }
- }
- },
-
- stop: function(){
- var that = $(this).data("ui-resizable"),
- o = that.options,
- co = that.containerOffset,
- cop = that.containerPosition,
- ce = that.containerElement,
- helper = $(that.helper),
- ho = helper.offset(),
- w = helper.outerWidth() - that.sizeDiff.width,
- h = helper.outerHeight() - that.sizeDiff.height;
-
- if (that._helper && !o.animate && (/relative/).test(ce.css("position"))) {
- $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
- }
-
- if (that._helper && !o.animate && (/static/).test(ce.css("position"))) {
- $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
- }
-
- }
-});
-
-$.ui.plugin.add("resizable", "alsoResize", {
-
- start: function () {
- var that = $(this).data("ui-resizable"),
- o = that.options,
- _store = function (exp) {
- $(exp).each(function() {
- var el = $(this);
- el.data("ui-resizable-alsoresize", {
- width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
- left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10)
- });
- });
- };
-
- if (typeof(o.alsoResize) === "object" && !o.alsoResize.parentNode) {
- if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); }
- else { $.each(o.alsoResize, function (exp) { _store(exp); }); }
- }else{
- _store(o.alsoResize);
- }
- },
-
- resize: function (event, ui) {
- var that = $(this).data("ui-resizable"),
- o = that.options,
- os = that.originalSize,
- op = that.originalPosition,
- delta = {
- height: (that.size.height - os.height) || 0, width: (that.size.width - os.width) || 0,
- top: (that.position.top - op.top) || 0, left: (that.position.left - op.left) || 0
- },
-
- _alsoResize = function (exp, c) {
- $(exp).each(function() {
- var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {},
- css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"];
-
- $.each(css, function (i, prop) {
- var sum = (start[prop]||0) + (delta[prop]||0);
- if (sum && sum >= 0) {
- style[prop] = sum || null;
- }
- });
-
- el.css(style);
- });
- };
-
- if (typeof(o.alsoResize) === "object" && !o.alsoResize.nodeType) {
- $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
- }else{
- _alsoResize(o.alsoResize);
- }
- },
-
- stop: function () {
- $(this).removeData("resizable-alsoresize");
- }
-});
-
-$.ui.plugin.add("resizable", "ghost", {
-
- start: function() {
-
- var that = $(this).data("ui-resizable"), o = that.options, cs = that.size;
-
- that.ghost = that.originalElement.clone();
- that.ghost
- .css({ opacity: 0.25, display: "block", position: "relative", height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })
- .addClass("ui-resizable-ghost")
- .addClass(typeof o.ghost === "string" ? o.ghost : "");
-
- that.ghost.appendTo(that.helper);
-
- },
-
- resize: function(){
- var that = $(this).data("ui-resizable");
- if (that.ghost) {
- that.ghost.css({ position: "relative", height: that.size.height, width: that.size.width });
- }
- },
-
- stop: function() {
- var that = $(this).data("ui-resizable");
- if (that.ghost && that.helper) {
- that.helper.get(0).removeChild(that.ghost.get(0));
- }
- }
-
-});
-
-$.ui.plugin.add("resizable", "grid", {
-
- resize: function() {
- var that = $(this).data("ui-resizable"),
- o = that.options,
- cs = that.size,
- os = that.originalSize,
- op = that.originalPosition,
- a = that.axis,
- grid = typeof o.grid === "number" ? [o.grid, o.grid] : o.grid,
- gridX = (grid[0]||1),
- gridY = (grid[1]||1),
- ox = Math.round((cs.width - os.width) / gridX) * gridX,
- oy = Math.round((cs.height - os.height) / gridY) * gridY,
- newWidth = os.width + ox,
- newHeight = os.height + oy,
- isMaxWidth = o.maxWidth && (o.maxWidth < newWidth),
- isMaxHeight = o.maxHeight && (o.maxHeight < newHeight),
- isMinWidth = o.minWidth && (o.minWidth > newWidth),
- isMinHeight = o.minHeight && (o.minHeight > newHeight);
-
- o.grid = grid;
-
- if (isMinWidth) {
- newWidth = newWidth + gridX;
- }
- if (isMinHeight) {
- newHeight = newHeight + gridY;
- }
- if (isMaxWidth) {
- newWidth = newWidth - gridX;
- }
- if (isMaxHeight) {
- newHeight = newHeight - gridY;
- }
-
- if (/^(se|s|e)$/.test(a)) {
- that.size.width = newWidth;
- that.size.height = newHeight;
- } else if (/^(ne)$/.test(a)) {
- that.size.width = newWidth;
- that.size.height = newHeight;
- that.position.top = op.top - oy;
- } else if (/^(sw)$/.test(a)) {
- that.size.width = newWidth;
- that.size.height = newHeight;
- that.position.left = op.left - ox;
- } else {
- that.size.width = newWidth;
- that.size.height = newHeight;
- that.position.top = op.top - oy;
- that.position.left = op.left - ox;
- }
- }
-
-});
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.widget("ui.selectable", $.ui.mouse, {
- version: "1.10.3",
- options: {
- appendTo: "body",
- autoRefresh: true,
- distance: 0,
- filter: "*",
- tolerance: "touch",
-
- // callbacks
- selected: null,
- selecting: null,
- start: null,
- stop: null,
- unselected: null,
- unselecting: null
- },
- _create: function() {
- var selectees,
- that = this;
-
- this.element.addClass("ui-selectable");
-
- this.dragged = false;
-
- // cache selectee children based on filter
- this.refresh = function() {
- selectees = $(that.options.filter, that.element[0]);
- selectees.addClass("ui-selectee");
- selectees.each(function() {
- var $this = $(this),
- pos = $this.offset();
- $.data(this, "selectable-item", {
- element: this,
- $element: $this,
- left: pos.left,
- top: pos.top,
- right: pos.left + $this.outerWidth(),
- bottom: pos.top + $this.outerHeight(),
- startselected: false,
- selected: $this.hasClass("ui-selected"),
- selecting: $this.hasClass("ui-selecting"),
- unselecting: $this.hasClass("ui-unselecting")
- });
- });
- };
- this.refresh();
-
- this.selectees = selectees.addClass("ui-selectee");
-
- this._mouseInit();
-
- this.helper = $("<div class='ui-selectable-helper'></div>");
- },
-
- _destroy: function() {
- this.selectees
- .removeClass("ui-selectee")
- .removeData("selectable-item");
- this.element
- .removeClass("ui-selectable ui-selectable-disabled");
- this._mouseDestroy();
- },
-
- _mouseStart: function(event) {
- var that = this,
- options = this.options;
-
- this.opos = [event.pageX, event.pageY];
-
- if (this.options.disabled) {
- return;
- }
-
- this.selectees = $(options.filter, this.element[0]);
-
- this._trigger("start", event);
-
- $(options.appendTo).append(this.helper);
- // position helper (lasso)
- this.helper.css({
- "left": event.pageX,
- "top": event.pageY,
- "width": 0,
- "height": 0
- });
-
- if (options.autoRefresh) {
- this.refresh();
- }
-
- this.selectees.filter(".ui-selected").each(function() {
- var selectee = $.data(this, "selectable-item");
- selectee.startselected = true;
- if (!event.metaKey && !event.ctrlKey) {
- selectee.$element.removeClass("ui-selected");
- selectee.selected = false;
- selectee.$element.addClass("ui-unselecting");
- selectee.unselecting = true;
- // selectable UNSELECTING callback
- that._trigger("unselecting", event, {
- unselecting: selectee.element
- });
- }
- });
-
- $(event.target).parents().addBack().each(function() {
- var doSelect,
- selectee = $.data(this, "selectable-item");
- if (selectee) {
- doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass("ui-selected");
- selectee.$element
- .removeClass(doSelect ? "ui-unselecting" : "ui-selected")
- .addClass(doSelect ? "ui-selecting" : "ui-unselecting");
- selectee.unselecting = !doSelect;
- selectee.selecting = doSelect;
- selectee.selected = doSelect;
- // selectable (UN)SELECTING callback
- if (doSelect) {
- that._trigger("selecting", event, {
- selecting: selectee.element
- });
- } else {
- that._trigger("unselecting", event, {
- unselecting: selectee.element
- });
- }
- return false;
- }
- });
-
- },
-
- _mouseDrag: function(event) {
-
- this.dragged = true;
-
- if (this.options.disabled) {
- return;
- }
-
- var tmp,
- that = this,
- options = this.options,
- x1 = this.opos[0],
- y1 = this.opos[1],
- x2 = event.pageX,
- y2 = event.pageY;
-
- if (x1 > x2) { tmp = x2; x2 = x1; x1 = tmp; }
- if (y1 > y2) { tmp = y2; y2 = y1; y1 = tmp; }
- this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});
-
- this.selectees.each(function() {
- var selectee = $.data(this, "selectable-item"),
- hit = false;
-
- //prevent helper from being selected if appendTo: selectable
- if (!selectee || selectee.element === that.element[0]) {
- return;
- }
-
- if (options.tolerance === "touch") {
- hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );
- } else if (options.tolerance === "fit") {
- hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
- }
-
- if (hit) {
- // SELECT
- if (selectee.selected) {
- selectee.$element.removeClass("ui-selected");
- selectee.selected = false;
- }
- if (selectee.unselecting) {
- selectee.$element.removeClass("ui-unselecting");
- selectee.unselecting = false;
- }
- if (!selectee.selecting) {
- selectee.$element.addClass("ui-selecting");
- selectee.selecting = true;
- // selectable SELECTING callback
- that._trigger("selecting", event, {
- selecting: selectee.element
- });
- }
- } else {
- // UNSELECT
- if (selectee.selecting) {
- if ((event.metaKey || event.ctrlKey) && selectee.startselected) {
- selectee.$element.removeClass("ui-selecting");
- selectee.selecting = false;
- selectee.$element.addClass("ui-selected");
- selectee.selected = true;
- } else {
- selectee.$element.removeClass("ui-selecting");
- selectee.selecting = false;
- if (selectee.startselected) {
- selectee.$element.addClass("ui-unselecting");
- selectee.unselecting = true;
- }
- // selectable UNSELECTING callback
- that._trigger("unselecting", event, {
- unselecting: selectee.element
- });
- }
- }
- if (selectee.selected) {
- if (!event.metaKey && !event.ctrlKey && !selectee.startselected) {
- selectee.$element.removeClass("ui-selected");
- selectee.selected = false;
-
- selectee.$element.addClass("ui-unselecting");
- selectee.unselecting = true;
- // selectable UNSELECTING callback
- that._trigger("unselecting", event, {
- unselecting: selectee.element
- });
- }
- }
- }
- });
-
- return false;
- },
-
- _mouseStop: function(event) {
- var that = this;
-
- this.dragged = false;
-
- $(".ui-unselecting", this.element[0]).each(function() {
- var selectee = $.data(this, "selectable-item");
- selectee.$element.removeClass("ui-unselecting");
- selectee.unselecting = false;
- selectee.startselected = false;
- that._trigger("unselected", event, {
- unselected: selectee.element
- });
- });
- $(".ui-selecting", this.element[0]).each(function() {
- var selectee = $.data(this, "selectable-item");
- selectee.$element.removeClass("ui-selecting").addClass("ui-selected");
- selectee.selecting = false;
- selectee.selected = true;
- selectee.startselected = true;
- that._trigger("selected", event, {
- selected: selectee.element
- });
- });
- this._trigger("stop", event);
-
- this.helper.remove();
-
- return false;
- }
-
-});
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-/*jshint loopfunc: true */
-
-function isOverAxis( x, reference, size ) {
- return ( x > reference ) && ( x < ( reference + size ) );
-}
-
-function isFloating(item) {
- return (/left|right/).test(item.css("float")) || (/inline|table-cell/).test(item.css("display"));
-}
-
-$.widget("ui.sortable", $.ui.mouse, {
- version: "1.10.3",
- widgetEventPrefix: "sort",
- ready: false,
- options: {
- appendTo: "parent",
- axis: false,
- connectWith: false,
- containment: false,
- cursor: "auto",
- cursorAt: false,
- dropOnEmpty: true,
- forcePlaceholderSize: false,
- forceHelperSize: false,
- grid: false,
- handle: false,
- helper: "original",
- items: "> *",
- opacity: false,
- placeholder: false,
- revert: false,
- scroll: true,
- scrollSensitivity: 20,
- scrollSpeed: 20,
- scope: "default",
- tolerance: "intersect",
- zIndex: 1000,
-
- // callbacks
- activate: null,
- beforeStop: null,
- change: null,
- deactivate: null,
- out: null,
- over: null,
- receive: null,
- remove: null,
- sort: null,
- start: null,
- stop: null,
- update: null
- },
- _create: function() {
-
- var o = this.options;
- this.containerCache = {};
- this.element.addClass("ui-sortable");
-
- //Get the items
- this.refresh();
-
- //Let's determine if the items are being displayed horizontally
- this.floating = this.items.length ? o.axis === "x" || isFloating(this.items[0].item) : false;
-
- //Let's determine the parent's offset
- this.offset = this.element.offset();
-
- //Initialize mouse events for interaction
- this._mouseInit();
-
- //We're ready to go
- this.ready = true;
-
- },
-
- _destroy: function() {
- this.element
- .removeClass("ui-sortable ui-sortable-disabled");
- this._mouseDestroy();
-
- for ( var i = this.items.length - 1; i >= 0; i-- ) {
- this.items[i].item.removeData(this.widgetName + "-item");
- }
-
- return this;
- },
-
- _setOption: function(key, value){
- if ( key === "disabled" ) {
- this.options[ key ] = value;
-
- this.widget().toggleClass( "ui-sortable-disabled", !!value );
- } else {
- // Don't call widget base _setOption for disable as it adds ui-state-disabled class
- $.Widget.prototype._setOption.apply(this, arguments);
- }
- },
-
- _mouseCapture: function(event, overrideHandle) {
- var currentItem = null,
- validHandle = false,
- that = this;
-
- if (this.reverting) {
- return false;
- }
-
- if(this.options.disabled || this.options.type === "static") {
- return false;
- }
-
- //We have to refresh the items data once first
- this._refreshItems(event);
-
- //Find out if the clicked node (or one of its parents) is a actual item in this.items
- $(event.target).parents().each(function() {
- if($.data(this, that.widgetName + "-item") === that) {
- currentItem = $(this);
- return false;
- }
- });
- if($.data(event.target, that.widgetName + "-item") === that) {
- currentItem = $(event.target);
- }
-
- if(!currentItem) {
- return false;
- }
- if(this.options.handle && !overrideHandle) {
- $(this.options.handle, currentItem).find("*").addBack().each(function() {
- if(this === event.target) {
- validHandle = true;
- }
- });
- if(!validHandle) {
- return false;
- }
- }
-
- this.currentItem = currentItem;
- this._removeCurrentsFromItems();
- return true;
-
- },
-
- _mouseStart: function(event, overrideHandle, noActivation) {
-
- var i, body,
- o = this.options;
-
- this.currentContainer = this;
-
- //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture
- this.refreshPositions();
-
- //Create and append the visible helper
- this.helper = this._createHelper(event);
-
- //Cache the helper size
- this._cacheHelperProportions();
-
- /*
- * - Position generation -
- * This block generates everything position related - it's the core of draggables.
- */
-
- //Cache the margins of the original element
- this._cacheMargins();
-
- //Get the next scrolling parent
- this.scrollParent = this.helper.scrollParent();
-
- //The element's absolute position on the page minus margins
- this.offset = this.currentItem.offset();
- this.offset = {
- top: this.offset.top - this.margins.top,
- left: this.offset.left - this.margins.left
- };
-
- $.extend(this.offset, {
- click: { //Where the click happened, relative to the element
- left: event.pageX - this.offset.left,
- top: event.pageY - this.offset.top
- },
- parent: this._getParentOffset(),
- relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
- });
-
- // Only after we got the offset, we can change the helper's position to absolute
- // TODO: Still need to figure out a way to make relative sorting possible
- this.helper.css("position", "absolute");
- this.cssPosition = this.helper.css("position");
-
- //Generate the original position
- this.originalPosition = this._generatePosition(event);
- this.originalPageX = event.pageX;
- this.originalPageY = event.pageY;
-
- //Adjust the mouse offset relative to the helper if "cursorAt" is supplied
- (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
- //Cache the former DOM position
- this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
-
- //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way
- if(this.helper[0] !== this.currentItem[0]) {
- this.currentItem.hide();
- }
-
- //Create the placeholder
- this._createPlaceholder();
-
- //Set a containment if given in the options
- if(o.containment) {
- this._setContainment();
- }
-
- if( o.cursor && o.cursor !== "auto" ) { // cursor option
- body = this.document.find( "body" );
-
- // support: IE
- this.storedCursor = body.css( "cursor" );
- body.css( "cursor", o.cursor );
-
- this.storedStylesheet = $( "<style>*{ cursor: "+o.cursor+" !important; }</style>" ).appendTo( body );
- }
-
- if(o.opacity) { // opacity option
- if (this.helper.css("opacity")) {
- this._storedOpacity = this.helper.css("opacity");
- }
- this.helper.css("opacity", o.opacity);
- }
-
- if(o.zIndex) { // zIndex option
- if (this.helper.css("zIndex")) {
- this._storedZIndex = this.helper.css("zIndex");
- }
- this.helper.css("zIndex", o.zIndex);
- }
-
- //Prepare scrolling
- if(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== "HTML") {
- this.overflowOffset = this.scrollParent.offset();
- }
-
- //Call callbacks
- this._trigger("start", event, this._uiHash());
-
- //Recache the helper size
- if(!this._preserveHelperProportions) {
- this._cacheHelperProportions();
- }
-
-
- //Post "activate" events to possible containers
- if( !noActivation ) {
- for ( i = this.containers.length - 1; i >= 0; i-- ) {
- this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) );
- }
- }
-
- //Prepare possible droppables
- if($.ui.ddmanager) {
- $.ui.ddmanager.current = this;
- }
-
- if ($.ui.ddmanager && !o.dropBehaviour) {
- $.ui.ddmanager.prepareOffsets(this, event);
- }
-
- this.dragging = true;
-
- this.helper.addClass("ui-sortable-helper");
- this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position
- return true;
-
- },
-
- _mouseDrag: function(event) {
- var i, item, itemElement, intersection,
- o = this.options,
- scrolled = false;
-
- //Compute the helpers position
- this.position = this._generatePosition(event);
- this.positionAbs = this._convertPositionTo("absolute");
-
- if (!this.lastPositionAbs) {
- this.lastPositionAbs = this.positionAbs;
- }
-
- //Do scrolling
- if(this.options.scroll) {
- if(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== "HTML") {
-
- if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {
- this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
- } else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) {
- this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
- }
-
- if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {
- this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
- } else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) {
- this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
- }
-
- } else {
-
- if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) {
- scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
- } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {
- scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
- }
-
- if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {
- scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
- } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {
- scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
- }
-
- }
-
- if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
- $.ui.ddmanager.prepareOffsets(this, event);
- }
- }
-
- //Regenerate the absolute position used for position checks
- this.positionAbs = this._convertPositionTo("absolute");
-
- //Set the helper position
- if(!this.options.axis || this.options.axis !== "y") {
- this.helper[0].style.left = this.position.left+"px";
- }
- if(!this.options.axis || this.options.axis !== "x") {
- this.helper[0].style.top = this.position.top+"px";
- }
-
- //Rearrange
- for (i = this.items.length - 1; i >= 0; i--) {
-
- //Cache variables and intersection, continue if no intersection
- item = this.items[i];
- itemElement = item.item[0];
- intersection = this._intersectsWithPointer(item);
- if (!intersection) {
- continue;
- }
-
- // Only put the placeholder inside the current Container, skip all
- // items form other containers. This works because when moving
- // an item from one container to another the
- // currentContainer is switched before the placeholder is moved.
- //
- // Without this moving items in "sub-sortables" can cause the placeholder to jitter
- // beetween the outer and inner container.
- if (item.instance !== this.currentContainer) {
- continue;
- }
-
- // cannot intersect with itself
- // no useless actions that have been done before
- // no action if the item moved is the parent of the item checked
- if (itemElement !== this.currentItem[0] &&
- this.placeholder[intersection === 1 ? "next" : "prev"]()[0] !== itemElement &&
- !$.contains(this.placeholder[0], itemElement) &&
- (this.options.type === "semi-dynamic" ? !$.contains(this.element[0], itemElement) : true)
- ) {
-
- this.direction = intersection === 1 ? "down" : "up";
-
- if (this.options.tolerance === "pointer" || this._intersectsWithSides(item)) {
- this._rearrange(event, item);
- } else {
- break;
- }
-
- this._trigger("change", event, this._uiHash());
- break;
- }
- }
-
- //Post events to containers
- this._contactContainers(event);
-
- //Interconnect with droppables
- if($.ui.ddmanager) {
- $.ui.ddmanager.drag(this, event);
- }
-
- //Call callbacks
- this._trigger("sort", event, this._uiHash());
-
- this.lastPositionAbs = this.positionAbs;
- return false;
-
- },
-
- _mouseStop: function(event, noPropagation) {
-
- if(!event) {
- return;
- }
-
- //If we are using droppables, inform the manager about the drop
- if ($.ui.ddmanager && !this.options.dropBehaviour) {
- $.ui.ddmanager.drop(this, event);
- }
-
- if(this.options.revert) {
- var that = this,
- cur = this.placeholder.offset(),
- axis = this.options.axis,
- animation = {};
-
- if ( !axis || axis === "x" ) {
- animation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft);
- }
- if ( !axis || axis === "y" ) {
- animation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop);
- }
- this.reverting = true;
- $(this.helper).animate( animation, parseInt(this.options.revert, 10) || 500, function() {
- that._clear(event);
- });
- } else {
- this._clear(event, noPropagation);
- }
-
- return false;
-
- },
-
- cancel: function() {
-
- if(this.dragging) {
-
- this._mouseUp({ target: null });
-
- if(this.options.helper === "original") {
- this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
- } else {
- this.currentItem.show();
- }
-
- //Post deactivating events to containers
- for (var i = this.containers.length - 1; i >= 0; i--){
- this.containers[i]._trigger("deactivate", null, this._uiHash(this));
- if(this.containers[i].containerCache.over) {
- this.containers[i]._trigger("out", null, this._uiHash(this));
- this.containers[i].containerCache.over = 0;
- }
- }
-
- }
-
- if (this.placeholder) {
- //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
- if(this.placeholder[0].parentNode) {
- this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
- }
- if(this.options.helper !== "original" && this.helper && this.helper[0].parentNode) {
- this.helper.remove();
- }
-
- $.extend(this, {
- helper: null,
- dragging: false,
- reverting: false,
- _noFinalSort: null
- });
-
- if(this.domPosition.prev) {
- $(this.domPosition.prev).after(this.currentItem);
- } else {
- $(this.domPosition.parent).prepend(this.currentItem);
- }
- }
-
- return this;
-
- },
-
- serialize: function(o) {
-
- var items = this._getItemsAsjQuery(o && o.connected),
- str = [];
- o = o || {};
-
- $(items).each(function() {
- var res = ($(o.item || this).attr(o.attribute || "id") || "").match(o.expression || (/(.+)[\-=_](.+)/));
- if (res) {
- str.push((o.key || res[1]+"[]")+"="+(o.key && o.expression ? res[1] : res[2]));
- }
- });
-
- if(!str.length && o.key) {
- str.push(o.key + "=");
- }
-
- return str.join("&");
-
- },
-
- toArray: function(o) {
-
- var items = this._getItemsAsjQuery(o && o.connected),
- ret = [];
-
- o = o || {};
-
- items.each(function() { ret.push($(o.item || this).attr(o.attribute || "id") || ""); });
- return ret;
-
- },
-
- /* Be careful with the following core functions */
- _intersectsWith: function(item) {
-
- var x1 = this.positionAbs.left,
- x2 = x1 + this.helperProportions.width,
- y1 = this.positionAbs.top,
- y2 = y1 + this.helperProportions.height,
- l = item.left,
- r = l + item.width,
- t = item.top,
- b = t + item.height,
- dyClick = this.offset.click.top,
- dxClick = this.offset.click.left,
- isOverElementHeight = ( this.options.axis === "x" ) || ( ( y1 + dyClick ) > t && ( y1 + dyClick ) < b ),
- isOverElementWidth = ( this.options.axis === "y" ) || ( ( x1 + dxClick ) > l && ( x1 + dxClick ) < r ),
- isOverElement = isOverElementHeight && isOverElementWidth;
-
- if ( this.options.tolerance === "pointer" ||
- this.options.forcePointerForContainers ||
- (this.options.tolerance !== "pointer" && this.helperProportions[this.floating ? "width" : "height"] > item[this.floating ? "width" : "height"])
- ) {
- return isOverElement;
- } else {
-
- return (l < x1 + (this.helperProportions.width / 2) && // Right Half
- x2 - (this.helperProportions.width / 2) < r && // Left Half
- t < y1 + (this.helperProportions.height / 2) && // Bottom Half
- y2 - (this.helperProportions.height / 2) < b ); // Top Half
-
- }
- },
-
- _intersectsWithPointer: function(item) {
-
- var isOverElementHeight = (this.options.axis === "x") || isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
- isOverElementWidth = (this.options.axis === "y") || isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),
- isOverElement = isOverElementHeight && isOverElementWidth,
- verticalDirection = this._getDragVerticalDirection(),
- horizontalDirection = this._getDragHorizontalDirection();
-
- if (!isOverElement) {
- return false;
- }
-
- return this.floating ?
- ( ((horizontalDirection && horizontalDirection === "right") || verticalDirection === "down") ? 2 : 1 )
- : ( verticalDirection && (verticalDirection === "down" ? 2 : 1) );
-
- },
-
- _intersectsWithSides: function(item) {
-
- var isOverBottomHalf = isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),
- isOverRightHalf = isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),
- verticalDirection = this._getDragVerticalDirection(),
- horizontalDirection = this._getDragHorizontalDirection();
-
- if (this.floating && horizontalDirection) {
- return ((horizontalDirection === "right" && isOverRightHalf) || (horizontalDirection === "left" && !isOverRightHalf));
- } else {
- return verticalDirection && ((verticalDirection === "down" && isOverBottomHalf) || (verticalDirection === "up" && !isOverBottomHalf));
- }
-
- },
-
- _getDragVerticalDirection: function() {
- var delta = this.positionAbs.top - this.lastPositionAbs.top;
- return delta !== 0 && (delta > 0 ? "down" : "up");
- },
-
- _getDragHorizontalDirection: function() {
- var delta = this.positionAbs.left - this.lastPositionAbs.left;
- return delta !== 0 && (delta > 0 ? "right" : "left");
- },
-
- refresh: function(event) {
- this._refreshItems(event);
- this.refreshPositions();
- return this;
- },
-
- _connectWith: function() {
- var options = this.options;
- return options.connectWith.constructor === String ? [options.connectWith] : options.connectWith;
- },
-
- _getItemsAsjQuery: function(connected) {
-
- var i, j, cur, inst,
- items = [],
- queries = [],
- connectWith = this._connectWith();
-
- if(connectWith && connected) {
- for (i = connectWith.length - 1; i >= 0; i--){
- cur = $(connectWith[i]);
- for ( j = cur.length - 1; j >= 0; j--){
- inst = $.data(cur[j], this.widgetFullName);
- if(inst && inst !== this && !inst.options.disabled) {
- queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), inst]);
- }
- }
- }
- }
-
- queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]);
-
- for (i = queries.length - 1; i >= 0; i--){
- queries[i][0].each(function() {
- items.push(this);
- });
- }
-
- return $(items);
-
- },
-
- _removeCurrentsFromItems: function() {
-
- var list = this.currentItem.find(":data(" + this.widgetName + "-item)");
-
- this.items = $.grep(this.items, function (item) {
- for (var j=0; j < list.length; j++) {
- if(list[j] === item.item[0]) {
- return false;
- }
- }
- return true;
- });
-
- },
-
- _refreshItems: function(event) {
-
- this.items = [];
- this.containers = [this];
-
- var i, j, cur, inst, targetData, _queries, item, queriesLength,
- items = this.items,
- queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]],
- connectWith = this._connectWith();
-
- if(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down
- for (i = connectWith.length - 1; i >= 0; i--){
- cur = $(connectWith[i]);
- for (j = cur.length - 1; j >= 0; j--){
- inst = $.data(cur[j], this.widgetFullName);
- if(inst && inst !== this && !inst.options.disabled) {
- queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
- this.containers.push(inst);
- }
- }
- }
- }
-
- for (i = queries.length - 1; i >= 0; i--) {
- targetData = queries[i][1];
- _queries = queries[i][0];
-
- for (j=0, queriesLength = _queries.length; j < queriesLength; j++) {
- item = $(_queries[j]);
-
- item.data(this.widgetName + "-item", targetData); // Data for target checking (mouse manager)
-
- items.push({
- item: item,
- instance: targetData,
- width: 0, height: 0,
- left: 0, top: 0
- });
- }
- }
-
- },
-
- refreshPositions: function(fast) {
-
- //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change
- if(this.offsetParent && this.helper) {
- this.offset.parent = this._getParentOffset();
- }
-
- var i, item, t, p;
-
- for (i = this.items.length - 1; i >= 0; i--){
- item = this.items[i];
-
- //We ignore calculating positions of all connected containers when we're not over them
- if(item.instance !== this.currentContainer && this.currentContainer && item.item[0] !== this.currentItem[0]) {
- continue;
- }
-
- t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
-
- if (!fast) {
- item.width = t.outerWidth();
- item.height = t.outerHeight();
- }
-
- p = t.offset();
- item.left = p.left;
- item.top = p.top;
- }
-
- if(this.options.custom && this.options.custom.refreshContainers) {
- this.options.custom.refreshContainers.call(this);
- } else {
- for (i = this.containers.length - 1; i >= 0; i--){
- p = this.containers[i].element.offset();
- this.containers[i].containerCache.left = p.left;
- this.containers[i].containerCache.top = p.top;
- this.containers[i].containerCache.width = this.containers[i].element.outerWidth();
- this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
- }
- }
-
- return this;
- },
-
- _createPlaceholder: function(that) {
- that = that || this;
- var className,
- o = that.options;
-
- if(!o.placeholder || o.placeholder.constructor === String) {
- className = o.placeholder;
- o.placeholder = {
- element: function() {
-
- var nodeName = that.currentItem[0].nodeName.toLowerCase(),
- element = $( "<" + nodeName + ">", that.document[0] )
- .addClass(className || that.currentItem[0].className+" ui-sortable-placeholder")
- .removeClass("ui-sortable-helper");
-
- if ( nodeName === "tr" ) {
- that.currentItem.children().each(function() {
- $( "<td>&#160;</td>", that.document[0] )
- .attr( "colspan", $( this ).attr( "colspan" ) || 1 )
- .appendTo( element );
- });
- } else if ( nodeName === "img" ) {
- element.attr( "src", that.currentItem.attr( "src" ) );
- }
-
- if ( !className ) {
- element.css( "visibility", "hidden" );
- }
-
- return element;
- },
- update: function(container, p) {
-
- // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that
- // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified
- if(className && !o.forcePlaceholderSize) {
- return;
- }
-
- //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item
- if(!p.height()) { p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css("paddingTop")||0, 10) - parseInt(that.currentItem.css("paddingBottom")||0, 10)); }
- if(!p.width()) { p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css("paddingLeft")||0, 10) - parseInt(that.currentItem.css("paddingRight")||0, 10)); }
- }
- };
- }
-
- //Create the placeholder
- that.placeholder = $(o.placeholder.element.call(that.element, that.currentItem));
-
- //Append it after the actual current item
- that.currentItem.after(that.placeholder);
-
- //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
- o.placeholder.update(that, that.placeholder);
-
- },
-
- _contactContainers: function(event) {
- var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, base, cur, nearBottom, floating,
- innermostContainer = null,
- innermostIndex = null;
-
- // get innermost container that intersects with item
- for (i = this.containers.length - 1; i >= 0; i--) {
-
- // never consider a container that's located within the item itself
- if($.contains(this.currentItem[0], this.containers[i].element[0])) {
- continue;
- }
-
- if(this._intersectsWith(this.containers[i].containerCache)) {
-
- // if we've already found a container and it's more "inner" than this, then continue
- if(innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) {
- continue;
- }
-
- innermostContainer = this.containers[i];
- innermostIndex = i;
-
- } else {
- // container doesn't intersect. trigger "out" event if necessary
- if(this.containers[i].containerCache.over) {
- this.containers[i]._trigger("out", event, this._uiHash(this));
- this.containers[i].containerCache.over = 0;
- }
- }
-
- }
-
- // if no intersecting containers found, return
- if(!innermostContainer) {
- return;
- }
-
- // move the item into the container if it's not there already
- if(this.containers.length === 1) {
- if (!this.containers[innermostIndex].containerCache.over) {
- this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
- this.containers[innermostIndex].containerCache.over = 1;
- }
- } else {
-
- //When entering a new container, we will find the item with the least distance and append our item near it
- dist = 10000;
- itemWithLeastDistance = null;
- floating = innermostContainer.floating || isFloating(this.currentItem);
- posProperty = floating ? "left" : "top";
- sizeProperty = floating ? "width" : "height";
- base = this.positionAbs[posProperty] + this.offset.click[posProperty];
- for (j = this.items.length - 1; j >= 0; j--) {
- if(!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) {
- continue;
- }
- if(this.items[j].item[0] === this.currentItem[0]) {
- continue;
- }
- if (floating && !isOverAxis(this.positionAbs.top + this.offset.click.top, this.items[j].top, this.items[j].height)) {
- continue;
- }
- cur = this.items[j].item.offset()[posProperty];
- nearBottom = false;
- if(Math.abs(cur - base) > Math.abs(cur + this.items[j][sizeProperty] - base)){
- nearBottom = true;
- cur += this.items[j][sizeProperty];
- }
-
- if(Math.abs(cur - base) < dist) {
- dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j];
- this.direction = nearBottom ? "up": "down";
- }
- }
-
- //Check if dropOnEmpty is enabled
- if(!itemWithLeastDistance && !this.options.dropOnEmpty) {
- return;
- }
-
- if(this.currentContainer === this.containers[innermostIndex]) {
- return;
- }
-
- itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);
- this._trigger("change", event, this._uiHash());
- this.containers[innermostIndex]._trigger("change", event, this._uiHash(this));
- this.currentContainer = this.containers[innermostIndex];
-
- //Update the placeholder
- this.options.placeholder.update(this.currentContainer, this.placeholder);
-
- this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
- this.containers[innermostIndex].containerCache.over = 1;
- }
-
-
- },
-
- _createHelper: function(event) {
-
- var o = this.options,
- helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper === "clone" ? this.currentItem.clone() : this.currentItem);
-
- //Add the helper to the DOM if that didn't happen already
- if(!helper.parents("body").length) {
- $(o.appendTo !== "parent" ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
- }
-
- if(helper[0] === this.currentItem[0]) {
- this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };
- }
-
- if(!helper[0].style.width || o.forceHelperSize) {
- helper.width(this.currentItem.width());
- }
- if(!helper[0].style.height || o.forceHelperSize) {
- helper.height(this.currentItem.height());
- }
-
- return helper;
-
- },
-
- _adjustOffsetFromHelper: function(obj) {
- if (typeof obj === "string") {
- obj = obj.split(" ");
- }
- if ($.isArray(obj)) {
- obj = {left: +obj[0], top: +obj[1] || 0};
- }
- if ("left" in obj) {
- this.offset.click.left = obj.left + this.margins.left;
- }
- if ("right" in obj) {
- this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
- }
- if ("top" in obj) {
- this.offset.click.top = obj.top + this.margins.top;
- }
- if ("bottom" in obj) {
- this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
- }
- },
-
- _getParentOffset: function() {
-
-
- //Get the offsetParent and cache its position
- this.offsetParent = this.helper.offsetParent();
- var po = this.offsetParent.offset();
-
- // This is a special case where we need to modify a offset calculated on start, since the following happened:
- // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
- // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
- // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
- if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
- po.left += this.scrollParent.scrollLeft();
- po.top += this.scrollParent.scrollTop();
- }
-
- // This needs to be actually done for all browsers, since pageX/pageY includes this information
- // with an ugly IE fix
- if( this.offsetParent[0] === document.body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) {
- po = { top: 0, left: 0 };
- }
-
- return {
- top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
- left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
- };
-
- },
-
- _getRelativeOffset: function() {
-
- if(this.cssPosition === "relative") {
- var p = this.currentItem.position();
- return {
- top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
- left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
- };
- } else {
- return { top: 0, left: 0 };
- }
-
- },
-
- _cacheMargins: function() {
- this.margins = {
- left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),
- top: (parseInt(this.currentItem.css("marginTop"),10) || 0)
- };
- },
-
- _cacheHelperProportions: function() {
- this.helperProportions = {
- width: this.helper.outerWidth(),
- height: this.helper.outerHeight()
- };
- },
-
- _setContainment: function() {
-
- var ce, co, over,
- o = this.options;
- if(o.containment === "parent") {
- o.containment = this.helper[0].parentNode;
- }
- if(o.containment === "document" || o.containment === "window") {
- this.containment = [
- 0 - this.offset.relative.left - this.offset.parent.left,
- 0 - this.offset.relative.top - this.offset.parent.top,
- $(o.containment === "document" ? document : window).width() - this.helperProportions.width - this.margins.left,
- ($(o.containment === "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
- ];
- }
-
- if(!(/^(document|window|parent)$/).test(o.containment)) {
- ce = $(o.containment)[0];
- co = $(o.containment).offset();
- over = ($(ce).css("overflow") !== "hidden");
-
- this.containment = [
- co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left,
- co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top,
- co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left,
- co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top
- ];
- }
-
- },
-
- _convertPositionTo: function(d, pos) {
-
- if(!pos) {
- pos = this.position;
- }
- var mod = d === "absolute" ? 1 : -1,
- scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
- scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
- return {
- top: (
- pos.top + // The absolute mouse position
- this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent
- this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border)
- ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
- ),
- left: (
- pos.left + // The absolute mouse position
- this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent
- this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border)
- ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
- )
- };
-
- },
-
- _generatePosition: function(event) {
-
- var top, left,
- o = this.options,
- pageX = event.pageX,
- pageY = event.pageY,
- scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
- // This is another very weird special case that only happens for relative elements:
- // 1. If the css position is relative
- // 2. and the scroll parent is the document or similar to the offset parent
- // we have to refresh the relative offset during the scroll so there are no jumps
- if(this.cssPosition === "relative" && !(this.scrollParent[0] !== document && this.scrollParent[0] !== this.offsetParent[0])) {
- this.offset.relative = this._getRelativeOffset();
- }
-
- /*
- * - Position constraining -
- * Constrain the position to a mix of grid, containment.
- */
-
- if(this.originalPosition) { //If we are not dragging yet, we won't check for options
-
- if(this.containment) {
- if(event.pageX - this.offset.click.left < this.containment[0]) {
- pageX = this.containment[0] + this.offset.click.left;
- }
- if(event.pageY - this.offset.click.top < this.containment[1]) {
- pageY = this.containment[1] + this.offset.click.top;
- }
- if(event.pageX - this.offset.click.left > this.containment[2]) {
- pageX = this.containment[2] + this.offset.click.left;
- }
- if(event.pageY - this.offset.click.top > this.containment[3]) {
- pageY = this.containment[3] + this.offset.click.top;
- }
- }
-
- if(o.grid) {
- top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
- pageY = this.containment ? ( (top - this.offset.click.top >= this.containment[1] && top - this.offset.click.top <= this.containment[3]) ? top : ((top - this.offset.click.top >= this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
- left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
- pageX = this.containment ? ( (left - this.offset.click.left >= this.containment[0] && left - this.offset.click.left <= this.containment[2]) ? left : ((left - this.offset.click.left >= this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
- }
-
- }
-
- return {
- top: (
- pageY - // The absolute mouse position
- this.offset.click.top - // Click offset (relative to the element)
- this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent
- this.offset.parent.top + // The offsetParent's offset without borders (offset + border)
- ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
- ),
- left: (
- pageX - // The absolute mouse position
- this.offset.click.left - // Click offset (relative to the element)
- this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent
- this.offset.parent.left + // The offsetParent's offset without borders (offset + border)
- ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
- )
- };
-
- },
-
- _rearrange: function(event, i, a, hardRefresh) {
-
- a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction === "down" ? i.item[0] : i.item[0].nextSibling));
-
- //Various things done here to improve the performance:
- // 1. we create a setTimeout, that calls refreshPositions
- // 2. on the instance, we have a counter variable, that get's higher after every append
- // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same
- // 4. this lets only the last addition to the timeout stack through
- this.counter = this.counter ? ++this.counter : 1;
- var counter = this.counter;
-
- this._delay(function() {
- if(counter === this.counter) {
- this.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove
- }
- });
-
- },
-
- _clear: function(event, noPropagation) {
-
- this.reverting = false;
- // We delay all events that have to be triggered to after the point where the placeholder has been removed and
- // everything else normalized again
- var i,
- delayedTriggers = [];
-
- // We first have to update the dom position of the actual currentItem
- // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)
- if(!this._noFinalSort && this.currentItem.parent().length) {
- this.placeholder.before(this.currentItem);
- }
- this._noFinalSort = null;
-
- if(this.helper[0] === this.currentItem[0]) {
- for(i in this._storedCSS) {
- if(this._storedCSS[i] === "auto" || this._storedCSS[i] === "static") {
- this._storedCSS[i] = "";
- }
- }
- this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
- } else {
- this.currentItem.show();
- }
-
- if(this.fromOutside && !noPropagation) {
- delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });
- }
- if((this.fromOutside || this.domPosition.prev !== this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent !== this.currentItem.parent()[0]) && !noPropagation) {
- delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed
- }
-
- // Check if the items Container has Changed and trigger appropriate
- // events.
- if (this !== this.currentContainer) {
- if(!noPropagation) {
- delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); });
- delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.currentContainer));
- delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.currentContainer));
- }
- }
-
-
- //Post events to containers
- for (i = this.containers.length - 1; i >= 0; i--){
- if(!noPropagation) {
- delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
- }
- if(this.containers[i].containerCache.over) {
- delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
- this.containers[i].containerCache.over = 0;
- }
- }
-
- //Do what was originally in plugins
- if ( this.storedCursor ) {
- this.document.find( "body" ).css( "cursor", this.storedCursor );
- this.storedStylesheet.remove();
- }
- if(this._storedOpacity) {
- this.helper.css("opacity", this._storedOpacity);
- }
- if(this._storedZIndex) {
- this.helper.css("zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex);
- }
-
- this.dragging = false;
- if(this.cancelHelperRemoval) {
- if(!noPropagation) {
- this._trigger("beforeStop", event, this._uiHash());
- for (i=0; i < delayedTriggers.length; i++) {
- delayedTriggers[i].call(this, event);
- } //Trigger all delayed events
- this._trigger("stop", event, this._uiHash());
- }
-
- this.fromOutside = false;
- return false;
- }
-
- if(!noPropagation) {
- this._trigger("beforeStop", event, this._uiHash());
- }
-
- //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
- this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
-
- if(this.helper[0] !== this.currentItem[0]) {
- this.helper.remove();
- }
- this.helper = null;
-
- if(!noPropagation) {
- for (i=0; i < delayedTriggers.length; i++) {
- delayedTriggers[i].call(this, event);
- } //Trigger all delayed events
- this._trigger("stop", event, this._uiHash());
- }
-
- this.fromOutside = false;
- return true;
-
- },
-
- _trigger: function() {
- if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
- this.cancel();
- }
- },
-
- _uiHash: function(_inst) {
- var inst = _inst || this;
- return {
- helper: inst.helper,
- placeholder: inst.placeholder || $([]),
- position: inst.position,
- originalPosition: inst.originalPosition,
- offset: inst.positionAbs,
- item: inst.currentItem,
- sender: _inst ? _inst.element : null
- };
- }
-
-});
-
-})(jQuery);
-
-(function($, undefined) {
-
-var dataSpace = "ui-effects-";
-
-$.effects = {
- effect: {}
-};
-
-/*!
- * jQuery Color Animations v2.1.2
- * https://github.com/jquery/jquery-color
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * Date: Wed Jan 16 08:47:09 2013 -0600
- */
-(function( jQuery, undefined ) {
-
- var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",
-
- // plusequals test for += 100 -= 100
- rplusequals = /^([\-+])=\s*(\d+\.?\d*)/,
- // a set of RE's that can match strings and generate color tuples.
- stringParsers = [{
- re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
- parse: function( execResult ) {
- return [
- execResult[ 1 ],
- execResult[ 2 ],
- execResult[ 3 ],
- execResult[ 4 ]
- ];
- }
- }, {
- re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
- parse: function( execResult ) {
- return [
- execResult[ 1 ] * 2.55,
- execResult[ 2 ] * 2.55,
- execResult[ 3 ] * 2.55,
- execResult[ 4 ]
- ];
- }
- }, {
- // this regex ignores A-F because it's compared against an already lowercased string
- re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
- parse: function( execResult ) {
- return [
- parseInt( execResult[ 1 ], 16 ),
- parseInt( execResult[ 2 ], 16 ),
- parseInt( execResult[ 3 ], 16 )
- ];
- }
- }, {
- // this regex ignores A-F because it's compared against an already lowercased string
- re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
- parse: function( execResult ) {
- return [
- parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),
- parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),
- parseInt( execResult[ 3 ] + execResult[ 3 ], 16 )
- ];
- }
- }, {
- re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
- space: "hsla",
- parse: function( execResult ) {
- return [
- execResult[ 1 ],
- execResult[ 2 ] / 100,
- execResult[ 3 ] / 100,
- execResult[ 4 ]
- ];
- }
- }],
-
- // jQuery.Color( )
- color = jQuery.Color = function( color, green, blue, alpha ) {
- return new jQuery.Color.fn.parse( color, green, blue, alpha );
- },
- spaces = {
- rgba: {
- props: {
- red: {
- idx: 0,
- type: "byte"
- },
- green: {
- idx: 1,
- type: "byte"
- },
- blue: {
- idx: 2,
- type: "byte"
- }
- }
- },
-
- hsla: {
- props: {
- hue: {
- idx: 0,
- type: "degrees"
- },
- saturation: {
- idx: 1,
- type: "percent"
- },
- lightness: {
- idx: 2,
- type: "percent"
- }
- }
- }
- },
- propTypes = {
- "byte": {
- floor: true,
- max: 255
- },
- "percent": {
- max: 1
- },
- "degrees": {
- mod: 360,
- floor: true
- }
- },
- support = color.support = {},
-
- // element for support tests
- supportElem = jQuery( "<p>" )[ 0 ],
-
- // colors = jQuery.Color.names
- colors,
-
- // local aliases of functions called often
- each = jQuery.each;
-
-// determine rgba support immediately
-supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
-support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1;
-
-// define cache name and alpha properties
-// for rgba and hsla spaces
-each( spaces, function( spaceName, space ) {
- space.cache = "_" + spaceName;
- space.props.alpha = {
- idx: 3,
- type: "percent",
- def: 1
- };
-});
-
-function clamp( value, prop, allowEmpty ) {
- var type = propTypes[ prop.type ] || {};
-
- if ( value == null ) {
- return (allowEmpty || !prop.def) ? null : prop.def;
- }
-
- // ~~ is an short way of doing floor for positive numbers
- value = type.floor ? ~~value : parseFloat( value );
-
- // IE will pass in empty strings as value for alpha,
- // which will hit this case
- if ( isNaN( value ) ) {
- return prop.def;
- }
-
- if ( type.mod ) {
- // we add mod before modding to make sure that negatives values
- // get converted properly: -10 -> 350
- return (value + type.mod) % type.mod;
- }
-
- // for now all property types without mod have min and max
- return 0 > value ? 0 : type.max < value ? type.max : value;
-}
-
-function stringParse( string ) {
- var inst = color(),
- rgba = inst._rgba = [];
-
- string = string.toLowerCase();
-
- each( stringParsers, function( i, parser ) {
- var parsed,
- match = parser.re.exec( string ),
- values = match && parser.parse( match ),
- spaceName = parser.space || "rgba";
-
- if ( values ) {
- parsed = inst[ spaceName ]( values );
-
- // if this was an rgba parse the assignment might happen twice
- // oh well....
- inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];
- rgba = inst._rgba = parsed._rgba;
-
- // exit each( stringParsers ) here because we matched
- return false;
- }
- });
-
- // Found a stringParser that handled it
- if ( rgba.length ) {
-
- // if this came from a parsed string, force "transparent" when alpha is 0
- // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0)
- if ( rgba.join() === "0,0,0,0" ) {
- jQuery.extend( rgba, colors.transparent );
- }
- return inst;
- }
-
- // named colors
- return colors[ string ];
-}
-
-color.fn = jQuery.extend( color.prototype, {
- parse: function( red, green, blue, alpha ) {
- if ( red === undefined ) {
- this._rgba = [ null, null, null, null ];
- return this;
- }
- if ( red.jquery || red.nodeType ) {
- red = jQuery( red ).css( green );
- green = undefined;
- }
-
- var inst = this,
- type = jQuery.type( red ),
- rgba = this._rgba = [];
-
- // more than 1 argument specified - assume ( red, green, blue, alpha )
- if ( green !== undefined ) {
- red = [ red, green, blue, alpha ];
- type = "array";
- }
-
- if ( type === "string" ) {
- return this.parse( stringParse( red ) || colors._default );
- }
-
- if ( type === "array" ) {
- each( spaces.rgba.props, function( key, prop ) {
- rgba[ prop.idx ] = clamp( red[ prop.idx ], prop );
- });
- return this;
- }
-
- if ( type === "object" ) {
- if ( red instanceof color ) {
- each( spaces, function( spaceName, space ) {
- if ( red[ space.cache ] ) {
- inst[ space.cache ] = red[ space.cache ].slice();
- }
- });
- } else {
- each( spaces, function( spaceName, space ) {
- var cache = space.cache;
- each( space.props, function( key, prop ) {
-
- // if the cache doesn't exist, and we know how to convert
- if ( !inst[ cache ] && space.to ) {
-
- // if the value was null, we don't need to copy it
- // if the key was alpha, we don't need to copy it either
- if ( key === "alpha" || red[ key ] == null ) {
- return;
- }
- inst[ cache ] = space.to( inst._rgba );
- }
-
- // this is the only case where we allow nulls for ALL properties.
- // call clamp with alwaysAllowEmpty
- inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );
- });
-
- // everything defined but alpha?
- if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {
- // use the default of 1
- inst[ cache ][ 3 ] = 1;
- if ( space.from ) {
- inst._rgba = space.from( inst[ cache ] );
- }
- }
- });
- }
- return this;
- }
- },
- is: function( compare ) {
- var is = color( compare ),
- same = true,
- inst = this;
-
- each( spaces, function( _, space ) {
- var localCache,
- isCache = is[ space.cache ];
- if (isCache) {
- localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];
- each( space.props, function( _, prop ) {
- if ( isCache[ prop.idx ] != null ) {
- same = ( isCache[ prop.idx ] === localCache[ prop.idx ] );
- return same;
- }
- });
- }
- return same;
- });
- return same;
- },
- _space: function() {
- var used = [],
- inst = this;
- each( spaces, function( spaceName, space ) {
- if ( inst[ space.cache ] ) {
- used.push( spaceName );
- }
- });
- return used.pop();
- },
- transition: function( other, distance ) {
- var end = color( other ),
- spaceName = end._space(),
- space = spaces[ spaceName ],
- startColor = this.alpha() === 0 ? color( "transparent" ) : this,
- start = startColor[ space.cache ] || space.to( startColor._rgba ),
- result = start.slice();
-
- end = end[ space.cache ];
- each( space.props, function( key, prop ) {
- var index = prop.idx,
- startValue = start[ index ],
- endValue = end[ index ],
- type = propTypes[ prop.type ] || {};
-
- // if null, don't override start value
- if ( endValue === null ) {
- return;
- }
- // if null - use end
- if ( startValue === null ) {
- result[ index ] = endValue;
- } else {
- if ( type.mod ) {
- if ( endValue - startValue > type.mod / 2 ) {
- startValue += type.mod;
- } else if ( startValue - endValue > type.mod / 2 ) {
- startValue -= type.mod;
- }
- }
- result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );
- }
- });
- return this[ spaceName ]( result );
- },
- blend: function( opaque ) {
- // if we are already opaque - return ourself
- if ( this._rgba[ 3 ] === 1 ) {
- return this;
- }
-
- var rgb = this._rgba.slice(),
- a = rgb.pop(),
- blend = color( opaque )._rgba;
-
- return color( jQuery.map( rgb, function( v, i ) {
- return ( 1 - a ) * blend[ i ] + a * v;
- }));
- },
- toRgbaString: function() {
- var prefix = "rgba(",
- rgba = jQuery.map( this._rgba, function( v, i ) {
- return v == null ? ( i > 2 ? 1 : 0 ) : v;
- });
-
- if ( rgba[ 3 ] === 1 ) {
- rgba.pop();
- prefix = "rgb(";
- }
-
- return prefix + rgba.join() + ")";
- },
- toHslaString: function() {
- var prefix = "hsla(",
- hsla = jQuery.map( this.hsla(), function( v, i ) {
- if ( v == null ) {
- v = i > 2 ? 1 : 0;
- }
-
- // catch 1 and 2
- if ( i && i < 3 ) {
- v = Math.round( v * 100 ) + "%";
- }
- return v;
- });
-
- if ( hsla[ 3 ] === 1 ) {
- hsla.pop();
- prefix = "hsl(";
- }
- return prefix + hsla.join() + ")";
- },
- toHexString: function( includeAlpha ) {
- var rgba = this._rgba.slice(),
- alpha = rgba.pop();
-
- if ( includeAlpha ) {
- rgba.push( ~~( alpha * 255 ) );
- }
-
- return "#" + jQuery.map( rgba, function( v ) {
-
- // default to 0 when nulls exist
- v = ( v || 0 ).toString( 16 );
- return v.length === 1 ? "0" + v : v;
- }).join("");
- },
- toString: function() {
- return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString();
- }
-});
-color.fn.parse.prototype = color.fn;
-
-// hsla conversions adapted from:
-// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021
-
-function hue2rgb( p, q, h ) {
- h = ( h + 1 ) % 1;
- if ( h * 6 < 1 ) {
- return p + (q - p) * h * 6;
- }
- if ( h * 2 < 1) {
- return q;
- }
- if ( h * 3 < 2 ) {
- return p + (q - p) * ((2/3) - h) * 6;
- }
- return p;
-}
-
-spaces.hsla.to = function ( rgba ) {
- if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {
- return [ null, null, null, rgba[ 3 ] ];
- }
- var r = rgba[ 0 ] / 255,
- g = rgba[ 1 ] / 255,
- b = rgba[ 2 ] / 255,
- a = rgba[ 3 ],
- max = Math.max( r, g, b ),
- min = Math.min( r, g, b ),
- diff = max - min,
- add = max + min,
- l = add * 0.5,
- h, s;
-
- if ( min === max ) {
- h = 0;
- } else if ( r === max ) {
- h = ( 60 * ( g - b ) / diff ) + 360;
- } else if ( g === max ) {
- h = ( 60 * ( b - r ) / diff ) + 120;
- } else {
- h = ( 60 * ( r - g ) / diff ) + 240;
- }
-
- // chroma (diff) == 0 means greyscale which, by definition, saturation = 0%
- // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)
- if ( diff === 0 ) {
- s = 0;
- } else if ( l <= 0.5 ) {
- s = diff / add;
- } else {
- s = diff / ( 2 - add );
- }
- return [ Math.round(h) % 360, s, l, a == null ? 1 : a ];
-};
-
-spaces.hsla.from = function ( hsla ) {
- if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {
- return [ null, null, null, hsla[ 3 ] ];
- }
- var h = hsla[ 0 ] / 360,
- s = hsla[ 1 ],
- l = hsla[ 2 ],
- a = hsla[ 3 ],
- q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,
- p = 2 * l - q;
-
- return [
- Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),
- Math.round( hue2rgb( p, q, h ) * 255 ),
- Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),
- a
- ];
-};
-
-
-each( spaces, function( spaceName, space ) {
- var props = space.props,
- cache = space.cache,
- to = space.to,
- from = space.from;
-
- // makes rgba() and hsla()
- color.fn[ spaceName ] = function( value ) {
-
- // generate a cache for this space if it doesn't exist
- if ( to && !this[ cache ] ) {
- this[ cache ] = to( this._rgba );
- }
- if ( value === undefined ) {
- return this[ cache ].slice();
- }
-
- var ret,
- type = jQuery.type( value ),
- arr = ( type === "array" || type === "object" ) ? value : arguments,
- local = this[ cache ].slice();
-
- each( props, function( key, prop ) {
- var val = arr[ type === "object" ? key : prop.idx ];
- if ( val == null ) {
- val = local[ prop.idx ];
- }
- local[ prop.idx ] = clamp( val, prop );
- });
-
- if ( from ) {
- ret = color( from( local ) );
- ret[ cache ] = local;
- return ret;
- } else {
- return color( local );
- }
- };
-
- // makes red() green() blue() alpha() hue() saturation() lightness()
- each( props, function( key, prop ) {
- // alpha is included in more than one space
- if ( color.fn[ key ] ) {
- return;
- }
- color.fn[ key ] = function( value ) {
- var vtype = jQuery.type( value ),
- fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ),
- local = this[ fn ](),
- cur = local[ prop.idx ],
- match;
-
- if ( vtype === "undefined" ) {
- return cur;
- }
-
- if ( vtype === "function" ) {
- value = value.call( this, cur );
- vtype = jQuery.type( value );
- }
- if ( value == null && prop.empty ) {
- return this;
- }
- if ( vtype === "string" ) {
- match = rplusequals.exec( value );
- if ( match ) {
- value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 );
- }
- }
- local[ prop.idx ] = value;
- return this[ fn ]( local );
- };
- });
-});
-
-// add cssHook and .fx.step function for each named hook.
-// accept a space separated string of properties
-color.hook = function( hook ) {
- var hooks = hook.split( " " );
- each( hooks, function( i, hook ) {
- jQuery.cssHooks[ hook ] = {
- set: function( elem, value ) {
- var parsed, curElem,
- backgroundColor = "";
-
- if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) {
- value = color( parsed || value );
- if ( !support.rgba && value._rgba[ 3 ] !== 1 ) {
- curElem = hook === "backgroundColor" ? elem.parentNode : elem;
- while (
- (backgroundColor === "" || backgroundColor === "transparent") &&
- curElem && curElem.style
- ) {
- try {
- backgroundColor = jQuery.css( curElem, "backgroundColor" );
- curElem = curElem.parentNode;
- } catch ( e ) {
- }
- }
-
- value = value.blend( backgroundColor && backgroundColor !== "transparent" ?
- backgroundColor :
- "_default" );
- }
-
- value = value.toRgbaString();
- }
- try {
- elem.style[ hook ] = value;
- } catch( e ) {
- // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit'
- }
- }
- };
- jQuery.fx.step[ hook ] = function( fx ) {
- if ( !fx.colorInit ) {
- fx.start = color( fx.elem, hook );
- fx.end = color( fx.end );
- fx.colorInit = true;
- }
- jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );
- };
- });
-
-};
-
-color.hook( stepHooks );
-
-jQuery.cssHooks.borderColor = {
- expand: function( value ) {
- var expanded = {};
-
- each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) {
- expanded[ "border" + part + "Color" ] = value;
- });
- return expanded;
- }
-};
-
-// Basic color names only.
-// Usage of any of the other color names requires adding yourself or including
-// jquery.color.svg-names.js.
-colors = jQuery.Color.names = {
- // 4.1. Basic color keywords
- aqua: "#00ffff",
- black: "#000000",
- blue: "#0000ff",
- fuchsia: "#ff00ff",
- gray: "#808080",
- green: "#008000",
- lime: "#00ff00",
- maroon: "#800000",
- navy: "#000080",
- olive: "#808000",
- purple: "#800080",
- red: "#ff0000",
- silver: "#c0c0c0",
- teal: "#008080",
- white: "#ffffff",
- yellow: "#ffff00",
-
- // 4.2.3. "transparent" color keyword
- transparent: [ null, null, null, 0 ],
-
- _default: "#ffffff"
-};
-
-})( jQuery );
-
-
-/******************************************************************************/
-/****************************** CLASS ANIMATIONS ******************************/
-/******************************************************************************/
-(function() {
-
-var classAnimationActions = [ "add", "remove", "toggle" ],
- shorthandStyles = {
- border: 1,
- borderBottom: 1,
- borderColor: 1,
- borderLeft: 1,
- borderRight: 1,
- borderTop: 1,
- borderWidth: 1,
- margin: 1,
- padding: 1
- };
-
-$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) {
- $.fx.step[ prop ] = function( fx ) {
- if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {
- jQuery.style( fx.elem, prop, fx.end );
- fx.setAttr = true;
- }
- };
-});
-
-function getElementStyles( elem ) {
- var key, len,
- style = elem.ownerDocument.defaultView ?
- elem.ownerDocument.defaultView.getComputedStyle( elem, null ) :
- elem.currentStyle,
- styles = {};
-
- if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {
- len = style.length;
- while ( len-- ) {
- key = style[ len ];
- if ( typeof style[ key ] === "string" ) {
- styles[ $.camelCase( key ) ] = style[ key ];
- }
- }
- // support: Opera, IE <9
- } else {
- for ( key in style ) {
- if ( typeof style[ key ] === "string" ) {
- styles[ key ] = style[ key ];
- }
- }
- }
-
- return styles;
-}
-
-
-function styleDifference( oldStyle, newStyle ) {
- var diff = {},
- name, value;
-
- for ( name in newStyle ) {
- value = newStyle[ name ];
- if ( oldStyle[ name ] !== value ) {
- if ( !shorthandStyles[ name ] ) {
- if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {
- diff[ name ] = value;
- }
- }
- }
- }
-
- return diff;
-}
-
-// support: jQuery <1.8
-if ( !$.fn.addBack ) {
- $.fn.addBack = function( selector ) {
- return this.add( selector == null ?
- this.prevObject : this.prevObject.filter( selector )
- );
- };
-}
-
-$.effects.animateClass = function( value, duration, easing, callback ) {
- var o = $.speed( duration, easing, callback );
-
- return this.queue( function() {
- var animated = $( this ),
- baseClass = animated.attr( "class" ) || "",
- applyClassChange,
- allAnimations = o.children ? animated.find( "*" ).addBack() : animated;
-
- // map the animated objects to store the original styles.
- allAnimations = allAnimations.map(function() {
- var el = $( this );
- return {
- el: el,
- start: getElementStyles( this )
- };
- });
-
- // apply class change
- applyClassChange = function() {
- $.each( classAnimationActions, function(i, action) {
- if ( value[ action ] ) {
- animated[ action + "Class" ]( value[ action ] );
- }
- });
- };
- applyClassChange();
-
- // map all animated objects again - calculate new styles and diff
- allAnimations = allAnimations.map(function() {
- this.end = getElementStyles( this.el[ 0 ] );
- this.diff = styleDifference( this.start, this.end );
- return this;
- });
-
- // apply original class
- animated.attr( "class", baseClass );
-
- // map all animated objects again - this time collecting a promise
- allAnimations = allAnimations.map(function() {
- var styleInfo = this,
- dfd = $.Deferred(),
- opts = $.extend({}, o, {
- queue: false,
- complete: function() {
- dfd.resolve( styleInfo );
- }
- });
-
- this.el.animate( this.diff, opts );
- return dfd.promise();
- });
-
- // once all animations have completed:
- $.when.apply( $, allAnimations.get() ).done(function() {
-
- // set the final class
- applyClassChange();
-
- // for each animated element,
- // clear all css properties that were animated
- $.each( arguments, function() {
- var el = this.el;
- $.each( this.diff, function(key) {
- el.css( key, "" );
- });
- });
-
- // this is guarnteed to be there if you use jQuery.speed()
- // it also handles dequeuing the next anim...
- o.complete.call( animated[ 0 ] );
- });
- });
-};
-
-$.fn.extend({
- addClass: (function( orig ) {
- return function( classNames, speed, easing, callback ) {
- return speed ?
- $.effects.animateClass.call( this,
- { add: classNames }, speed, easing, callback ) :
- orig.apply( this, arguments );
- };
- })( $.fn.addClass ),
-
- removeClass: (function( orig ) {
- return function( classNames, speed, easing, callback ) {
- return arguments.length > 1 ?
- $.effects.animateClass.call( this,
- { remove: classNames }, speed, easing, callback ) :
- orig.apply( this, arguments );
- };
- })( $.fn.removeClass ),
-
- toggleClass: (function( orig ) {
- return function( classNames, force, speed, easing, callback ) {
- if ( typeof force === "boolean" || force === undefined ) {
- if ( !speed ) {
- // without speed parameter
- return orig.apply( this, arguments );
- } else {
- return $.effects.animateClass.call( this,
- (force ? { add: classNames } : { remove: classNames }),
- speed, easing, callback );
- }
- } else {
- // without force parameter
- return $.effects.animateClass.call( this,
- { toggle: classNames }, force, speed, easing );
- }
- };
- })( $.fn.toggleClass ),
-
- switchClass: function( remove, add, speed, easing, callback) {
- return $.effects.animateClass.call( this, {
- add: add,
- remove: remove
- }, speed, easing, callback );
- }
-});
-
-})();
-
-/******************************************************************************/
-/*********************************** EFFECTS **********************************/
-/******************************************************************************/
-
-(function() {
-
-$.extend( $.effects, {
- version: "1.10.3",
-
- // Saves a set of properties in a data storage
- save: function( element, set ) {
- for( var i=0; i < set.length; i++ ) {
- if ( set[ i ] !== null ) {
- element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );
- }
- }
- },
-
- // Restores a set of previously saved properties from a data storage
- restore: function( element, set ) {
- var val, i;
- for( i=0; i < set.length; i++ ) {
- if ( set[ i ] !== null ) {
- val = element.data( dataSpace + set[ i ] );
- // support: jQuery 1.6.2
- // http://bugs.jquery.com/ticket/9917
- // jQuery 1.6.2 incorrectly returns undefined for any falsy value.
- // We can't differentiate between "" and 0 here, so we just assume
- // empty string since it's likely to be a more common value...
- if ( val === undefined ) {
- val = "";
- }
- element.css( set[ i ], val );
- }
- }
- },
-
- setMode: function( el, mode ) {
- if (mode === "toggle") {
- mode = el.is( ":hidden" ) ? "show" : "hide";
- }
- return mode;
- },
-
- // Translates a [top,left] array into a baseline value
- // this should be a little more flexible in the future to handle a string & hash
- getBaseline: function( origin, original ) {
- var y, x;
- switch ( origin[ 0 ] ) {
- case "top": y = 0; break;
- case "middle": y = 0.5; break;
- case "bottom": y = 1; break;
- default: y = origin[ 0 ] / original.height;
- }
- switch ( origin[ 1 ] ) {
- case "left": x = 0; break;
- case "center": x = 0.5; break;
- case "right": x = 1; break;
- default: x = origin[ 1 ] / original.width;
- }
- return {
- x: x,
- y: y
- };
- },
-
- // Wraps the element around a wrapper that copies position properties
- createWrapper: function( element ) {
-
- // if the element is already wrapped, return it
- if ( element.parent().is( ".ui-effects-wrapper" )) {
- return element.parent();
- }
-
- // wrap the element
- var props = {
- width: element.outerWidth(true),
- height: element.outerHeight(true),
- "float": element.css( "float" )
- },
- wrapper = $( "<div></div>" )
- .addClass( "ui-effects-wrapper" )
- .css({
- fontSize: "100%",
- background: "transparent",
- border: "none",
- margin: 0,
- padding: 0
- }),
- // Store the size in case width/height are defined in % - Fixes #5245
- size = {
- width: element.width(),
- height: element.height()
- },
- active = document.activeElement;
-
- // support: Firefox
- // Firefox incorrectly exposes anonymous content
- // https://bugzilla.mozilla.org/show_bug.cgi?id=561664
- try {
- active.id;
- } catch( e ) {
- active = document.body;
- }
-
- element.wrap( wrapper );
-
- // Fixes #7595 - Elements lose focus when wrapped.
- if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
- $( active ).focus();
- }
-
- wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element
-
- // transfer positioning properties to the wrapper
- if ( element.css( "position" ) === "static" ) {
- wrapper.css({ position: "relative" });
- element.css({ position: "relative" });
- } else {
- $.extend( props, {
- position: element.css( "position" ),
- zIndex: element.css( "z-index" )
- });
- $.each([ "top", "left", "bottom", "right" ], function(i, pos) {
- props[ pos ] = element.css( pos );
- if ( isNaN( parseInt( props[ pos ], 10 ) ) ) {
- props[ pos ] = "auto";
- }
- });
- element.css({
- position: "relative",
- top: 0,
- left: 0,
- right: "auto",
- bottom: "auto"
- });
- }
- element.css(size);
-
- return wrapper.css( props ).show();
- },
-
- removeWrapper: function( element ) {
- var active = document.activeElement;
-
- if ( element.parent().is( ".ui-effects-wrapper" ) ) {
- element.parent().replaceWith( element );
-
- // Fixes #7595 - Elements lose focus when wrapped.
- if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
- $( active ).focus();
- }
- }
-
-
- return element;
- },
-
- setTransition: function( element, list, factor, value ) {
- value = value || {};
- $.each( list, function( i, x ) {
- var unit = element.cssUnit( x );
- if ( unit[ 0 ] > 0 ) {
- value[ x ] = unit[ 0 ] * factor + unit[ 1 ];
- }
- });
- return value;
- }
-});
-
-// return an effect options object for the given parameters:
-function _normalizeArguments( effect, options, speed, callback ) {
-
- // allow passing all options as the first parameter
- if ( $.isPlainObject( effect ) ) {
- options = effect;
- effect = effect.effect;
- }
-
- // convert to an object
- effect = { effect: effect };
-
- // catch (effect, null, ...)
- if ( options == null ) {
- options = {};
- }
-
- // catch (effect, callback)
- if ( $.isFunction( options ) ) {
- callback = options;
- speed = null;
- options = {};
- }
-
- // catch (effect, speed, ?)
- if ( typeof options === "number" || $.fx.speeds[ options ] ) {
- callback = speed;
- speed = options;
- options = {};
- }
-
- // catch (effect, options, callback)
- if ( $.isFunction( speed ) ) {
- callback = speed;
- speed = null;
- }
-
- // add options to effect
- if ( options ) {
- $.extend( effect, options );
- }
-
- speed = speed || options.duration;
- effect.duration = $.fx.off ? 0 :
- typeof speed === "number" ? speed :
- speed in $.fx.speeds ? $.fx.speeds[ speed ] :
- $.fx.speeds._default;
-
- effect.complete = callback || options.complete;
-
- return effect;
-}
-
-function standardAnimationOption( option ) {
- // Valid standard speeds (nothing, number, named speed)
- if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) {
- return true;
- }
-
- // Invalid strings - treat as "normal" speed
- if ( typeof option === "string" && !$.effects.effect[ option ] ) {
- return true;
- }
-
- // Complete callback
- if ( $.isFunction( option ) ) {
- return true;
- }
-
- // Options hash (but not naming an effect)
- if ( typeof option === "object" && !option.effect ) {
- return true;
- }
-
- // Didn't match any standard API
- return false;
-}
-
-$.fn.extend({
- effect: function( /* effect, options, speed, callback */ ) {
- var args = _normalizeArguments.apply( this, arguments ),
- mode = args.mode,
- queue = args.queue,
- effectMethod = $.effects.effect[ args.effect ];
-
- if ( $.fx.off || !effectMethod ) {
- // delegate to the original method (e.g., .show()) if possible
- if ( mode ) {
- return this[ mode ]( args.duration, args.complete );
- } else {
- return this.each( function() {
- if ( args.complete ) {
- args.complete.call( this );
- }
- });
- }
- }
-
- function run( next ) {
- var elem = $( this ),
- complete = args.complete,
- mode = args.mode;
-
- function done() {
- if ( $.isFunction( complete ) ) {
- complete.call( elem[0] );
- }
- if ( $.isFunction( next ) ) {
- next();
- }
- }
-
- // If the element already has the correct final state, delegate to
- // the core methods so the internal tracking of "olddisplay" works.
- if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) {
- elem[ mode ]();
- done();
- } else {
- effectMethod.call( elem[0], args, done );
- }
- }
-
- return queue === false ? this.each( run ) : this.queue( queue || "fx", run );
- },
-
- show: (function( orig ) {
- return function( option ) {
- if ( standardAnimationOption( option ) ) {
- return orig.apply( this, arguments );
- } else {
- var args = _normalizeArguments.apply( this, arguments );
- args.mode = "show";
- return this.effect.call( this, args );
- }
- };
- })( $.fn.show ),
-
- hide: (function( orig ) {
- return function( option ) {
- if ( standardAnimationOption( option ) ) {
- return orig.apply( this, arguments );
- } else {
- var args = _normalizeArguments.apply( this, arguments );
- args.mode = "hide";
- return this.effect.call( this, args );
- }
- };
- })( $.fn.hide ),
-
- toggle: (function( orig ) {
- return function( option ) {
- if ( standardAnimationOption( option ) || typeof option === "boolean" ) {
- return orig.apply( this, arguments );
- } else {
- var args = _normalizeArguments.apply( this, arguments );
- args.mode = "toggle";
- return this.effect.call( this, args );
- }
- };
- })( $.fn.toggle ),
-
- // helper functions
- cssUnit: function(key) {
- var style = this.css( key ),
- val = [];
-
- $.each( [ "em", "px", "%", "pt" ], function( i, unit ) {
- if ( style.indexOf( unit ) > 0 ) {
- val = [ parseFloat( style ), unit ];
- }
- });
- return val;
- }
-});
-
-})();
-
-/******************************************************************************/
-/*********************************** EASING ***********************************/
-/******************************************************************************/
-
-(function() {
-
-// based on easing equations from Robert Penner (http://www.robertpenner.com/easing)
-
-var baseEasings = {};
-
-$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) {
- baseEasings[ name ] = function( p ) {
- return Math.pow( p, i + 2 );
- };
-});
-
-$.extend( baseEasings, {
- Sine: function ( p ) {
- return 1 - Math.cos( p * Math.PI / 2 );
- },
- Circ: function ( p ) {
- return 1 - Math.sqrt( 1 - p * p );
- },
- Elastic: function( p ) {
- return p === 0 || p === 1 ? p :
- -Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 );
- },
- Back: function( p ) {
- return p * p * ( 3 * p - 2 );
- },
- Bounce: function ( p ) {
- var pow2,
- bounce = 4;
-
- while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}
- return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );
- }
-});
-
-$.each( baseEasings, function( name, easeIn ) {
- $.easing[ "easeIn" + name ] = easeIn;
- $.easing[ "easeOut" + name ] = function( p ) {
- return 1 - easeIn( 1 - p );
- };
- $.easing[ "easeInOut" + name ] = function( p ) {
- return p < 0.5 ?
- easeIn( p * 2 ) / 2 :
- 1 - easeIn( p * -2 + 2 ) / 2;
- };
-});
-
-})();
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-var uid = 0,
- hideProps = {},
- showProps = {};
-
-hideProps.height = hideProps.paddingTop = hideProps.paddingBottom =
- hideProps.borderTopWidth = hideProps.borderBottomWidth = "hide";
-showProps.height = showProps.paddingTop = showProps.paddingBottom =
- showProps.borderTopWidth = showProps.borderBottomWidth = "show";
-
-$.widget( "ui.accordion", {
- version: "1.10.3",
- options: {
- active: 0,
- animate: {},
- collapsible: false,
- event: "click",
- header: "> li > :first-child,> :not(li):even",
- heightStyle: "auto",
- icons: {
- activeHeader: "ui-icon-triangle-1-s",
- header: "ui-icon-triangle-1-e"
- },
-
- // callbacks
- activate: null,
- beforeActivate: null
- },
-
- _create: function() {
- var options = this.options;
- this.prevShow = this.prevHide = $();
- this.element.addClass( "ui-accordion ui-widget ui-helper-reset" )
- // ARIA
- .attr( "role", "tablist" );
-
- // don't allow collapsible: false and active: false / null
- if ( !options.collapsible && (options.active === false || options.active == null) ) {
- options.active = 0;
- }
-
- this._processPanels();
- // handle negative values
- if ( options.active < 0 ) {
- options.active += this.headers.length;
- }
- this._refresh();
- },
-
- _getCreateEventData: function() {
- return {
- header: this.active,
- panel: !this.active.length ? $() : this.active.next(),
- content: !this.active.length ? $() : this.active.next()
- };
- },
-
- _createIcons: function() {
- var icons = this.options.icons;
- if ( icons ) {
- $( "<span>" )
- .addClass( "ui-accordion-header-icon ui-icon " + icons.header )
- .prependTo( this.headers );
- this.active.children( ".ui-accordion-header-icon" )
- .removeClass( icons.header )
- .addClass( icons.activeHeader );
- this.headers.addClass( "ui-accordion-icons" );
- }
- },
-
- _destroyIcons: function() {
- this.headers
- .removeClass( "ui-accordion-icons" )
- .children( ".ui-accordion-header-icon" )
- .remove();
- },
-
- _destroy: function() {
- var contents;
-
- // clean up main element
- this.element
- .removeClass( "ui-accordion ui-widget ui-helper-reset" )
- .removeAttr( "role" );
-
- // clean up headers
- this.headers
- .removeClass( "ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
- .removeAttr( "role" )
- .removeAttr( "aria-selected" )
- .removeAttr( "aria-controls" )
- .removeAttr( "tabIndex" )
- .each(function() {
- if ( /^ui-accordion/.test( this.id ) ) {
- this.removeAttribute( "id" );
- }
- });
- this._destroyIcons();
-
- // clean up content panels
- contents = this.headers.next()
- .css( "display", "" )
- .removeAttr( "role" )
- .removeAttr( "aria-expanded" )
- .removeAttr( "aria-hidden" )
- .removeAttr( "aria-labelledby" )
- .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled" )
- .each(function() {
- if ( /^ui-accordion/.test( this.id ) ) {
- this.removeAttribute( "id" );
- }
- });
- if ( this.options.heightStyle !== "content" ) {
- contents.css( "height", "" );
- }
- },
-
- _setOption: function( key, value ) {
- if ( key === "active" ) {
- // _activate() will handle invalid values and update this.options
- this._activate( value );
- return;
- }
-
- if ( key === "event" ) {
- if ( this.options.event ) {
- this._off( this.headers, this.options.event );
- }
- this._setupEvents( value );
- }
-
- this._super( key, value );
-
- // setting collapsible: false while collapsed; open first panel
- if ( key === "collapsible" && !value && this.options.active === false ) {
- this._activate( 0 );
- }
-
- if ( key === "icons" ) {
- this._destroyIcons();
- if ( value ) {
- this._createIcons();
- }
- }
-
- // #5332 - opacity doesn't cascade to positioned elements in IE
- // so we need to add the disabled class to the headers and panels
- if ( key === "disabled" ) {
- this.headers.add( this.headers.next() )
- .toggleClass( "ui-state-disabled", !!value );
- }
- },
-
- _keydown: function( event ) {
- /*jshint maxcomplexity:15*/
- if ( event.altKey || event.ctrlKey ) {
- return;
- }
-
- var keyCode = $.ui.keyCode,
- length = this.headers.length,
- currentIndex = this.headers.index( event.target ),
- toFocus = false;
-
- switch ( event.keyCode ) {
- case keyCode.RIGHT:
- case keyCode.DOWN:
- toFocus = this.headers[ ( currentIndex + 1 ) % length ];
- break;
- case keyCode.LEFT:
- case keyCode.UP:
- toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
- break;
- case keyCode.SPACE:
- case keyCode.ENTER:
- this._eventHandler( event );
- break;
- case keyCode.HOME:
- toFocus = this.headers[ 0 ];
- break;
- case keyCode.END:
- toFocus = this.headers[ length - 1 ];
- break;
- }
-
- if ( toFocus ) {
- $( event.target ).attr( "tabIndex", -1 );
- $( toFocus ).attr( "tabIndex", 0 );
- toFocus.focus();
- event.preventDefault();
- }
- },
-
- _panelKeyDown : function( event ) {
- if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {
- $( event.currentTarget ).prev().focus();
- }
- },
-
- refresh: function() {
- var options = this.options;
- this._processPanels();
-
- // was collapsed or no panel
- if ( ( options.active === false && options.collapsible === true ) || !this.headers.length ) {
- options.active = false;
- this.active = $();
- // active false only when collapsible is true
- } else if ( options.active === false ) {
- this._activate( 0 );
- // was active, but active panel is gone
- } else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
- // all remaining panel are disabled
- if ( this.headers.length === this.headers.find(".ui-state-disabled").length ) {
- options.active = false;
- this.active = $();
- // activate previous panel
- } else {
- this._activate( Math.max( 0, options.active - 1 ) );
- }
- // was active, active panel still exists
- } else {
- // make sure active index is correct
- options.active = this.headers.index( this.active );
- }
-
- this._destroyIcons();
-
- this._refresh();
- },
-
- _processPanels: function() {
- this.headers = this.element.find( this.options.header )
- .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" );
-
- this.headers.next()
- .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" )
- .filter(":not(.ui-accordion-content-active)")
- .hide();
- },
-
- _refresh: function() {
- var maxHeight,
- options = this.options,
- heightStyle = options.heightStyle,
- parent = this.element.parent(),
- accordionId = this.accordionId = "ui-accordion-" +
- (this.element.attr( "id" ) || ++uid);
-
- this.active = this._findActive( options.active )
- .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" )
- .removeClass( "ui-corner-all" );
- this.active.next()
- .addClass( "ui-accordion-content-active" )
- .show();
-
- this.headers
- .attr( "role", "tab" )
- .each(function( i ) {
- var header = $( this ),
- headerId = header.attr( "id" ),
- panel = header.next(),
- panelId = panel.attr( "id" );
- if ( !headerId ) {
- headerId = accordionId + "-header-" + i;
- header.attr( "id", headerId );
- }
- if ( !panelId ) {
- panelId = accordionId + "-panel-" + i;
- panel.attr( "id", panelId );
- }
- header.attr( "aria-controls", panelId );
- panel.attr( "aria-labelledby", headerId );
- })
- .next()
- .attr( "role", "tabpanel" );
-
- this.headers
- .not( this.active )
- .attr({
- "aria-selected": "false",
- tabIndex: -1
- })
- .next()
- .attr({
- "aria-expanded": "false",
- "aria-hidden": "true"
- })
- .hide();
-
- // make sure at least one header is in the tab order
- if ( !this.active.length ) {
- this.headers.eq( 0 ).attr( "tabIndex", 0 );
- } else {
- this.active.attr({
- "aria-selected": "true",
- tabIndex: 0
- })
- .next()
- .attr({
- "aria-expanded": "true",
- "aria-hidden": "false"
- });
- }
-
- this._createIcons();
-
- this._setupEvents( options.event );
-
- if ( heightStyle === "fill" ) {
- maxHeight = parent.height();
- this.element.siblings( ":visible" ).each(function() {
- var elem = $( this ),
- position = elem.css( "position" );
-
- if ( position === "absolute" || position === "fixed" ) {
- return;
- }
- maxHeight -= elem.outerHeight( true );
- });
-
- this.headers.each(function() {
- maxHeight -= $( this ).outerHeight( true );
- });
-
- this.headers.next()
- .each(function() {
- $( this ).height( Math.max( 0, maxHeight -
- $( this ).innerHeight() + $( this ).height() ) );
- })
- .css( "overflow", "auto" );
- } else if ( heightStyle === "auto" ) {
- maxHeight = 0;
- this.headers.next()
- .each(function() {
- maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() );
- })
- .height( maxHeight );
- }
- },
-
- _activate: function( index ) {
- var active = this._findActive( index )[ 0 ];
-
- // trying to activate the already active panel
- if ( active === this.active[ 0 ] ) {
- return;
- }
-
- // trying to collapse, simulate a click on the currently active header
- active = active || this.active[ 0 ];
-
- this._eventHandler({
- target: active,
- currentTarget: active,
- preventDefault: $.noop
- });
- },
-
- _findActive: function( selector ) {
- return typeof selector === "number" ? this.headers.eq( selector ) : $();
- },
-
- _setupEvents: function( event ) {
- var events = {
- keydown: "_keydown"
- };
- if ( event ) {
- $.each( event.split(" "), function( index, eventName ) {
- events[ eventName ] = "_eventHandler";
- });
- }
-
- this._off( this.headers.add( this.headers.next() ) );
- this._on( this.headers, events );
- this._on( this.headers.next(), { keydown: "_panelKeyDown" });
- this._hoverable( this.headers );
- this._focusable( this.headers );
- },
-
- _eventHandler: function( event ) {
- var options = this.options,
- active = this.active,
- clicked = $( event.currentTarget ),
- clickedIsActive = clicked[ 0 ] === active[ 0 ],
- collapsing = clickedIsActive && options.collapsible,
- toShow = collapsing ? $() : clicked.next(),
- toHide = active.next(),
- eventData = {
- oldHeader: active,
- oldPanel: toHide,
- newHeader: collapsing ? $() : clicked,
- newPanel: toShow
- };
-
- event.preventDefault();
-
- if (
- // click on active header, but not collapsible
- ( clickedIsActive && !options.collapsible ) ||
- // allow canceling activation
- ( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
- return;
- }
-
- options.active = collapsing ? false : this.headers.index( clicked );
-
- // when the call to ._toggle() comes after the class changes
- // it causes a very odd bug in IE 8 (see #6720)
- this.active = clickedIsActive ? $() : clicked;
- this._toggle( eventData );
-
- // switch classes
- // corner classes on the previously active header stay after the animation
- active.removeClass( "ui-accordion-header-active ui-state-active" );
- if ( options.icons ) {
- active.children( ".ui-accordion-header-icon" )
- .removeClass( options.icons.activeHeader )
- .addClass( options.icons.header );
- }
-
- if ( !clickedIsActive ) {
- clicked
- .removeClass( "ui-corner-all" )
- .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" );
- if ( options.icons ) {
- clicked.children( ".ui-accordion-header-icon" )
- .removeClass( options.icons.header )
- .addClass( options.icons.activeHeader );
- }
-
- clicked
- .next()
- .addClass( "ui-accordion-content-active" );
- }
- },
-
- _toggle: function( data ) {
- var toShow = data.newPanel,
- toHide = this.prevShow.length ? this.prevShow : data.oldPanel;
-
- // handle activating a panel during the animation for another activation
- this.prevShow.add( this.prevHide ).stop( true, true );
- this.prevShow = toShow;
- this.prevHide = toHide;
-
- if ( this.options.animate ) {
- this._animate( toShow, toHide, data );
- } else {
- toHide.hide();
- toShow.show();
- this._toggleComplete( data );
- }
-
- toHide.attr({
- "aria-expanded": "false",
- "aria-hidden": "true"
- });
- toHide.prev().attr( "aria-selected", "false" );
- // if we're switching panels, remove the old header from the tab order
- // if we're opening from collapsed state, remove the previous header from the tab order
- // if we're collapsing, then keep the collapsing header in the tab order
- if ( toShow.length && toHide.length ) {
- toHide.prev().attr( "tabIndex", -1 );
- } else if ( toShow.length ) {
- this.headers.filter(function() {
- return $( this ).attr( "tabIndex" ) === 0;
- })
- .attr( "tabIndex", -1 );
- }
-
- toShow
- .attr({
- "aria-expanded": "true",
- "aria-hidden": "false"
- })
- .prev()
- .attr({
- "aria-selected": "true",
- tabIndex: 0
- });
- },
-
- _animate: function( toShow, toHide, data ) {
- var total, easing, duration,
- that = this,
- adjust = 0,
- down = toShow.length &&
- ( !toHide.length || ( toShow.index() < toHide.index() ) ),
- animate = this.options.animate || {},
- options = down && animate.down || animate,
- complete = function() {
- that._toggleComplete( data );
- };
-
- if ( typeof options === "number" ) {
- duration = options;
- }
- if ( typeof options === "string" ) {
- easing = options;
- }
- // fall back from options to animation in case of partial down settings
- easing = easing || options.easing || animate.easing;
- duration = duration || options.duration || animate.duration;
-
- if ( !toHide.length ) {
- return toShow.animate( showProps, duration, easing, complete );
- }
- if ( !toShow.length ) {
- return toHide.animate( hideProps, duration, easing, complete );
- }
-
- total = toShow.show().outerHeight();
- toHide.animate( hideProps, {
- duration: duration,
- easing: easing,
- step: function( now, fx ) {
- fx.now = Math.round( now );
- }
- });
- toShow
- .hide()
- .animate( showProps, {
- duration: duration,
- easing: easing,
- complete: complete,
- step: function( now, fx ) {
- fx.now = Math.round( now );
- if ( fx.prop !== "height" ) {
- adjust += fx.now;
- } else if ( that.options.heightStyle !== "content" ) {
- fx.now = Math.round( total - toHide.outerHeight() - adjust );
- adjust = 0;
- }
- }
- });
- },
-
- _toggleComplete: function( data ) {
- var toHide = data.oldPanel;
-
- toHide
- .removeClass( "ui-accordion-content-active" )
- .prev()
- .removeClass( "ui-corner-top" )
- .addClass( "ui-corner-all" );
-
- // Work around for rendering bug in IE (#5421)
- if ( toHide.length ) {
- toHide.parent()[0].className = toHide.parent()[0].className;
- }
-
- this._trigger( "activate", null, data );
- }
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-// used to prevent race conditions with remote data sources
-var requestIndex = 0;
-
-$.widget( "ui.autocomplete", {
- version: "1.10.3",
- defaultElement: "<input>",
- options: {
- appendTo: null,
- autoFocus: false,
- delay: 300,
- minLength: 1,
- position: {
- my: "left top",
- at: "left bottom",
- collision: "none"
- },
- source: null,
-
- // callbacks
- change: null,
- close: null,
- focus: null,
- open: null,
- response: null,
- search: null,
- select: null
- },
-
- pending: 0,
-
- _create: function() {
- // Some browsers only repeat keydown events, not keypress events,
- // so we use the suppressKeyPress flag to determine if we've already
- // handled the keydown event. #7269
- // Unfortunately the code for & in keypress is the same as the up arrow,
- // so we use the suppressKeyPressRepeat flag to avoid handling keypress
- // events when we know the keydown event was used to modify the
- // search term. #7799
- var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
- nodeName = this.element[0].nodeName.toLowerCase(),
- isTextarea = nodeName === "textarea",
- isInput = nodeName === "input";
-
- this.isMultiLine =
- // Textareas are always multi-line
- isTextarea ? true :
- // Inputs are always single-line, even if inside a contentEditable element
- // IE also treats inputs as contentEditable
- isInput ? false :
- // All other element types are determined by whether or not they're contentEditable
- this.element.prop( "isContentEditable" );
-
- this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
- this.isNewMenu = true;
-
- this.element
- .addClass( "ui-autocomplete-input" )
- .attr( "autocomplete", "off" );
-
- this._on( this.element, {
- keydown: function( event ) {
- /*jshint maxcomplexity:15*/
- if ( this.element.prop( "readOnly" ) ) {
- suppressKeyPress = true;
- suppressInput = true;
- suppressKeyPressRepeat = true;
- return;
- }
-
- suppressKeyPress = false;
- suppressInput = false;
- suppressKeyPressRepeat = false;
- var keyCode = $.ui.keyCode;
- switch( event.keyCode ) {
- case keyCode.PAGE_UP:
- suppressKeyPress = true;
- this._move( "previousPage", event );
- break;
- case keyCode.PAGE_DOWN:
- suppressKeyPress = true;
- this._move( "nextPage", event );
- break;
- case keyCode.UP:
- suppressKeyPress = true;
- this._keyEvent( "previous", event );
- break;
- case keyCode.DOWN:
- suppressKeyPress = true;
- this._keyEvent( "next", event );
- break;
- case keyCode.ENTER:
- case keyCode.NUMPAD_ENTER:
- // when menu is open and has focus
- if ( this.menu.active ) {
- // #6055 - Opera still allows the keypress to occur
- // which causes forms to submit
- suppressKeyPress = true;
- event.preventDefault();
- this.menu.select( event );
- }
- break;
- case keyCode.TAB:
- if ( this.menu.active ) {
- this.menu.select( event );
- }
- break;
- case keyCode.ESCAPE:
- if ( this.menu.element.is( ":visible" ) ) {
- this._value( this.term );
- this.close( event );
- // Different browsers have different default behavior for escape
- // Single press can mean undo or clear
- // Double press in IE means clear the whole form
- event.preventDefault();
- }
- break;
- default:
- suppressKeyPressRepeat = true;
- // search timeout should be triggered before the input value is changed
- this._searchTimeout( event );
- break;
- }
- },
- keypress: function( event ) {
- if ( suppressKeyPress ) {
- suppressKeyPress = false;
- if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
- event.preventDefault();
- }
- return;
- }
- if ( suppressKeyPressRepeat ) {
- return;
- }
-
- // replicate some key handlers to allow them to repeat in Firefox and Opera
- var keyCode = $.ui.keyCode;
- switch( event.keyCode ) {
- case keyCode.PAGE_UP:
- this._move( "previousPage", event );
- break;
- case keyCode.PAGE_DOWN:
- this._move( "nextPage", event );
- break;
- case keyCode.UP:
- this._keyEvent( "previous", event );
- break;
- case keyCode.DOWN:
- this._keyEvent( "next", event );
- break;
- }
- },
- input: function( event ) {
- if ( suppressInput ) {
- suppressInput = false;
- event.preventDefault();
- return;
- }
- this._searchTimeout( event );
- },
- focus: function() {
- this.selectedItem = null;
- this.previous = this._value();
- },
- blur: function( event ) {
- if ( this.cancelBlur ) {
- delete this.cancelBlur;
- return;
- }
-
- clearTimeout( this.searching );
- this.close( event );
- this._change( event );
- }
- });
-
- this._initSource();
- this.menu = $( "<ul>" )
- .addClass( "ui-autocomplete ui-front" )
- .appendTo( this._appendTo() )
- .menu({
- // disable ARIA support, the live region takes care of that
- role: null
- })
- .hide()
- .data( "ui-menu" );
-
- this._on( this.menu.element, {
- mousedown: function( event ) {
- // prevent moving focus out of the text field
- event.preventDefault();
-
- // IE doesn't prevent moving focus even with event.preventDefault()
- // so we set a flag to know when we should ignore the blur event
- this.cancelBlur = true;
- this._delay(function() {
- delete this.cancelBlur;
- });
-
- // clicking on the scrollbar causes focus to shift to the body
- // but we can't detect a mouseup or a click immediately afterward
- // so we have to track the next mousedown and close the menu if
- // the user clicks somewhere outside of the autocomplete
- var menuElement = this.menu.element[ 0 ];
- if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
- this._delay(function() {
- var that = this;
- this.document.one( "mousedown", function( event ) {
- if ( event.target !== that.element[ 0 ] &&
- event.target !== menuElement &&
- !$.contains( menuElement, event.target ) ) {
- that.close();
- }
- });
- });
- }
- },
- menufocus: function( event, ui ) {
- // support: Firefox
- // Prevent accidental activation of menu items in Firefox (#7024 #9118)
- if ( this.isNewMenu ) {
- this.isNewMenu = false;
- if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
- this.menu.blur();
-
- this.document.one( "mousemove", function() {
- $( event.target ).trigger( event.originalEvent );
- });
-
- return;
- }
- }
-
- var item = ui.item.data( "ui-autocomplete-item" );
- if ( false !== this._trigger( "focus", event, { item: item } ) ) {
- // use value to match what will end up in the input, if it was a key event
- if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
- this._value( item.value );
- }
- } else {
- // Normally the input is populated with the item's value as the
- // menu is navigated, causing screen readers to notice a change and
- // announce the item. Since the focus event was canceled, this doesn't
- // happen, so we update the live region so that screen readers can
- // still notice the change and announce it.
- this.liveRegion.text( item.value );
- }
- },
- menuselect: function( event, ui ) {
- var item = ui.item.data( "ui-autocomplete-item" ),
- previous = this.previous;
-
- // only trigger when focus was lost (click on menu)
- if ( this.element[0] !== this.document[0].activeElement ) {
- this.element.focus();
- this.previous = previous;
- // #6109 - IE triggers two focus events and the second
- // is asynchronous, so we need to reset the previous
- // term synchronously and asynchronously :-(
- this._delay(function() {
- this.previous = previous;
- this.selectedItem = item;
- });
- }
-
- if ( false !== this._trigger( "select", event, { item: item } ) ) {
- this._value( item.value );
- }
- // reset the term after the select event
- // this allows custom select handling to work properly
- this.term = this._value();
-
- this.close( event );
- this.selectedItem = item;
- }
- });
-
- this.liveRegion = $( "<span>", {
- role: "status",
- "aria-live": "polite"
- })
- .addClass( "ui-helper-hidden-accessible" )
- .insertBefore( this.element );
-
- // turning off autocomplete prevents the browser from remembering the
- // value when navigating through history, so we re-enable autocomplete
- // if the page is unloaded before the widget is destroyed. #7790
- this._on( this.window, {
- beforeunload: function() {
- this.element.removeAttr( "autocomplete" );
- }
- });
- },
-
- _destroy: function() {
- clearTimeout( this.searching );
- this.element
- .removeClass( "ui-autocomplete-input" )
- .removeAttr( "autocomplete" );
- this.menu.element.remove();
- this.liveRegion.remove();
- },
-
- _setOption: function( key, value ) {
- this._super( key, value );
- if ( key === "source" ) {
- this._initSource();
- }
- if ( key === "appendTo" ) {
- this.menu.element.appendTo( this._appendTo() );
- }
- if ( key === "disabled" && value && this.xhr ) {
- this.xhr.abort();
- }
- },
-
- _appendTo: function() {
- var element = this.options.appendTo;
-
- if ( element ) {
- element = element.jquery || element.nodeType ?
- $( element ) :
- this.document.find( element ).eq( 0 );
- }
-
- if ( !element ) {
- element = this.element.closest( ".ui-front" );
- }
-
- if ( !element.length ) {
- element = this.document[0].body;
- }
-
- return element;
- },
-
- _initSource: function() {
- var array, url,
- that = this;
- if ( $.isArray(this.options.source) ) {
- array = this.options.source;
- this.source = function( request, response ) {
- response( $.ui.autocomplete.filter( array, request.term ) );
- };
- } else if ( typeof this.options.source === "string" ) {
- url = this.options.source;
- this.source = function( request, response ) {
- if ( that.xhr ) {
- that.xhr.abort();
- }
- that.xhr = $.ajax({
- url: url,
- data: request,
- dataType: "json",
- success: function( data ) {
- response( data );
- },
- error: function() {
- response( [] );
- }
- });
- };
- } else {
- this.source = this.options.source;
- }
- },
-
- _searchTimeout: function( event ) {
- clearTimeout( this.searching );
- this.searching = this._delay(function() {
- // only search if the value has changed
- if ( this.term !== this._value() ) {
- this.selectedItem = null;
- this.search( null, event );
- }
- }, this.options.delay );
- },
-
- search: function( value, event ) {
- value = value != null ? value : this._value();
-
- // always save the actual value, not the one passed as an argument
- this.term = this._value();
-
- if ( value.length < this.options.minLength ) {
- return this.close( event );
- }
-
- if ( this._trigger( "search", event ) === false ) {
- return;
- }
-
- return this._search( value );
- },
-
- _search: function( value ) {
- this.pending++;
- this.element.addClass( "ui-autocomplete-loading" );
- this.cancelSearch = false;
-
- this.source( { term: value }, this._response() );
- },
-
- _response: function() {
- var that = this,
- index = ++requestIndex;
-
- return function( content ) {
- if ( index === requestIndex ) {
- that.__response( content );
- }
-
- that.pending--;
- if ( !that.pending ) {
- that.element.removeClass( "ui-autocomplete-loading" );
- }
- };
- },
-
- __response: function( content ) {
- if ( content ) {
- content = this._normalize( content );
- }
- this._trigger( "response", null, { content: content } );
- if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
- this._suggest( content );
- this._trigger( "open" );
- } else {
- // use ._close() instead of .close() so we don't cancel future searches
- this._close();
- }
- },
-
- close: function( event ) {
- this.cancelSearch = true;
- this._close( event );
- },
-
- _close: function( event ) {
- if ( this.menu.element.is( ":visible" ) ) {
- this.menu.element.hide();
- this.menu.blur();
- this.isNewMenu = true;
- this._trigger( "close", event );
- }
- },
-
- _change: function( event ) {
- if ( this.previous !== this._value() ) {
- this._trigger( "change", event, { item: this.selectedItem } );
- }
- },
-
- _normalize: function( items ) {
- // assume all items have the right format when the first item is complete
- if ( items.length && items[0].label && items[0].value ) {
- return items;
- }
- return $.map( items, function( item ) {
- if ( typeof item === "string" ) {
- return {
- label: item,
- value: item
- };
- }
- return $.extend({
- label: item.label || item.value,
- value: item.value || item.label
- }, item );
- });
- },
-
- _suggest: function( items ) {
- var ul = this.menu.element.empty();
- this._renderMenu( ul, items );
- this.isNewMenu = true;
- this.menu.refresh();
-
- // size and position menu
- ul.show();
- this._resizeMenu();
- ul.position( $.extend({
- of: this.element
- }, this.options.position ));
-
- if ( this.options.autoFocus ) {
- this.menu.next();
- }
- },
-
- _resizeMenu: function() {
- var ul = this.menu.element;
- ul.outerWidth( Math.max(
- // Firefox wraps long text (possibly a rounding bug)
- // so we add 1px to avoid the wrapping (#7513)
- ul.width( "" ).outerWidth() + 1,
- this.element.outerWidth()
- ) );
- },
-
- _renderMenu: function( ul, items ) {
- var that = this;
- $.each( items, function( index, item ) {
- that._renderItemData( ul, item );
- });
- },
-
- _renderItemData: function( ul, item ) {
- return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
- },
-
- _renderItem: function( ul, item ) {
- return $( "<li>" )
- .append( $( "<a>" ).text( item.label ) )
- .appendTo( ul );
- },
-
- _move: function( direction, event ) {
- if ( !this.menu.element.is( ":visible" ) ) {
- this.search( null, event );
- return;
- }
- if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
- this.menu.isLastItem() && /^next/.test( direction ) ) {
- this._value( this.term );
- this.menu.blur();
- return;
- }
- this.menu[ direction ]( event );
- },
-
- widget: function() {
- return this.menu.element;
- },
-
- _value: function() {
- return this.valueMethod.apply( this.element, arguments );
- },
-
- _keyEvent: function( keyEvent, event ) {
- if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
- this._move( keyEvent, event );
-
- // prevents moving cursor to beginning/end of the text field in some browsers
- event.preventDefault();
- }
- }
-});
-
-$.extend( $.ui.autocomplete, {
- escapeRegex: function( value ) {
- return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
- },
- filter: function(array, term) {
- var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
- return $.grep( array, function(value) {
- return matcher.test( value.label || value.value || value );
- });
- }
-});
-
-
-// live region extension, adding a `messages` option
-// NOTE: This is an experimental API. We are still investigating
-// a full solution for string manipulation and internationalization.
-$.widget( "ui.autocomplete", $.ui.autocomplete, {
- options: {
- messages: {
- noResults: "No search results.",
- results: function( amount ) {
- return amount + ( amount > 1 ? " results are" : " result is" ) +
- " available, use up and down arrow keys to navigate.";
- }
- }
- },
-
- __response: function( content ) {
- var message;
- this._superApply( arguments );
- if ( this.options.disabled || this.cancelSearch ) {
- return;
- }
- if ( content && content.length ) {
- message = this.options.messages.results( content.length );
- } else {
- message = this.options.messages.noResults;
- }
- this.liveRegion.text( message );
- }
-});
-
-}( jQuery ));
-
-(function( $, undefined ) {
-
-var lastActive, startXPos, startYPos, clickDragged,
- baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
- stateClasses = "ui-state-hover ui-state-active ",
- typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
- formResetHandler = function() {
- var form = $( this );
- setTimeout(function() {
- form.find( ":ui-button" ).button( "refresh" );
- }, 1 );
- },
- radioGroup = function( radio ) {
- var name = radio.name,
- form = radio.form,
- radios = $( [] );
- if ( name ) {
- name = name.replace( /'/g, "\\'" );
- if ( form ) {
- radios = $( form ).find( "[name='" + name + "']" );
- } else {
- radios = $( "[name='" + name + "']", radio.ownerDocument )
- .filter(function() {
- return !this.form;
- });
- }
- }
- return radios;
- };
-
-$.widget( "ui.button", {
- version: "1.10.3",
- defaultElement: "<button>",
- options: {
- disabled: null,
- text: true,
- label: null,
- icons: {
- primary: null,
- secondary: null
- }
- },
- _create: function() {
- this.element.closest( "form" )
- .unbind( "reset" + this.eventNamespace )
- .bind( "reset" + this.eventNamespace, formResetHandler );
-
- if ( typeof this.options.disabled !== "boolean" ) {
- this.options.disabled = !!this.element.prop( "disabled" );
- } else {
- this.element.prop( "disabled", this.options.disabled );
- }
-
- this._determineButtonType();
- this.hasTitle = !!this.buttonElement.attr( "title" );
-
- var that = this,
- options = this.options,
- toggleButton = this.type === "checkbox" || this.type === "radio",
- activeClass = !toggleButton ? "ui-state-active" : "",
- focusClass = "ui-state-focus";
-
- if ( options.label === null ) {
- options.label = (this.type === "input" ? this.buttonElement.val() : this.buttonElement.html());
- }
-
- this._hoverable( this.buttonElement );
-
- this.buttonElement
- .addClass( baseClasses )
- .attr( "role", "button" )
- .bind( "mouseenter" + this.eventNamespace, function() {
- if ( options.disabled ) {
- return;
- }
- if ( this === lastActive ) {
- $( this ).addClass( "ui-state-active" );
- }
- })
- .bind( "mouseleave" + this.eventNamespace, function() {
- if ( options.disabled ) {
- return;
- }
- $( this ).removeClass( activeClass );
- })
- .bind( "click" + this.eventNamespace, function( event ) {
- if ( options.disabled ) {
- event.preventDefault();
- event.stopImmediatePropagation();
- }
- });
-
- this.element
- .bind( "focus" + this.eventNamespace, function() {
- // no need to check disabled, focus won't be triggered anyway
- that.buttonElement.addClass( focusClass );
- })
- .bind( "blur" + this.eventNamespace, function() {
- that.buttonElement.removeClass( focusClass );
- });
-
- if ( toggleButton ) {
- this.element.bind( "change" + this.eventNamespace, function() {
- if ( clickDragged ) {
- return;
- }
- that.refresh();
- });
- // if mouse moves between mousedown and mouseup (drag) set clickDragged flag
- // prevents issue where button state changes but checkbox/radio checked state
- // does not in Firefox (see ticket #6970)
- this.buttonElement
- .bind( "mousedown" + this.eventNamespace, function( event ) {
- if ( options.disabled ) {
- return;
- }
- clickDragged = false;
- startXPos = event.pageX;
- startYPos = event.pageY;
- })
- .bind( "mouseup" + this.eventNamespace, function( event ) {
- if ( options.disabled ) {
- return;
- }
- if ( startXPos !== event.pageX || startYPos !== event.pageY ) {
- clickDragged = true;
- }
- });
- }
-
- if ( this.type === "checkbox" ) {
- this.buttonElement.bind( "click" + this.eventNamespace, function() {
- if ( options.disabled || clickDragged ) {
- return false;
- }
- });
- } else if ( this.type === "radio" ) {
- this.buttonElement.bind( "click" + this.eventNamespace, function() {
- if ( options.disabled || clickDragged ) {
- return false;
- }
- $( this ).addClass( "ui-state-active" );
- that.buttonElement.attr( "aria-pressed", "true" );
-
- var radio = that.element[ 0 ];
- radioGroup( radio )
- .not( radio )
- .map(function() {
- return $( this ).button( "widget" )[ 0 ];
- })
- .removeClass( "ui-state-active" )
- .attr( "aria-pressed", "false" );
- });
- } else {
- this.buttonElement
- .bind( "mousedown" + this.eventNamespace, function() {
- if ( options.disabled ) {
- return false;
- }
- $( this ).addClass( "ui-state-active" );
- lastActive = this;
- that.document.one( "mouseup", function() {
- lastActive = null;
- });
- })
- .bind( "mouseup" + this.eventNamespace, function() {
- if ( options.disabled ) {
- return false;
- }
- $( this ).removeClass( "ui-state-active" );
- })
- .bind( "keydown" + this.eventNamespace, function(event) {
- if ( options.disabled ) {
- return false;
- }
- if ( event.keyCode === $.ui.keyCode.SPACE || event.keyCode === $.ui.keyCode.ENTER ) {
- $( this ).addClass( "ui-state-active" );
- }
- })
- // see #8559, we bind to blur here in case the button element loses
- // focus between keydown and keyup, it would be left in an "active" state
- .bind( "keyup" + this.eventNamespace + " blur" + this.eventNamespace, function() {
- $( this ).removeClass( "ui-state-active" );
- });
-
- if ( this.buttonElement.is("a") ) {
- this.buttonElement.keyup(function(event) {
- if ( event.keyCode === $.ui.keyCode.SPACE ) {
- // TODO pass through original event correctly (just as 2nd argument doesn't work)
- $( this ).click();
- }
- });
- }
- }
-
- // TODO: pull out $.Widget's handling for the disabled option into
- // $.Widget.prototype._setOptionDisabled so it's easy to proxy and can
- // be overridden by individual plugins
- this._setOption( "disabled", options.disabled );
- this._resetButton();
- },
-
- _determineButtonType: function() {
- var ancestor, labelSelector, checked;
-
- if ( this.element.is("[type=checkbox]") ) {
- this.type = "checkbox";
- } else if ( this.element.is("[type=radio]") ) {
- this.type = "radio";
- } else if ( this.element.is("input") ) {
- this.type = "input";
- } else {
- this.type = "button";
- }
-
- if ( this.type === "checkbox" || this.type === "radio" ) {
- // we don't search against the document in case the element
- // is disconnected from the DOM
- ancestor = this.element.parents().last();
- labelSelector = "label[for='" + this.element.attr("id") + "']";
- this.buttonElement = ancestor.find( labelSelector );
- if ( !this.buttonElement.length ) {
- ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();
- this.buttonElement = ancestor.filter( labelSelector );
- if ( !this.buttonElement.length ) {
- this.buttonElement = ancestor.find( labelSelector );
- }
- }
- this.element.addClass( "ui-helper-hidden-accessible" );
-
- checked = this.element.is( ":checked" );
- if ( checked ) {
- this.buttonElement.addClass( "ui-state-active" );
- }
- this.buttonElement.prop( "aria-pressed", checked );
- } else {
- this.buttonElement = this.element;
- }
- },
-
- widget: function() {
- return this.buttonElement;
- },
-
- _destroy: function() {
- this.element
- .removeClass( "ui-helper-hidden-accessible" );
- this.buttonElement
- .removeClass( baseClasses + " " + stateClasses + " " + typeClasses )
- .removeAttr( "role" )
- .removeAttr( "aria-pressed" )
- .html( this.buttonElement.find(".ui-button-text").html() );
-
- if ( !this.hasTitle ) {
- this.buttonElement.removeAttr( "title" );
- }
- },
-
- _setOption: function( key, value ) {
- this._super( key, value );
- if ( key === "disabled" ) {
- if ( value ) {
- this.element.prop( "disabled", true );
- } else {
- this.element.prop( "disabled", false );
- }
- return;
- }
- this._resetButton();
- },
-
- refresh: function() {
- //See #8237 & #8828
- var isDisabled = this.element.is( "input, button" ) ? this.element.is( ":disabled" ) : this.element.hasClass( "ui-button-disabled" );
-
- if ( isDisabled !== this.options.disabled ) {
- this._setOption( "disabled", isDisabled );
- }
- if ( this.type === "radio" ) {
- radioGroup( this.element[0] ).each(function() {
- if ( $( this ).is( ":checked" ) ) {
- $( this ).button( "widget" )
- .addClass( "ui-state-active" )
- .attr( "aria-pressed", "true" );
- } else {
- $( this ).button( "widget" )
- .removeClass( "ui-state-active" )
- .attr( "aria-pressed", "false" );
- }
- });
- } else if ( this.type === "checkbox" ) {
- if ( this.element.is( ":checked" ) ) {
- this.buttonElement
- .addClass( "ui-state-active" )
- .attr( "aria-pressed", "true" );
- } else {
- this.buttonElement
- .removeClass( "ui-state-active" )
- .attr( "aria-pressed", "false" );
- }
- }
- },
-
- _resetButton: function() {
- if ( this.type === "input" ) {
- if ( this.options.label ) {
- this.element.val( this.options.label );
- }
- return;
- }
- var buttonElement = this.buttonElement.removeClass( typeClasses ),
- buttonText = $( "<span></span>", this.document[0] )
- .addClass( "ui-button-text" )
- .html( this.options.label )
- .appendTo( buttonElement.empty() )
- .text(),
- icons = this.options.icons,
- multipleIcons = icons.primary && icons.secondary,
- buttonClasses = [];
-
- if ( icons.primary || icons.secondary ) {
- if ( this.options.text ) {
- buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
- }
-
- if ( icons.primary ) {
- buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
- }
-
- if ( icons.secondary ) {
- buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );
- }
-
- if ( !this.options.text ) {
- buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
-
- if ( !this.hasTitle ) {
- buttonElement.attr( "title", $.trim( buttonText ) );
- }
- }
- } else {
- buttonClasses.push( "ui-button-text-only" );
- }
- buttonElement.addClass( buttonClasses.join( " " ) );
- }
-});
-
-$.widget( "ui.buttonset", {
- version: "1.10.3",
- options: {
- items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"
- },
-
- _create: function() {
- this.element.addClass( "ui-buttonset" );
- },
-
- _init: function() {
- this.refresh();
- },
-
- _setOption: function( key, value ) {
- if ( key === "disabled" ) {
- this.buttons.button( "option", key, value );
- }
-
- this._super( key, value );
- },
-
- refresh: function() {
- var rtl = this.element.css( "direction" ) === "rtl";
-
- this.buttons = this.element.find( this.options.items )
- .filter( ":ui-button" )
- .button( "refresh" )
- .end()
- .not( ":ui-button" )
- .button()
- .end()
- .map(function() {
- return $( this ).button( "widget" )[ 0 ];
- })
- .removeClass( "ui-corner-all ui-corner-left ui-corner-right" )
- .filter( ":first" )
- .addClass( rtl ? "ui-corner-right" : "ui-corner-left" )
- .end()
- .filter( ":last" )
- .addClass( rtl ? "ui-corner-left" : "ui-corner-right" )
- .end()
- .end();
- },
-
- _destroy: function() {
- this.element.removeClass( "ui-buttonset" );
- this.buttons
- .map(function() {
- return $( this ).button( "widget" )[ 0 ];
- })
- .removeClass( "ui-corner-left ui-corner-right" )
- .end()
- .button( "destroy" );
- }
-});
-
-}( jQuery ) );
-
-(function( $, undefined ) {
-
-$.extend($.ui, { datepicker: { version: "1.10.3" } });
-
-var PROP_NAME = "datepicker",
- instActive;
-
-/* Date picker manager.
- Use the singleton instance of this class, $.datepicker, to interact with the date picker.
- Settings for (groups of) date pickers are maintained in an instance object,
- allowing multiple different settings on the same page. */
-
-function Datepicker() {
- this._curInst = null; // The current instance in use
- this._keyEvent = false; // If the last event was a key event
- this._disabledInputs = []; // List of date picker inputs that have been disabled
- this._datepickerShowing = false; // True if the popup picker is showing , false if not
- this._inDialog = false; // True if showing within a "dialog", false if not
- this._mainDivId = "ui-datepicker-div"; // The ID of the main datepicker division
- this._inlineClass = "ui-datepicker-inline"; // The name of the inline marker class
- this._appendClass = "ui-datepicker-append"; // The name of the append marker class
- this._triggerClass = "ui-datepicker-trigger"; // The name of the trigger marker class
- this._dialogClass = "ui-datepicker-dialog"; // The name of the dialog marker class
- this._disableClass = "ui-datepicker-disabled"; // The name of the disabled covering marker class
- this._unselectableClass = "ui-datepicker-unselectable"; // The name of the unselectable cell marker class
- this._currentClass = "ui-datepicker-current-day"; // The name of the current day marker class
- this._dayOverClass = "ui-datepicker-days-cell-over"; // The name of the day hover marker class
- this.regional = []; // Available regional settings, indexed by language code
- this.regional[""] = { // Default regional settings
- closeText: "Done", // Display text for close link
- prevText: "Prev", // Display text for previous month link
- nextText: "Next", // Display text for next month link
- currentText: "Today", // Display text for current month link
- monthNames: ["January","February","March","April","May","June",
- "July","August","September","October","November","December"], // Names of months for drop-down and formatting
- monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], // For formatting
- dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], // For formatting
- dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], // For formatting
- dayNamesMin: ["Su","Mo","Tu","We","Th","Fr","Sa"], // Column headings for days starting at Sunday
- weekHeader: "Wk", // Column header for week of the year
- dateFormat: "mm/dd/yy", // See format options on parseDate
- firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
- isRTL: false, // True if right-to-left language, false if left-to-right
- showMonthAfterYear: false, // True if the year select precedes month, false for month then year
- yearSuffix: "" // Additional text to append to the year in the month headers
- };
- this._defaults = { // Global defaults for all the date picker instances
- showOn: "focus", // "focus" for popup on focus,
- // "button" for trigger button, or "both" for either
- showAnim: "fadeIn", // Name of jQuery animation for popup
- showOptions: {}, // Options for enhanced animations
- defaultDate: null, // Used when field is blank: actual date,
- // +/-number for offset from today, null for today
- appendText: "", // Display text following the input box, e.g. showing the format
- buttonText: "...", // Text for trigger button
- buttonImage: "", // URL for trigger button image
- buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
- hideIfNoPrevNext: false, // True to hide next/previous month links
- // if not applicable, false to just disable them
- navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
- gotoCurrent: false, // True if today link goes back to current selection instead
- changeMonth: false, // True if month can be selected directly, false if only prev/next
- changeYear: false, // True if year can be selected directly, false if only prev/next
- yearRange: "c-10:c+10", // Range of years to display in drop-down,
- // either relative to today's year (-nn:+nn), relative to currently displayed year
- // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
- showOtherMonths: false, // True to show dates in other months, false to leave blank
- selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
- showWeek: false, // True to show week of the year, false to not show it
- calculateWeek: this.iso8601Week, // How to calculate the week of the year,
- // takes a Date and returns the number of the week for it
- shortYearCutoff: "+10", // Short year values < this are in the current century,
- // > this are in the previous century,
- // string value starting with "+" for current year + value
- minDate: null, // The earliest selectable date, or null for no limit
- maxDate: null, // The latest selectable date, or null for no limit
- duration: "fast", // Duration of display/closure
- beforeShowDay: null, // Function that takes a date and returns an array with
- // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "",
- // [2] = cell title (optional), e.g. $.datepicker.noWeekends
- beforeShow: null, // Function that takes an input field and
- // returns a set of custom settings for the date picker
- onSelect: null, // Define a callback function when a date is selected
- onChangeMonthYear: null, // Define a callback function when the month or year is changed
- onClose: null, // Define a callback function when the datepicker is closed
- numberOfMonths: 1, // Number of months to show at a time
- showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
- stepMonths: 1, // Number of months to step back/forward
- stepBigMonths: 12, // Number of months to step back/forward for the big links
- altField: "", // Selector for an alternate field to store selected dates into
- altFormat: "", // The date format to use for the alternate field
- constrainInput: true, // The input is constrained by the current date format
- showButtonPanel: false, // True to show button panel, false to not show it
- autoSize: false, // True to size the input for the date format, false to leave as is
- disabled: false // The initial disabled state
- };
- $.extend(this._defaults, this.regional[""]);
- this.dpDiv = bindHover($("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"));
-}
-
-$.extend(Datepicker.prototype, {
- /* Class name added to elements to indicate already configured with a date picker. */
- markerClassName: "hasDatepicker",
-
- //Keep track of the maximum number of rows displayed (see #7043)
- maxRows: 4,
-
- // TODO rename to "widget" when switching to widget factory
- _widgetDatepicker: function() {
- return this.dpDiv;
- },
-
- /* Override the default settings for all instances of the date picker.
- * @param settings object - the new settings to use as defaults (anonymous object)
- * @return the manager object
- */
- setDefaults: function(settings) {
- extendRemove(this._defaults, settings || {});
- return this;
- },
-
- /* Attach the date picker to a jQuery selection.
- * @param target element - the target input field or division or span
- * @param settings object - the new settings to use for this date picker instance (anonymous)
- */
- _attachDatepicker: function(target, settings) {
- var nodeName, inline, inst;
- nodeName = target.nodeName.toLowerCase();
- inline = (nodeName === "div" || nodeName === "span");
- if (!target.id) {
- this.uuid += 1;
- target.id = "dp" + this.uuid;
- }
- inst = this._newInst($(target), inline);
- inst.settings = $.extend({}, settings || {});
- if (nodeName === "input") {
- this._connectDatepicker(target, inst);
- } else if (inline) {
- this._inlineDatepicker(target, inst);
- }
- },
-
- /* Create a new instance object. */
- _newInst: function(target, inline) {
- var id = target[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"); // escape jQuery meta chars
- return {id: id, input: target, // associated target
- selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
- drawMonth: 0, drawYear: 0, // month being drawn
- inline: inline, // is datepicker inline or not
- dpDiv: (!inline ? this.dpDiv : // presentation div
- bindHover($("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")))};
- },
-
- /* Attach the date picker to an input field. */
- _connectDatepicker: function(target, inst) {
- var input = $(target);
- inst.append = $([]);
- inst.trigger = $([]);
- if (input.hasClass(this.markerClassName)) {
- return;
- }
- this._attachments(input, inst);
- input.addClass(this.markerClassName).keydown(this._doKeyDown).
- keypress(this._doKeyPress).keyup(this._doKeyUp);
- this._autoSize(inst);
- $.data(target, PROP_NAME, inst);
- //If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
- if( inst.settings.disabled ) {
- this._disableDatepicker( target );
- }
- },
-
- /* Make attachments based on settings. */
- _attachments: function(input, inst) {
- var showOn, buttonText, buttonImage,
- appendText = this._get(inst, "appendText"),
- isRTL = this._get(inst, "isRTL");
-
- if (inst.append) {
- inst.append.remove();
- }
- if (appendText) {
- inst.append = $("<span class='" + this._appendClass + "'>" + appendText + "</span>");
- input[isRTL ? "before" : "after"](inst.append);
- }
-
- input.unbind("focus", this._showDatepicker);
-
- if (inst.trigger) {
- inst.trigger.remove();
- }
-
- showOn = this._get(inst, "showOn");
- if (showOn === "focus" || showOn === "both") { // pop-up date picker when in the marked field
- input.focus(this._showDatepicker);
- }
- if (showOn === "button" || showOn === "both") { // pop-up date picker when button clicked
- buttonText = this._get(inst, "buttonText");
- buttonImage = this._get(inst, "buttonImage");
- inst.trigger = $(this._get(inst, "buttonImageOnly") ?
- $("<img/>").addClass(this._triggerClass).
- attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
- $("<button type='button'></button>").addClass(this._triggerClass).
- html(!buttonImage ? buttonText : $("<img/>").attr(
- { src:buttonImage, alt:buttonText, title:buttonText })));
- input[isRTL ? "before" : "after"](inst.trigger);
- inst.trigger.click(function() {
- if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) {
- $.datepicker._hideDatepicker();
- } else if ($.datepicker._datepickerShowing && $.datepicker._lastInput !== input[0]) {
- $.datepicker._hideDatepicker();
- $.datepicker._showDatepicker(input[0]);
- } else {
- $.datepicker._showDatepicker(input[0]);
- }
- return false;
- });
- }
- },
-
- /* Apply the maximum length for the date format. */
- _autoSize: function(inst) {
- if (this._get(inst, "autoSize") && !inst.inline) {
- var findMax, max, maxI, i,
- date = new Date(2009, 12 - 1, 20), // Ensure double digits
- dateFormat = this._get(inst, "dateFormat");
-
- if (dateFormat.match(/[DM]/)) {
- findMax = function(names) {
- max = 0;
- maxI = 0;
- for (i = 0; i < names.length; i++) {
- if (names[i].length > max) {
- max = names[i].length;
- maxI = i;
- }
- }
- return maxI;
- };
- date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
- "monthNames" : "monthNamesShort"))));
- date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
- "dayNames" : "dayNamesShort"))) + 20 - date.getDay());
- }
- inst.input.attr("size", this._formatDate(inst, date).length);
- }
- },
-
- /* Attach an inline date picker to a div. */
- _inlineDatepicker: function(target, inst) {
- var divSpan = $(target);
- if (divSpan.hasClass(this.markerClassName)) {
- return;
- }
- divSpan.addClass(this.markerClassName).append(inst.dpDiv);
- $.data(target, PROP_NAME, inst);
- this._setDate(inst, this._getDefaultDate(inst), true);
- this._updateDatepicker(inst);
- this._updateAlternate(inst);
- //If disabled option is true, disable the datepicker before showing it (see ticket #5665)
- if( inst.settings.disabled ) {
- this._disableDatepicker( target );
- }
- // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
- // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
- inst.dpDiv.css( "display", "block" );
- },
-
- /* Pop-up the date picker in a "dialog" box.
- * @param input element - ignored
- * @param date string or Date - the initial date to display
- * @param onSelect function - the function to call when a date is selected
- * @param settings object - update the dialog date picker instance's settings (anonymous object)
- * @param pos int[2] - coordinates for the dialog's position within the screen or
- * event - with x/y coordinates or
- * leave empty for default (screen centre)
- * @return the manager object
- */
- _dialogDatepicker: function(input, date, onSelect, settings, pos) {
- var id, browserWidth, browserHeight, scrollX, scrollY,
- inst = this._dialogInst; // internal instance
-
- if (!inst) {
- this.uuid += 1;
- id = "dp" + this.uuid;
- this._dialogInput = $("<input type='text' id='" + id +
- "' style='position: absolute; top: -100px; width: 0px;'/>");
- this._dialogInput.keydown(this._doKeyDown);
- $("body").append(this._dialogInput);
- inst = this._dialogInst = this._newInst(this._dialogInput, false);
- inst.settings = {};
- $.data(this._dialogInput[0], PROP_NAME, inst);
- }
- extendRemove(inst.settings, settings || {});
- date = (date && date.constructor === Date ? this._formatDate(inst, date) : date);
- this._dialogInput.val(date);
-
- this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
- if (!this._pos) {
- browserWidth = document.documentElement.clientWidth;
- browserHeight = document.documentElement.clientHeight;
- scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
- scrollY = document.documentElement.scrollTop || document.body.scrollTop;
- this._pos = // should use actual width/height below
- [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
- }
-
- // move input on screen for focus, but hidden behind dialog
- this._dialogInput.css("left", (this._pos[0] + 20) + "px").css("top", this._pos[1] + "px");
- inst.settings.onSelect = onSelect;
- this._inDialog = true;
- this.dpDiv.addClass(this._dialogClass);
- this._showDatepicker(this._dialogInput[0]);
- if ($.blockUI) {
- $.blockUI(this.dpDiv);
- }
- $.data(this._dialogInput[0], PROP_NAME, inst);
- return this;
- },
-
- /* Detach a datepicker from its control.
- * @param target element - the target input field or division or span
- */
- _destroyDatepicker: function(target) {
- var nodeName,
- $target = $(target),
- inst = $.data(target, PROP_NAME);
-
- if (!$target.hasClass(this.markerClassName)) {
- return;
- }
-
- nodeName = target.nodeName.toLowerCase();
- $.removeData(target, PROP_NAME);
- if (nodeName === "input") {
- inst.append.remove();
- inst.trigger.remove();
- $target.removeClass(this.markerClassName).
- unbind("focus", this._showDatepicker).
- unbind("keydown", this._doKeyDown).
- unbind("keypress", this._doKeyPress).
- unbind("keyup", this._doKeyUp);
- } else if (nodeName === "div" || nodeName === "span") {
- $target.removeClass(this.markerClassName).empty();
- }
- },
-
- /* Enable the date picker to a jQuery selection.
- * @param target element - the target input field or division or span
- */
- _enableDatepicker: function(target) {
- var nodeName, inline,
- $target = $(target),
- inst = $.data(target, PROP_NAME);
-
- if (!$target.hasClass(this.markerClassName)) {
- return;
- }
-
- nodeName = target.nodeName.toLowerCase();
- if (nodeName === "input") {
- target.disabled = false;
- inst.trigger.filter("button").
- each(function() { this.disabled = false; }).end().
- filter("img").css({opacity: "1.0", cursor: ""});
- } else if (nodeName === "div" || nodeName === "span") {
- inline = $target.children("." + this._inlineClass);
- inline.children().removeClass("ui-state-disabled");
- inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
- prop("disabled", false);
- }
- this._disabledInputs = $.map(this._disabledInputs,
- function(value) { return (value === target ? null : value); }); // delete entry
- },
-
- /* Disable the date picker to a jQuery selection.
- * @param target element - the target input field or division or span
- */
- _disableDatepicker: function(target) {
- var nodeName, inline,
- $target = $(target),
- inst = $.data(target, PROP_NAME);
-
- if (!$target.hasClass(this.markerClassName)) {
- return;
- }
-
- nodeName = target.nodeName.toLowerCase();
- if (nodeName === "input") {
- target.disabled = true;
- inst.trigger.filter("button").
- each(function() { this.disabled = true; }).end().
- filter("img").css({opacity: "0.5", cursor: "default"});
- } else if (nodeName === "div" || nodeName === "span") {
- inline = $target.children("." + this._inlineClass);
- inline.children().addClass("ui-state-disabled");
- inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
- prop("disabled", true);
- }
- this._disabledInputs = $.map(this._disabledInputs,
- function(value) { return (value === target ? null : value); }); // delete entry
- this._disabledInputs[this._disabledInputs.length] = target;
- },
-
- /* Is the first field in a jQuery collection disabled as a datepicker?
- * @param target element - the target input field or division or span
- * @return boolean - true if disabled, false if enabled
- */
- _isDisabledDatepicker: function(target) {
- if (!target) {
- return false;
- }
- for (var i = 0; i < this._disabledInputs.length; i++) {
- if (this._disabledInputs[i] === target) {
- return true;
- }
- }
- return false;
- },
-
- /* Retrieve the instance data for the target control.
- * @param target element - the target input field or division or span
- * @return object - the associated instance data
- * @throws error if a jQuery problem getting data
- */
- _getInst: function(target) {
- try {
- return $.data(target, PROP_NAME);
- }
- catch (err) {
- throw "Missing instance data for this datepicker";
- }
- },
-
- /* Update or retrieve the settings for a date picker attached to an input field or division.
- * @param target element - the target input field or division or span
- * @param name object - the new settings to update or
- * string - the name of the setting to change or retrieve,
- * when retrieving also "all" for all instance settings or
- * "defaults" for all global defaults
- * @param value any - the new value for the setting
- * (omit if above is an object or to retrieve a value)
- */
- _optionDatepicker: function(target, name, value) {
- var settings, date, minDate, maxDate,
- inst = this._getInst(target);
-
- if (arguments.length === 2 && typeof name === "string") {
- return (name === "defaults" ? $.extend({}, $.datepicker._defaults) :
- (inst ? (name === "all" ? $.extend({}, inst.settings) :
- this._get(inst, name)) : null));
- }
-
- settings = name || {};
- if (typeof name === "string") {
- settings = {};
- settings[name] = value;
- }
-
- if (inst) {
- if (this._curInst === inst) {
- this._hideDatepicker();
- }
-
- date = this._getDateDatepicker(target, true);
- minDate = this._getMinMaxDate(inst, "min");
- maxDate = this._getMinMaxDate(inst, "max");
- extendRemove(inst.settings, settings);
- // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
- if (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) {
- inst.settings.minDate = this._formatDate(inst, minDate);
- }
- if (maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined) {
- inst.settings.maxDate = this._formatDate(inst, maxDate);
- }
- if ( "disabled" in settings ) {
- if ( settings.disabled ) {
- this._disableDatepicker(target);
- } else {
- this._enableDatepicker(target);
- }
- }
- this._attachments($(target), inst);
- this._autoSize(inst);
- this._setDate(inst, date);
- this._updateAlternate(inst);
- this._updateDatepicker(inst);
- }
- },
-
- // change method deprecated
- _changeDatepicker: function(target, name, value) {
- this._optionDatepicker(target, name, value);
- },
-
- /* Redraw the date picker attached to an input field or division.
- * @param target element - the target input field or division or span
- */
- _refreshDatepicker: function(target) {
- var inst = this._getInst(target);
- if (inst) {
- this._updateDatepicker(inst);
- }
- },
-
- /* Set the dates for a jQuery selection.
- * @param target element - the target input field or division or span
- * @param date Date - the new date
- */
- _setDateDatepicker: function(target, date) {
- var inst = this._getInst(target);
- if (inst) {
- this._setDate(inst, date);
- this._updateDatepicker(inst);
- this._updateAlternate(inst);
- }
- },
-
- /* Get the date(s) for the first entry in a jQuery selection.
- * @param target element - the target input field or division or span
- * @param noDefault boolean - true if no default date is to be used
- * @return Date - the current date
- */
- _getDateDatepicker: function(target, noDefault) {
- var inst = this._getInst(target);
- if (inst && !inst.inline) {
- this._setDateFromField(inst, noDefault);
- }
- return (inst ? this._getDate(inst) : null);
- },
-
- /* Handle keystrokes. */
- _doKeyDown: function(event) {
- var onSelect, dateStr, sel,
- inst = $.datepicker._getInst(event.target),
- handled = true,
- isRTL = inst.dpDiv.is(".ui-datepicker-rtl");
-
- inst._keyEvent = true;
- if ($.datepicker._datepickerShowing) {
- switch (event.keyCode) {
- case 9: $.datepicker._hideDatepicker();
- handled = false;
- break; // hide on tab out
- case 13: sel = $("td." + $.datepicker._dayOverClass + ":not(." +
- $.datepicker._currentClass + ")", inst.dpDiv);
- if (sel[0]) {
- $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
- }
-
- onSelect = $.datepicker._get(inst, "onSelect");
- if (onSelect) {
- dateStr = $.datepicker._formatDate(inst);
-
- // trigger custom callback
- onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
- } else {
- $.datepicker._hideDatepicker();
- }
-
- return false; // don't submit the form
- case 27: $.datepicker._hideDatepicker();
- break; // hide on escape
- case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
- -$.datepicker._get(inst, "stepBigMonths") :
- -$.datepicker._get(inst, "stepMonths")), "M");
- break; // previous month/year on page up/+ ctrl
- case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
- +$.datepicker._get(inst, "stepBigMonths") :
- +$.datepicker._get(inst, "stepMonths")), "M");
- break; // next month/year on page down/+ ctrl
- case 35: if (event.ctrlKey || event.metaKey) {
- $.datepicker._clearDate(event.target);
- }
- handled = event.ctrlKey || event.metaKey;
- break; // clear on ctrl or command +end
- case 36: if (event.ctrlKey || event.metaKey) {
- $.datepicker._gotoToday(event.target);
- }
- handled = event.ctrlKey || event.metaKey;
- break; // current on ctrl or command +home
- case 37: if (event.ctrlKey || event.metaKey) {
- $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), "D");
- }
- handled = event.ctrlKey || event.metaKey;
- // -1 day on ctrl or command +left
- if (event.originalEvent.altKey) {
- $.datepicker._adjustDate(event.target, (event.ctrlKey ?
- -$.datepicker._get(inst, "stepBigMonths") :
- -$.datepicker._get(inst, "stepMonths")), "M");
- }
- // next month/year on alt +left on Mac
- break;
- case 38: if (event.ctrlKey || event.metaKey) {
- $.datepicker._adjustDate(event.target, -7, "D");
- }
- handled = event.ctrlKey || event.metaKey;
- break; // -1 week on ctrl or command +up
- case 39: if (event.ctrlKey || event.metaKey) {
- $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), "D");
- }
- handled = event.ctrlKey || event.metaKey;
- // +1 day on ctrl or command +right
- if (event.originalEvent.altKey) {
- $.datepicker._adjustDate(event.target, (event.ctrlKey ?
- +$.datepicker._get(inst, "stepBigMonths") :
- +$.datepicker._get(inst, "stepMonths")), "M");
- }
- // next month/year on alt +right
- break;
- case 40: if (event.ctrlKey || event.metaKey) {
- $.datepicker._adjustDate(event.target, +7, "D");
- }
- handled = event.ctrlKey || event.metaKey;
- break; // +1 week on ctrl or command +down
- default: handled = false;
- }
- } else if (event.keyCode === 36 && event.ctrlKey) { // display the date picker on ctrl+home
- $.datepicker._showDatepicker(this);
- } else {
- handled = false;
- }
-
- if (handled) {
- event.preventDefault();
- event.stopPropagation();
- }
- },
-
- /* Filter entered characters - based on date format. */
- _doKeyPress: function(event) {
- var chars, chr,
- inst = $.datepicker._getInst(event.target);
-
- if ($.datepicker._get(inst, "constrainInput")) {
- chars = $.datepicker._possibleChars($.datepicker._get(inst, "dateFormat"));
- chr = String.fromCharCode(event.charCode == null ? event.keyCode : event.charCode);
- return event.ctrlKey || event.metaKey || (chr < " " || !chars || chars.indexOf(chr) > -1);
- }
- },
-
- /* Synchronise manual entry and field/alternate field. */
- _doKeyUp: function(event) {
- var date,
- inst = $.datepicker._getInst(event.target);
-
- if (inst.input.val() !== inst.lastVal) {
- try {
- date = $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"),
- (inst.input ? inst.input.val() : null),
- $.datepicker._getFormatConfig(inst));
-
- if (date) { // only if valid
- $.datepicker._setDateFromField(inst);
- $.datepicker._updateAlternate(inst);
- $.datepicker._updateDatepicker(inst);
- }
- }
- catch (err) {
- }
- }
- return true;
- },
-
- /* Pop-up the date picker for a given input field.
- * If false returned from beforeShow event handler do not show.
- * @param input element - the input field attached to the date picker or
- * event - if triggered by focus
- */
- _showDatepicker: function(input) {
- input = input.target || input;
- if (input.nodeName.toLowerCase() !== "input") { // find from button/image trigger
- input = $("input", input.parentNode)[0];
- }
-
- if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput === input) { // already here
- return;
- }
-
- var inst, beforeShow, beforeShowSettings, isFixed,
- offset, showAnim, duration;
-
- inst = $.datepicker._getInst(input);
- if ($.datepicker._curInst && $.datepicker._curInst !== inst) {
- $.datepicker._curInst.dpDiv.stop(true, true);
- if ( inst && $.datepicker._datepickerShowing ) {
- $.datepicker._hideDatepicker( $.datepicker._curInst.input[0] );
- }
- }
-
- beforeShow = $.datepicker._get(inst, "beforeShow");
- beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};
- if(beforeShowSettings === false){
- return;
- }
- extendRemove(inst.settings, beforeShowSettings);
-
- inst.lastVal = null;
- $.datepicker._lastInput = input;
- $.datepicker._setDateFromField(inst);
-
- if ($.datepicker._inDialog) { // hide cursor
- input.value = "";
- }
- if (!$.datepicker._pos) { // position below input
- $.datepicker._pos = $.datepicker._findPos(input);
- $.datepicker._pos[1] += input.offsetHeight; // add the height
- }
-
- isFixed = false;
- $(input).parents().each(function() {
- isFixed |= $(this).css("position") === "fixed";
- return !isFixed;
- });
-
- offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
- $.datepicker._pos = null;
- //to avoid flashes on Firefox
- inst.dpDiv.empty();
- // determine sizing offscreen
- inst.dpDiv.css({position: "absolute", display: "block", top: "-1000px"});
- $.datepicker._updateDatepicker(inst);
- // fix width for dynamic number of date pickers
- // and adjust position before showing
- offset = $.datepicker._checkOffset(inst, offset, isFixed);
- inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
- "static" : (isFixed ? "fixed" : "absolute")), display: "none",
- left: offset.left + "px", top: offset.top + "px"});
-
- if (!inst.inline) {
- showAnim = $.datepicker._get(inst, "showAnim");
- duration = $.datepicker._get(inst, "duration");
- inst.dpDiv.zIndex($(input).zIndex()+1);
- $.datepicker._datepickerShowing = true;
-
- if ( $.effects && $.effects.effect[ showAnim ] ) {
- inst.dpDiv.show(showAnim, $.datepicker._get(inst, "showOptions"), duration);
- } else {
- inst.dpDiv[showAnim || "show"](showAnim ? duration : null);
- }
-
- if ( $.datepicker._shouldFocusInput( inst ) ) {
- inst.input.focus();
- }
-
- $.datepicker._curInst = inst;
- }
- },
-
- /* Generate the date picker content. */
- _updateDatepicker: function(inst) {
- this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
- instActive = inst; // for delegate hover events
- inst.dpDiv.empty().append(this._generateHTML(inst));
- this._attachHandlers(inst);
- inst.dpDiv.find("." + this._dayOverClass + " a").mouseover();
-
- var origyearshtml,
- numMonths = this._getNumberOfMonths(inst),
- cols = numMonths[1],
- width = 17;
-
- inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");
- if (cols > 1) {
- inst.dpDiv.addClass("ui-datepicker-multi-" + cols).css("width", (width * cols) + "em");
- }
- inst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? "add" : "remove") +
- "Class"]("ui-datepicker-multi");
- inst.dpDiv[(this._get(inst, "isRTL") ? "add" : "remove") +
- "Class"]("ui-datepicker-rtl");
-
- if (inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {
- inst.input.focus();
- }
-
- // deffered render of the years select (to avoid flashes on Firefox)
- if( inst.yearshtml ){
- origyearshtml = inst.yearshtml;
- setTimeout(function(){
- //assure that inst.yearshtml didn't change.
- if( origyearshtml === inst.yearshtml && inst.yearshtml ){
- inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml);
- }
- origyearshtml = inst.yearshtml = null;
- }, 0);
- }
- },
-
- // #6694 - don't focus the input if it's already focused
- // this breaks the change event in IE
- // Support: IE and jQuery <1.9
- _shouldFocusInput: function( inst ) {
- return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" );
- },
-
- /* Check positioning to remain on screen. */
- _checkOffset: function(inst, offset, isFixed) {
- var dpWidth = inst.dpDiv.outerWidth(),
- dpHeight = inst.dpDiv.outerHeight(),
- inputWidth = inst.input ? inst.input.outerWidth() : 0,
- inputHeight = inst.input ? inst.input.outerHeight() : 0,
- viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft()),
- viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop());
-
- offset.left -= (this._get(inst, "isRTL") ? (dpWidth - inputWidth) : 0);
- offset.left -= (isFixed && offset.left === inst.input.offset().left) ? $(document).scrollLeft() : 0;
- offset.top -= (isFixed && offset.top === (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
-
- // now check if datepicker is showing outside window viewport - move to a better place if so.
- offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
- Math.abs(offset.left + dpWidth - viewWidth) : 0);
- offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
- Math.abs(dpHeight + inputHeight) : 0);
-
- return offset;
- },
-
- /* Find an object's position on the screen. */
- _findPos: function(obj) {
- var position,
- inst = this._getInst(obj),
- isRTL = this._get(inst, "isRTL");
-
- while (obj && (obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden(obj))) {
- obj = obj[isRTL ? "previousSibling" : "nextSibling"];
- }
-
- position = $(obj).offset();
- return [position.left, position.top];
- },
-
- /* Hide the date picker from view.
- * @param input element - the input field attached to the date picker
- */
- _hideDatepicker: function(input) {
- var showAnim, duration, postProcess, onClose,
- inst = this._curInst;
-
- if (!inst || (input && inst !== $.data(input, PROP_NAME))) {
- return;
- }
-
- if (this._datepickerShowing) {
- showAnim = this._get(inst, "showAnim");
- duration = this._get(inst, "duration");
- postProcess = function() {
- $.datepicker._tidyDialog(inst);
- };
-
- // DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed
- if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {
- inst.dpDiv.hide(showAnim, $.datepicker._get(inst, "showOptions"), duration, postProcess);
- } else {
- inst.dpDiv[(showAnim === "slideDown" ? "slideUp" :
- (showAnim === "fadeIn" ? "fadeOut" : "hide"))]((showAnim ? duration : null), postProcess);
- }
-
- if (!showAnim) {
- postProcess();
- }
- this._datepickerShowing = false;
-
- onClose = this._get(inst, "onClose");
- if (onClose) {
- onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ""), inst]);
- }
-
- this._lastInput = null;
- if (this._inDialog) {
- this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" });
- if ($.blockUI) {
- $.unblockUI();
- $("body").append(this.dpDiv);
- }
- }
- this._inDialog = false;
- }
- },
-
- /* Tidy up after a dialog display. */
- _tidyDialog: function(inst) {
- inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar");
- },
-
- /* Close date picker if clicked elsewhere. */
- _checkExternalClick: function(event) {
- if (!$.datepicker._curInst) {
- return;
- }
-
- var $target = $(event.target),
- inst = $.datepicker._getInst($target[0]);
-
- if ( ( ( $target[0].id !== $.datepicker._mainDivId &&
- $target.parents("#" + $.datepicker._mainDivId).length === 0 &&
- !$target.hasClass($.datepicker.markerClassName) &&
- !$target.closest("." + $.datepicker._triggerClass).length &&
- $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) ||
- ( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst !== inst ) ) {
- $.datepicker._hideDatepicker();
- }
- },
-
- /* Adjust one of the date sub-fields. */
- _adjustDate: function(id, offset, period) {
- var target = $(id),
- inst = this._getInst(target[0]);
-
- if (this._isDisabledDatepicker(target[0])) {
- return;
- }
- this._adjustInstDate(inst, offset +
- (period === "M" ? this._get(inst, "showCurrentAtPos") : 0), // undo positioning
- period);
- this._updateDatepicker(inst);
- },
-
- /* Action for current link. */
- _gotoToday: function(id) {
- var date,
- target = $(id),
- inst = this._getInst(target[0]);
-
- if (this._get(inst, "gotoCurrent") && inst.currentDay) {
- inst.selectedDay = inst.currentDay;
- inst.drawMonth = inst.selectedMonth = inst.currentMonth;
- inst.drawYear = inst.selectedYear = inst.currentYear;
- } else {
- date = new Date();
- inst.selectedDay = date.getDate();
- inst.drawMonth = inst.selectedMonth = date.getMonth();
- inst.drawYear = inst.selectedYear = date.getFullYear();
- }
- this._notifyChange(inst);
- this._adjustDate(target);
- },
-
- /* Action for selecting a new month/year. */
- _selectMonthYear: function(id, select, period) {
- var target = $(id),
- inst = this._getInst(target[0]);
-
- inst["selected" + (period === "M" ? "Month" : "Year")] =
- inst["draw" + (period === "M" ? "Month" : "Year")] =
- parseInt(select.options[select.selectedIndex].value,10);
-
- this._notifyChange(inst);
- this._adjustDate(target);
- },
-
- /* Action for selecting a day. */
- _selectDay: function(id, month, year, td) {
- var inst,
- target = $(id);
-
- if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
- return;
- }
-
- inst = this._getInst(target[0]);
- inst.selectedDay = inst.currentDay = $("a", td).html();
- inst.selectedMonth = inst.currentMonth = month;
- inst.selectedYear = inst.currentYear = year;
- this._selectDate(id, this._formatDate(inst,
- inst.currentDay, inst.currentMonth, inst.currentYear));
- },
-
- /* Erase the input field and hide the date picker. */
- _clearDate: function(id) {
- var target = $(id);
- this._selectDate(target, "");
- },
-
- /* Update the input field with the selected date. */
- _selectDate: function(id, dateStr) {
- var onSelect,
- target = $(id),
- inst = this._getInst(target[0]);
-
- dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
- if (inst.input) {
- inst.input.val(dateStr);
- }
- this._updateAlternate(inst);
-
- onSelect = this._get(inst, "onSelect");
- if (onSelect) {
- onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback
- } else if (inst.input) {
- inst.input.trigger("change"); // fire the change event
- }
-
- if (inst.inline){
- this._updateDatepicker(inst);
- } else {
- this._hideDatepicker();
- this._lastInput = inst.input[0];
- if (typeof(inst.input[0]) !== "object") {
- inst.input.focus(); // restore focus
- }
- this._lastInput = null;
- }
- },
-
- /* Update any alternate field to synchronise with the main field. */
- _updateAlternate: function(inst) {
- var altFormat, date, dateStr,
- altField = this._get(inst, "altField");
-
- if (altField) { // update alternate field too
- altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat");
- date = this._getDate(inst);
- dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
- $(altField).each(function() { $(this).val(dateStr); });
- }
- },
-
- /* Set as beforeShowDay function to prevent selection of weekends.
- * @param date Date - the date to customise
- * @return [boolean, string] - is this date selectable?, what is its CSS class?
- */
- noWeekends: function(date) {
- var day = date.getDay();
- return [(day > 0 && day < 6), ""];
- },
-
- /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
- * @param date Date - the date to get the week for
- * @return number - the number of the week within the year that contains this date
- */
- iso8601Week: function(date) {
- var time,
- checkDate = new Date(date.getTime());
-
- // Find Thursday of this week starting on Monday
- checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
-
- time = checkDate.getTime();
- checkDate.setMonth(0); // Compare with Jan 1
- checkDate.setDate(1);
- return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
- },
-
- /* Parse a string value into a date object.
- * See formatDate below for the possible formats.
- *
- * @param format string - the expected format of the date
- * @param value string - the date in the above format
- * @param settings Object - attributes include:
- * shortYearCutoff number - the cutoff year for determining the century (optional)
- * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
- * dayNames string[7] - names of the days from Sunday (optional)
- * monthNamesShort string[12] - abbreviated names of the months (optional)
- * monthNames string[12] - names of the months (optional)
- * @return Date - the extracted date value or null if value is blank
- */
- parseDate: function (format, value, settings) {
- if (format == null || value == null) {
- throw "Invalid arguments";
- }
-
- value = (typeof value === "object" ? value.toString() : value + "");
- if (value === "") {
- return null;
- }
-
- var iFormat, dim, extra,
- iValue = 0,
- shortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff,
- shortYearCutoff = (typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp :
- new Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)),
- dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort,
- dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames,
- monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort,
- monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames,
- year = -1,
- month = -1,
- day = -1,
- doy = -1,
- literal = false,
- date,
- // Check whether a format character is doubled
- lookAhead = function(match) {
- var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);
- if (matches) {
- iFormat++;
- }
- return matches;
- },
- // Extract a number from the string value
- getNumber = function(match) {
- var isDoubled = lookAhead(match),
- size = (match === "@" ? 14 : (match === "!" ? 20 :
- (match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))),
- digits = new RegExp("^\\d{1," + size + "}"),
- num = value.substring(iValue).match(digits);
- if (!num) {
- throw "Missing number at position " + iValue;
- }
- iValue += num[0].length;
- return parseInt(num[0], 10);
- },
- // Extract a name from the string value and convert to an index
- getName = function(match, shortNames, longNames) {
- var index = -1,
- names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {
- return [ [k, v] ];
- }).sort(function (a, b) {
- return -(a[1].length - b[1].length);
- });
-
- $.each(names, function (i, pair) {
- var name = pair[1];
- if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {
- index = pair[0];
- iValue += name.length;
- return false;
- }
- });
- if (index !== -1) {
- return index + 1;
- } else {
- throw "Unknown name at position " + iValue;
- }
- },
- // Confirm that a literal character matches the string value
- checkLiteral = function() {
- if (value.charAt(iValue) !== format.charAt(iFormat)) {
- throw "Unexpected literal at position " + iValue;
- }
- iValue++;
- };
-
- for (iFormat = 0; iFormat < format.length; iFormat++) {
- if (literal) {
- if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
- literal = false;
- } else {
- checkLiteral();
- }
- } else {
- switch (format.charAt(iFormat)) {
- case "d":
- day = getNumber("d");
- break;
- case "D":
- getName("D", dayNamesShort, dayNames);
- break;
- case "o":
- doy = getNumber("o");
- break;
- case "m":
- month = getNumber("m");
- break;
- case "M":
- month = getName("M", monthNamesShort, monthNames);
- break;
- case "y":
- year = getNumber("y");
- break;
- case "@":
- date = new Date(getNumber("@"));
- year = date.getFullYear();
- month = date.getMonth() + 1;
- day = date.getDate();
- break;
- case "!":
- date = new Date((getNumber("!") - this._ticksTo1970) / 10000);
- year = date.getFullYear();
- month = date.getMonth() + 1;
- day = date.getDate();
- break;
- case "'":
- if (lookAhead("'")){
- checkLiteral();
- } else {
- literal = true;
- }
- break;
- default:
- checkLiteral();
- }
- }
- }
-
- if (iValue < value.length){
- extra = value.substr(iValue);
- if (!/^\s+/.test(extra)) {
- throw "Extra/unparsed characters found in date: " + extra;
- }
- }
-
- if (year === -1) {
- year = new Date().getFullYear();
- } else if (year < 100) {
- year += new Date().getFullYear() - new Date().getFullYear() % 100 +
- (year <= shortYearCutoff ? 0 : -100);
- }
-
- if (doy > -1) {
- month = 1;
- day = doy;
- do {
- dim = this._getDaysInMonth(year, month - 1);
- if (day <= dim) {
- break;
- }
- month++;
- day -= dim;
- } while (true);
- }
-
- date = this._daylightSavingAdjust(new Date(year, month - 1, day));
- if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {
- throw "Invalid date"; // E.g. 31/02/00
- }
- return date;
- },
-
- /* Standard date formats. */
- ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601)
- COOKIE: "D, dd M yy",
- ISO_8601: "yy-mm-dd",
- RFC_822: "D, d M y",
- RFC_850: "DD, dd-M-y",
- RFC_1036: "D, d M y",
- RFC_1123: "D, d M yy",
- RFC_2822: "D, d M yy",
- RSS: "D, d M y", // RFC 822
- TICKS: "!",
- TIMESTAMP: "@",
- W3C: "yy-mm-dd", // ISO 8601
-
- _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
- Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
-
- /* Format a date object into a string value.
- * The format can be combinations of the following:
- * d - day of month (no leading zero)
- * dd - day of month (two digit)
- * o - day of year (no leading zeros)
- * oo - day of year (three digit)
- * D - day name short
- * DD - day name long
- * m - month of year (no leading zero)
- * mm - month of year (two digit)
- * M - month name short
- * MM - month name long
- * y - year (two digit)
- * yy - year (four digit)
- * @ - Unix timestamp (ms since 01/01/1970)
- * ! - Windows ticks (100ns since 01/01/0001)
- * "..." - literal text
- * '' - single quote
- *
- * @param format string - the desired format of the date
- * @param date Date - the date value to format
- * @param settings Object - attributes include:
- * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
- * dayNames string[7] - names of the days from Sunday (optional)
- * monthNamesShort string[12] - abbreviated names of the months (optional)
- * monthNames string[12] - names of the months (optional)
- * @return string - the date in the above format
- */
- formatDate: function (format, date, settings) {
- if (!date) {
- return "";
- }
-
- var iFormat,
- dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort,
- dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames,
- monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort,
- monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames,
- // Check whether a format character is doubled
- lookAhead = function(match) {
- var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);
- if (matches) {
- iFormat++;
- }
- return matches;
- },
- // Format a number, with leading zero if necessary
- formatNumber = function(match, value, len) {
- var num = "" + value;
- if (lookAhead(match)) {
- while (num.length < len) {
- num = "0" + num;
- }
- }
- return num;
- },
- // Format a name, short or long as requested
- formatName = function(match, value, shortNames, longNames) {
- return (lookAhead(match) ? longNames[value] : shortNames[value]);
- },
- output = "",
- literal = false;
-
- if (date) {
- for (iFormat = 0; iFormat < format.length; iFormat++) {
- if (literal) {
- if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
- literal = false;
- } else {
- output += format.charAt(iFormat);
- }
- } else {
- switch (format.charAt(iFormat)) {
- case "d":
- output += formatNumber("d", date.getDate(), 2);
- break;
- case "D":
- output += formatName("D", date.getDay(), dayNamesShort, dayNames);
- break;
- case "o":
- output += formatNumber("o",
- Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
- break;
- case "m":
- output += formatNumber("m", date.getMonth() + 1, 2);
- break;
- case "M":
- output += formatName("M", date.getMonth(), monthNamesShort, monthNames);
- break;
- case "y":
- output += (lookAhead("y") ? date.getFullYear() :
- (date.getYear() % 100 < 10 ? "0" : "") + date.getYear() % 100);
- break;
- case "@":
- output += date.getTime();
- break;
- case "!":
- output += date.getTime() * 10000 + this._ticksTo1970;
- break;
- case "'":
- if (lookAhead("'")) {
- output += "'";
- } else {
- literal = true;
- }
- break;
- default:
- output += format.charAt(iFormat);
- }
- }
- }
- }
- return output;
- },
-
- /* Extract all possible characters from the date format. */
- _possibleChars: function (format) {
- var iFormat,
- chars = "",
- literal = false,
- // Check whether a format character is doubled
- lookAhead = function(match) {
- var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);
- if (matches) {
- iFormat++;
- }
- return matches;
- };
-
- for (iFormat = 0; iFormat < format.length; iFormat++) {
- if (literal) {
- if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
- literal = false;
- } else {
- chars += format.charAt(iFormat);
- }
- } else {
- switch (format.charAt(iFormat)) {
- case "d": case "m": case "y": case "@":
- chars += "0123456789";
- break;
- case "D": case "M":
- return null; // Accept anything
- case "'":
- if (lookAhead("'")) {
- chars += "'";
- } else {
- literal = true;
- }
- break;
- default:
- chars += format.charAt(iFormat);
- }
- }
- }
- return chars;
- },
-
- /* Get a setting value, defaulting if necessary. */
- _get: function(inst, name) {
- return inst.settings[name] !== undefined ?
- inst.settings[name] : this._defaults[name];
- },
-
- /* Parse existing date and initialise date picker. */
- _setDateFromField: function(inst, noDefault) {
- if (inst.input.val() === inst.lastVal) {
- return;
- }
-
- var dateFormat = this._get(inst, "dateFormat"),
- dates = inst.lastVal = inst.input ? inst.input.val() : null,
- defaultDate = this._getDefaultDate(inst),
- date = defaultDate,
- settings = this._getFormatConfig(inst);
-
- try {
- date = this.parseDate(dateFormat, dates, settings) || defaultDate;
- } catch (event) {
- dates = (noDefault ? "" : dates);
- }
- inst.selectedDay = date.getDate();
- inst.drawMonth = inst.selectedMonth = date.getMonth();
- inst.drawYear = inst.selectedYear = date.getFullYear();
- inst.currentDay = (dates ? date.getDate() : 0);
- inst.currentMonth = (dates ? date.getMonth() : 0);
- inst.currentYear = (dates ? date.getFullYear() : 0);
- this._adjustInstDate(inst);
- },
-
- /* Retrieve the default date shown on opening. */
- _getDefaultDate: function(inst) {
- return this._restrictMinMax(inst,
- this._determineDate(inst, this._get(inst, "defaultDate"), new Date()));
- },
-
- /* A date may be specified as an exact value or a relative one. */
- _determineDate: function(inst, date, defaultDate) {
- var offsetNumeric = function(offset) {
- var date = new Date();
- date.setDate(date.getDate() + offset);
- return date;
- },
- offsetString = function(offset) {
- try {
- return $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"),
- offset, $.datepicker._getFormatConfig(inst));
- }
- catch (e) {
- // Ignore
- }
-
- var date = (offset.toLowerCase().match(/^c/) ?
- $.datepicker._getDate(inst) : null) || new Date(),
- year = date.getFullYear(),
- month = date.getMonth(),
- day = date.getDate(),
- pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,
- matches = pattern.exec(offset);
-
- while (matches) {
- switch (matches[2] || "d") {
- case "d" : case "D" :
- day += parseInt(matches[1],10); break;
- case "w" : case "W" :
- day += parseInt(matches[1],10) * 7; break;
- case "m" : case "M" :
- month += parseInt(matches[1],10);
- day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
- break;
- case "y": case "Y" :
- year += parseInt(matches[1],10);
- day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
- break;
- }
- matches = pattern.exec(offset);
- }
- return new Date(year, month, day);
- },
- newDate = (date == null || date === "" ? defaultDate : (typeof date === "string" ? offsetString(date) :
- (typeof date === "number" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
-
- newDate = (newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate);
- if (newDate) {
- newDate.setHours(0);
- newDate.setMinutes(0);
- newDate.setSeconds(0);
- newDate.setMilliseconds(0);
- }
- return this._daylightSavingAdjust(newDate);
- },
-
- /* Handle switch to/from daylight saving.
- * Hours may be non-zero on daylight saving cut-over:
- * > 12 when midnight changeover, but then cannot generate
- * midnight datetime, so jump to 1AM, otherwise reset.
- * @param date (Date) the date to check
- * @return (Date) the corrected date
- */
- _daylightSavingAdjust: function(date) {
- if (!date) {
- return null;
- }
- date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
- return date;
- },
-
- /* Set the date(s) directly. */
- _setDate: function(inst, date, noChange) {
- var clear = !date,
- origMonth = inst.selectedMonth,
- origYear = inst.selectedYear,
- newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
-
- inst.selectedDay = inst.currentDay = newDate.getDate();
- inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
- inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
- if ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear) && !noChange) {
- this._notifyChange(inst);
- }
- this._adjustInstDate(inst);
- if (inst.input) {
- inst.input.val(clear ? "" : this._formatDate(inst));
- }
- },
-
- /* Retrieve the date(s) directly. */
- _getDate: function(inst) {
- var startDate = (!inst.currentYear || (inst.input && inst.input.val() === "") ? null :
- this._daylightSavingAdjust(new Date(
- inst.currentYear, inst.currentMonth, inst.currentDay)));
- return startDate;
- },
-
- /* Attach the onxxx handlers. These are declared statically so
- * they work with static code transformers like Caja.
- */
- _attachHandlers: function(inst) {
- var stepMonths = this._get(inst, "stepMonths"),
- id = "#" + inst.id.replace( /\\\\/g, "\\" );
- inst.dpDiv.find("[data-handler]").map(function () {
- var handler = {
- prev: function () {
- $.datepicker._adjustDate(id, -stepMonths, "M");
- },
- next: function () {
- $.datepicker._adjustDate(id, +stepMonths, "M");
- },
- hide: function () {
- $.datepicker._hideDatepicker();
- },
- today: function () {
- $.datepicker._gotoToday(id);
- },
- selectDay: function () {
- $.datepicker._selectDay(id, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this);
- return false;
- },
- selectMonth: function () {
- $.datepicker._selectMonthYear(id, this, "M");
- return false;
- },
- selectYear: function () {
- $.datepicker._selectMonthYear(id, this, "Y");
- return false;
- }
- };
- $(this).bind(this.getAttribute("data-event"), handler[this.getAttribute("data-handler")]);
- });
- },
-
- /* Generate the HTML for the current state of the date picker. */
- _generateHTML: function(inst) {
- var maxDraw, prevText, prev, nextText, next, currentText, gotoDate,
- controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,
- monthNames, monthNamesShort, beforeShowDay, showOtherMonths,
- selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,
- cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,
- printDate, dRow, tbody, daySettings, otherMonth, unselectable,
- tempDate = new Date(),
- today = this._daylightSavingAdjust(
- new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate())), // clear time
- isRTL = this._get(inst, "isRTL"),
- showButtonPanel = this._get(inst, "showButtonPanel"),
- hideIfNoPrevNext = this._get(inst, "hideIfNoPrevNext"),
- navigationAsDateFormat = this._get(inst, "navigationAsDateFormat"),
- numMonths = this._getNumberOfMonths(inst),
- showCurrentAtPos = this._get(inst, "showCurrentAtPos"),
- stepMonths = this._get(inst, "stepMonths"),
- isMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1),
- currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
- new Date(inst.currentYear, inst.currentMonth, inst.currentDay))),
- minDate = this._getMinMaxDate(inst, "min"),
- maxDate = this._getMinMaxDate(inst, "max"),
- drawMonth = inst.drawMonth - showCurrentAtPos,
- drawYear = inst.drawYear;
-
- if (drawMonth < 0) {
- drawMonth += 12;
- drawYear--;
- }
- if (maxDate) {
- maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
- maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
- maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
- while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
- drawMonth--;
- if (drawMonth < 0) {
- drawMonth = 11;
- drawYear--;
- }
- }
- }
- inst.drawMonth = drawMonth;
- inst.drawYear = drawYear;
-
- prevText = this._get(inst, "prevText");
- prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
- this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
- this._getFormatConfig(inst)));
-
- prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
- "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" +
- " title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>" :
- (hideIfNoPrevNext ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+ prevText +"'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>"));
-
- nextText = this._get(inst, "nextText");
- nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
- this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
- this._getFormatConfig(inst)));
-
- next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
- "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" +
- " title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>" :
- (hideIfNoPrevNext ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+ nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>"));
-
- currentText = this._get(inst, "currentText");
- gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today);
- currentText = (!navigationAsDateFormat ? currentText :
- this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
-
- controls = (!inst.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" +
- this._get(inst, "closeText") + "</button>" : "");
-
- buttonPanel = (showButtonPanel) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (isRTL ? controls : "") +
- (this._isInRange(inst, gotoDate) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'" +
- ">" + currentText + "</button>" : "") + (isRTL ? "" : controls) + "</div>" : "";
-
- firstDay = parseInt(this._get(inst, "firstDay"),10);
- firstDay = (isNaN(firstDay) ? 0 : firstDay);
-
- showWeek = this._get(inst, "showWeek");
- dayNames = this._get(inst, "dayNames");
- dayNamesMin = this._get(inst, "dayNamesMin");
- monthNames = this._get(inst, "monthNames");
- monthNamesShort = this._get(inst, "monthNamesShort");
- beforeShowDay = this._get(inst, "beforeShowDay");
- showOtherMonths = this._get(inst, "showOtherMonths");
- selectOtherMonths = this._get(inst, "selectOtherMonths");
- defaultDate = this._getDefaultDate(inst);
- html = "";
- dow;
- for (row = 0; row < numMonths[0]; row++) {
- group = "";
- this.maxRows = 4;
- for (col = 0; col < numMonths[1]; col++) {
- selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
- cornerClass = " ui-corner-all";
- calender = "";
- if (isMultiMonth) {
- calender += "<div class='ui-datepicker-group";
- if (numMonths[1] > 1) {
- switch (col) {
- case 0: calender += " ui-datepicker-group-first";
- cornerClass = " ui-corner-" + (isRTL ? "right" : "left"); break;
- case numMonths[1]-1: calender += " ui-datepicker-group-last";
- cornerClass = " ui-corner-" + (isRTL ? "left" : "right"); break;
- default: calender += " ui-datepicker-group-middle"; cornerClass = ""; break;
- }
- }
- calender += "'>";
- }
- calender += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + cornerClass + "'>" +
- (/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : "") +
- (/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : "") +
- this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
- row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
- "</div><table class='ui-datepicker-calendar'><thead>" +
- "<tr>";
- thead = (showWeek ? "<th class='ui-datepicker-week-col'>" + this._get(inst, "weekHeader") + "</th>" : "");
- for (dow = 0; dow < 7; dow++) { // days of the week
- day = (dow + firstDay) % 7;
- thead += "<th" + ((dow + firstDay + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + ">" +
- "<span title='" + dayNames[day] + "'>" + dayNamesMin[day] + "</span></th>";
- }
- calender += thead + "</tr></thead><tbody>";
- daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
- if (drawYear === inst.selectedYear && drawMonth === inst.selectedMonth) {
- inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
- }
- leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
- curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate
- numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)
- this.maxRows = numRows;
- printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
- for (dRow = 0; dRow < numRows; dRow++) { // create date picker rows
- calender += "<tr>";
- tbody = (!showWeek ? "" : "<td class='ui-datepicker-week-col'>" +
- this._get(inst, "calculateWeek")(printDate) + "</td>");
- for (dow = 0; dow < 7; dow++) { // create date picker days
- daySettings = (beforeShowDay ?
- beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, ""]);
- otherMonth = (printDate.getMonth() !== drawMonth);
- unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
- (minDate && printDate < minDate) || (maxDate && printDate > maxDate);
- tbody += "<td class='" +
- ((dow + firstDay + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + // highlight weekends
- (otherMonth ? " ui-datepicker-other-month" : "") + // highlight days from other months
- ((printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent) || // user pressed key
- (defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime()) ?
- // or defaultDate is current printedDate and defaultDate is selectedDate
- " " + this._dayOverClass : "") + // highlight selected day
- (unselectable ? " " + this._unselectableClass + " ui-state-disabled": "") + // highlight unselectable days
- (otherMonth && !showOtherMonths ? "" : " " + daySettings[1] + // highlight custom dates
- (printDate.getTime() === currentDate.getTime() ? " " + this._currentClass : "") + // highlight selected day
- (printDate.getTime() === today.getTime() ? " ui-datepicker-today" : "")) + "'" + // highlight today (if different)
- ((!otherMonth || showOtherMonths) && daySettings[2] ? " title='" + daySettings[2].replace(/'/g, "&#39;") + "'" : "") + // cell title
- (unselectable ? "" : " data-handler='selectDay' data-event='click' data-month='" + printDate.getMonth() + "' data-year='" + printDate.getFullYear() + "'") + ">" + // actions
- (otherMonth && !showOtherMonths ? "&#xa0;" : // display for other months
- (unselectable ? "<span class='ui-state-default'>" + printDate.getDate() + "</span>" : "<a class='ui-state-default" +
- (printDate.getTime() === today.getTime() ? " ui-state-highlight" : "") +
- (printDate.getTime() === currentDate.getTime() ? " ui-state-active" : "") + // highlight selected day
- (otherMonth ? " ui-priority-secondary" : "") + // distinguish dates from other months
- "' href='#'>" + printDate.getDate() + "</a>")) + "</td>"; // display selectable date
- printDate.setDate(printDate.getDate() + 1);
- printDate = this._daylightSavingAdjust(printDate);
- }
- calender += tbody + "</tr>";
- }
- drawMonth++;
- if (drawMonth > 11) {
- drawMonth = 0;
- drawYear++;
- }
- calender += "</tbody></table>" + (isMultiMonth ? "</div>" +
- ((numMonths[0] > 0 && col === numMonths[1]-1) ? "<div class='ui-datepicker-row-break'></div>" : "") : "");
- group += calender;
- }
- html += group;
- }
- html += buttonPanel;
- inst._keyEvent = false;
- return html;
- },
-
- /* Generate the month and year header. */
- _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
- secondary, monthNames, monthNamesShort) {
-
- var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,
- changeMonth = this._get(inst, "changeMonth"),
- changeYear = this._get(inst, "changeYear"),
- showMonthAfterYear = this._get(inst, "showMonthAfterYear"),
- html = "<div class='ui-datepicker-title'>",
- monthHtml = "";
-
- // month selection
- if (secondary || !changeMonth) {
- monthHtml += "<span class='ui-datepicker-month'>" + monthNames[drawMonth] + "</span>";
- } else {
- inMinYear = (minDate && minDate.getFullYear() === drawYear);
- inMaxYear = (maxDate && maxDate.getFullYear() === drawYear);
- monthHtml += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>";
- for ( month = 0; month < 12; month++) {
- if ((!inMinYear || month >= minDate.getMonth()) && (!inMaxYear || month <= maxDate.getMonth())) {
- monthHtml += "<option value='" + month + "'" +
- (month === drawMonth ? " selected='selected'" : "") +
- ">" + monthNamesShort[month] + "</option>";
- }
- }
- monthHtml += "</select>";
- }
-
- if (!showMonthAfterYear) {
- html += monthHtml + (secondary || !(changeMonth && changeYear) ? "&#xa0;" : "");
- }
-
- // year selection
- if ( !inst.yearshtml ) {
- inst.yearshtml = "";
- if (secondary || !changeYear) {
- html += "<span class='ui-datepicker-year'>" + drawYear + "</span>";
- } else {
- // determine range of years to display
- years = this._get(inst, "yearRange").split(":");
- thisYear = new Date().getFullYear();
- determineYear = function(value) {
- var year = (value.match(/c[+\-].*/) ? drawYear + parseInt(value.substring(1), 10) :
- (value.match(/[+\-].*/) ? thisYear + parseInt(value, 10) :
- parseInt(value, 10)));
- return (isNaN(year) ? thisYear : year);
- };
- year = determineYear(years[0]);
- endYear = Math.max(year, determineYear(years[1] || ""));
- year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
- endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
- inst.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";
- for (; year <= endYear; year++) {
- inst.yearshtml += "<option value='" + year + "'" +
- (year === drawYear ? " selected='selected'" : "") +
- ">" + year + "</option>";
- }
- inst.yearshtml += "</select>";
-
- html += inst.yearshtml;
- inst.yearshtml = null;
- }
- }
-
- html += this._get(inst, "yearSuffix");
- if (showMonthAfterYear) {
- html += (secondary || !(changeMonth && changeYear) ? "&#xa0;" : "") + monthHtml;
- }
- html += "</div>"; // Close datepicker_header
- return html;
- },
-
- /* Adjust one of the date sub-fields. */
- _adjustInstDate: function(inst, offset, period) {
- var year = inst.drawYear + (period === "Y" ? offset : 0),
- month = inst.drawMonth + (period === "M" ? offset : 0),
- day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period === "D" ? offset : 0),
- date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day)));
-
- inst.selectedDay = date.getDate();
- inst.drawMonth = inst.selectedMonth = date.getMonth();
- inst.drawYear = inst.selectedYear = date.getFullYear();
- if (period === "M" || period === "Y") {
- this._notifyChange(inst);
- }
- },
-
- /* Ensure a date is within any min/max bounds. */
- _restrictMinMax: function(inst, date) {
- var minDate = this._getMinMaxDate(inst, "min"),
- maxDate = this._getMinMaxDate(inst, "max"),
- newDate = (minDate && date < minDate ? minDate : date);
- return (maxDate && newDate > maxDate ? maxDate : newDate);
- },
-
- /* Notify change of month/year. */
- _notifyChange: function(inst) {
- var onChange = this._get(inst, "onChangeMonthYear");
- if (onChange) {
- onChange.apply((inst.input ? inst.input[0] : null),
- [inst.selectedYear, inst.selectedMonth + 1, inst]);
- }
- },
-
- /* Determine the number of months to show. */
- _getNumberOfMonths: function(inst) {
- var numMonths = this._get(inst, "numberOfMonths");
- return (numMonths == null ? [1, 1] : (typeof numMonths === "number" ? [1, numMonths] : numMonths));
- },
-
- /* Determine the current maximum date - ensure no time components are set. */
- _getMinMaxDate: function(inst, minMax) {
- return this._determineDate(inst, this._get(inst, minMax + "Date"), null);
- },
-
- /* Find the number of days in a given month. */
- _getDaysInMonth: function(year, month) {
- return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
- },
-
- /* Find the day of the week of the first of a month. */
- _getFirstDayOfMonth: function(year, month) {
- return new Date(year, month, 1).getDay();
- },
-
- /* Determines if we should allow a "next/prev" month display change. */
- _canAdjustMonth: function(inst, offset, curYear, curMonth) {
- var numMonths = this._getNumberOfMonths(inst),
- date = this._daylightSavingAdjust(new Date(curYear,
- curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
-
- if (offset < 0) {
- date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
- }
- return this._isInRange(inst, date);
- },
-
- /* Is the given date in the accepted range? */
- _isInRange: function(inst, date) {
- var yearSplit, currentYear,
- minDate = this._getMinMaxDate(inst, "min"),
- maxDate = this._getMinMaxDate(inst, "max"),
- minYear = null,
- maxYear = null,
- years = this._get(inst, "yearRange");
- if (years){
- yearSplit = years.split(":");
- currentYear = new Date().getFullYear();
- minYear = parseInt(yearSplit[0], 10);
- maxYear = parseInt(yearSplit[1], 10);
- if ( yearSplit[0].match(/[+\-].*/) ) {
- minYear += currentYear;
- }
- if ( yearSplit[1].match(/[+\-].*/) ) {
- maxYear += currentYear;
- }
- }
-
- return ((!minDate || date.getTime() >= minDate.getTime()) &&
- (!maxDate || date.getTime() <= maxDate.getTime()) &&
- (!minYear || date.getFullYear() >= minYear) &&
- (!maxYear || date.getFullYear() <= maxYear));
- },
-
- /* Provide the configuration settings for formatting/parsing. */
- _getFormatConfig: function(inst) {
- var shortYearCutoff = this._get(inst, "shortYearCutoff");
- shortYearCutoff = (typeof shortYearCutoff !== "string" ? shortYearCutoff :
- new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
- return {shortYearCutoff: shortYearCutoff,
- dayNamesShort: this._get(inst, "dayNamesShort"), dayNames: this._get(inst, "dayNames"),
- monthNamesShort: this._get(inst, "monthNamesShort"), monthNames: this._get(inst, "monthNames")};
- },
-
- /* Format the given date for display. */
- _formatDate: function(inst, day, month, year) {
- if (!day) {
- inst.currentDay = inst.selectedDay;
- inst.currentMonth = inst.selectedMonth;
- inst.currentYear = inst.selectedYear;
- }
- var date = (day ? (typeof day === "object" ? day :
- this._daylightSavingAdjust(new Date(year, month, day))) :
- this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
- return this.formatDate(this._get(inst, "dateFormat"), date, this._getFormatConfig(inst));
- }
-});
-
-/*
- * Bind hover events for datepicker elements.
- * Done via delegate so the binding only occurs once in the lifetime of the parent div.
- * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */
-function bindHover(dpDiv) {
- var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
- return dpDiv.delegate(selector, "mouseout", function() {
- $(this).removeClass("ui-state-hover");
- if (this.className.indexOf("ui-datepicker-prev") !== -1) {
- $(this).removeClass("ui-datepicker-prev-hover");
- }
- if (this.className.indexOf("ui-datepicker-next") !== -1) {
- $(this).removeClass("ui-datepicker-next-hover");
- }
- })
- .delegate(selector, "mouseover", function(){
- if (!$.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0])) {
- $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
- $(this).addClass("ui-state-hover");
- if (this.className.indexOf("ui-datepicker-prev") !== -1) {
- $(this).addClass("ui-datepicker-prev-hover");
- }
- if (this.className.indexOf("ui-datepicker-next") !== -1) {
- $(this).addClass("ui-datepicker-next-hover");
- }
- }
- });
-}
-
-/* jQuery extend now ignores nulls! */
-function extendRemove(target, props) {
- $.extend(target, props);
- for (var name in props) {
- if (props[name] == null) {
- target[name] = props[name];
- }
- }
- return target;
-}
-
-/* Invoke the datepicker functionality.
- @param options string - a command, optionally followed by additional parameters or
- Object - settings for attaching new datepicker functionality
- @return jQuery object */
-$.fn.datepicker = function(options){
-
- /* Verify an empty collection wasn't passed - Fixes #6976 */
- if ( !this.length ) {
- return this;
- }
-
- /* Initialise the date picker. */
- if (!$.datepicker.initialized) {
- $(document).mousedown($.datepicker._checkExternalClick);
- $.datepicker.initialized = true;
- }
-
- /* Append datepicker main container to body if not exist. */
- if ($("#"+$.datepicker._mainDivId).length === 0) {
- $("body").append($.datepicker.dpDiv);
- }
-
- var otherArgs = Array.prototype.slice.call(arguments, 1);
- if (typeof options === "string" && (options === "isDisabled" || options === "getDate" || options === "widget")) {
- return $.datepicker["_" + options + "Datepicker"].
- apply($.datepicker, [this[0]].concat(otherArgs));
- }
- if (options === "option" && arguments.length === 2 && typeof arguments[1] === "string") {
- return $.datepicker["_" + options + "Datepicker"].
- apply($.datepicker, [this[0]].concat(otherArgs));
- }
- return this.each(function() {
- typeof options === "string" ?
- $.datepicker["_" + options + "Datepicker"].
- apply($.datepicker, [this].concat(otherArgs)) :
- $.datepicker._attachDatepicker(this, options);
- });
-};
-
-$.datepicker = new Datepicker(); // singleton instance
-$.datepicker.initialized = false;
-$.datepicker.uuid = new Date().getTime();
-$.datepicker.version = "1.10.3";
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-var sizeRelatedOptions = {
- buttons: true,
- height: true,
- maxHeight: true,
- maxWidth: true,
- minHeight: true,
- minWidth: true,
- width: true
- },
- resizableRelatedOptions = {
- maxHeight: true,
- maxWidth: true,
- minHeight: true,
- minWidth: true
- };
-
-$.widget( "ui.dialog", {
- version: "1.10.3",
- options: {
- appendTo: "body",
- autoOpen: true,
- buttons: [],
- closeOnEscape: true,
- closeText: "close",
- dialogClass: "",
- draggable: true,
- hide: null,
- height: "auto",
- maxHeight: null,
- maxWidth: null,
- minHeight: 150,
- minWidth: 150,
- modal: false,
- position: {
- my: "center",
- at: "center",
- of: window,
- collision: "fit",
- // Ensure the titlebar is always visible
- using: function( pos ) {
- var topOffset = $( this ).css( pos ).offset().top;
- if ( topOffset < 0 ) {
- $( this ).css( "top", pos.top - topOffset );
- }
- }
- },
- resizable: true,
- show: null,
- title: null,
- width: 300,
-
- // callbacks
- beforeClose: null,
- close: null,
- drag: null,
- dragStart: null,
- dragStop: null,
- focus: null,
- open: null,
- resize: null,
- resizeStart: null,
- resizeStop: null
- },
-
- _create: function() {
- this.originalCss = {
- display: this.element[0].style.display,
- width: this.element[0].style.width,
- minHeight: this.element[0].style.minHeight,
- maxHeight: this.element[0].style.maxHeight,
- height: this.element[0].style.height
- };
- this.originalPosition = {
- parent: this.element.parent(),
- index: this.element.parent().children().index( this.element )
- };
- this.originalTitle = this.element.attr("title");
- this.options.title = this.options.title || this.originalTitle;
-
- this._createWrapper();
-
- this.element
- .show()
- .removeAttr("title")
- .addClass("ui-dialog-content ui-widget-content")
- .appendTo( this.uiDialog );
-
- this._createTitlebar();
- this._createButtonPane();
-
- if ( this.options.draggable && $.fn.draggable ) {
- this._makeDraggable();
- }
- if ( this.options.resizable && $.fn.resizable ) {
- this._makeResizable();
- }
-
- this._isOpen = false;
- },
-
- _init: function() {
- if ( this.options.autoOpen ) {
- this.open();
- }
- },
-
- _appendTo: function() {
- var element = this.options.appendTo;
- if ( element && (element.jquery || element.nodeType) ) {
- return $( element );
- }
- return this.document.find( element || "body" ).eq( 0 );
- },
-
- _destroy: function() {
- var next,
- originalPosition = this.originalPosition;
-
- this._destroyOverlay();
-
- this.element
- .removeUniqueId()
- .removeClass("ui-dialog-content ui-widget-content")
- .css( this.originalCss )
- // Without detaching first, the following becomes really slow
- .detach();
-
- this.uiDialog.stop( true, true ).remove();
-
- if ( this.originalTitle ) {
- this.element.attr( "title", this.originalTitle );
- }
-
- next = originalPosition.parent.children().eq( originalPosition.index );
- // Don't try to place the dialog next to itself (#8613)
- if ( next.length && next[0] !== this.element[0] ) {
- next.before( this.element );
- } else {
- originalPosition.parent.append( this.element );
- }
- },
-
- widget: function() {
- return this.uiDialog;
- },
-
- disable: $.noop,
- enable: $.noop,
-
- close: function( event ) {
- var that = this;
-
- if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
- return;
- }
-
- this._isOpen = false;
- this._destroyOverlay();
-
- if ( !this.opener.filter(":focusable").focus().length ) {
- // Hiding a focused element doesn't trigger blur in WebKit
- // so in case we have nothing to focus on, explicitly blur the active element
- // https://bugs.webkit.org/show_bug.cgi?id=47182
- $( this.document[0].activeElement ).blur();
- }
-
- this._hide( this.uiDialog, this.options.hide, function() {
- that._trigger( "close", event );
- });
- },
-
- isOpen: function() {
- return this._isOpen;
- },
-
- moveToTop: function() {
- this._moveToTop();
- },
-
- _moveToTop: function( event, silent ) {
- var moved = !!this.uiDialog.nextAll(":visible").insertBefore( this.uiDialog ).length;
- if ( moved && !silent ) {
- this._trigger( "focus", event );
- }
- return moved;
- },
-
- open: function() {
- var that = this;
- if ( this._isOpen ) {
- if ( this._moveToTop() ) {
- this._focusTabbable();
- }
- return;
- }
-
- this._isOpen = true;
- this.opener = $( this.document[0].activeElement );
-
- this._size();
- this._position();
- this._createOverlay();
- this._moveToTop( null, true );
- this._show( this.uiDialog, this.options.show, function() {
- that._focusTabbable();
- that._trigger("focus");
- });
-
- this._trigger("open");
- },
-
- _focusTabbable: function() {
- // Set focus to the first match:
- // 1. First element inside the dialog matching [autofocus]
- // 2. Tabbable element inside the content element
- // 3. Tabbable element inside the buttonpane
- // 4. The close button
- // 5. The dialog itself
- var hasFocus = this.element.find("[autofocus]");
- if ( !hasFocus.length ) {
- hasFocus = this.element.find(":tabbable");
- }
- if ( !hasFocus.length ) {
- hasFocus = this.uiDialogButtonPane.find(":tabbable");
- }
- if ( !hasFocus.length ) {
- hasFocus = this.uiDialogTitlebarClose.filter(":tabbable");
- }
- if ( !hasFocus.length ) {
- hasFocus = this.uiDialog;
- }
- hasFocus.eq( 0 ).focus();
- },
-
- _keepFocus: function( event ) {
- function checkFocus() {
- var activeElement = this.document[0].activeElement,
- isActive = this.uiDialog[0] === activeElement ||
- $.contains( this.uiDialog[0], activeElement );
- if ( !isActive ) {
- this._focusTabbable();
- }
- }
- event.preventDefault();
- checkFocus.call( this );
- // support: IE
- // IE <= 8 doesn't prevent moving focus even with event.preventDefault()
- // so we check again later
- this._delay( checkFocus );
- },
-
- _createWrapper: function() {
- this.uiDialog = $("<div>")
- .addClass( "ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " +
- this.options.dialogClass )
- .hide()
- .attr({
- // Setting tabIndex makes the div focusable
- tabIndex: -1,
- role: "dialog"
- })
- .appendTo( this._appendTo() );
-
- this._on( this.uiDialog, {
- keydown: function( event ) {
- if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
- event.keyCode === $.ui.keyCode.ESCAPE ) {
- event.preventDefault();
- this.close( event );
- return;
- }
-
- // prevent tabbing out of dialogs
- if ( event.keyCode !== $.ui.keyCode.TAB ) {
- return;
- }
- var tabbables = this.uiDialog.find(":tabbable"),
- first = tabbables.filter(":first"),
- last = tabbables.filter(":last");
-
- if ( ( event.target === last[0] || event.target === this.uiDialog[0] ) && !event.shiftKey ) {
- first.focus( 1 );
- event.preventDefault();
- } else if ( ( event.target === first[0] || event.target === this.uiDialog[0] ) && event.shiftKey ) {
- last.focus( 1 );
- event.preventDefault();
- }
- },
- mousedown: function( event ) {
- if ( this._moveToTop( event ) ) {
- this._focusTabbable();
- }
- }
- });
-
- // We assume that any existing aria-describedby attribute means
- // that the dialog content is marked up properly
- // otherwise we brute force the content as the description
- if ( !this.element.find("[aria-describedby]").length ) {
- this.uiDialog.attr({
- "aria-describedby": this.element.uniqueId().attr("id")
- });
- }
- },
-
- _createTitlebar: function() {
- var uiDialogTitle;
-
- this.uiDialogTitlebar = $("<div>")
- .addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix")
- .prependTo( this.uiDialog );
- this._on( this.uiDialogTitlebar, {
- mousedown: function( event ) {
- // Don't prevent click on close button (#8838)
- // Focusing a dialog that is partially scrolled out of view
- // causes the browser to scroll it into view, preventing the click event
- if ( !$( event.target ).closest(".ui-dialog-titlebar-close") ) {
- // Dialog isn't getting focus when dragging (#8063)
- this.uiDialog.focus();
- }
- }
- });
-
- this.uiDialogTitlebarClose = $("<button></button>")
- .button({
- label: this.options.closeText,
- icons: {
- primary: "ui-icon-closethick"
- },
- text: false
- })
- .addClass("ui-dialog-titlebar-close")
- .appendTo( this.uiDialogTitlebar );
- this._on( this.uiDialogTitlebarClose, {
- click: function( event ) {
- event.preventDefault();
- this.close( event );
- }
- });
-
- uiDialogTitle = $("<span>")
- .uniqueId()
- .addClass("ui-dialog-title")
- .prependTo( this.uiDialogTitlebar );
- this._title( uiDialogTitle );
-
- this.uiDialog.attr({
- "aria-labelledby": uiDialogTitle.attr("id")
- });
- },
-
- _title: function( title ) {
- if ( !this.options.title ) {
- title.html("&#160;");
- }
- title.text( this.options.title );
- },
-
- _createButtonPane: function() {
- this.uiDialogButtonPane = $("<div>")
- .addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");
-
- this.uiButtonSet = $("<div>")
- .addClass("ui-dialog-buttonset")
- .appendTo( this.uiDialogButtonPane );
-
- this._createButtons();
- },
-
- _createButtons: function() {
- var that = this,
- buttons = this.options.buttons;
-
- // if we already have a button pane, remove it
- this.uiDialogButtonPane.remove();
- this.uiButtonSet.empty();
-
- if ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) {
- this.uiDialog.removeClass("ui-dialog-buttons");
- return;
- }
-
- $.each( buttons, function( name, props ) {
- var click, buttonOptions;
- props = $.isFunction( props ) ?
- { click: props, text: name } :
- props;
- // Default to a non-submitting button
- props = $.extend( { type: "button" }, props );
- // Change the context for the click callback to be the main element
- click = props.click;
- props.click = function() {
- click.apply( that.element[0], arguments );
- };
- buttonOptions = {
- icons: props.icons,
- text: props.showText
- };
- delete props.icons;
- delete props.showText;
- $( "<button></button>", props )
- .button( buttonOptions )
- .appendTo( that.uiButtonSet );
- });
- this.uiDialog.addClass("ui-dialog-buttons");
- this.uiDialogButtonPane.appendTo( this.uiDialog );
- },
-
- _makeDraggable: function() {
- var that = this,
- options = this.options;
-
- function filteredUi( ui ) {
- return {
- position: ui.position,
- offset: ui.offset
- };
- }
-
- this.uiDialog.draggable({
- cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
- handle: ".ui-dialog-titlebar",
- containment: "document",
- start: function( event, ui ) {
- $( this ).addClass("ui-dialog-dragging");
- that._blockFrames();
- that._trigger( "dragStart", event, filteredUi( ui ) );
- },
- drag: function( event, ui ) {
- that._trigger( "drag", event, filteredUi( ui ) );
- },
- stop: function( event, ui ) {
- options.position = [
- ui.position.left - that.document.scrollLeft(),
- ui.position.top - that.document.scrollTop()
- ];
- $( this ).removeClass("ui-dialog-dragging");
- that._unblockFrames();
- that._trigger( "dragStop", event, filteredUi( ui ) );
- }
- });
- },
-
- _makeResizable: function() {
- var that = this,
- options = this.options,
- handles = options.resizable,
- // .ui-resizable has position: relative defined in the stylesheet
- // but dialogs have to use absolute or fixed positioning
- position = this.uiDialog.css("position"),
- resizeHandles = typeof handles === "string" ?
- handles :
- "n,e,s,w,se,sw,ne,nw";
-
- function filteredUi( ui ) {
- return {
- originalPosition: ui.originalPosition,
- originalSize: ui.originalSize,
- position: ui.position,
- size: ui.size
- };
- }
-
- this.uiDialog.resizable({
- cancel: ".ui-dialog-content",
- containment: "document",
- alsoResize: this.element,
- maxWidth: options.maxWidth,
- maxHeight: options.maxHeight,
- minWidth: options.minWidth,
- minHeight: this._minHeight(),
- handles: resizeHandles,
- start: function( event, ui ) {
- $( this ).addClass("ui-dialog-resizing");
- that._blockFrames();
- that._trigger( "resizeStart", event, filteredUi( ui ) );
- },
- resize: function( event, ui ) {
- that._trigger( "resize", event, filteredUi( ui ) );
- },
- stop: function( event, ui ) {
- options.height = $( this ).height();
- options.width = $( this ).width();
- $( this ).removeClass("ui-dialog-resizing");
- that._unblockFrames();
- that._trigger( "resizeStop", event, filteredUi( ui ) );
- }
- })
- .css( "position", position );
- },
-
- _minHeight: function() {
- var options = this.options;
-
- return options.height === "auto" ?
- options.minHeight :
- Math.min( options.minHeight, options.height );
- },
-
- _position: function() {
- // Need to show the dialog to get the actual offset in the position plugin
- var isVisible = this.uiDialog.is(":visible");
- if ( !isVisible ) {
- this.uiDialog.show();
- }
- this.uiDialog.position( this.options.position );
- if ( !isVisible ) {
- this.uiDialog.hide();
- }
- },
-
- _setOptions: function( options ) {
- var that = this,
- resize = false,
- resizableOptions = {};
-
- $.each( options, function( key, value ) {
- that._setOption( key, value );
-
- if ( key in sizeRelatedOptions ) {
- resize = true;
- }
- if ( key in resizableRelatedOptions ) {
- resizableOptions[ key ] = value;
- }
- });
-
- if ( resize ) {
- this._size();
- this._position();
- }
- if ( this.uiDialog.is(":data(ui-resizable)") ) {
- this.uiDialog.resizable( "option", resizableOptions );
- }
- },
-
- _setOption: function( key, value ) {
- /*jshint maxcomplexity:15*/
- var isDraggable, isResizable,
- uiDialog = this.uiDialog;
-
- if ( key === "dialogClass" ) {
- uiDialog
- .removeClass( this.options.dialogClass )
- .addClass( value );
- }
-
- if ( key === "disabled" ) {
- return;
- }
-
- this._super( key, value );
-
- if ( key === "appendTo" ) {
- this.uiDialog.appendTo( this._appendTo() );
- }
-
- if ( key === "buttons" ) {
- this._createButtons();
- }
-
- if ( key === "closeText" ) {
- this.uiDialogTitlebarClose.button({
- // Ensure that we always pass a string
- label: "" + value
- });
- }
-
- if ( key === "draggable" ) {
- isDraggable = uiDialog.is(":data(ui-draggable)");
- if ( isDraggable && !value ) {
- uiDialog.draggable("destroy");
- }
-
- if ( !isDraggable && value ) {
- this._makeDraggable();
- }
- }
-
- if ( key === "position" ) {
- this._position();
- }
-
- if ( key === "resizable" ) {
- // currently resizable, becoming non-resizable
- isResizable = uiDialog.is(":data(ui-resizable)");
- if ( isResizable && !value ) {
- uiDialog.resizable("destroy");
- }
-
- // currently resizable, changing handles
- if ( isResizable && typeof value === "string" ) {
- uiDialog.resizable( "option", "handles", value );
- }
-
- // currently non-resizable, becoming resizable
- if ( !isResizable && value !== false ) {
- this._makeResizable();
- }
- }
-
- if ( key === "title" ) {
- this._title( this.uiDialogTitlebar.find(".ui-dialog-title") );
- }
- },
-
- _size: function() {
- // If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
- // divs will both have width and height set, so we need to reset them
- var nonContentHeight, minContentHeight, maxContentHeight,
- options = this.options;
-
- // Reset content sizing
- this.element.show().css({
- width: "auto",
- minHeight: 0,
- maxHeight: "none",
- height: 0
- });
-
- if ( options.minWidth > options.width ) {
- options.width = options.minWidth;
- }
-
- // reset wrapper sizing
- // determine the height of all the non-content elements
- nonContentHeight = this.uiDialog.css({
- height: "auto",
- width: options.width
- })
- .outerHeight();
- minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
- maxContentHeight = typeof options.maxHeight === "number" ?
- Math.max( 0, options.maxHeight - nonContentHeight ) :
- "none";
-
- if ( options.height === "auto" ) {
- this.element.css({
- minHeight: minContentHeight,
- maxHeight: maxContentHeight,
- height: "auto"
- });
- } else {
- this.element.height( Math.max( 0, options.height - nonContentHeight ) );
- }
-
- if (this.uiDialog.is(":data(ui-resizable)") ) {
- this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
- }
- },
-
- _blockFrames: function() {
- this.iframeBlocks = this.document.find( "iframe" ).map(function() {
- var iframe = $( this );
-
- return $( "<div>" )
- .css({
- position: "absolute",
- width: iframe.outerWidth(),
- height: iframe.outerHeight()
- })
- .appendTo( iframe.parent() )
- .offset( iframe.offset() )[0];
- });
- },
-
- _unblockFrames: function() {
- if ( this.iframeBlocks ) {
- this.iframeBlocks.remove();
- delete this.iframeBlocks;
- }
- },
-
- _allowInteraction: function( event ) {
- if ( $( event.target ).closest(".ui-dialog").length ) {
- return true;
- }
-
- // TODO: Remove hack when datepicker implements
- // the .ui-front logic (#8989)
- return !!$( event.target ).closest(".ui-datepicker").length;
- },
-
- _createOverlay: function() {
- if ( !this.options.modal ) {
- return;
- }
-
- var that = this,
- widgetFullName = this.widgetFullName;
- if ( !$.ui.dialog.overlayInstances ) {
- // Prevent use of anchors and inputs.
- // We use a delay in case the overlay is created from an
- // event that we're going to be cancelling. (#2804)
- this._delay(function() {
- // Handle .dialog().dialog("close") (#4065)
- if ( $.ui.dialog.overlayInstances ) {
- this.document.bind( "focusin.dialog", function( event ) {
- if ( !that._allowInteraction( event ) ) {
- event.preventDefault();
- $(".ui-dialog:visible:last .ui-dialog-content")
- .data( widgetFullName )._focusTabbable();
- }
- });
- }
- });
- }
-
- this.overlay = $("<div>")
- .addClass("ui-widget-overlay ui-front")
- .appendTo( this._appendTo() );
- this._on( this.overlay, {
- mousedown: "_keepFocus"
- });
- $.ui.dialog.overlayInstances++;
- },
-
- _destroyOverlay: function() {
- if ( !this.options.modal ) {
- return;
- }
-
- if ( this.overlay ) {
- $.ui.dialog.overlayInstances--;
-
- if ( !$.ui.dialog.overlayInstances ) {
- this.document.unbind( "focusin.dialog" );
- }
- this.overlay.remove();
- this.overlay = null;
- }
- }
-});
-
-$.ui.dialog.overlayInstances = 0;
-
-// DEPRECATED
-if ( $.uiBackCompat !== false ) {
- // position option with array notation
- // just override with old implementation
- $.widget( "ui.dialog", $.ui.dialog, {
- _position: function() {
- var position = this.options.position,
- myAt = [],
- offset = [ 0, 0 ],
- isVisible;
-
- if ( position ) {
- if ( typeof position === "string" || (typeof position === "object" && "0" in position ) ) {
- myAt = position.split ? position.split(" ") : [ position[0], position[1] ];
- if ( myAt.length === 1 ) {
- myAt[1] = myAt[0];
- }
-
- $.each( [ "left", "top" ], function( i, offsetPosition ) {
- if ( +myAt[ i ] === myAt[ i ] ) {
- offset[ i ] = myAt[ i ];
- myAt[ i ] = offsetPosition;
- }
- });
-
- position = {
- my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " +
- myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]),
- at: myAt.join(" ")
- };
- }
-
- position = $.extend( {}, $.ui.dialog.prototype.options.position, position );
- } else {
- position = $.ui.dialog.prototype.options.position;
- }
-
- // need to show the dialog to get the actual offset in the position plugin
- isVisible = this.uiDialog.is(":visible");
- if ( !isVisible ) {
- this.uiDialog.show();
- }
- this.uiDialog.position( position );
- if ( !isVisible ) {
- this.uiDialog.hide();
- }
- }
- });
-}
-
-}( jQuery ) );
-
-(function( $, undefined ) {
-
-var rvertical = /up|down|vertical/,
- rpositivemotion = /up|left|vertical|horizontal/;
-
-$.effects.effect.blind = function( o, done ) {
- // Create element
- var el = $( this ),
- props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
- mode = $.effects.setMode( el, o.mode || "hide" ),
- direction = o.direction || "up",
- vertical = rvertical.test( direction ),
- ref = vertical ? "height" : "width",
- ref2 = vertical ? "top" : "left",
- motion = rpositivemotion.test( direction ),
- animation = {},
- show = mode === "show",
- wrapper, distance, margin;
-
- // if already wrapped, the wrapper's properties are my property. #6245
- if ( el.parent().is( ".ui-effects-wrapper" ) ) {
- $.effects.save( el.parent(), props );
- } else {
- $.effects.save( el, props );
- }
- el.show();
- wrapper = $.effects.createWrapper( el ).css({
- overflow: "hidden"
- });
-
- distance = wrapper[ ref ]();
- margin = parseFloat( wrapper.css( ref2 ) ) || 0;
-
- animation[ ref ] = show ? distance : 0;
- if ( !motion ) {
- el
- .css( vertical ? "bottom" : "right", 0 )
- .css( vertical ? "top" : "left", "auto" )
- .css({ position: "absolute" });
-
- animation[ ref2 ] = show ? margin : distance + margin;
- }
-
- // start at 0 if we are showing
- if ( show ) {
- wrapper.css( ref, 0 );
- if ( ! motion ) {
- wrapper.css( ref2, margin + distance );
- }
- }
-
- // Animate
- wrapper.animate( animation, {
- duration: o.duration,
- easing: o.easing,
- queue: false,
- complete: function() {
- if ( mode === "hide" ) {
- el.hide();
- }
- $.effects.restore( el, props );
- $.effects.removeWrapper( el );
- done();
- }
- });
-
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.bounce = function( o, done ) {
- var el = $( this ),
- props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
-
- // defaults:
- mode = $.effects.setMode( el, o.mode || "effect" ),
- hide = mode === "hide",
- show = mode === "show",
- direction = o.direction || "up",
- distance = o.distance,
- times = o.times || 5,
-
- // number of internal animations
- anims = times * 2 + ( show || hide ? 1 : 0 ),
- speed = o.duration / anims,
- easing = o.easing,
-
- // utility:
- ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
- motion = ( direction === "up" || direction === "left" ),
- i,
- upAnim,
- downAnim,
-
- // we will need to re-assemble the queue to stack our animations in place
- queue = el.queue(),
- queuelen = queue.length;
-
- // Avoid touching opacity to prevent clearType and PNG issues in IE
- if ( show || hide ) {
- props.push( "opacity" );
- }
-
- $.effects.save( el, props );
- el.show();
- $.effects.createWrapper( el ); // Create Wrapper
-
- // default distance for the BIGGEST bounce is the outer Distance / 3
- if ( !distance ) {
- distance = el[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3;
- }
-
- if ( show ) {
- downAnim = { opacity: 1 };
- downAnim[ ref ] = 0;
-
- // if we are showing, force opacity 0 and set the initial position
- // then do the "first" animation
- el.css( "opacity", 0 )
- .css( ref, motion ? -distance * 2 : distance * 2 )
- .animate( downAnim, speed, easing );
- }
-
- // start at the smallest distance if we are hiding
- if ( hide ) {
- distance = distance / Math.pow( 2, times - 1 );
- }
-
- downAnim = {};
- downAnim[ ref ] = 0;
- // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here
- for ( i = 0; i < times; i++ ) {
- upAnim = {};
- upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
-
- el.animate( upAnim, speed, easing )
- .animate( downAnim, speed, easing );
-
- distance = hide ? distance * 2 : distance / 2;
- }
-
- // Last Bounce when Hiding
- if ( hide ) {
- upAnim = { opacity: 0 };
- upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
-
- el.animate( upAnim, speed, easing );
- }
-
- el.queue(function() {
- if ( hide ) {
- el.hide();
- }
- $.effects.restore( el, props );
- $.effects.removeWrapper( el );
- done();
- });
-
- // inject all the animations we just queued to be first in line (after "inprogress")
- if ( queuelen > 1) {
- queue.splice.apply( queue,
- [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
- }
- el.dequeue();
-
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.clip = function( o, done ) {
- // Create element
- var el = $( this ),
- props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
- mode = $.effects.setMode( el, o.mode || "hide" ),
- show = mode === "show",
- direction = o.direction || "vertical",
- vert = direction === "vertical",
- size = vert ? "height" : "width",
- position = vert ? "top" : "left",
- animation = {},
- wrapper, animate, distance;
-
- // Save & Show
- $.effects.save( el, props );
- el.show();
-
- // Create Wrapper
- wrapper = $.effects.createWrapper( el ).css({
- overflow: "hidden"
- });
- animate = ( el[0].tagName === "IMG" ) ? wrapper : el;
- distance = animate[ size ]();
-
- // Shift
- if ( show ) {
- animate.css( size, 0 );
- animate.css( position, distance / 2 );
- }
-
- // Create Animation Object:
- animation[ size ] = show ? distance : 0;
- animation[ position ] = show ? 0 : distance / 2;
-
- // Animate
- animate.animate( animation, {
- queue: false,
- duration: o.duration,
- easing: o.easing,
- complete: function() {
- if ( !show ) {
- el.hide();
- }
- $.effects.restore( el, props );
- $.effects.removeWrapper( el );
- done();
- }
- });
-
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.drop = function( o, done ) {
-
- var el = $( this ),
- props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ],
- mode = $.effects.setMode( el, o.mode || "hide" ),
- show = mode === "show",
- direction = o.direction || "left",
- ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
- motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg",
- animation = {
- opacity: show ? 1 : 0
- },
- distance;
-
- // Adjust
- $.effects.save( el, props );
- el.show();
- $.effects.createWrapper( el );
-
- distance = o.distance || el[ ref === "top" ? "outerHeight": "outerWidth" ]( true ) / 2;
-
- if ( show ) {
- el
- .css( "opacity", 0 )
- .css( ref, motion === "pos" ? -distance : distance );
- }
-
- // Animation
- animation[ ref ] = ( show ?
- ( motion === "pos" ? "+=" : "-=" ) :
- ( motion === "pos" ? "-=" : "+=" ) ) +
- distance;
-
- // Animate
- el.animate( animation, {
- queue: false,
- duration: o.duration,
- easing: o.easing,
- complete: function() {
- if ( mode === "hide" ) {
- el.hide();
- }
- $.effects.restore( el, props );
- $.effects.removeWrapper( el );
- done();
- }
- });
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.explode = function( o, done ) {
-
- var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3,
- cells = rows,
- el = $( this ),
- mode = $.effects.setMode( el, o.mode || "hide" ),
- show = mode === "show",
-
- // show and then visibility:hidden the element before calculating offset
- offset = el.show().css( "visibility", "hidden" ).offset(),
-
- // width and height of a piece
- width = Math.ceil( el.outerWidth() / cells ),
- height = Math.ceil( el.outerHeight() / rows ),
- pieces = [],
-
- // loop
- i, j, left, top, mx, my;
-
- // children animate complete:
- function childComplete() {
- pieces.push( this );
- if ( pieces.length === rows * cells ) {
- animComplete();
- }
- }
-
- // clone the element for each row and cell.
- for( i = 0; i < rows ; i++ ) { // ===>
- top = offset.top + i * height;
- my = i - ( rows - 1 ) / 2 ;
-
- for( j = 0; j < cells ; j++ ) { // |||
- left = offset.left + j * width;
- mx = j - ( cells - 1 ) / 2 ;
-
- // Create a clone of the now hidden main element that will be absolute positioned
- // within a wrapper div off the -left and -top equal to size of our pieces
- el
- .clone()
- .appendTo( "body" )
- .wrap( "<div></div>" )
- .css({
- position: "absolute",
- visibility: "visible",
- left: -j * width,
- top: -i * height
- })
-
- // select the wrapper - make it overflow: hidden and absolute positioned based on
- // where the original was located +left and +top equal to the size of pieces
- .parent()
- .addClass( "ui-effects-explode" )
- .css({
- position: "absolute",
- overflow: "hidden",
- width: width,
- height: height,
- left: left + ( show ? mx * width : 0 ),
- top: top + ( show ? my * height : 0 ),
- opacity: show ? 0 : 1
- }).animate({
- left: left + ( show ? 0 : mx * width ),
- top: top + ( show ? 0 : my * height ),
- opacity: show ? 1 : 0
- }, o.duration || 500, o.easing, childComplete );
- }
- }
-
- function animComplete() {
- el.css({
- visibility: "visible"
- });
- $( pieces ).remove();
- if ( !show ) {
- el.hide();
- }
- done();
- }
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.fade = function( o, done ) {
- var el = $( this ),
- mode = $.effects.setMode( el, o.mode || "toggle" );
-
- el.animate({
- opacity: mode
- }, {
- queue: false,
- duration: o.duration,
- easing: o.easing,
- complete: done
- });
-};
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.effects.effect.fold = function( o, done ) {
-
- // Create element
- var el = $( this ),
- props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
- mode = $.effects.setMode( el, o.mode || "hide" ),
- show = mode === "show",
- hide = mode === "hide",
- size = o.size || 15,
- percent = /([0-9]+)%/.exec( size ),
- horizFirst = !!o.horizFirst,
- widthFirst = show !== horizFirst,
- ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ],
- duration = o.duration / 2,
- wrapper, distance,
- animation1 = {},
- animation2 = {};
-
- $.effects.save( el, props );
- el.show();
-
- // Create Wrapper
- wrapper = $.effects.createWrapper( el ).css({
- overflow: "hidden"
- });
- distance = widthFirst ?
- [ wrapper.width(), wrapper.height() ] :
- [ wrapper.height(), wrapper.width() ];
-
- if ( percent ) {
- size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];
- }
- if ( show ) {
- wrapper.css( horizFirst ? {
- height: 0,
- width: size
- } : {
- height: size,
- width: 0
- });
- }
-
- // Animation
- animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size;
- animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0;
-
- // Animate
- wrapper
- .animate( animation1, duration, o.easing )
- .animate( animation2, duration, o.easing, function() {
- if ( hide ) {
- el.hide();
- }
- $.effects.restore( el, props );
- $.effects.removeWrapper( el );
- done();
- });
-
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.highlight = function( o, done ) {
- var elem = $( this ),
- props = [ "backgroundImage", "backgroundColor", "opacity" ],
- mode = $.effects.setMode( elem, o.mode || "show" ),
- animation = {
- backgroundColor: elem.css( "backgroundColor" )
- };
-
- if (mode === "hide") {
- animation.opacity = 0;
- }
-
- $.effects.save( elem, props );
-
- elem
- .show()
- .css({
- backgroundImage: "none",
- backgroundColor: o.color || "#ffff99"
- })
- .animate( animation, {
- queue: false,
- duration: o.duration,
- easing: o.easing,
- complete: function() {
- if ( mode === "hide" ) {
- elem.hide();
- }
- $.effects.restore( elem, props );
- done();
- }
- });
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.pulsate = function( o, done ) {
- var elem = $( this ),
- mode = $.effects.setMode( elem, o.mode || "show" ),
- show = mode === "show",
- hide = mode === "hide",
- showhide = ( show || mode === "hide" ),
-
- // showing or hiding leaves of the "last" animation
- anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),
- duration = o.duration / anims,
- animateTo = 0,
- queue = elem.queue(),
- queuelen = queue.length,
- i;
-
- if ( show || !elem.is(":visible")) {
- elem.css( "opacity", 0 ).show();
- animateTo = 1;
- }
-
- // anims - 1 opacity "toggles"
- for ( i = 1; i < anims; i++ ) {
- elem.animate({
- opacity: animateTo
- }, duration, o.easing );
- animateTo = 1 - animateTo;
- }
-
- elem.animate({
- opacity: animateTo
- }, duration, o.easing);
-
- elem.queue(function() {
- if ( hide ) {
- elem.hide();
- }
- done();
- });
-
- // We just queued up "anims" animations, we need to put them next in the queue
- if ( queuelen > 1 ) {
- queue.splice.apply( queue,
- [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
- }
- elem.dequeue();
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.puff = function( o, done ) {
- var elem = $( this ),
- mode = $.effects.setMode( elem, o.mode || "hide" ),
- hide = mode === "hide",
- percent = parseInt( o.percent, 10 ) || 150,
- factor = percent / 100,
- original = {
- height: elem.height(),
- width: elem.width(),
- outerHeight: elem.outerHeight(),
- outerWidth: elem.outerWidth()
- };
-
- $.extend( o, {
- effect: "scale",
- queue: false,
- fade: true,
- mode: mode,
- complete: done,
- percent: hide ? percent : 100,
- from: hide ?
- original :
- {
- height: original.height * factor,
- width: original.width * factor,
- outerHeight: original.outerHeight * factor,
- outerWidth: original.outerWidth * factor
- }
- });
-
- elem.effect( o );
-};
-
-$.effects.effect.scale = function( o, done ) {
-
- // Create element
- var el = $( this ),
- options = $.extend( true, {}, o ),
- mode = $.effects.setMode( el, o.mode || "effect" ),
- percent = parseInt( o.percent, 10 ) ||
- ( parseInt( o.percent, 10 ) === 0 ? 0 : ( mode === "hide" ? 0 : 100 ) ),
- direction = o.direction || "both",
- origin = o.origin,
- original = {
- height: el.height(),
- width: el.width(),
- outerHeight: el.outerHeight(),
- outerWidth: el.outerWidth()
- },
- factor = {
- y: direction !== "horizontal" ? (percent / 100) : 1,
- x: direction !== "vertical" ? (percent / 100) : 1
- };
-
- // We are going to pass this effect to the size effect:
- options.effect = "size";
- options.queue = false;
- options.complete = done;
-
- // Set default origin and restore for show/hide
- if ( mode !== "effect" ) {
- options.origin = origin || ["middle","center"];
- options.restore = true;
- }
-
- options.from = o.from || ( mode === "show" ? {
- height: 0,
- width: 0,
- outerHeight: 0,
- outerWidth: 0
- } : original );
- options.to = {
- height: original.height * factor.y,
- width: original.width * factor.x,
- outerHeight: original.outerHeight * factor.y,
- outerWidth: original.outerWidth * factor.x
- };
-
- // Fade option to support puff
- if ( options.fade ) {
- if ( mode === "show" ) {
- options.from.opacity = 0;
- options.to.opacity = 1;
- }
- if ( mode === "hide" ) {
- options.from.opacity = 1;
- options.to.opacity = 0;
- }
- }
-
- // Animate
- el.effect( options );
-
-};
-
-$.effects.effect.size = function( o, done ) {
-
- // Create element
- var original, baseline, factor,
- el = $( this ),
- props0 = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ],
-
- // Always restore
- props1 = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ],
-
- // Copy for children
- props2 = [ "width", "height", "overflow" ],
- cProps = [ "fontSize" ],
- vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ],
- hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ],
-
- // Set options
- mode = $.effects.setMode( el, o.mode || "effect" ),
- restore = o.restore || mode !== "effect",
- scale = o.scale || "both",
- origin = o.origin || [ "middle", "center" ],
- position = el.css( "position" ),
- props = restore ? props0 : props1,
- zero = {
- height: 0,
- width: 0,
- outerHeight: 0,
- outerWidth: 0
- };
-
- if ( mode === "show" ) {
- el.show();
- }
- original = {
- height: el.height(),
- width: el.width(),
- outerHeight: el.outerHeight(),
- outerWidth: el.outerWidth()
- };
-
- if ( o.mode === "toggle" && mode === "show" ) {
- el.from = o.to || zero;
- el.to = o.from || original;
- } else {
- el.from = o.from || ( mode === "show" ? zero : original );
- el.to = o.to || ( mode === "hide" ? zero : original );
- }
-
- // Set scaling factor
- factor = {
- from: {
- y: el.from.height / original.height,
- x: el.from.width / original.width
- },
- to: {
- y: el.to.height / original.height,
- x: el.to.width / original.width
- }
- };
-
- // Scale the css box
- if ( scale === "box" || scale === "both" ) {
-
- // Vertical props scaling
- if ( factor.from.y !== factor.to.y ) {
- props = props.concat( vProps );
- el.from = $.effects.setTransition( el, vProps, factor.from.y, el.from );
- el.to = $.effects.setTransition( el, vProps, factor.to.y, el.to );
- }
-
- // Horizontal props scaling
- if ( factor.from.x !== factor.to.x ) {
- props = props.concat( hProps );
- el.from = $.effects.setTransition( el, hProps, factor.from.x, el.from );
- el.to = $.effects.setTransition( el, hProps, factor.to.x, el.to );
- }
- }
-
- // Scale the content
- if ( scale === "content" || scale === "both" ) {
-
- // Vertical props scaling
- if ( factor.from.y !== factor.to.y ) {
- props = props.concat( cProps ).concat( props2 );
- el.from = $.effects.setTransition( el, cProps, factor.from.y, el.from );
- el.to = $.effects.setTransition( el, cProps, factor.to.y, el.to );
- }
- }
-
- $.effects.save( el, props );
- el.show();
- $.effects.createWrapper( el );
- el.css( "overflow", "hidden" ).css( el.from );
-
- // Adjust
- if (origin) { // Calculate baseline shifts
- baseline = $.effects.getBaseline( origin, original );
- el.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y;
- el.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x;
- el.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y;
- el.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x;
- }
- el.css( el.from ); // set top & left
-
- // Animate
- if ( scale === "content" || scale === "both" ) { // Scale the children
-
- // Add margins/font-size
- vProps = vProps.concat([ "marginTop", "marginBottom" ]).concat(cProps);
- hProps = hProps.concat([ "marginLeft", "marginRight" ]);
- props2 = props0.concat(vProps).concat(hProps);
-
- el.find( "*[width]" ).each( function(){
- var child = $( this ),
- c_original = {
- height: child.height(),
- width: child.width(),
- outerHeight: child.outerHeight(),
- outerWidth: child.outerWidth()
- };
- if (restore) {
- $.effects.save(child, props2);
- }
-
- child.from = {
- height: c_original.height * factor.from.y,
- width: c_original.width * factor.from.x,
- outerHeight: c_original.outerHeight * factor.from.y,
- outerWidth: c_original.outerWidth * factor.from.x
- };
- child.to = {
- height: c_original.height * factor.to.y,
- width: c_original.width * factor.to.x,
- outerHeight: c_original.height * factor.to.y,
- outerWidth: c_original.width * factor.to.x
- };
-
- // Vertical props scaling
- if ( factor.from.y !== factor.to.y ) {
- child.from = $.effects.setTransition( child, vProps, factor.from.y, child.from );
- child.to = $.effects.setTransition( child, vProps, factor.to.y, child.to );
- }
-
- // Horizontal props scaling
- if ( factor.from.x !== factor.to.x ) {
- child.from = $.effects.setTransition( child, hProps, factor.from.x, child.from );
- child.to = $.effects.setTransition( child, hProps, factor.to.x, child.to );
- }
-
- // Animate children
- child.css( child.from );
- child.animate( child.to, o.duration, o.easing, function() {
-
- // Restore children
- if ( restore ) {
- $.effects.restore( child, props2 );
- }
- });
- });
- }
-
- // Animate
- el.animate( el.to, {
- queue: false,
- duration: o.duration,
- easing: o.easing,
- complete: function() {
- if ( el.to.opacity === 0 ) {
- el.css( "opacity", el.from.opacity );
- }
- if( mode === "hide" ) {
- el.hide();
- }
- $.effects.restore( el, props );
- if ( !restore ) {
-
- // we need to calculate our new positioning based on the scaling
- if ( position === "static" ) {
- el.css({
- position: "relative",
- top: el.to.top,
- left: el.to.left
- });
- } else {
- $.each([ "top", "left" ], function( idx, pos ) {
- el.css( pos, function( _, str ) {
- var val = parseInt( str, 10 ),
- toRef = idx ? el.to.left : el.to.top;
-
- // if original was "auto", recalculate the new value from wrapper
- if ( str === "auto" ) {
- return toRef + "px";
- }
-
- return val + toRef + "px";
- });
- });
- }
- }
-
- $.effects.removeWrapper( el );
- done();
- }
- });
-
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.shake = function( o, done ) {
-
- var el = $( this ),
- props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
- mode = $.effects.setMode( el, o.mode || "effect" ),
- direction = o.direction || "left",
- distance = o.distance || 20,
- times = o.times || 3,
- anims = times * 2 + 1,
- speed = Math.round(o.duration/anims),
- ref = (direction === "up" || direction === "down") ? "top" : "left",
- positiveMotion = (direction === "up" || direction === "left"),
- animation = {},
- animation1 = {},
- animation2 = {},
- i,
-
- // we will need to re-assemble the queue to stack our animations in place
- queue = el.queue(),
- queuelen = queue.length;
-
- $.effects.save( el, props );
- el.show();
- $.effects.createWrapper( el );
-
- // Animation
- animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance;
- animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2;
- animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2;
-
- // Animate
- el.animate( animation, speed, o.easing );
-
- // Shakes
- for ( i = 1; i < times; i++ ) {
- el.animate( animation1, speed, o.easing ).animate( animation2, speed, o.easing );
- }
- el
- .animate( animation1, speed, o.easing )
- .animate( animation, speed / 2, o.easing )
- .queue(function() {
- if ( mode === "hide" ) {
- el.hide();
- }
- $.effects.restore( el, props );
- $.effects.removeWrapper( el );
- done();
- });
-
- // inject all the animations we just queued to be first in line (after "inprogress")
- if ( queuelen > 1) {
- queue.splice.apply( queue,
- [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
- }
- el.dequeue();
-
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.slide = function( o, done ) {
-
- // Create element
- var el = $( this ),
- props = [ "position", "top", "bottom", "left", "right", "width", "height" ],
- mode = $.effects.setMode( el, o.mode || "show" ),
- show = mode === "show",
- direction = o.direction || "left",
- ref = (direction === "up" || direction === "down") ? "top" : "left",
- positiveMotion = (direction === "up" || direction === "left"),
- distance,
- animation = {};
-
- // Adjust
- $.effects.save( el, props );
- el.show();
- distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true );
-
- $.effects.createWrapper( el ).css({
- overflow: "hidden"
- });
-
- if ( show ) {
- el.css( ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance );
- }
-
- // Animation
- animation[ ref ] = ( show ?
- ( positiveMotion ? "+=" : "-=") :
- ( positiveMotion ? "-=" : "+=")) +
- distance;
-
- // Animate
- el.animate( animation, {
- queue: false,
- duration: o.duration,
- easing: o.easing,
- complete: function() {
- if ( mode === "hide" ) {
- el.hide();
- }
- $.effects.restore( el, props );
- $.effects.removeWrapper( el );
- done();
- }
- });
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.effects.effect.transfer = function( o, done ) {
- var elem = $( this ),
- target = $( o.to ),
- targetFixed = target.css( "position" ) === "fixed",
- body = $("body"),
- fixTop = targetFixed ? body.scrollTop() : 0,
- fixLeft = targetFixed ? body.scrollLeft() : 0,
- endPosition = target.offset(),
- animation = {
- top: endPosition.top - fixTop ,
- left: endPosition.left - fixLeft ,
- height: target.innerHeight(),
- width: target.innerWidth()
- },
- startPosition = elem.offset(),
- transfer = $( "<div class='ui-effects-transfer'></div>" )
- .appendTo( document.body )
- .addClass( o.className )
- .css({
- top: startPosition.top - fixTop ,
- left: startPosition.left - fixLeft ,
- height: elem.innerHeight(),
- width: elem.innerWidth(),
- position: targetFixed ? "fixed" : "absolute"
- })
- .animate( animation, o.duration, o.easing, function() {
- transfer.remove();
- done();
- });
-};
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-$.widget( "ui.menu", {
- version: "1.10.3",
- defaultElement: "<ul>",
- delay: 300,
- options: {
- icons: {
- submenu: "ui-icon-carat-1-e"
- },
- menus: "ul",
- position: {
- my: "left top",
- at: "right top"
- },
- role: "menu",
-
- // callbacks
- blur: null,
- focus: null,
- select: null
- },
-
- _create: function() {
- this.activeMenu = this.element;
- // flag used to prevent firing of the click handler
- // as the event bubbles up through nested menus
- this.mouseHandled = false;
- this.element
- .uniqueId()
- .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" )
- .toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length )
- .attr({
- role: this.options.role,
- tabIndex: 0
- })
- // need to catch all clicks on disabled menu
- // not possible through _on
- .bind( "click" + this.eventNamespace, $.proxy(function( event ) {
- if ( this.options.disabled ) {
- event.preventDefault();
- }
- }, this ));
-
- if ( this.options.disabled ) {
- this.element
- .addClass( "ui-state-disabled" )
- .attr( "aria-disabled", "true" );
- }
-
- this._on({
- // Prevent focus from sticking to links inside menu after clicking
- // them (focus should always stay on UL during navigation).
- "mousedown .ui-menu-item > a": function( event ) {
- event.preventDefault();
- },
- "click .ui-state-disabled > a": function( event ) {
- event.preventDefault();
- },
- "click .ui-menu-item:has(a)": function( event ) {
- var target = $( event.target ).closest( ".ui-menu-item" );
- if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
- this.mouseHandled = true;
-
- this.select( event );
- // Open submenu on click
- if ( target.has( ".ui-menu" ).length ) {
- this.expand( event );
- } else if ( !this.element.is( ":focus" ) ) {
- // Redirect focus to the menu
- this.element.trigger( "focus", [ true ] );
-
- // If the active item is on the top level, let it stay active.
- // Otherwise, blur the active item since it is no longer visible.
- if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
- clearTimeout( this.timer );
- }
- }
- }
- },
- "mouseenter .ui-menu-item": function( event ) {
- var target = $( event.currentTarget );
- // Remove ui-state-active class from siblings of the newly focused menu item
- // to avoid a jump caused by adjacent elements both having a class with a border
- target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" );
- this.focus( event, target );
- },
- mouseleave: "collapseAll",
- "mouseleave .ui-menu": "collapseAll",
- focus: function( event, keepActiveItem ) {
- // If there's already an active item, keep it active
- // If not, activate the first item
- var item = this.active || this.element.children( ".ui-menu-item" ).eq( 0 );
-
- if ( !keepActiveItem ) {
- this.focus( event, item );
- }
- },
- blur: function( event ) {
- this._delay(function() {
- if ( !$.contains( this.element[0], this.document[0].activeElement ) ) {
- this.collapseAll( event );
- }
- });
- },
- keydown: "_keydown"
- });
-
- this.refresh();
-
- // Clicks outside of a menu collapse any open menus
- this._on( this.document, {
- click: function( event ) {
- if ( !$( event.target ).closest( ".ui-menu" ).length ) {
- this.collapseAll( event );
- }
-
- // Reset the mouseHandled flag
- this.mouseHandled = false;
- }
- });
- },
-
- _destroy: function() {
- // Destroy (sub)menus
- this.element
- .removeAttr( "aria-activedescendant" )
- .find( ".ui-menu" ).addBack()
- .removeClass( "ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons" )
- .removeAttr( "role" )
- .removeAttr( "tabIndex" )
- .removeAttr( "aria-labelledby" )
- .removeAttr( "aria-expanded" )
- .removeAttr( "aria-hidden" )
- .removeAttr( "aria-disabled" )
- .removeUniqueId()
- .show();
-
- // Destroy menu items
- this.element.find( ".ui-menu-item" )
- .removeClass( "ui-menu-item" )
- .removeAttr( "role" )
- .removeAttr( "aria-disabled" )
- .children( "a" )
- .removeUniqueId()
- .removeClass( "ui-corner-all ui-state-hover" )
- .removeAttr( "tabIndex" )
- .removeAttr( "role" )
- .removeAttr( "aria-haspopup" )
- .children().each( function() {
- var elem = $( this );
- if ( elem.data( "ui-menu-submenu-carat" ) ) {
- elem.remove();
- }
- });
-
- // Destroy menu dividers
- this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" );
- },
-
- _keydown: function( event ) {
- /*jshint maxcomplexity:20*/
- var match, prev, character, skip, regex,
- preventDefault = true;
-
- function escape( value ) {
- return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
- }
-
- switch ( event.keyCode ) {
- case $.ui.keyCode.PAGE_UP:
- this.previousPage( event );
- break;
- case $.ui.keyCode.PAGE_DOWN:
- this.nextPage( event );
- break;
- case $.ui.keyCode.HOME:
- this._move( "first", "first", event );
- break;
- case $.ui.keyCode.END:
- this._move( "last", "last", event );
- break;
- case $.ui.keyCode.UP:
- this.previous( event );
- break;
- case $.ui.keyCode.DOWN:
- this.next( event );
- break;
- case $.ui.keyCode.LEFT:
- this.collapse( event );
- break;
- case $.ui.keyCode.RIGHT:
- if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
- this.expand( event );
- }
- break;
- case $.ui.keyCode.ENTER:
- case $.ui.keyCode.SPACE:
- this._activate( event );
- break;
- case $.ui.keyCode.ESCAPE:
- this.collapse( event );
- break;
- default:
- preventDefault = false;
- prev = this.previousFilter || "";
- character = String.fromCharCode( event.keyCode );
- skip = false;
-
- clearTimeout( this.filterTimer );
-
- if ( character === prev ) {
- skip = true;
- } else {
- character = prev + character;
- }
-
- regex = new RegExp( "^" + escape( character ), "i" );
- match = this.activeMenu.children( ".ui-menu-item" ).filter(function() {
- return regex.test( $( this ).children( "a" ).text() );
- });
- match = skip && match.index( this.active.next() ) !== -1 ?
- this.active.nextAll( ".ui-menu-item" ) :
- match;
-
- // If no matches on the current filter, reset to the last character pressed
- // to move down the menu to the first item that starts with that character
- if ( !match.length ) {
- character = String.fromCharCode( event.keyCode );
- regex = new RegExp( "^" + escape( character ), "i" );
- match = this.activeMenu.children( ".ui-menu-item" ).filter(function() {
- return regex.test( $( this ).children( "a" ).text() );
- });
- }
-
- if ( match.length ) {
- this.focus( event, match );
- if ( match.length > 1 ) {
- this.previousFilter = character;
- this.filterTimer = this._delay(function() {
- delete this.previousFilter;
- }, 1000 );
- } else {
- delete this.previousFilter;
- }
- } else {
- delete this.previousFilter;
- }
- }
-
- if ( preventDefault ) {
- event.preventDefault();
- }
- },
-
- _activate: function( event ) {
- if ( !this.active.is( ".ui-state-disabled" ) ) {
- if ( this.active.children( "a[aria-haspopup='true']" ).length ) {
- this.expand( event );
- } else {
- this.select( event );
- }
- }
- },
-
- refresh: function() {
- var menus,
- icon = this.options.icons.submenu,
- submenus = this.element.find( this.options.menus );
-
- // Initialize nested menus
- submenus.filter( ":not(.ui-menu)" )
- .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" )
- .hide()
- .attr({
- role: this.options.role,
- "aria-hidden": "true",
- "aria-expanded": "false"
- })
- .each(function() {
- var menu = $( this ),
- item = menu.prev( "a" ),
- submenuCarat = $( "<span>" )
- .addClass( "ui-menu-icon ui-icon " + icon )
- .data( "ui-menu-submenu-carat", true );
-
- item
- .attr( "aria-haspopup", "true" )
- .prepend( submenuCarat );
- menu.attr( "aria-labelledby", item.attr( "id" ) );
- });
-
- menus = submenus.add( this.element );
-
- // Don't refresh list items that are already adapted
- menus.children( ":not(.ui-menu-item):has(a)" )
- .addClass( "ui-menu-item" )
- .attr( "role", "presentation" )
- .children( "a" )
- .uniqueId()
- .addClass( "ui-corner-all" )
- .attr({
- tabIndex: -1,
- role: this._itemRole()
- });
-
- // Initialize unlinked menu-items containing spaces and/or dashes only as dividers
- menus.children( ":not(.ui-menu-item)" ).each(function() {
- var item = $( this );
- // hyphen, em dash, en dash
- if ( !/[^\-\u2014\u2013\s]/.test( item.text() ) ) {
- item.addClass( "ui-widget-content ui-menu-divider" );
- }
- });
-
- // Add aria-disabled attribute to any disabled menu item
- menus.children( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
-
- // If the active item has been removed, blur the menu
- if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
- this.blur();
- }
- },
-
- _itemRole: function() {
- return {
- menu: "menuitem",
- listbox: "option"
- }[ this.options.role ];
- },
-
- _setOption: function( key, value ) {
- if ( key === "icons" ) {
- this.element.find( ".ui-menu-icon" )
- .removeClass( this.options.icons.submenu )
- .addClass( value.submenu );
- }
- this._super( key, value );
- },
-
- focus: function( event, item ) {
- var nested, focused;
- this.blur( event, event && event.type === "focus" );
-
- this._scrollIntoView( item );
-
- this.active = item.first();
- focused = this.active.children( "a" ).addClass( "ui-state-focus" );
- // Only update aria-activedescendant if there's a role
- // otherwise we assume focus is managed elsewhere
- if ( this.options.role ) {
- this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
- }
-
- // Highlight active parent menu item, if any
- this.active
- .parent()
- .closest( ".ui-menu-item" )
- .children( "a:first" )
- .addClass( "ui-state-active" );
-
- if ( event && event.type === "keydown" ) {
- this._close();
- } else {
- this.timer = this._delay(function() {
- this._close();
- }, this.delay );
- }
-
- nested = item.children( ".ui-menu" );
- if ( nested.length && ( /^mouse/.test( event.type ) ) ) {
- this._startOpening(nested);
- }
- this.activeMenu = item.parent();
-
- this._trigger( "focus", event, { item: item } );
- },
-
- _scrollIntoView: function( item ) {
- var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
- if ( this._hasScroll() ) {
- borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0;
- paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0;
- offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
- scroll = this.activeMenu.scrollTop();
- elementHeight = this.activeMenu.height();
- itemHeight = item.height();
-
- if ( offset < 0 ) {
- this.activeMenu.scrollTop( scroll + offset );
- } else if ( offset + itemHeight > elementHeight ) {
- this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
- }
- }
- },
-
- blur: function( event, fromFocus ) {
- if ( !fromFocus ) {
- clearTimeout( this.timer );
- }
-
- if ( !this.active ) {
- return;
- }
-
- this.active.children( "a" ).removeClass( "ui-state-focus" );
- this.active = null;
-
- this._trigger( "blur", event, { item: this.active } );
- },
-
- _startOpening: function( submenu ) {
- clearTimeout( this.timer );
-
- // Don't open if already open fixes a Firefox bug that caused a .5 pixel
- // shift in the submenu position when mousing over the carat icon
- if ( submenu.attr( "aria-hidden" ) !== "true" ) {
- return;
- }
-
- this.timer = this._delay(function() {
- this._close();
- this._open( submenu );
- }, this.delay );
- },
-
- _open: function( submenu ) {
- var position = $.extend({
- of: this.active
- }, this.options.position );
-
- clearTimeout( this.timer );
- this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
- .hide()
- .attr( "aria-hidden", "true" );
-
- submenu
- .show()
- .removeAttr( "aria-hidden" )
- .attr( "aria-expanded", "true" )
- .position( position );
- },
-
- collapseAll: function( event, all ) {
- clearTimeout( this.timer );
- this.timer = this._delay(function() {
- // If we were passed an event, look for the submenu that contains the event
- var currentMenu = all ? this.element :
- $( event && event.target ).closest( this.element.find( ".ui-menu" ) );
-
- // If we found no valid submenu ancestor, use the main menu to close all sub menus anyway
- if ( !currentMenu.length ) {
- currentMenu = this.element;
- }
-
- this._close( currentMenu );
-
- this.blur( event );
- this.activeMenu = currentMenu;
- }, this.delay );
- },
-
- // With no arguments, closes the currently active menu - if nothing is active
- // it closes all menus. If passed an argument, it will search for menus BELOW
- _close: function( startMenu ) {
- if ( !startMenu ) {
- startMenu = this.active ? this.active.parent() : this.element;
- }
-
- startMenu
- .find( ".ui-menu" )
- .hide()
- .attr( "aria-hidden", "true" )
- .attr( "aria-expanded", "false" )
- .end()
- .find( "a.ui-state-active" )
- .removeClass( "ui-state-active" );
- },
-
- collapse: function( event ) {
- var newItem = this.active &&
- this.active.parent().closest( ".ui-menu-item", this.element );
- if ( newItem && newItem.length ) {
- this._close();
- this.focus( event, newItem );
- }
- },
-
- expand: function( event ) {
- var newItem = this.active &&
- this.active
- .children( ".ui-menu " )
- .children( ".ui-menu-item" )
- .first();
-
- if ( newItem && newItem.length ) {
- this._open( newItem.parent() );
-
- // Delay so Firefox will not hide activedescendant change in expanding submenu from AT
- this._delay(function() {
- this.focus( event, newItem );
- });
- }
- },
-
- next: function( event ) {
- this._move( "next", "first", event );
- },
-
- previous: function( event ) {
- this._move( "prev", "last", event );
- },
-
- isFirstItem: function() {
- return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
- },
-
- isLastItem: function() {
- return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
- },
-
- _move: function( direction, filter, event ) {
- var next;
- if ( this.active ) {
- if ( direction === "first" || direction === "last" ) {
- next = this.active
- [ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
- .eq( -1 );
- } else {
- next = this.active
- [ direction + "All" ]( ".ui-menu-item" )
- .eq( 0 );
- }
- }
- if ( !next || !next.length || !this.active ) {
- next = this.activeMenu.children( ".ui-menu-item" )[ filter ]();
- }
-
- this.focus( event, next );
- },
-
- nextPage: function( event ) {
- var item, base, height;
-
- if ( !this.active ) {
- this.next( event );
- return;
- }
- if ( this.isLastItem() ) {
- return;
- }
- if ( this._hasScroll() ) {
- base = this.active.offset().top;
- height = this.element.height();
- this.active.nextAll( ".ui-menu-item" ).each(function() {
- item = $( this );
- return item.offset().top - base - height < 0;
- });
-
- this.focus( event, item );
- } else {
- this.focus( event, this.activeMenu.children( ".ui-menu-item" )
- [ !this.active ? "first" : "last" ]() );
- }
- },
-
- previousPage: function( event ) {
- var item, base, height;
- if ( !this.active ) {
- this.next( event );
- return;
- }
- if ( this.isFirstItem() ) {
- return;
- }
- if ( this._hasScroll() ) {
- base = this.active.offset().top;
- height = this.element.height();
- this.active.prevAll( ".ui-menu-item" ).each(function() {
- item = $( this );
- return item.offset().top - base + height > 0;
- });
-
- this.focus( event, item );
- } else {
- this.focus( event, this.activeMenu.children( ".ui-menu-item" ).first() );
- }
- },
-
- _hasScroll: function() {
- return this.element.outerHeight() < this.element.prop( "scrollHeight" );
- },
-
- select: function( event ) {
- // TODO: It should never be possible to not have an active item at this
- // point, but the tests don't trigger mouseenter before click.
- this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
- var ui = { item: this.active };
- if ( !this.active.has( ".ui-menu" ).length ) {
- this.collapseAll( event, true );
- }
- this._trigger( "select", event, ui );
- }
-});
-
-}( jQuery ));
-
-(function( $, undefined ) {
-
-$.ui = $.ui || {};
-
-var cachedScrollbarWidth,
- max = Math.max,
- abs = Math.abs,
- round = Math.round,
- rhorizontal = /left|center|right/,
- rvertical = /top|center|bottom/,
- roffset = /[\+\-]\d+(\.[\d]+)?%?/,
- rposition = /^\w+/,
- rpercent = /%$/,
- _position = $.fn.position;
-
-function getOffsets( offsets, width, height ) {
- return [
- parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
- parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
- ];
-}
-
-function parseCss( element, property ) {
- return parseInt( $.css( element, property ), 10 ) || 0;
-}
-
-function getDimensions( elem ) {
- var raw = elem[0];
- if ( raw.nodeType === 9 ) {
- return {
- width: elem.width(),
- height: elem.height(),
- offset: { top: 0, left: 0 }
- };
- }
- if ( $.isWindow( raw ) ) {
- return {
- width: elem.width(),
- height: elem.height(),
- offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
- };
- }
- if ( raw.preventDefault ) {
- return {
- width: 0,
- height: 0,
- offset: { top: raw.pageY, left: raw.pageX }
- };
- }
- return {
- width: elem.outerWidth(),
- height: elem.outerHeight(),
- offset: elem.offset()
- };
-}
-
-$.position = {
- scrollbarWidth: function() {
- if ( cachedScrollbarWidth !== undefined ) {
- return cachedScrollbarWidth;
- }
- var w1, w2,
- div = $( "<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ),
- innerDiv = div.children()[0];
-
- $( "body" ).append( div );
- w1 = innerDiv.offsetWidth;
- div.css( "overflow", "scroll" );
-
- w2 = innerDiv.offsetWidth;
-
- if ( w1 === w2 ) {
- w2 = div[0].clientWidth;
- }
-
- div.remove();
-
- return (cachedScrollbarWidth = w1 - w2);
- },
- getScrollInfo: function( within ) {
- var overflowX = within.isWindow ? "" : within.element.css( "overflow-x" ),
- overflowY = within.isWindow ? "" : within.element.css( "overflow-y" ),
- hasOverflowX = overflowX === "scroll" ||
- ( overflowX === "auto" && within.width < within.element[0].scrollWidth ),
- hasOverflowY = overflowY === "scroll" ||
- ( overflowY === "auto" && within.height < within.element[0].scrollHeight );
- return {
- width: hasOverflowY ? $.position.scrollbarWidth() : 0,
- height: hasOverflowX ? $.position.scrollbarWidth() : 0
- };
- },
- getWithinInfo: function( element ) {
- var withinElement = $( element || window ),
- isWindow = $.isWindow( withinElement[0] );
- return {
- element: withinElement,
- isWindow: isWindow,
- offset: withinElement.offset() || { left: 0, top: 0 },
- scrollLeft: withinElement.scrollLeft(),
- scrollTop: withinElement.scrollTop(),
- width: isWindow ? withinElement.width() : withinElement.outerWidth(),
- height: isWindow ? withinElement.height() : withinElement.outerHeight()
- };
- }
-};
-
-$.fn.position = function( options ) {
- if ( !options || !options.of ) {
- return _position.apply( this, arguments );
- }
-
- // make a copy, we don't want to modify arguments
- options = $.extend( {}, options );
-
- var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
- target = $( options.of ),
- within = $.position.getWithinInfo( options.within ),
- scrollInfo = $.position.getScrollInfo( within ),
- collision = ( options.collision || "flip" ).split( " " ),
- offsets = {};
-
- dimensions = getDimensions( target );
- if ( target[0].preventDefault ) {
- // force left top to allow flipping
- options.at = "left top";
- }
- targetWidth = dimensions.width;
- targetHeight = dimensions.height;
- targetOffset = dimensions.offset;
- // clone to reuse original targetOffset later
- basePosition = $.extend( {}, targetOffset );
-
- // force my and at to have valid horizontal and vertical positions
- // if a value is missing or invalid, it will be converted to center
- $.each( [ "my", "at" ], function() {
- var pos = ( options[ this ] || "" ).split( " " ),
- horizontalOffset,
- verticalOffset;
-
- if ( pos.length === 1) {
- pos = rhorizontal.test( pos[ 0 ] ) ?
- pos.concat( [ "center" ] ) :
- rvertical.test( pos[ 0 ] ) ?
- [ "center" ].concat( pos ) :
- [ "center", "center" ];
- }
- pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
- pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
-
- // calculate offsets
- horizontalOffset = roffset.exec( pos[ 0 ] );
- verticalOffset = roffset.exec( pos[ 1 ] );
- offsets[ this ] = [
- horizontalOffset ? horizontalOffset[ 0 ] : 0,
- verticalOffset ? verticalOffset[ 0 ] : 0
- ];
-
- // reduce to just the positions without the offsets
- options[ this ] = [
- rposition.exec( pos[ 0 ] )[ 0 ],
- rposition.exec( pos[ 1 ] )[ 0 ]
- ];
- });
-
- // normalize collision option
- if ( collision.length === 1 ) {
- collision[ 1 ] = collision[ 0 ];
- }
-
- if ( options.at[ 0 ] === "right" ) {
- basePosition.left += targetWidth;
- } else if ( options.at[ 0 ] === "center" ) {
- basePosition.left += targetWidth / 2;
- }
-
- if ( options.at[ 1 ] === "bottom" ) {
- basePosition.top += targetHeight;
- } else if ( options.at[ 1 ] === "center" ) {
- basePosition.top += targetHeight / 2;
- }
-
- atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
- basePosition.left += atOffset[ 0 ];
- basePosition.top += atOffset[ 1 ];
-
- return this.each(function() {
- var collisionPosition, using,
- elem = $( this ),
- elemWidth = elem.outerWidth(),
- elemHeight = elem.outerHeight(),
- marginLeft = parseCss( this, "marginLeft" ),
- marginTop = parseCss( this, "marginTop" ),
- collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width,
- collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height,
- position = $.extend( {}, basePosition ),
- myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
-
- if ( options.my[ 0 ] === "right" ) {
- position.left -= elemWidth;
- } else if ( options.my[ 0 ] === "center" ) {
- position.left -= elemWidth / 2;
- }
-
- if ( options.my[ 1 ] === "bottom" ) {
- position.top -= elemHeight;
- } else if ( options.my[ 1 ] === "center" ) {
- position.top -= elemHeight / 2;
- }
-
- position.left += myOffset[ 0 ];
- position.top += myOffset[ 1 ];
-
- // if the browser doesn't support fractions, then round for consistent results
- if ( !$.support.offsetFractions ) {
- position.left = round( position.left );
- position.top = round( position.top );
- }
-
- collisionPosition = {
- marginLeft: marginLeft,
- marginTop: marginTop
- };
-
- $.each( [ "left", "top" ], function( i, dir ) {
- if ( $.ui.position[ collision[ i ] ] ) {
- $.ui.position[ collision[ i ] ][ dir ]( position, {
- targetWidth: targetWidth,
- targetHeight: targetHeight,
- elemWidth: elemWidth,
- elemHeight: elemHeight,
- collisionPosition: collisionPosition,
- collisionWidth: collisionWidth,
- collisionHeight: collisionHeight,
- offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
- my: options.my,
- at: options.at,
- within: within,
- elem : elem
- });
- }
- });
-
- if ( options.using ) {
- // adds feedback as second argument to using callback, if present
- using = function( props ) {
- var left = targetOffset.left - position.left,
- right = left + targetWidth - elemWidth,
- top = targetOffset.top - position.top,
- bottom = top + targetHeight - elemHeight,
- feedback = {
- target: {
- element: target,
- left: targetOffset.left,
- top: targetOffset.top,
- width: targetWidth,
- height: targetHeight
- },
- element: {
- element: elem,
- left: position.left,
- top: position.top,
- width: elemWidth,
- height: elemHeight
- },
- horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
- vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
- };
- if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
- feedback.horizontal = "center";
- }
- if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
- feedback.vertical = "middle";
- }
- if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
- feedback.important = "horizontal";
- } else {
- feedback.important = "vertical";
- }
- options.using.call( this, props, feedback );
- };
- }
-
- elem.offset( $.extend( position, { using: using } ) );
- });
-};
-
-$.ui.position = {
- fit: {
- left: function( position, data ) {
- var within = data.within,
- withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
- outerWidth = within.width,
- collisionPosLeft = position.left - data.collisionPosition.marginLeft,
- overLeft = withinOffset - collisionPosLeft,
- overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
- newOverRight;
-
- // element is wider than within
- if ( data.collisionWidth > outerWidth ) {
- // element is initially over the left side of within
- if ( overLeft > 0 && overRight <= 0 ) {
- newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
- position.left += overLeft - newOverRight;
- // element is initially over right side of within
- } else if ( overRight > 0 && overLeft <= 0 ) {
- position.left = withinOffset;
- // element is initially over both left and right sides of within
- } else {
- if ( overLeft > overRight ) {
- position.left = withinOffset + outerWidth - data.collisionWidth;
- } else {
- position.left = withinOffset;
- }
- }
- // too far left -> align with left edge
- } else if ( overLeft > 0 ) {
- position.left += overLeft;
- // too far right -> align with right edge
- } else if ( overRight > 0 ) {
- position.left -= overRight;
- // adjust based on position and margin
- } else {
- position.left = max( position.left - collisionPosLeft, position.left );
- }
- },
- top: function( position, data ) {
- var within = data.within,
- withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
- outerHeight = data.within.height,
- collisionPosTop = position.top - data.collisionPosition.marginTop,
- overTop = withinOffset - collisionPosTop,
- overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
- newOverBottom;
-
- // element is taller than within
- if ( data.collisionHeight > outerHeight ) {
- // element is initially over the top of within
- if ( overTop > 0 && overBottom <= 0 ) {
- newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
- position.top += overTop - newOverBottom;
- // element is initially over bottom of within
- } else if ( overBottom > 0 && overTop <= 0 ) {
- position.top = withinOffset;
- // element is initially over both top and bottom of within
- } else {
- if ( overTop > overBottom ) {
- position.top = withinOffset + outerHeight - data.collisionHeight;
- } else {
- position.top = withinOffset;
- }
- }
- // too far up -> align with top
- } else if ( overTop > 0 ) {
- position.top += overTop;
- // too far down -> align with bottom edge
- } else if ( overBottom > 0 ) {
- position.top -= overBottom;
- // adjust based on position and margin
- } else {
- position.top = max( position.top - collisionPosTop, position.top );
- }
- }
- },
- flip: {
- left: function( position, data ) {
- var within = data.within,
- withinOffset = within.offset.left + within.scrollLeft,
- outerWidth = within.width,
- offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
- collisionPosLeft = position.left - data.collisionPosition.marginLeft,
- overLeft = collisionPosLeft - offsetLeft,
- overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
- myOffset = data.my[ 0 ] === "left" ?
- -data.elemWidth :
- data.my[ 0 ] === "right" ?
- data.elemWidth :
- 0,
- atOffset = data.at[ 0 ] === "left" ?
- data.targetWidth :
- data.at[ 0 ] === "right" ?
- -data.targetWidth :
- 0,
- offset = -2 * data.offset[ 0 ],
- newOverRight,
- newOverLeft;
-
- if ( overLeft < 0 ) {
- newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
- if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
- position.left += myOffset + atOffset + offset;
- }
- }
- else if ( overRight > 0 ) {
- newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
- if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
- position.left += myOffset + atOffset + offset;
- }
- }
- },
- top: function( position, data ) {
- var within = data.within,
- withinOffset = within.offset.top + within.scrollTop,
- outerHeight = within.height,
- offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
- collisionPosTop = position.top - data.collisionPosition.marginTop,
- overTop = collisionPosTop - offsetTop,
- overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
- top = data.my[ 1 ] === "top",
- myOffset = top ?
- -data.elemHeight :
- data.my[ 1 ] === "bottom" ?
- data.elemHeight :
- 0,
- atOffset = data.at[ 1 ] === "top" ?
- data.targetHeight :
- data.at[ 1 ] === "bottom" ?
- -data.targetHeight :
- 0,
- offset = -2 * data.offset[ 1 ],
- newOverTop,
- newOverBottom;
- if ( overTop < 0 ) {
- newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
- if ( ( position.top + myOffset + atOffset + offset) > overTop && ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) ) {
- position.top += myOffset + atOffset + offset;
- }
- }
- else if ( overBottom > 0 ) {
- newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
- if ( ( position.top + myOffset + atOffset + offset) > overBottom && ( newOverTop > 0 || abs( newOverTop ) < overBottom ) ) {
- position.top += myOffset + atOffset + offset;
- }
- }
- }
- },
- flipfit: {
- left: function() {
- $.ui.position.flip.left.apply( this, arguments );
- $.ui.position.fit.left.apply( this, arguments );
- },
- top: function() {
- $.ui.position.flip.top.apply( this, arguments );
- $.ui.position.fit.top.apply( this, arguments );
- }
- }
-};
-
-// fraction support test
-(function () {
- var testElement, testElementParent, testElementStyle, offsetLeft, i,
- body = document.getElementsByTagName( "body" )[ 0 ],
- div = document.createElement( "div" );
-
- //Create a "fake body" for testing based on method used in jQuery.support
- testElement = document.createElement( body ? "div" : "body" );
- testElementStyle = {
- visibility: "hidden",
- width: 0,
- height: 0,
- border: 0,
- margin: 0,
- background: "none"
- };
- if ( body ) {
- $.extend( testElementStyle, {
- position: "absolute",
- left: "-1000px",
- top: "-1000px"
- });
- }
- for ( i in testElementStyle ) {
- testElement.style[ i ] = testElementStyle[ i ];
- }
- testElement.appendChild( div );
- testElementParent = body || document.documentElement;
- testElementParent.insertBefore( testElement, testElementParent.firstChild );
-
- div.style.cssText = "position: absolute; left: 10.7432222px;";
-
- offsetLeft = $( div ).offset().left;
- $.support.offsetFractions = offsetLeft > 10 && offsetLeft < 11;
-
- testElement.innerHTML = "";
- testElementParent.removeChild( testElement );
-})();
-
-}( jQuery ) );
-
-(function( $, undefined ) {
-
-$.widget( "ui.progressbar", {
- version: "1.10.3",
- options: {
- max: 100,
- value: 0,
-
- change: null,
- complete: null
- },
-
- min: 0,
-
- _create: function() {
- // Constrain initial value
- this.oldValue = this.options.value = this._constrainedValue();
-
- this.element
- .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
- .attr({
- // Only set static values, aria-valuenow and aria-valuemax are
- // set inside _refreshValue()
- role: "progressbar",
- "aria-valuemin": this.min
- });
-
- this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
- .appendTo( this.element );
-
- this._refreshValue();
- },
-
- _destroy: function() {
- this.element
- .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
- .removeAttr( "role" )
- .removeAttr( "aria-valuemin" )
- .removeAttr( "aria-valuemax" )
- .removeAttr( "aria-valuenow" );
-
- this.valueDiv.remove();
- },
-
- value: function( newValue ) {
- if ( newValue === undefined ) {
- return this.options.value;
- }
-
- this.options.value = this._constrainedValue( newValue );
- this._refreshValue();
- },
-
- _constrainedValue: function( newValue ) {
- if ( newValue === undefined ) {
- newValue = this.options.value;
- }
-
- this.indeterminate = newValue === false;
-
- // sanitize value
- if ( typeof newValue !== "number" ) {
- newValue = 0;
- }
-
- return this.indeterminate ? false :
- Math.min( this.options.max, Math.max( this.min, newValue ) );
- },
-
- _setOptions: function( options ) {
- // Ensure "value" option is set after other values (like max)
- var value = options.value;
- delete options.value;
-
- this._super( options );
-
- this.options.value = this._constrainedValue( value );
- this._refreshValue();
- },
-
- _setOption: function( key, value ) {
- if ( key === "max" ) {
- // Don't allow a max less than min
- value = Math.max( this.min, value );
- }
-
- this._super( key, value );
- },
-
- _percentage: function() {
- return this.indeterminate ? 100 : 100 * ( this.options.value - this.min ) / ( this.options.max - this.min );
- },
-
- _refreshValue: function() {
- var value = this.options.value,
- percentage = this._percentage();
-
- this.valueDiv
- .toggle( this.indeterminate || value > this.min )
- .toggleClass( "ui-corner-right", value === this.options.max )
- .width( percentage.toFixed(0) + "%" );
-
- this.element.toggleClass( "ui-progressbar-indeterminate", this.indeterminate );
-
- if ( this.indeterminate ) {
- this.element.removeAttr( "aria-valuenow" );
- if ( !this.overlayDiv ) {
- this.overlayDiv = $( "<div class='ui-progressbar-overlay'></div>" ).appendTo( this.valueDiv );
- }
- } else {
- this.element.attr({
- "aria-valuemax": this.options.max,
- "aria-valuenow": value
- });
- if ( this.overlayDiv ) {
- this.overlayDiv.remove();
- this.overlayDiv = null;
- }
- }
-
- if ( this.oldValue !== value ) {
- this.oldValue = value;
- this._trigger( "change" );
- }
- if ( value === this.options.max ) {
- this._trigger( "complete" );
- }
- }
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-// number of pages in a slider
-// (how many times can you page up/down to go through the whole range)
-var numPages = 5;
-
-$.widget( "ui.slider", $.ui.mouse, {
- version: "1.10.3",
- widgetEventPrefix: "slide",
-
- options: {
- animate: false,
- distance: 0,
- max: 100,
- min: 0,
- orientation: "horizontal",
- range: false,
- step: 1,
- value: 0,
- values: null,
-
- // callbacks
- change: null,
- slide: null,
- start: null,
- stop: null
- },
-
- _create: function() {
- this._keySliding = false;
- this._mouseSliding = false;
- this._animateOff = true;
- this._handleIndex = null;
- this._detectOrientation();
- this._mouseInit();
-
- this.element
- .addClass( "ui-slider" +
- " ui-slider-" + this.orientation +
- " ui-widget" +
- " ui-widget-content" +
- " ui-corner-all");
-
- this._refresh();
- this._setOption( "disabled", this.options.disabled );
-
- this._animateOff = false;
- },
-
- _refresh: function() {
- this._createRange();
- this._createHandles();
- this._setupEvents();
- this._refreshValue();
- },
-
- _createHandles: function() {
- var i, handleCount,
- options = this.options,
- existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ),
- handle = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",
- handles = [];
-
- handleCount = ( options.values && options.values.length ) || 1;
-
- if ( existingHandles.length > handleCount ) {
- existingHandles.slice( handleCount ).remove();
- existingHandles = existingHandles.slice( 0, handleCount );
- }
-
- for ( i = existingHandles.length; i < handleCount; i++ ) {
- handles.push( handle );
- }
-
- this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) );
-
- this.handle = this.handles.eq( 0 );
-
- this.handles.each(function( i ) {
- $( this ).data( "ui-slider-handle-index", i );
- });
- },
-
- _createRange: function() {
- var options = this.options,
- classes = "";
-
- if ( options.range ) {
- if ( options.range === true ) {
- if ( !options.values ) {
- options.values = [ this._valueMin(), this._valueMin() ];
- } else if ( options.values.length && options.values.length !== 2 ) {
- options.values = [ options.values[0], options.values[0] ];
- } else if ( $.isArray( options.values ) ) {
- options.values = options.values.slice(0);
- }
- }
-
- if ( !this.range || !this.range.length ) {
- this.range = $( "<div></div>" )
- .appendTo( this.element );
-
- classes = "ui-slider-range" +
- // note: this isn't the most fittingly semantic framework class for this element,
- // but worked best visually with a variety of themes
- " ui-widget-header ui-corner-all";
- } else {
- this.range.removeClass( "ui-slider-range-min ui-slider-range-max" )
- // Handle range switching from true to min/max
- .css({
- "left": "",
- "bottom": ""
- });
- }
-
- this.range.addClass( classes +
- ( ( options.range === "min" || options.range === "max" ) ? " ui-slider-range-" + options.range : "" ) );
- } else {
- this.range = $([]);
- }
- },
-
- _setupEvents: function() {
- var elements = this.handles.add( this.range ).filter( "a" );
- this._off( elements );
- this._on( elements, this._handleEvents );
- this._hoverable( elements );
- this._focusable( elements );
- },
-
- _destroy: function() {
- this.handles.remove();
- this.range.remove();
-
- this.element
- .removeClass( "ui-slider" +
- " ui-slider-horizontal" +
- " ui-slider-vertical" +
- " ui-widget" +
- " ui-widget-content" +
- " ui-corner-all" );
-
- this._mouseDestroy();
- },
-
- _mouseCapture: function( event ) {
- var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,
- that = this,
- o = this.options;
-
- if ( o.disabled ) {
- return false;
- }
-
- this.elementSize = {
- width: this.element.outerWidth(),
- height: this.element.outerHeight()
- };
- this.elementOffset = this.element.offset();
-
- position = { x: event.pageX, y: event.pageY };
- normValue = this._normValueFromMouse( position );
- distance = this._valueMax() - this._valueMin() + 1;
- this.handles.each(function( i ) {
- var thisDistance = Math.abs( normValue - that.values(i) );
- if (( distance > thisDistance ) ||
- ( distance === thisDistance &&
- (i === that._lastChangedValue || that.values(i) === o.min ))) {
- distance = thisDistance;
- closestHandle = $( this );
- index = i;
- }
- });
-
- allowed = this._start( event, index );
- if ( allowed === false ) {
- return false;
- }
- this._mouseSliding = true;
-
- this._handleIndex = index;
-
- closestHandle
- .addClass( "ui-state-active" )
- .focus();
-
- offset = closestHandle.offset();
- mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" );
- this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
- left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
- top: event.pageY - offset.top -
- ( closestHandle.height() / 2 ) -
- ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -
- ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +
- ( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
- };
-
- if ( !this.handles.hasClass( "ui-state-hover" ) ) {
- this._slide( event, index, normValue );
- }
- this._animateOff = true;
- return true;
- },
-
- _mouseStart: function() {
- return true;
- },
-
- _mouseDrag: function( event ) {
- var position = { x: event.pageX, y: event.pageY },
- normValue = this._normValueFromMouse( position );
-
- this._slide( event, this._handleIndex, normValue );
-
- return false;
- },
-
- _mouseStop: function( event ) {
- this.handles.removeClass( "ui-state-active" );
- this._mouseSliding = false;
-
- this._stop( event, this._handleIndex );
- this._change( event, this._handleIndex );
-
- this._handleIndex = null;
- this._clickOffset = null;
- this._animateOff = false;
-
- return false;
- },
-
- _detectOrientation: function() {
- this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
- },
-
- _normValueFromMouse: function( position ) {
- var pixelTotal,
- pixelMouse,
- percentMouse,
- valueTotal,
- valueMouse;
-
- if ( this.orientation === "horizontal" ) {
- pixelTotal = this.elementSize.width;
- pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
- } else {
- pixelTotal = this.elementSize.height;
- pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
- }
-
- percentMouse = ( pixelMouse / pixelTotal );
- if ( percentMouse > 1 ) {
- percentMouse = 1;
- }
- if ( percentMouse < 0 ) {
- percentMouse = 0;
- }
- if ( this.orientation === "vertical" ) {
- percentMouse = 1 - percentMouse;
- }
-
- valueTotal = this._valueMax() - this._valueMin();
- valueMouse = this._valueMin() + percentMouse * valueTotal;
-
- return this._trimAlignValue( valueMouse );
- },
-
- _start: function( event, index ) {
- var uiHash = {
- handle: this.handles[ index ],
- value: this.value()
- };
- if ( this.options.values && this.options.values.length ) {
- uiHash.value = this.values( index );
- uiHash.values = this.values();
- }
- return this._trigger( "start", event, uiHash );
- },
-
- _slide: function( event, index, newVal ) {
- var otherVal,
- newValues,
- allowed;
-
- if ( this.options.values && this.options.values.length ) {
- otherVal = this.values( index ? 0 : 1 );
-
- if ( ( this.options.values.length === 2 && this.options.range === true ) &&
- ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
- ) {
- newVal = otherVal;
- }
-
- if ( newVal !== this.values( index ) ) {
- newValues = this.values();
- newValues[ index ] = newVal;
- // A slide can be canceled by returning false from the slide callback
- allowed = this._trigger( "slide", event, {
- handle: this.handles[ index ],
- value: newVal,
- values: newValues
- } );
- otherVal = this.values( index ? 0 : 1 );
- if ( allowed !== false ) {
- this.values( index, newVal, true );
- }
- }
- } else {
- if ( newVal !== this.value() ) {
- // A slide can be canceled by returning false from the slide callback
- allowed = this._trigger( "slide", event, {
- handle: this.handles[ index ],
- value: newVal
- } );
- if ( allowed !== false ) {
- this.value( newVal );
- }
- }
- }
- },
-
- _stop: function( event, index ) {
- var uiHash = {
- handle: this.handles[ index ],
- value: this.value()
- };
- if ( this.options.values && this.options.values.length ) {
- uiHash.value = this.values( index );
- uiHash.values = this.values();
- }
-
- this._trigger( "stop", event, uiHash );
- },
-
- _change: function( event, index ) {
- if ( !this._keySliding && !this._mouseSliding ) {
- var uiHash = {
- handle: this.handles[ index ],
- value: this.value()
- };
- if ( this.options.values && this.options.values.length ) {
- uiHash.value = this.values( index );
- uiHash.values = this.values();
- }
-
- //store the last changed value index for reference when handles overlap
- this._lastChangedValue = index;
-
- this._trigger( "change", event, uiHash );
- }
- },
-
- value: function( newValue ) {
- if ( arguments.length ) {
- this.options.value = this._trimAlignValue( newValue );
- this._refreshValue();
- this._change( null, 0 );
- return;
- }
-
- return this._value();
- },
-
- values: function( index, newValue ) {
- var vals,
- newValues,
- i;
-
- if ( arguments.length > 1 ) {
- this.options.values[ index ] = this._trimAlignValue( newValue );
- this._refreshValue();
- this._change( null, index );
- return;
- }
-
- if ( arguments.length ) {
- if ( $.isArray( arguments[ 0 ] ) ) {
- vals = this.options.values;
- newValues = arguments[ 0 ];
- for ( i = 0; i < vals.length; i += 1 ) {
- vals[ i ] = this._trimAlignValue( newValues[ i ] );
- this._change( null, i );
- }
- this._refreshValue();
- } else {
- if ( this.options.values && this.options.values.length ) {
- return this._values( index );
- } else {
- return this.value();
- }
- }
- } else {
- return this._values();
- }
- },
-
- _setOption: function( key, value ) {
- var i,
- valsLength = 0;
-
- if ( key === "range" && this.options.range === true ) {
- if ( value === "min" ) {
- this.options.value = this._values( 0 );
- this.options.values = null;
- } else if ( value === "max" ) {
- this.options.value = this._values( this.options.values.length-1 );
- this.options.values = null;
- }
- }
-
- if ( $.isArray( this.options.values ) ) {
- valsLength = this.options.values.length;
- }
-
- $.Widget.prototype._setOption.apply( this, arguments );
-
- switch ( key ) {
- case "orientation":
- this._detectOrientation();
- this.element
- .removeClass( "ui-slider-horizontal ui-slider-vertical" )
- .addClass( "ui-slider-" + this.orientation );
- this._refreshValue();
- break;
- case "value":
- this._animateOff = true;
- this._refreshValue();
- this._change( null, 0 );
- this._animateOff = false;
- break;
- case "values":
- this._animateOff = true;
- this._refreshValue();
- for ( i = 0; i < valsLength; i += 1 ) {
- this._change( null, i );
- }
- this._animateOff = false;
- break;
- case "min":
- case "max":
- this._animateOff = true;
- this._refreshValue();
- this._animateOff = false;
- break;
- case "range":
- this._animateOff = true;
- this._refresh();
- this._animateOff = false;
- break;
- }
- },
-
- //internal value getter
- // _value() returns value trimmed by min and max, aligned by step
- _value: function() {
- var val = this.options.value;
- val = this._trimAlignValue( val );
-
- return val;
- },
-
- //internal values getter
- // _values() returns array of values trimmed by min and max, aligned by step
- // _values( index ) returns single value trimmed by min and max, aligned by step
- _values: function( index ) {
- var val,
- vals,
- i;
-
- if ( arguments.length ) {
- val = this.options.values[ index ];
- val = this._trimAlignValue( val );
-
- return val;
- } else if ( this.options.values && this.options.values.length ) {
- // .slice() creates a copy of the array
- // this copy gets trimmed by min and max and then returned
- vals = this.options.values.slice();
- for ( i = 0; i < vals.length; i+= 1) {
- vals[ i ] = this._trimAlignValue( vals[ i ] );
- }
-
- return vals;
- } else {
- return [];
- }
- },
-
- // returns the step-aligned value that val is closest to, between (inclusive) min and max
- _trimAlignValue: function( val ) {
- if ( val <= this._valueMin() ) {
- return this._valueMin();
- }
- if ( val >= this._valueMax() ) {
- return this._valueMax();
- }
- var step = ( this.options.step > 0 ) ? this.options.step : 1,
- valModStep = (val - this._valueMin()) % step,
- alignValue = val - valModStep;
-
- if ( Math.abs(valModStep) * 2 >= step ) {
- alignValue += ( valModStep > 0 ) ? step : ( -step );
- }
-
- // Since JavaScript has problems with large floats, round
- // the final value to 5 digits after the decimal point (see #4124)
- return parseFloat( alignValue.toFixed(5) );
- },
-
- _valueMin: function() {
- return this.options.min;
- },
-
- _valueMax: function() {
- return this.options.max;
- },
-
- _refreshValue: function() {
- var lastValPercent, valPercent, value, valueMin, valueMax,
- oRange = this.options.range,
- o = this.options,
- that = this,
- animate = ( !this._animateOff ) ? o.animate : false,
- _set = {};
-
- if ( this.options.values && this.options.values.length ) {
- this.handles.each(function( i ) {
- valPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax() - that._valueMin() ) * 100;
- _set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
- $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
- if ( that.options.range === true ) {
- if ( that.orientation === "horizontal" ) {
- if ( i === 0 ) {
- that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
- }
- if ( i === 1 ) {
- that.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- } else {
- if ( i === 0 ) {
- that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
- }
- if ( i === 1 ) {
- that.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- }
- }
- lastValPercent = valPercent;
- });
- } else {
- value = this.value();
- valueMin = this._valueMin();
- valueMax = this._valueMax();
- valPercent = ( valueMax !== valueMin ) ?
- ( value - valueMin ) / ( valueMax - valueMin ) * 100 :
- 0;
- _set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
- this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
-
- if ( oRange === "min" && this.orientation === "horizontal" ) {
- this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );
- }
- if ( oRange === "max" && this.orientation === "horizontal" ) {
- this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- if ( oRange === "min" && this.orientation === "vertical" ) {
- this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );
- }
- if ( oRange === "max" && this.orientation === "vertical" ) {
- this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- }
- },
-
- _handleEvents: {
- keydown: function( event ) {
- /*jshint maxcomplexity:25*/
- var allowed, curVal, newVal, step,
- index = $( event.target ).data( "ui-slider-handle-index" );
-
- switch ( event.keyCode ) {
- case $.ui.keyCode.HOME:
- case $.ui.keyCode.END:
- case $.ui.keyCode.PAGE_UP:
- case $.ui.keyCode.PAGE_DOWN:
- case $.ui.keyCode.UP:
- case $.ui.keyCode.RIGHT:
- case $.ui.keyCode.DOWN:
- case $.ui.keyCode.LEFT:
- event.preventDefault();
- if ( !this._keySliding ) {
- this._keySliding = true;
- $( event.target ).addClass( "ui-state-active" );
- allowed = this._start( event, index );
- if ( allowed === false ) {
- return;
- }
- }
- break;
- }
-
- step = this.options.step;
- if ( this.options.values && this.options.values.length ) {
- curVal = newVal = this.values( index );
- } else {
- curVal = newVal = this.value();
- }
-
- switch ( event.keyCode ) {
- case $.ui.keyCode.HOME:
- newVal = this._valueMin();
- break;
- case $.ui.keyCode.END:
- newVal = this._valueMax();
- break;
- case $.ui.keyCode.PAGE_UP:
- newVal = this._trimAlignValue( curVal + ( (this._valueMax() - this._valueMin()) / numPages ) );
- break;
- case $.ui.keyCode.PAGE_DOWN:
- newVal = this._trimAlignValue( curVal - ( (this._valueMax() - this._valueMin()) / numPages ) );
- break;
- case $.ui.keyCode.UP:
- case $.ui.keyCode.RIGHT:
- if ( curVal === this._valueMax() ) {
- return;
- }
- newVal = this._trimAlignValue( curVal + step );
- break;
- case $.ui.keyCode.DOWN:
- case $.ui.keyCode.LEFT:
- if ( curVal === this._valueMin() ) {
- return;
- }
- newVal = this._trimAlignValue( curVal - step );
- break;
- }
-
- this._slide( event, index, newVal );
- },
- click: function( event ) {
- event.preventDefault();
- },
- keyup: function( event ) {
- var index = $( event.target ).data( "ui-slider-handle-index" );
-
- if ( this._keySliding ) {
- this._keySliding = false;
- this._stop( event, index );
- this._change( event, index );
- $( event.target ).removeClass( "ui-state-active" );
- }
- }
- }
-
-});
-
-}(jQuery));
-
-(function( $ ) {
-
-function modifier( fn ) {
- return function() {
- var previous = this.element.val();
- fn.apply( this, arguments );
- this._refresh();
- if ( previous !== this.element.val() ) {
- this._trigger( "change" );
- }
- };
-}
-
-$.widget( "ui.spinner", {
- version: "1.10.3",
- defaultElement: "<input>",
- widgetEventPrefix: "spin",
- options: {
- culture: null,
- icons: {
- down: "ui-icon-triangle-1-s",
- up: "ui-icon-triangle-1-n"
- },
- incremental: true,
- max: null,
- min: null,
- numberFormat: null,
- page: 10,
- step: 1,
-
- change: null,
- spin: null,
- start: null,
- stop: null
- },
-
- _create: function() {
- // handle string values that need to be parsed
- this._setOption( "max", this.options.max );
- this._setOption( "min", this.options.min );
- this._setOption( "step", this.options.step );
-
- // format the value, but don't constrain
- this._value( this.element.val(), true );
-
- this._draw();
- this._on( this._events );
- this._refresh();
-
- // turning off autocomplete prevents the browser from remembering the
- // value when navigating through history, so we re-enable autocomplete
- // if the page is unloaded before the widget is destroyed. #7790
- this._on( this.window, {
- beforeunload: function() {
- this.element.removeAttr( "autocomplete" );
- }
- });
- },
-
- _getCreateOptions: function() {
- var options = {},
- element = this.element;
-
- $.each( [ "min", "max", "step" ], function( i, option ) {
- var value = element.attr( option );
- if ( value !== undefined && value.length ) {
- options[ option ] = value;
- }
- });
-
- return options;
- },
-
- _events: {
- keydown: function( event ) {
- if ( this._start( event ) && this._keydown( event ) ) {
- event.preventDefault();
- }
- },
- keyup: "_stop",
- focus: function() {
- this.previous = this.element.val();
- },
- blur: function( event ) {
- if ( this.cancelBlur ) {
- delete this.cancelBlur;
- return;
- }
-
- this._stop();
- this._refresh();
- if ( this.previous !== this.element.val() ) {
- this._trigger( "change", event );
- }
- },
- mousewheel: function( event, delta ) {
- if ( !delta ) {
- return;
- }
- if ( !this.spinning && !this._start( event ) ) {
- return false;
- }
-
- this._spin( (delta > 0 ? 1 : -1) * this.options.step, event );
- clearTimeout( this.mousewheelTimer );
- this.mousewheelTimer = this._delay(function() {
- if ( this.spinning ) {
- this._stop( event );
- }
- }, 100 );
- event.preventDefault();
- },
- "mousedown .ui-spinner-button": function( event ) {
- var previous;
-
- // We never want the buttons to have focus; whenever the user is
- // interacting with the spinner, the focus should be on the input.
- // If the input is focused then this.previous is properly set from
- // when the input first received focus. If the input is not focused
- // then we need to set this.previous based on the value before spinning.
- previous = this.element[0] === this.document[0].activeElement ?
- this.previous : this.element.val();
- function checkFocus() {
- var isActive = this.element[0] === this.document[0].activeElement;
- if ( !isActive ) {
- this.element.focus();
- this.previous = previous;
- // support: IE
- // IE sets focus asynchronously, so we need to check if focus
- // moved off of the input because the user clicked on the button.
- this._delay(function() {
- this.previous = previous;
- });
- }
- }
-
- // ensure focus is on (or stays on) the text field
- event.preventDefault();
- checkFocus.call( this );
-
- // support: IE
- // IE doesn't prevent moving focus even with event.preventDefault()
- // so we set a flag to know when we should ignore the blur event
- // and check (again) if focus moved off of the input.
- this.cancelBlur = true;
- this._delay(function() {
- delete this.cancelBlur;
- checkFocus.call( this );
- });
-
- if ( this._start( event ) === false ) {
- return;
- }
-
- this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event );
- },
- "mouseup .ui-spinner-button": "_stop",
- "mouseenter .ui-spinner-button": function( event ) {
- // button will add ui-state-active if mouse was down while mouseleave and kept down
- if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) {
- return;
- }
-
- if ( this._start( event ) === false ) {
- return false;
- }
- this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event );
- },
- // TODO: do we really want to consider this a stop?
- // shouldn't we just stop the repeater and wait until mouseup before
- // we trigger the stop event?
- "mouseleave .ui-spinner-button": "_stop"
- },
-
- _draw: function() {
- var uiSpinner = this.uiSpinner = this.element
- .addClass( "ui-spinner-input" )
- .attr( "autocomplete", "off" )
- .wrap( this._uiSpinnerHtml() )
- .parent()
- // add buttons
- .append( this._buttonHtml() );
-
- this.element.attr( "role", "spinbutton" );
-
- // button bindings
- this.buttons = uiSpinner.find( ".ui-spinner-button" )
- .attr( "tabIndex", -1 )
- .button()
- .removeClass( "ui-corner-all" );
-
- // IE 6 doesn't understand height: 50% for the buttons
- // unless the wrapper has an explicit height
- if ( this.buttons.height() > Math.ceil( uiSpinner.height() * 0.5 ) &&
- uiSpinner.height() > 0 ) {
- uiSpinner.height( uiSpinner.height() );
- }
-
- // disable spinner if element was already disabled
- if ( this.options.disabled ) {
- this.disable();
- }
- },
-
- _keydown: function( event ) {
- var options = this.options,
- keyCode = $.ui.keyCode;
-
- switch ( event.keyCode ) {
- case keyCode.UP:
- this._repeat( null, 1, event );
- return true;
- case keyCode.DOWN:
- this._repeat( null, -1, event );
- return true;
- case keyCode.PAGE_UP:
- this._repeat( null, options.page, event );
- return true;
- case keyCode.PAGE_DOWN:
- this._repeat( null, -options.page, event );
- return true;
- }
-
- return false;
- },
-
- _uiSpinnerHtml: function() {
- return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>";
- },
-
- _buttonHtml: function() {
- return "" +
- "<a class='ui-spinner-button ui-spinner-up ui-corner-tr'>" +
- "<span class='ui-icon " + this.options.icons.up + "'>&#9650;</span>" +
- "</a>" +
- "<a class='ui-spinner-button ui-spinner-down ui-corner-br'>" +
- "<span class='ui-icon " + this.options.icons.down + "'>&#9660;</span>" +
- "</a>";
- },
-
- _start: function( event ) {
- if ( !this.spinning && this._trigger( "start", event ) === false ) {
- return false;
- }
-
- if ( !this.counter ) {
- this.counter = 1;
- }
- this.spinning = true;
- return true;
- },
-
- _repeat: function( i, steps, event ) {
- i = i || 500;
-
- clearTimeout( this.timer );
- this.timer = this._delay(function() {
- this._repeat( 40, steps, event );
- }, i );
-
- this._spin( steps * this.options.step, event );
- },
-
- _spin: function( step, event ) {
- var value = this.value() || 0;
-
- if ( !this.counter ) {
- this.counter = 1;
- }
-
- value = this._adjustValue( value + step * this._increment( this.counter ) );
-
- if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false) {
- this._value( value );
- this.counter++;
- }
- },
-
- _increment: function( i ) {
- var incremental = this.options.incremental;
-
- if ( incremental ) {
- return $.isFunction( incremental ) ?
- incremental( i ) :
- Math.floor( i*i*i/50000 - i*i/500 + 17*i/200 + 1 );
- }
-
- return 1;
- },
-
- _precision: function() {
- var precision = this._precisionOf( this.options.step );
- if ( this.options.min !== null ) {
- precision = Math.max( precision, this._precisionOf( this.options.min ) );
- }
- return precision;
- },
-
- _precisionOf: function( num ) {
- var str = num.toString(),
- decimal = str.indexOf( "." );
- return decimal === -1 ? 0 : str.length - decimal - 1;
- },
-
- _adjustValue: function( value ) {
- var base, aboveMin,
- options = this.options;
-
- // make sure we're at a valid step
- // - find out where we are relative to the base (min or 0)
- base = options.min !== null ? options.min : 0;
- aboveMin = value - base;
- // - round to the nearest step
- aboveMin = Math.round(aboveMin / options.step) * options.step;
- // - rounding is based on 0, so adjust back to our base
- value = base + aboveMin;
-
- // fix precision from bad JS floating point math
- value = parseFloat( value.toFixed( this._precision() ) );
-
- // clamp the value
- if ( options.max !== null && value > options.max) {
- return options.max;
- }
- if ( options.min !== null && value < options.min ) {
- return options.min;
- }
-
- return value;
- },
-
- _stop: function( event ) {
- if ( !this.spinning ) {
- return;
- }
-
- clearTimeout( this.timer );
- clearTimeout( this.mousewheelTimer );
- this.counter = 0;
- this.spinning = false;
- this._trigger( "stop", event );
- },
-
- _setOption: function( key, value ) {
- if ( key === "culture" || key === "numberFormat" ) {
- var prevValue = this._parse( this.element.val() );
- this.options[ key ] = value;
- this.element.val( this._format( prevValue ) );
- return;
- }
-
- if ( key === "max" || key === "min" || key === "step" ) {
- if ( typeof value === "string" ) {
- value = this._parse( value );
- }
- }
- if ( key === "icons" ) {
- this.buttons.first().find( ".ui-icon" )
- .removeClass( this.options.icons.up )
- .addClass( value.up );
- this.buttons.last().find( ".ui-icon" )
- .removeClass( this.options.icons.down )
- .addClass( value.down );
- }
-
- this._super( key, value );
-
- if ( key === "disabled" ) {
- if ( value ) {
- this.element.prop( "disabled", true );
- this.buttons.button( "disable" );
- } else {
- this.element.prop( "disabled", false );
- this.buttons.button( "enable" );
- }
- }
- },
-
- _setOptions: modifier(function( options ) {
- this._super( options );
- this._value( this.element.val() );
- }),
-
- _parse: function( val ) {
- if ( typeof val === "string" && val !== "" ) {
- val = window.Globalize && this.options.numberFormat ?
- Globalize.parseFloat( val, 10, this.options.culture ) : +val;
- }
- return val === "" || isNaN( val ) ? null : val;
- },
-
- _format: function( value ) {
- if ( value === "" ) {
- return "";
- }
- return window.Globalize && this.options.numberFormat ?
- Globalize.format( value, this.options.numberFormat, this.options.culture ) :
- value;
- },
-
- _refresh: function() {
- this.element.attr({
- "aria-valuemin": this.options.min,
- "aria-valuemax": this.options.max,
- // TODO: what should we do with values that can't be parsed?
- "aria-valuenow": this._parse( this.element.val() )
- });
- },
-
- // update the value without triggering change
- _value: function( value, allowAny ) {
- var parsed;
- if ( value !== "" ) {
- parsed = this._parse( value );
- if ( parsed !== null ) {
- if ( !allowAny ) {
- parsed = this._adjustValue( parsed );
- }
- value = this._format( parsed );
- }
- }
- this.element.val( value );
- this._refresh();
- },
-
- _destroy: function() {
- this.element
- .removeClass( "ui-spinner-input" )
- .prop( "disabled", false )
- .removeAttr( "autocomplete" )
- .removeAttr( "role" )
- .removeAttr( "aria-valuemin" )
- .removeAttr( "aria-valuemax" )
- .removeAttr( "aria-valuenow" );
- this.uiSpinner.replaceWith( this.element );
- },
-
- stepUp: modifier(function( steps ) {
- this._stepUp( steps );
- }),
- _stepUp: function( steps ) {
- if ( this._start() ) {
- this._spin( (steps || 1) * this.options.step );
- this._stop();
- }
- },
-
- stepDown: modifier(function( steps ) {
- this._stepDown( steps );
- }),
- _stepDown: function( steps ) {
- if ( this._start() ) {
- this._spin( (steps || 1) * -this.options.step );
- this._stop();
- }
- },
-
- pageUp: modifier(function( pages ) {
- this._stepUp( (pages || 1) * this.options.page );
- }),
-
- pageDown: modifier(function( pages ) {
- this._stepDown( (pages || 1) * this.options.page );
- }),
-
- value: function( newVal ) {
- if ( !arguments.length ) {
- return this._parse( this.element.val() );
- }
- modifier( this._value ).call( this, newVal );
- },
-
- widget: function() {
- return this.uiSpinner;
- }
-});
-
-}( jQuery ) );
-
-(function( $, undefined ) {
-
-var tabId = 0,
- rhash = /#.*$/;
-
-function getNextTabId() {
- return ++tabId;
-}
-
-function isLocal( anchor ) {
- return anchor.hash.length > 1 &&
- decodeURIComponent( anchor.href.replace( rhash, "" ) ) ===
- decodeURIComponent( location.href.replace( rhash, "" ) );
-}
-
-$.widget( "ui.tabs", {
- version: "1.10.3",
- delay: 300,
- options: {
- active: null,
- collapsible: false,
- event: "click",
- heightStyle: "content",
- hide: null,
- show: null,
-
- // callbacks
- activate: null,
- beforeActivate: null,
- beforeLoad: null,
- load: null
- },
-
- _create: function() {
- var that = this,
- options = this.options;
-
- this.running = false;
-
- this.element
- .addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" )
- .toggleClass( "ui-tabs-collapsible", options.collapsible )
- // Prevent users from focusing disabled tabs via click
- .delegate( ".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function( event ) {
- if ( $( this ).is( ".ui-state-disabled" ) ) {
- event.preventDefault();
- }
- })
- // support: IE <9
- // Preventing the default action in mousedown doesn't prevent IE
- // from focusing the element, so if the anchor gets focused, blur.
- // We don't have to worry about focusing the previously focused
- // element since clicking on a non-focusable element should focus
- // the body anyway.
- .delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() {
- if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) {
- this.blur();
- }
- });
-
- this._processTabs();
- options.active = this._initialActive();
-
- // Take disabling tabs via class attribute from HTML
- // into account and update option properly.
- if ( $.isArray( options.disabled ) ) {
- options.disabled = $.unique( options.disabled.concat(
- $.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) {
- return that.tabs.index( li );
- })
- ) ).sort();
- }
-
- // check for length avoids error when initializing empty list
- if ( this.options.active !== false && this.anchors.length ) {
- this.active = this._findActive( options.active );
- } else {
- this.active = $();
- }
-
- this._refresh();
-
- if ( this.active.length ) {
- this.load( options.active );
- }
- },
-
- _initialActive: function() {
- var active = this.options.active,
- collapsible = this.options.collapsible,
- locationHash = location.hash.substring( 1 );
-
- if ( active === null ) {
- // check the fragment identifier in the URL
- if ( locationHash ) {
- this.tabs.each(function( i, tab ) {
- if ( $( tab ).attr( "aria-controls" ) === locationHash ) {
- active = i;
- return false;
- }
- });
- }
-
- // check for a tab marked active via a class
- if ( active === null ) {
- active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) );
- }
-
- // no active tab, set to false
- if ( active === null || active === -1 ) {
- active = this.tabs.length ? 0 : false;
- }
- }
-
- // handle numbers: negative, out of range
- if ( active !== false ) {
- active = this.tabs.index( this.tabs.eq( active ) );
- if ( active === -1 ) {
- active = collapsible ? false : 0;
- }
- }
-
- // don't allow collapsible: false and active: false
- if ( !collapsible && active === false && this.anchors.length ) {
- active = 0;
- }
-
- return active;
- },
-
- _getCreateEventData: function() {
- return {
- tab: this.active,
- panel: !this.active.length ? $() : this._getPanelForTab( this.active )
- };
- },
-
- _tabKeydown: function( event ) {
- /*jshint maxcomplexity:15*/
- var focusedTab = $( this.document[0].activeElement ).closest( "li" ),
- selectedIndex = this.tabs.index( focusedTab ),
- goingForward = true;
-
- if ( this._handlePageNav( event ) ) {
- return;
- }
-
- switch ( event.keyCode ) {
- case $.ui.keyCode.RIGHT:
- case $.ui.keyCode.DOWN:
- selectedIndex++;
- break;
- case $.ui.keyCode.UP:
- case $.ui.keyCode.LEFT:
- goingForward = false;
- selectedIndex--;
- break;
- case $.ui.keyCode.END:
- selectedIndex = this.anchors.length - 1;
- break;
- case $.ui.keyCode.HOME:
- selectedIndex = 0;
- break;
- case $.ui.keyCode.SPACE:
- // Activate only, no collapsing
- event.preventDefault();
- clearTimeout( this.activating );
- this._activate( selectedIndex );
- return;
- case $.ui.keyCode.ENTER:
- // Toggle (cancel delayed activation, allow collapsing)
- event.preventDefault();
- clearTimeout( this.activating );
- // Determine if we should collapse or activate
- this._activate( selectedIndex === this.options.active ? false : selectedIndex );
- return;
- default:
- return;
- }
-
- // Focus the appropriate tab, based on which key was pressed
- event.preventDefault();
- clearTimeout( this.activating );
- selectedIndex = this._focusNextTab( selectedIndex, goingForward );
-
- // Navigating with control key will prevent automatic activation
- if ( !event.ctrlKey ) {
- // Update aria-selected immediately so that AT think the tab is already selected.
- // Otherwise AT may confuse the user by stating that they need to activate the tab,
- // but the tab will already be activated by the time the announcement finishes.
- focusedTab.attr( "aria-selected", "false" );
- this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" );
-
- this.activating = this._delay(function() {
- this.option( "active", selectedIndex );
- }, this.delay );
- }
- },
-
- _panelKeydown: function( event ) {
- if ( this._handlePageNav( event ) ) {
- return;
- }
-
- // Ctrl+up moves focus to the current tab
- if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) {
- event.preventDefault();
- this.active.focus();
- }
- },
-
- // Alt+page up/down moves focus to the previous/next tab (and activates)
- _handlePageNav: function( event ) {
- if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) {
- this._activate( this._focusNextTab( this.options.active - 1, false ) );
- return true;
- }
- if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) {
- this._activate( this._focusNextTab( this.options.active + 1, true ) );
- return true;
- }
- },
-
- _findNextTab: function( index, goingForward ) {
- var lastTabIndex = this.tabs.length - 1;
-
- function constrain() {
- if ( index > lastTabIndex ) {
- index = 0;
- }
- if ( index < 0 ) {
- index = lastTabIndex;
- }
- return index;
- }
-
- while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) {
- index = goingForward ? index + 1 : index - 1;
- }
-
- return index;
- },
-
- _focusNextTab: function( index, goingForward ) {
- index = this._findNextTab( index, goingForward );
- this.tabs.eq( index ).focus();
- return index;
- },
-
- _setOption: function( key, value ) {
- if ( key === "active" ) {
- // _activate() will handle invalid values and update this.options
- this._activate( value );
- return;
- }
-
- if ( key === "disabled" ) {
- // don't use the widget factory's disabled handling
- this._setupDisabled( value );
- return;
- }
-
- this._super( key, value);
-
- if ( key === "collapsible" ) {
- this.element.toggleClass( "ui-tabs-collapsible", value );
- // Setting collapsible: false while collapsed; open first panel
- if ( !value && this.options.active === false ) {
- this._activate( 0 );
- }
- }
-
- if ( key === "event" ) {
- this._setupEvents( value );
- }
-
- if ( key === "heightStyle" ) {
- this._setupHeightStyle( value );
- }
- },
-
- _tabId: function( tab ) {
- return tab.attr( "aria-controls" ) || "ui-tabs-" + getNextTabId();
- },
-
- _sanitizeSelector: function( hash ) {
- return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : "";
- },
-
- refresh: function() {
- var options = this.options,
- lis = this.tablist.children( ":has(a[href])" );
-
- // get disabled tabs from class attribute from HTML
- // this will get converted to a boolean if needed in _refresh()
- options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) {
- return lis.index( tab );
- });
-
- this._processTabs();
-
- // was collapsed or no tabs
- if ( options.active === false || !this.anchors.length ) {
- options.active = false;
- this.active = $();
- // was active, but active tab is gone
- } else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) {
- // all remaining tabs are disabled
- if ( this.tabs.length === options.disabled.length ) {
- options.active = false;
- this.active = $();
- // activate previous tab
- } else {
- this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) );
- }
- // was active, active tab still exists
- } else {
- // make sure active index is correct
- options.active = this.tabs.index( this.active );
- }
-
- this._refresh();
- },
-
- _refresh: function() {
- this._setupDisabled( this.options.disabled );
- this._setupEvents( this.options.event );
- this._setupHeightStyle( this.options.heightStyle );
-
- this.tabs.not( this.active ).attr({
- "aria-selected": "false",
- tabIndex: -1
- });
- this.panels.not( this._getPanelForTab( this.active ) )
- .hide()
- .attr({
- "aria-expanded": "false",
- "aria-hidden": "true"
- });
-
- // Make sure one tab is in the tab order
- if ( !this.active.length ) {
- this.tabs.eq( 0 ).attr( "tabIndex", 0 );
- } else {
- this.active
- .addClass( "ui-tabs-active ui-state-active" )
- .attr({
- "aria-selected": "true",
- tabIndex: 0
- });
- this._getPanelForTab( this.active )
- .show()
- .attr({
- "aria-expanded": "true",
- "aria-hidden": "false"
- });
- }
- },
-
- _processTabs: function() {
- var that = this;
-
- this.tablist = this._getList()
- .addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
- .attr( "role", "tablist" );
-
- this.tabs = this.tablist.find( "> li:has(a[href])" )
- .addClass( "ui-state-default ui-corner-top" )
- .attr({
- role: "tab",
- tabIndex: -1
- });
-
- this.anchors = this.tabs.map(function() {
- return $( "a", this )[ 0 ];
- })
- .addClass( "ui-tabs-anchor" )
- .attr({
- role: "presentation",
- tabIndex: -1
- });
-
- this.panels = $();
-
- this.anchors.each(function( i, anchor ) {
- var selector, panel, panelId,
- anchorId = $( anchor ).uniqueId().attr( "id" ),
- tab = $( anchor ).closest( "li" ),
- originalAriaControls = tab.attr( "aria-controls" );
-
- // inline tab
- if ( isLocal( anchor ) ) {
- selector = anchor.hash;
- panel = that.element.find( that._sanitizeSelector( selector ) );
- // remote tab
- } else {
- panelId = that._tabId( tab );
- selector = "#" + panelId;
- panel = that.element.find( selector );
- if ( !panel.length ) {
- panel = that._createPanel( panelId );
- panel.insertAfter( that.panels[ i - 1 ] || that.tablist );
- }
- panel.attr( "aria-live", "polite" );
- }
-
- if ( panel.length) {
- that.panels = that.panels.add( panel );
- }
- if ( originalAriaControls ) {
- tab.data( "ui-tabs-aria-controls", originalAriaControls );
- }
- tab.attr({
- "aria-controls": selector.substring( 1 ),
- "aria-labelledby": anchorId
- });
- panel.attr( "aria-labelledby", anchorId );
- });
-
- this.panels
- .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
- .attr( "role", "tabpanel" );
- },
-
- // allow overriding how to find the list for rare usage scenarios (#7715)
- _getList: function() {
- return this.element.find( "ol,ul" ).eq( 0 );
- },
-
- _createPanel: function( id ) {
- return $( "<div>" )
- .attr( "id", id )
- .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
- .data( "ui-tabs-destroy", true );
- },
-
- _setupDisabled: function( disabled ) {
- if ( $.isArray( disabled ) ) {
- if ( !disabled.length ) {
- disabled = false;
- } else if ( disabled.length === this.anchors.length ) {
- disabled = true;
- }
- }
-
- // disable tabs
- for ( var i = 0, li; ( li = this.tabs[ i ] ); i++ ) {
- if ( disabled === true || $.inArray( i, disabled ) !== -1 ) {
- $( li )
- .addClass( "ui-state-disabled" )
- .attr( "aria-disabled", "true" );
- } else {
- $( li )
- .removeClass( "ui-state-disabled" )
- .removeAttr( "aria-disabled" );
- }
- }
-
- this.options.disabled = disabled;
- },
-
- _setupEvents: function( event ) {
- var events = {
- click: function( event ) {
- event.preventDefault();
- }
- };
- if ( event ) {
- $.each( event.split(" "), function( index, eventName ) {
- events[ eventName ] = "_eventHandler";
- });
- }
-
- this._off( this.anchors.add( this.tabs ).add( this.panels ) );
- this._on( this.anchors, events );
- this._on( this.tabs, { keydown: "_tabKeydown" } );
- this._on( this.panels, { keydown: "_panelKeydown" } );
-
- this._focusable( this.tabs );
- this._hoverable( this.tabs );
- },
-
- _setupHeightStyle: function( heightStyle ) {
- var maxHeight,
- parent = this.element.parent();
-
- if ( heightStyle === "fill" ) {
- maxHeight = parent.height();
- maxHeight -= this.element.outerHeight() - this.element.height();
-
- this.element.siblings( ":visible" ).each(function() {
- var elem = $( this ),
- position = elem.css( "position" );
-
- if ( position === "absolute" || position === "fixed" ) {
- return;
- }
- maxHeight -= elem.outerHeight( true );
- });
-
- this.element.children().not( this.panels ).each(function() {
- maxHeight -= $( this ).outerHeight( true );
- });
-
- this.panels.each(function() {
- $( this ).height( Math.max( 0, maxHeight -
- $( this ).innerHeight() + $( this ).height() ) );
- })
- .css( "overflow", "auto" );
- } else if ( heightStyle === "auto" ) {
- maxHeight = 0;
- this.panels.each(function() {
- maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
- }).height( maxHeight );
- }
- },
-
- _eventHandler: function( event ) {
- var options = this.options,
- active = this.active,
- anchor = $( event.currentTarget ),
- tab = anchor.closest( "li" ),
- clickedIsActive = tab[ 0 ] === active[ 0 ],
- collapsing = clickedIsActive && options.collapsible,
- toShow = collapsing ? $() : this._getPanelForTab( tab ),
- toHide = !active.length ? $() : this._getPanelForTab( active ),
- eventData = {
- oldTab: active,
- oldPanel: toHide,
- newTab: collapsing ? $() : tab,
- newPanel: toShow
- };
-
- event.preventDefault();
-
- if ( tab.hasClass( "ui-state-disabled" ) ||
- // tab is already loading
- tab.hasClass( "ui-tabs-loading" ) ||
- // can't switch durning an animation
- this.running ||
- // click on active header, but not collapsible
- ( clickedIsActive && !options.collapsible ) ||
- // allow canceling activation
- ( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
- return;
- }
-
- options.active = collapsing ? false : this.tabs.index( tab );
-
- this.active = clickedIsActive ? $() : tab;
- if ( this.xhr ) {
- this.xhr.abort();
- }
-
- if ( !toHide.length && !toShow.length ) {
- $.error( "jQuery UI Tabs: Mismatching fragment identifier." );
- }
-
- if ( toShow.length ) {
- this.load( this.tabs.index( tab ), event );
- }
- this._toggle( event, eventData );
- },
-
- // handles show/hide for selecting tabs
- _toggle: function( event, eventData ) {
- var that = this,
- toShow = eventData.newPanel,
- toHide = eventData.oldPanel;
-
- this.running = true;
-
- function complete() {
- that.running = false;
- that._trigger( "activate", event, eventData );
- }
-
- function show() {
- eventData.newTab.closest( "li" ).addClass( "ui-tabs-active ui-state-active" );
-
- if ( toShow.length && that.options.show ) {
- that._show( toShow, that.options.show, complete );
- } else {
- toShow.show();
- complete();
- }
- }
-
- // start out by hiding, then showing, then completing
- if ( toHide.length && this.options.hide ) {
- this._hide( toHide, this.options.hide, function() {
- eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" );
- show();
- });
- } else {
- eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" );
- toHide.hide();
- show();
- }
-
- toHide.attr({
- "aria-expanded": "false",
- "aria-hidden": "true"
- });
- eventData.oldTab.attr( "aria-selected", "false" );
- // If we're switching tabs, remove the old tab from the tab order.
- // If we're opening from collapsed state, remove the previous tab from the tab order.
- // If we're collapsing, then keep the collapsing tab in the tab order.
- if ( toShow.length && toHide.length ) {
- eventData.oldTab.attr( "tabIndex", -1 );
- } else if ( toShow.length ) {
- this.tabs.filter(function() {
- return $( this ).attr( "tabIndex" ) === 0;
- })
- .attr( "tabIndex", -1 );
- }
-
- toShow.attr({
- "aria-expanded": "true",
- "aria-hidden": "false"
- });
- eventData.newTab.attr({
- "aria-selected": "true",
- tabIndex: 0
- });
- },
-
- _activate: function( index ) {
- var anchor,
- active = this._findActive( index );
-
- // trying to activate the already active panel
- if ( active[ 0 ] === this.active[ 0 ] ) {
- return;
- }
-
- // trying to collapse, simulate a click on the current active header
- if ( !active.length ) {
- active = this.active;
- }
-
- anchor = active.find( ".ui-tabs-anchor" )[ 0 ];
- this._eventHandler({
- target: anchor,
- currentTarget: anchor,
- preventDefault: $.noop
- });
- },
-
- _findActive: function( index ) {
- return index === false ? $() : this.tabs.eq( index );
- },
-
- _getIndex: function( index ) {
- // meta-function to give users option to provide a href string instead of a numerical index.
- if ( typeof index === "string" ) {
- index = this.anchors.index( this.anchors.filter( "[href$='" + index + "']" ) );
- }
-
- return index;
- },
-
- _destroy: function() {
- if ( this.xhr ) {
- this.xhr.abort();
- }
-
- this.element.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" );
-
- this.tablist
- .removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
- .removeAttr( "role" );
-
- this.anchors
- .removeClass( "ui-tabs-anchor" )
- .removeAttr( "role" )
- .removeAttr( "tabIndex" )
- .removeUniqueId();
-
- this.tabs.add( this.panels ).each(function() {
- if ( $.data( this, "ui-tabs-destroy" ) ) {
- $( this ).remove();
- } else {
- $( this )
- .removeClass( "ui-state-default ui-state-active ui-state-disabled " +
- "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" )
- .removeAttr( "tabIndex" )
- .removeAttr( "aria-live" )
- .removeAttr( "aria-busy" )
- .removeAttr( "aria-selected" )
- .removeAttr( "aria-labelledby" )
- .removeAttr( "aria-hidden" )
- .removeAttr( "aria-expanded" )
- .removeAttr( "role" );
- }
- });
-
- this.tabs.each(function() {
- var li = $( this ),
- prev = li.data( "ui-tabs-aria-controls" );
- if ( prev ) {
- li
- .attr( "aria-controls", prev )
- .removeData( "ui-tabs-aria-controls" );
- } else {
- li.removeAttr( "aria-controls" );
- }
- });
-
- this.panels.show();
-
- if ( this.options.heightStyle !== "content" ) {
- this.panels.css( "height", "" );
- }
- },
-
- enable: function( index ) {
- var disabled = this.options.disabled;
- if ( disabled === false ) {
- return;
- }
-
- if ( index === undefined ) {
- disabled = false;
- } else {
- index = this._getIndex( index );
- if ( $.isArray( disabled ) ) {
- disabled = $.map( disabled, function( num ) {
- return num !== index ? num : null;
- });
- } else {
- disabled = $.map( this.tabs, function( li, num ) {
- return num !== index ? num : null;
- });
- }
- }
- this._setupDisabled( disabled );
- },
-
- disable: function( index ) {
- var disabled = this.options.disabled;
- if ( disabled === true ) {
- return;
- }
-
- if ( index === undefined ) {
- disabled = true;
- } else {
- index = this._getIndex( index );
- if ( $.inArray( index, disabled ) !== -1 ) {
- return;
- }
- if ( $.isArray( disabled ) ) {
- disabled = $.merge( [ index ], disabled ).sort();
- } else {
- disabled = [ index ];
- }
- }
- this._setupDisabled( disabled );
- },
-
- load: function( index, event ) {
- index = this._getIndex( index );
- var that = this,
- tab = this.tabs.eq( index ),
- anchor = tab.find( ".ui-tabs-anchor" ),
- panel = this._getPanelForTab( tab ),
- eventData = {
- tab: tab,
- panel: panel
- };
-
- // not remote
- if ( isLocal( anchor[ 0 ] ) ) {
- return;
- }
-
- this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );
-
- // support: jQuery <1.8
- // jQuery <1.8 returns false if the request is canceled in beforeSend,
- // but as of 1.8, $.ajax() always returns a jqXHR object.
- if ( this.xhr && this.xhr.statusText !== "canceled" ) {
- tab.addClass( "ui-tabs-loading" );
- panel.attr( "aria-busy", "true" );
-
- this.xhr
- .success(function( response ) {
- // support: jQuery <1.8
- // http://bugs.jquery.com/ticket/11778
- setTimeout(function() {
- panel.html( response );
- that._trigger( "load", event, eventData );
- }, 1 );
- })
- .complete(function( jqXHR, status ) {
- // support: jQuery <1.8
- // http://bugs.jquery.com/ticket/11778
- setTimeout(function() {
- if ( status === "abort" ) {
- that.panels.stop( false, true );
- }
-
- tab.removeClass( "ui-tabs-loading" );
- panel.removeAttr( "aria-busy" );
-
- if ( jqXHR === that.xhr ) {
- delete that.xhr;
- }
- }, 1 );
- });
- }
- },
-
- _ajaxSettings: function( anchor, event, eventData ) {
- var that = this;
- return {
- url: anchor.attr( "href" ),
- beforeSend: function( jqXHR, settings ) {
- return that._trigger( "beforeLoad", event,
- $.extend( { jqXHR : jqXHR, ajaxSettings: settings }, eventData ) );
- }
- };
- },
-
- _getPanelForTab: function( tab ) {
- var id = $( tab ).attr( "aria-controls" );
- return this.element.find( this._sanitizeSelector( "#" + id ) );
- }
-});
-
-})( jQuery );
-
-(function( $ ) {
-
-var increments = 0;
-
-function addDescribedBy( elem, id ) {
- var describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ );
- describedby.push( id );
- elem
- .data( "ui-tooltip-id", id )
- .attr( "aria-describedby", $.trim( describedby.join( " " ) ) );
-}
-
-function removeDescribedBy( elem ) {
- var id = elem.data( "ui-tooltip-id" ),
- describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ),
- index = $.inArray( id, describedby );
- if ( index !== -1 ) {
- describedby.splice( index, 1 );
- }
-
- elem.removeData( "ui-tooltip-id" );
- describedby = $.trim( describedby.join( " " ) );
- if ( describedby ) {
- elem.attr( "aria-describedby", describedby );
- } else {
- elem.removeAttr( "aria-describedby" );
- }
-}
-
-$.widget( "ui.tooltip", {
- version: "1.10.3",
- options: {
- content: function() {
- // support: IE<9, Opera in jQuery <1.7
- // .text() can't accept undefined, so coerce to a string
- var title = $( this ).attr( "title" ) || "";
- // Escape title, since we're going from an attribute to raw HTML
- return $( "<a>" ).text( title ).html();
- },
- hide: true,
- // Disabled elements have inconsistent behavior across browsers (#8661)
- items: "[title]:not([disabled])",
- position: {
- my: "left top+15",
- at: "left bottom",
- collision: "flipfit flip"
- },
- show: true,
- tooltipClass: null,
- track: false,
-
- // callbacks
- close: null,
- open: null
- },
-
- _create: function() {
- this._on({
- mouseover: "open",
- focusin: "open"
- });
-
- // IDs of generated tooltips, needed for destroy
- this.tooltips = {};
- // IDs of parent tooltips where we removed the title attribute
- this.parents = {};
-
- if ( this.options.disabled ) {
- this._disable();
- }
- },
-
- _setOption: function( key, value ) {
- var that = this;
-
- if ( key === "disabled" ) {
- this[ value ? "_disable" : "_enable" ]();
- this.options[ key ] = value;
- // disable element style changes
- return;
- }
-
- this._super( key, value );
-
- if ( key === "content" ) {
- $.each( this.tooltips, function( id, element ) {
- that._updateContent( element );
- });
- }
- },
-
- _disable: function() {
- var that = this;
-
- // close open tooltips
- $.each( this.tooltips, function( id, element ) {
- var event = $.Event( "blur" );
- event.target = event.currentTarget = element[0];
- that.close( event, true );
- });
-
- // remove title attributes to prevent native tooltips
- this.element.find( this.options.items ).addBack().each(function() {
- var element = $( this );
- if ( element.is( "[title]" ) ) {
- element
- .data( "ui-tooltip-title", element.attr( "title" ) )
- .attr( "title", "" );
- }
- });
- },
-
- _enable: function() {
- // restore title attributes
- this.element.find( this.options.items ).addBack().each(function() {
- var element = $( this );
- if ( element.data( "ui-tooltip-title" ) ) {
- element.attr( "title", element.data( "ui-tooltip-title" ) );
- }
- });
- },
-
- open: function( event ) {
- var that = this,
- target = $( event ? event.target : this.element )
- // we need closest here due to mouseover bubbling,
- // but always pointing at the same event target
- .closest( this.options.items );
-
- // No element to show a tooltip for or the tooltip is already open
- if ( !target.length || target.data( "ui-tooltip-id" ) ) {
- return;
- }
-
- if ( target.attr( "title" ) ) {
- target.data( "ui-tooltip-title", target.attr( "title" ) );
- }
-
- target.data( "ui-tooltip-open", true );
-
- // kill parent tooltips, custom or native, for hover
- if ( event && event.type === "mouseover" ) {
- target.parents().each(function() {
- var parent = $( this ),
- blurEvent;
- if ( parent.data( "ui-tooltip-open" ) ) {
- blurEvent = $.Event( "blur" );
- blurEvent.target = blurEvent.currentTarget = this;
- that.close( blurEvent, true );
- }
- if ( parent.attr( "title" ) ) {
- parent.uniqueId();
- that.parents[ this.id ] = {
- element: this,
- title: parent.attr( "title" )
- };
- parent.attr( "title", "" );
- }
- });
- }
-
- this._updateContent( target, event );
- },
-
- _updateContent: function( target, event ) {
- var content,
- contentOption = this.options.content,
- that = this,
- eventType = event ? event.type : null;
-
- if ( typeof contentOption === "string" ) {
- return this._open( event, target, contentOption );
- }
-
- content = contentOption.call( target[0], function( response ) {
- // ignore async response if tooltip was closed already
- if ( !target.data( "ui-tooltip-open" ) ) {
- return;
- }
- // IE may instantly serve a cached response for ajax requests
- // delay this call to _open so the other call to _open runs first
- that._delay(function() {
- // jQuery creates a special event for focusin when it doesn't
- // exist natively. To improve performance, the native event
- // object is reused and the type is changed. Therefore, we can't
- // rely on the type being correct after the event finished
- // bubbling, so we set it back to the previous value. (#8740)
- if ( event ) {
- event.type = eventType;
- }
- this._open( event, target, response );
- });
- });
- if ( content ) {
- this._open( event, target, content );
- }
- },
-
- _open: function( event, target, content ) {
- var tooltip, events, delayedShow,
- positionOption = $.extend( {}, this.options.position );
-
- if ( !content ) {
- return;
- }
-
- // Content can be updated multiple times. If the tooltip already
- // exists, then just update the content and bail.
- tooltip = this._find( target );
- if ( tooltip.length ) {
- tooltip.find( ".ui-tooltip-content" ).html( content );
- return;
- }
-
- // if we have a title, clear it to prevent the native tooltip
- // we have to check first to avoid defining a title if none exists
- // (we don't want to cause an element to start matching [title])
- //
- // We use removeAttr only for key events, to allow IE to export the correct
- // accessible attributes. For mouse events, set to empty string to avoid
- // native tooltip showing up (happens only when removing inside mouseover).
- if ( target.is( "[title]" ) ) {
- if ( event && event.type === "mouseover" ) {
- target.attr( "title", "" );
- } else {
- target.removeAttr( "title" );
- }
- }
-
- tooltip = this._tooltip( target );
- addDescribedBy( target, tooltip.attr( "id" ) );
- tooltip.find( ".ui-tooltip-content" ).html( content );
-
- function position( event ) {
- positionOption.of = event;
- if ( tooltip.is( ":hidden" ) ) {
- return;
- }
- tooltip.position( positionOption );
- }
- if ( this.options.track && event && /^mouse/.test( event.type ) ) {
- this._on( this.document, {
- mousemove: position
- });
- // trigger once to override element-relative positioning
- position( event );
- } else {
- tooltip.position( $.extend({
- of: target
- }, this.options.position ) );
- }
-
- tooltip.hide();
-
- this._show( tooltip, this.options.show );
- // Handle tracking tooltips that are shown with a delay (#8644). As soon
- // as the tooltip is visible, position the tooltip using the most recent
- // event.
- if ( this.options.show && this.options.show.delay ) {
- delayedShow = this.delayedShow = setInterval(function() {
- if ( tooltip.is( ":visible" ) ) {
- position( positionOption.of );
- clearInterval( delayedShow );
- }
- }, $.fx.interval );
- }
-
- this._trigger( "open", event, { tooltip: tooltip } );
-
- events = {
- keyup: function( event ) {
- if ( event.keyCode === $.ui.keyCode.ESCAPE ) {
- var fakeEvent = $.Event(event);
- fakeEvent.currentTarget = target[0];
- this.close( fakeEvent, true );
- }
- },
- remove: function() {
- this._removeTooltip( tooltip );
- }
- };
- if ( !event || event.type === "mouseover" ) {
- events.mouseleave = "close";
- }
- if ( !event || event.type === "focusin" ) {
- events.focusout = "close";
- }
- this._on( true, target, events );
- },
-
- close: function( event ) {
- var that = this,
- target = $( event ? event.currentTarget : this.element ),
- tooltip = this._find( target );
-
- // disabling closes the tooltip, so we need to track when we're closing
- // to avoid an infinite loop in case the tooltip becomes disabled on close
- if ( this.closing ) {
- return;
- }
-
- // Clear the interval for delayed tracking tooltips
- clearInterval( this.delayedShow );
-
- // only set title if we had one before (see comment in _open())
- if ( target.data( "ui-tooltip-title" ) ) {
- target.attr( "title", target.data( "ui-tooltip-title" ) );
- }
-
- removeDescribedBy( target );
-
- tooltip.stop( true );
- this._hide( tooltip, this.options.hide, function() {
- that._removeTooltip( $( this ) );
- });
-
- target.removeData( "ui-tooltip-open" );
- this._off( target, "mouseleave focusout keyup" );
- // Remove 'remove' binding only on delegated targets
- if ( target[0] !== this.element[0] ) {
- this._off( target, "remove" );
- }
- this._off( this.document, "mousemove" );
-
- if ( event && event.type === "mouseleave" ) {
- $.each( this.parents, function( id, parent ) {
- $( parent.element ).attr( "title", parent.title );
- delete that.parents[ id ];
- });
- }
-
- this.closing = true;
- this._trigger( "close", event, { tooltip: tooltip } );
- this.closing = false;
- },
-
- _tooltip: function( element ) {
- var id = "ui-tooltip-" + increments++,
- tooltip = $( "<div>" )
- .attr({
- id: id,
- role: "tooltip"
- })
- .addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content " +
- ( this.options.tooltipClass || "" ) );
- $( "<div>" )
- .addClass( "ui-tooltip-content" )
- .appendTo( tooltip );
- tooltip.appendTo( this.document[0].body );
- this.tooltips[ id ] = element;
- return tooltip;
- },
-
- _find: function( target ) {
- var id = target.data( "ui-tooltip-id" );
- return id ? $( "#" + id ) : $();
- },
-
- _removeTooltip: function( tooltip ) {
- tooltip.remove();
- delete this.tooltips[ tooltip.attr( "id" ) ];
- },
-
- _destroy: function() {
- var that = this;
-
- // close open tooltips
- $.each( this.tooltips, function( id, element ) {
- // Delegate to close method to handle common cleanup
- var event = $.Event( "blur" );
- event.target = event.currentTarget = element[0];
- that.close( event, true );
-
- // Remove immediately; destroying an open tooltip doesn't use the
- // hide animation
- $( "#" + id ).remove();
-
- // Restore the title
- if ( element.data( "ui-tooltip-title" ) ) {
- element.attr( "title", element.data( "ui-tooltip-title" ) );
- element.removeData( "ui-tooltip-title" );
- }
- });
- }
-});
-
-}( jQuery ) );
diff --git a/bitbake/lib/toaster/toastergui/static/js/jquery-ui.min.js b/bitbake/lib/toaster/toastergui/static/js/jquery-ui.min.js
new file mode 100755
index 0000000000..4e6396b21d
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/jquery-ui.min.js
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.11.4 - 2015-03-15
+* http://jqueryui.com
+* Includes: core.js, datepicker.js
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var a,n,r,o=t.nodeName.toLowerCase();return"area"===o?(a=t.parentNode,n=a.name,t.href&&n&&"map"===a.nodeName.toLowerCase()?(r=e("img[usemap='#"+n+"']")[0],!!r&&i(r)):!1):(/^(input|select|textarea|button|object)$/.test(o)?!t.disabled:"a"===o?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function a(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=n(e("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function n(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",r)}function r(){e.datepicker._isDisabledDatepicker(h.inline?h.dpDiv.parent()[0]:h.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function o(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,a=t?/(auto|scroll|hidden)/:/(auto|scroll)/,n=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:a.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&n.length?n:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),a=isNaN(s);return(a||s>=0)&&t(i,!a)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,n){return e.each(a,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),n&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var a="Width"===i?["Left","Right"]:["Top","Bottom"],n=i.toLowerCase(),r={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?r["inner"+i].call(this):this.each(function(){e(this).css(n,s(this,t)+"px")})},e.fn["outer"+i]=function(t,a){return"number"!=typeof t?r["outer"+i].call(this,t):this.each(function(){e(this).css(n,s(this,t,!0,a)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,a=e(this[0]);a.length&&a[0]!==document;){if(i=a.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(a.css("zIndex"),10),!isNaN(s)&&0!==s))return s;a=a.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var a,n=e.ui[t].prototype;for(a in s)n.plugins[a]=n.plugins[a]||[],n.plugins[a].push([i,s[a]])},call:function(e,t,i,s){var a,n=e.plugins[t];if(n&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(a=0;n.length>a;a++)e.options[n[a][0]]&&n[a][1].apply(e.element,i)}},e.extend(e.ui,{datepicker:{version:"1.11.4"}});var h;e.extend(a.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return o(this._defaults,e||{}),this},_attachDatepicker:function(t,i){var s,a,n;s=t.nodeName.toLowerCase(),a="div"===s||"span"===s,t.id||(this.uuid+=1,t.id="dp"+this.uuid),n=this._newInst(e(t),a),n.settings=e.extend({},i||{}),"input"===s?this._connectDatepicker(t,n):a&&this._inlineDatepicker(t,n)},_newInst:function(t,i){var s=t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?n(e("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,i){var s=e(t);i.append=e([]),i.trigger=e([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),e.data(t,"datepicker",i),i.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,i){var s,a,n,r=this._get(i,"appendText"),o=this._get(i,"isRTL");i.append&&i.append.remove(),r&&(i.append=e("<span class='"+this._appendClass+"'>"+r+"</span>"),t[o?"before":"after"](i.append)),t.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&t.focus(this._showDatepicker),("button"===s||"both"===s)&&(a=this._get(i,"buttonText"),n=this._get(i,"buttonImage"),i.trigger=e(this._get(i,"buttonImageOnly")?e("<img/>").addClass(this._triggerClass).attr({src:n,alt:a,title:a}):e("<button type='button'></button>").addClass(this._triggerClass).html(n?e("<img/>").attr({src:n,alt:a,title:a}):a)),t[o?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,s,a,n=new Date(2009,11,20),r=this._get(e,"dateFormat");r.match(/[DM]/)&&(t=function(e){for(i=0,s=0,a=0;e.length>a;a++)e[a].length>i&&(i=e[a].length,s=a);return s},n.setMonth(t(this._get(e,r.match(/MM/)?"monthNames":"monthNamesShort"))),n.setDate(t(this._get(e,r.match(/DD/)?"dayNames":"dayNamesShort"))+20-n.getDay())),e.input.attr("size",this._formatDate(e,n).length)}},_inlineDatepicker:function(t,i){var s=e(t);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),e.data(t,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,s,a,n){var r,h,l,u,d,c=this._dialogInst;return c||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=e("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),c=this._dialogInst=this._newInst(this._dialogInput,!1),c.settings={},e.data(this._dialogInput[0],"datepicker",c)),o(c.settings,a||{}),i=i&&i.constructor===Date?this._formatDate(c,i):i,this._dialogInput.val(i),this._pos=n?n.length?n:[n.pageX,n.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+u,l/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],"datepicker",c),this},_destroyDatepicker:function(t){var i,s=e(t),a=e.data(t,"datepicker");s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,"datepicker"),"input"===i?(a.append.remove(),a.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),h===a&&(h=null))},_enableDatepicker:function(t){var i,s,a=e(t),n=e.data(t,"datepicker");a.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,n.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=a.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,s,a=e(t),n=e.data(t,"datepicker");a.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,n.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=a.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,i,s){var a,n,r,h,l=this._getInst(t);return 2===arguments.length&&"string"==typeof i?"defaults"===i?e.extend({},e.datepicker._defaults):l?"all"===i?e.extend({},l.settings):this._get(l,i):null:(a=i||{},"string"==typeof i&&(a={},a[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),n=this._getDateDatepicker(t,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),o(l.settings,a),null!==r&&void 0!==a.dateFormat&&void 0===a.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==a.dateFormat&&void 0===a.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in a&&(a.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(e(t),l),this._autoSize(l),this._setDate(l,n),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,s,a,n=e.datepicker._getInst(t.target),r=!0,o=n.dpDiv.is(".ui-datepicker-rtl");if(n._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),r=!1;break;case 13:return a=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",n.dpDiv),a[0]&&e.datepicker._selectDay(t.target,n.selectedMonth,n.selectedYear,a[0]),i=e.datepicker._get(n,"onSelect"),i?(s=e.datepicker._formatDate(n),i.apply(n.input?n.input[0]:null,[s,n])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(n,"stepBigMonths"):-e.datepicker._get(n,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(n,"stepBigMonths"):+e.datepicker._get(n,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),r=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),r=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,o?1:-1,"D"),r=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(n,"stepBigMonths"):-e.datepicker._get(n,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),r=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,o?-1:1,"D"),r=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(n,"stepBigMonths"):+e.datepicker._get(n,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),r=t.ctrlKey||t.metaKey;break;default:r=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):r=!1;r&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var i,s,a=e.datepicker._getInst(t.target);return e.datepicker._get(a,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(a,"dateFormat")),s=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(t){var i,s=e.datepicker._getInst(t.target);if(s.input.val()!==s.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,e.datepicker._getFormatConfig(s)),i&&(e.datepicker._setDateFromField(s),e.datepicker._updateAlternate(s),e.datepicker._updateDatepicker(s))}catch(a){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,a,n,r,h,l,u;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),a=e.datepicker._get(i,"beforeShow"),n=a?a.apply(t,[t,i]):{},n!==!1&&(o(i.settings,n),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),r=!1,e(t).parents().each(function(){return r|="fixed"===e(this).css("position"),!r}),h={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),h=e.datepicker._checkOffset(i,h,r),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),i.inline||(l=e.datepicker._get(i,"showAnim"),u=e.datepicker._get(i,"duration"),i.dpDiv.css("z-index",s(e(t))+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[l]?i.dpDiv.show(l,e.datepicker._get(i,"showOptions"),u):i.dpDiv[l||"show"](l?u:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,h=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var i,s=this._getNumberOfMonths(t),a=s[1],n=17,o=t.dpDiv.find("."+this._dayOverClass+" a");o.length>0&&r.apply(o.get(0)),t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),a>1&&t.dpDiv.addClass("ui-datepicker-multi-"+a).css("width",n*a+"em"),t.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,s){var a=t.dpDiv.outerWidth(),n=t.dpDiv.outerHeight(),r=t.input?t.input.outerWidth():0,o=t.input?t.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:e(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?a-r:0,i.left-=s&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=s&&i.top===t.input.offset().top+o?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+a>h&&h>a?Math.abs(i.left+a-h):0),i.top-=Math.min(i.top,i.top+n>l&&l>n?Math.abs(n+o):0),i},_findPos:function(t){for(var i,s=this._getInst(t),a=this._get(s,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[a?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,s,a,n,r=this._curInst;!r||t&&r!==e.data(t,"datepicker")||this._datepickerShowing&&(i=this._get(r,"showAnim"),s=this._get(r,"duration"),a=function(){e.datepicker._tidyDialog(r)},e.effects&&(e.effects.effect[i]||e.effects[i])?r.dpDiv.hide(i,e.datepicker._get(r,"showOptions"),s,a):r.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,a),i||a(),this._datepickerShowing=!1,n=this._get(r,"onClose"),n&&n.apply(r.input?r.input[0]:null,[r.input?r.input.val():"",r]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),s=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==s)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,s){var a=e(t),n=this._getInst(a[0]);this._isDisabledDatepicker(a[0])||(this._adjustInstDate(n,i+("M"===s?this._get(n,"showCurrentAtPos"):0),s),this._updateDatepicker(n))},_gotoToday:function(t){var i,s=e(t),a=this._getInst(s[0]);this._get(a,"gotoCurrent")&&a.currentDay?(a.selectedDay=a.currentDay,a.drawMonth=a.selectedMonth=a.currentMonth,a.drawYear=a.selectedYear=a.currentYear):(i=new Date,a.selectedDay=i.getDate(),a.drawMonth=a.selectedMonth=i.getMonth(),a.drawYear=a.selectedYear=i.getFullYear()),this._notifyChange(a),this._adjustDate(s)},_selectMonthYear:function(t,i,s){var a=e(t),n=this._getInst(a[0]);n["selected"+("M"===s?"Month":"Year")]=n["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(n),this._adjustDate(a)},_selectDay:function(t,i,s,a){var n,r=e(t);e(a).hasClass(this._unselectableClass)||this._isDisabledDatepicker(r[0])||(n=this._getInst(r[0]),n.selectedDay=n.currentDay=e("a",a).html(),n.selectedMonth=n.currentMonth=i,n.selectedYear=n.currentYear=s,this._selectDate(t,this._formatDate(n,n.currentDay,n.currentMonth,n.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var s,a=e(t),n=this._getInst(a[0]);i=null!=i?i:this._formatDate(n),n.input&&n.input.val(i),this._updateAlternate(n),s=this._get(n,"onSelect"),s?s.apply(n.input?n.input[0]:null,[i,n]):n.input&&n.input.trigger("change"),n.inline?this._updateDatepicker(n):(this._hideDatepicker(),this._lastInput=n.input[0],"object"!=typeof n.input[0]&&n.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,s,a,n=this._get(t,"altField");n&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),s=this._getDate(t),a=this.formatDate(i,s,this._getFormatConfig(t)),e(n).each(function(){e(this).val(a)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(t,i,s){if(null==t||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var a,n,r,o,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),d=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,c=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,y=-1,b=!1,_=function(e){var i=t.length>a+1&&t.charAt(a+1)===e;return i&&a++,i},x=function(e){var t=_(e),s="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,a="y"===e?s:1,n=RegExp("^\\d{"+a+","+s+"}"),r=i.substring(h).match(n);if(!r)throw"Missing number at position "+h;return h+=r[0].length,parseInt(r[0],10)},k=function(t,s,a){var n=-1,r=e.map(_(t)?a:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(r,function(e,t){var s=t[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(n=t[0],h+=s.length,!1):void 0}),-1!==n)return n+1;throw"Unknown name at position "+h},w=function(){if(i.charAt(h)!==t.charAt(a))throw"Unexpected literal at position "+h;h++};for(a=0;t.length>a;a++)if(b)"'"!==t.charAt(a)||_("'")?w():b=!1;else switch(t.charAt(a)){case"d":v=x("d");break;case"D":k("D",d,c);break;case"o":y=x("o");break;case"m":g=x("m");break;case"M":g=k("M",p,f);break;case"y":m=x("y");break;case"@":o=new Date(x("@")),m=o.getFullYear(),g=o.getMonth()+1,v=o.getDate();break;case"!":o=new Date((x("!")-this._ticksTo1970)/1e4),m=o.getFullYear(),g=o.getMonth()+1,v=o.getDate();break;case"'":_("'")?w():b=!0;break;default:w()}if(i.length>h&&(r=i.substr(h),!/^\s+/.test(r)))throw"Extra/unparsed characters found in date: "+r;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=m?0:-100)),y>-1)for(g=1,v=y;;){if(n=this._getDaysInMonth(m,g-1),n>=v)break;g++,v-=n}if(o=this._daylightSavingAdjust(new Date(m,g-1,v)),o.getFullYear()!==m||o.getMonth()+1!==g||o.getDate()!==v)throw"Invalid date";return o},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var s,a=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,n=(i?i.dayNames:null)||this._defaults.dayNames,r=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,o=(i?i.monthNames:null)||this._defaults.monthNames,h=function(t){var i=e.length>s+1&&e.charAt(s+1)===t;return i&&s++,i},l=function(e,t,i){var s=""+t;if(h(e))for(;i>s.length;)s="0"+s;return s},u=function(e,t,i,s){return h(e)?s[t]:i[t]},d="",c=!1;if(t)for(s=0;e.length>s;s++)if(c)"'"!==e.charAt(s)||h("'")?d+=e.charAt(s):c=!1;else switch(e.charAt(s)){case"d":d+=l("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),a,n);break;case"o":d+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=l("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),r,o);break;case"y":d+=h("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?d+="'":c=!0;break;default:d+=e.charAt(s)}return d},_possibleChars:function(e){var t,i="",s=!1,a=function(i){var s=e.length>t+1&&e.charAt(t+1)===i;return s&&t++,s};for(t=0;e.length>t;t++)if(s)"'"!==e.charAt(t)||a("'")?i+=e.charAt(t):s=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":a("'")?i+="'":s=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,t){return void 0!==e.settings[t]?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),s=e.lastVal=e.input?e.input.val():null,a=this._getDefaultDate(e),n=a,r=this._getFormatConfig(e);try{n=this.parseDate(i,s,r)||a}catch(o){s=t?"":s}e.selectedDay=n.getDate(),e.drawMonth=e.selectedMonth=n.getMonth(),e.drawYear=e.selectedYear=n.getFullYear(),e.currentDay=s?n.getDate():0,e.currentMonth=s?n.getMonth():0,e.currentYear=s?n.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,s){var a=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},n=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(s){}for(var a=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,n=a.getFullYear(),r=a.getMonth(),o=a.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":o+=parseInt(l[1],10);break;case"w":case"W":o+=7*parseInt(l[1],10);break;case"m":case"M":r+=parseInt(l[1],10),o=Math.min(o,e.datepicker._getDaysInMonth(n,r));break;case"y":case"Y":n+=parseInt(l[1],10),o=Math.min(o,e.datepicker._getDaysInMonth(n,r))}l=h.exec(i)}return new Date(n,r,o)},r=null==i||""===i?s:"string"==typeof i?n(i):"number"==typeof i?isNaN(i)?s:a(i):new Date(i.getTime());return r=r&&"Invalid Date"==""+r?s:r,r&&(r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0)),this._daylightSavingAdjust(r)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var s=!t,a=e.selectedMonth,n=e.selectedYear,r=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=r.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=r.getMonth(),e.drawYear=e.selectedYear=e.currentYear=r.getFullYear(),a===e.selectedMonth&&n===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(s?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),s="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(s,-i,"M")},next:function(){e.datepicker._adjustDate(s,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(s)},selectDay:function(){return e.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(s,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,s,a,n,r,o,h,l,u,d,c,p,f,m,g,v,y,b,_,x,k,w,T,S,D,N,M,C,A,P,I,H,F,j,z,E,O,L,W=new Date,R=this._daylightSavingAdjust(new Date(W.getFullYear(),W.getMonth(),W.getDate())),Y=this._get(e,"isRTL"),J=this._get(e,"showButtonPanel"),B=this._get(e,"hideIfNoPrevNext"),K=this._get(e,"navigationAsDateFormat"),V=this._getNumberOfMonths(e),q=this._get(e,"showCurrentAtPos"),Q=this._get(e,"stepMonths"),U=1!==V[0]||1!==V[1],G=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),X=this._getMinMaxDate(e,"min"),$=this._getMinMaxDate(e,"max"),Z=e.drawMonth-q,et=e.drawYear;if(0>Z&&(Z+=12,et--),$)for(t=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-V[0]*V[1]+1,$.getDate())),t=X&&X>t?X:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-Q,1)),this._getFormatConfig(e)):i,s=this._canAdjustMonth(e,-1,et,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":B?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",a=this._get(e,"nextText"),a=K?this.formatDate(a,this._daylightSavingAdjust(new Date(et,Z+Q,1)),this._getFormatConfig(e)):a,n=this._canAdjustMonth(e,1,et,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+a+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+a+"</span></a>":B?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+a+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+a+"</span></a>",r=this._get(e,"currentText"),o=this._get(e,"gotoCurrent")&&e.currentDay?G:R,r=K?this.formatDate(r,o,this._getFormatConfig(e)):r,h=e.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(e,"closeText")+"</button>",l=J?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(e,o)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+r+"</button>":"")+(Y?"":h)+"</div>":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),c=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),_="",k=0;V[0]>k;k++){for(w="",this.maxRows=4,T=0;V[1]>T;T++){if(S=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),D=" ui-corner-all",N="",U){if(N+="<div class='ui-datepicker-group",V[1]>1)switch(T){case 0:N+=" ui-datepicker-group-first",D=" ui-corner-"+(Y?"right":"left");
+break;case V[1]-1:N+=" ui-datepicker-group-last",D=" ui-corner-"+(Y?"left":"right");break;default:N+=" ui-datepicker-group-middle",D=""}N+="'>"}for(N+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+D+"'>"+(/all|left/.test(D)&&0===k?Y?n:s:"")+(/all|right/.test(D)&&0===k?Y?s:n:"")+this._generateMonthYearHeader(e,Z,et,X,$,k>0||T>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",M=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",x=0;7>x;x++)C=(x+u)%7,M+="<th scope='col'"+((x+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+c[C]+"'>"+p[C]+"</span></th>";for(N+=M+"</tr></thead><tbody>",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),P=(this._getFirstDayOfMonth(et,Z)-u+7)%7,I=Math.ceil((P+A)/7),H=U?this.maxRows>I?this.maxRows:I:I,this.maxRows=H,F=this._daylightSavingAdjust(new Date(et,Z,1-P)),j=0;H>j;j++){for(N+="<tr>",z=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(F)+"</td>":"",x=0;7>x;x++)E=g?g.apply(e.input?e.input[0]:null,[F]):[!0,""],O=F.getMonth()!==Z,L=O&&!y||!E[0]||X&&X>F||$&&F>$,z+="<td class='"+((x+u+6)%7>=5?" ui-datepicker-week-end":"")+(O?" ui-datepicker-other-month":"")+(F.getTime()===S.getTime()&&Z===e.selectedMonth&&e._keyEvent||b.getTime()===F.getTime()&&b.getTime()===S.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(O&&!v?"":" "+E[1]+(F.getTime()===G.getTime()?" "+this._currentClass:"")+(F.getTime()===R.getTime()?" ui-datepicker-today":""))+"'"+(O&&!v||!E[2]?"":" title='"+E[2].replace(/'/g,"&#39;")+"'")+(L?"":" data-handler='selectDay' data-event='click' data-month='"+F.getMonth()+"' data-year='"+F.getFullYear()+"'")+">"+(O&&!v?"&#xa0;":L?"<span class='ui-state-default'>"+F.getDate()+"</span>":"<a class='ui-state-default"+(F.getTime()===R.getTime()?" ui-state-highlight":"")+(F.getTime()===G.getTime()?" ui-state-active":"")+(O?" ui-priority-secondary":"")+"' href='#'>"+F.getDate()+"</a>")+"</td>",F.setDate(F.getDate()+1),F=this._daylightSavingAdjust(F);N+=z+"</tr>"}Z++,Z>11&&(Z=0,et++),N+="</tbody></table>"+(U?"</div>"+(V[0]>0&&T===V[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),w+=N}_+=w}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,s,a,n,r,o){var h,l,u,d,c,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",_="";if(n||!g)_+="<span class='ui-datepicker-month'>"+r[t]+"</span>";else{for(h=s&&s.getFullYear()===i,l=a&&a.getFullYear()===i,_+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;12>u;u++)(!h||u>=s.getMonth())&&(!l||a.getMonth()>=u)&&(_+="<option value='"+u+"'"+(u===t?" selected='selected'":"")+">"+o[u]+"</option>");_+="</select>"}if(y||(b+=_+(!n&&g&&v?"":"&#xa0;")),!e.yearshtml)if(e.yearshtml="",n||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);return isNaN(t)?c:t},f=p(d[0]),m=Math.max(f,p(d[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=a?Math.min(m,a.getFullYear()):m,e.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";m>=f;f++)e.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";e.yearshtml+="</select>",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!n&&g&&v?"":"&#xa0;")+_),b+="</div>"},_adjustInstDate:function(e,t,i){var s=e.drawYear+("Y"===i?t:0),a=e.drawMonth+("M"===i?t:0),n=Math.min(e.selectedDay,this._getDaysInMonth(s,a))+("D"===i?t:0),r=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(s,a,n)));e.selectedDay=r.getDate(),e.drawMonth=e.selectedMonth=r.getMonth(),e.drawYear=e.selectedYear=r.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),a=i&&i>t?i:t;return s&&a>s?s:a},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,s){var a=this._getNumberOfMonths(e),n=this._daylightSavingAdjust(new Date(i,s+(0>t?t:a[0]*a[1]),1));return 0>t&&n.setDate(this._getDaysInMonth(n.getFullYear(),n.getMonth())),this._isInRange(e,n)},_isInRange:function(e,t){var i,s,a=this._getMinMaxDate(e,"min"),n=this._getMinMaxDate(e,"max"),r=null,o=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),r=parseInt(i[0],10),o=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(r+=s),i[1].match(/[+\-].*/)&&(o+=s)),(!a||t.getTime()>=a.getTime())&&(!n||t.getTime()<=n.getTime())&&(!r||t.getFullYear()>=r)&&(!o||o>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,s){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var a=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(s,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),a,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new a,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.11.4",e.datepicker}); \ No newline at end of file
diff --git a/bitbake/lib/toaster/toastergui/static/js/layerdetails.js b/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
new file mode 100644
index 0000000000..bac60c4512
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
@@ -0,0 +1,407 @@
+"use strict"
+
+function layerDetailsPageInit (ctx) {
+
+ var layerDepInput = $("#layer-dep-input");
+ var layerDepBtn = $("#add-layer-dependency-btn");
+ var layerDepsList = $("#layer-deps-list");
+ var currentLayerDepSelection;
+ var addRmLayerBtn = $("#add-remove-layer-btn");
+
+ /* setup the dependencies typeahead */
+ libtoaster.makeTypeahead(layerDepInput, ctx.xhrDataTypeaheadUrl, { type : "layers", project_id: ctx.projectId, include_added: "true" }, function(item){
+ currentLayerDepSelection = item;
+
+ layerDepBtn.removeAttr("disabled");
+ });
+
+ function addRemoveDep(depLayerId, add, doneCb) {
+ var data = { layer_version_id : ctx.layerVersion.id };
+ if (add)
+ data.add_dep = depLayerId;
+ else
+ data.rm_dep = depLayerId;
+
+ $.ajax({
+ type: "POST",
+ url: ctx.xhrUpdateLayerUrl,
+ data: data,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (data) {
+ if (data.error != "ok") {
+ console.warn(data.error);
+ } else {
+ doneCb();
+ }
+ },
+ error: function (data) {
+ console.warn("Call failed");
+ console.warn(data);
+ }
+ });
+ }
+
+ function layerRemoveClick() {
+ var toRemove = $(this).parent().data('layer-id');
+ var layerDepItem = $(this);
+
+ addRemoveDep(toRemove, false, function(){
+ layerDepItem.parent().fadeOut(function (){
+ layerDepItem.remove();
+ });
+ });
+ }
+
+ /* Add dependency layer button click handler */
+ layerDepBtn.click(function(){
+ if (currentLayerDepSelection == undefined)
+ return;
+
+ addRemoveDep(currentLayerDepSelection.id, true, function(){
+ /* Make a list item for the new layer dependency */
+ var newLayerDep = $("<li><a></a><span class=\"icon-trash\" data-toggle=\"tooltip\" title=\"Delete\"></span></li>");
+
+ newLayerDep.data('layer-id', currentLayerDepSelection.id);
+ newLayerDep.children("span").tooltip();
+
+ var link = newLayerDep.children("a");
+ link.attr("href", ctx.layerDetailsUrl+String(currentLayerDepSelection.id));
+ link.text(currentLayerDepSelection.name);
+ link.tooltip({title: currentLayerDepSelection.tooltip, placement: "right"});
+
+ /* Connect up the tash icon */
+ var trashItem = newLayerDep.children("span");
+ trashItem.click(layerRemoveClick);
+
+ layerDepsList.append(newLayerDep);
+ /* Clear the current selection */
+ layerDepInput.val("");
+ currentLayerDepSelection = undefined;
+ layerDepBtn.attr("disabled","disabled");
+ });
+ });
+
+ $(".icon-pencil").click(function (){
+ var mParent = $(this).parent("dd");
+ mParent.prev().css("margin-top", "10px");
+ mParent.children("form").slideDown();
+ var currentVal = mParent.children(".current-value");
+ currentVal.hide();
+ /* Set the current value to the input field */
+ mParent.find("textarea,input").val(currentVal.text());
+ /* Hides the "Not set" text */
+ mParent.children(".muted").hide();
+ /* We're editing so hide the delete icon */
+ mParent.children(".delete-current-value").hide();
+ mParent.find(".cancel").show();
+ $(this).hide();
+ });
+
+ $(".delete-current-value").click(function(){
+ var mParent = $(this).parent("dd");
+ mParent.find("input").val("");
+ mParent.find("textarea").val("");
+ mParent.find(".change-btn").click();
+ });
+
+ $(".cancel").click(function(){
+ var mParent = $(this).parents("dd");
+ $(this).hide();
+ mParent.children("form").slideUp(function(){
+ mParent.children(".current-value").show();
+ /* Show the "Not set" text if we ended up with no value */
+ if (!mParent.children(".current-value").html()){
+ mParent.children(".muted").fadeIn();
+ mParent.children(".delete-current-value").hide();
+ } else {
+ mParent.children(".delete-current-value").show();
+ }
+
+ mParent.children(".icon-pencil").show();
+ mParent.prev().css("margin-top", "0px");
+ });
+ });
+
+ $(".build-target-btn").click(function(){
+ /* fire a build */
+ var target = $(this).data('target-name');
+ libtoaster.startABuild(ctx.projectBuildUrl, ctx.projectId, target, null, null);
+ window.location.replace(ctx.projectPageUrl);
+ });
+
+ $(".select-machine-btn").click(function(){
+ var data = { machineName : $(this).data('machine-name') };
+ libtoaster.editProject(ctx.xhrEditProjectUrl, ctx.projectId, data,
+ function (){
+ window.location.replace(ctx.projectPageUrl+"#/machineselected");
+ }, null);
+ });
+
+ function defaultAddBtnText(){
+ var text = " Add the "+ctx.layerVersion.name+" layer to your project";
+ addRmLayerBtn.text(text);
+ addRmLayerBtn.prepend("<span class=\"icon-plus\"></span>");
+ addRmLayerBtn.removeClass("btn-danger");
+ }
+
+ $("#details-tab").on('show', function(){
+ if (!ctx.layerVersion.inCurrentPrj)
+ defaultAddBtnText();
+
+ window.location.hash = "details";
+ });
+
+ function targetsTabShow(){
+ if (!ctx.layerVersion.inCurrentPrj){
+ if (ctx.numTargets > 0) {
+ var text = " Add the "+ctx.layerVersion.name+" layer to your project "+
+ "to enable these recipes";
+ addRmLayerBtn.text(text);
+ addRmLayerBtn.prepend("<span class=\"icon-plus\"></span>");
+ } else {
+ defaultAddBtnText();
+ }
+ }
+
+ window.location.hash = "targets";
+ }
+
+ $("#targets-tab").on('show', targetsTabShow);
+
+ function machinesTabShow(){
+ if (!ctx.layerVersion.inCurrentPrj) {
+ if (ctx.numMachines > 0){
+ var text = " Add the "+ctx.layerVersion.name+" layer to your project " +
+ "to enable these machines";
+ addRmLayerBtn.text(text);
+ addRmLayerBtn.prepend("<span class=\"icon-plus\"></span>");
+ } else {
+ defaultAddBtnText();
+ }
+ }
+
+ window.location.hash = "machines";
+ }
+
+ $("#machines-tab").on('show', machinesTabShow);
+
+ $(".pagesize").change(function(){
+ var search = libtoaster.parseUrlParams();
+ search.limit = this.value;
+
+ window.location.search = libtoaster.dumpsUrlParams(search);
+ });
+
+ /* Enables the Build target and Select Machine buttons and switches the
+ * add/remove button
+ */
+ function setLayerInCurrentPrj(added, depsList) {
+ ctx.layerVersion.inCurrentPrj = added;
+ var alertMsg = $("#alert-msg");
+ /* Reset alert message */
+ alertMsg.text("");
+
+ if (added){
+ /* enable and switch all the button states */
+ $(".build-target-btn").removeAttr("disabled");
+ $(".select-machine-btn").removeAttr("disabled");
+ addRmLayerBtn.addClass("btn-danger");
+ addRmLayerBtn.data('directive', "remove");
+ addRmLayerBtn.text(" Delete the "+ctx.layerVersion.name+" layer from your project");
+ addRmLayerBtn.prepend("<span class=\"icon-trash\"></span>");
+
+ if (depsList) {
+ alertMsg.append("You have added <strong>"+(depsList.length+1)+"</strong> layers to <a id=\"project-affected-name\"></a>: <span id=\"layer-affected-name\"></span> and its dependencies ");
+
+ /* Build the layer deps list */
+ depsList.map(function(layer, i){
+ var link = $("<a></a>");
+
+ link.attr("href", layer.layerdetailurl);
+ link.text(layer.name);
+ link.tooltip({title: layer.tooltip});
+
+ if (i != 0)
+ alertMsg.append(", ");
+
+ alertMsg.append(link);
+ });
+ } else {
+ alertMsg.append("You have added <strong>1</strong> layer to <a id=\"project-affected-name\"></a>: <span id=\"layer-affected-name\"></span>");
+ }
+ } else {
+ /* disable and switch all the button states */
+ $(".build-target-btn").attr("disabled","disabled");
+ $(".select-machine-btn").attr("disabled", "disabled");
+ addRmLayerBtn.removeClass("btn-danger");
+ addRmLayerBtn.data('directive', "add");
+
+ /* "special" handler so that we get the correct button text which depends
+ * on which tab is currently visible. Unfortunately we can't just call
+ * tab('show') as if it's already visible it doesn't run the event.
+ */
+ switch ($(".nav-pills .active a").prop('id')){
+ case 'machines-tab':
+ machinesTabShow();
+ break;
+ case 'targets-tab':
+ targetsTabShow();
+ break;
+ default:
+ defaultAddBtnText();
+ break;
+ }
+
+ alertMsg.append("You have deleted <strong>1</strong> layer from <a id=\"project-affected-name\"></a>: <strong id=\"layer-affected-name\"></strong>");
+ }
+
+ alertMsg.children("#layer-affected-name").text(ctx.layerVersion.name);
+ alertMsg.children("#project-affected-name").text(ctx.projectName);
+ alertMsg.children("#project-affected-name").attr("href", ctx.projectPageUrl);
+ $("#alert-area").show();
+ }
+
+ $("#dismiss-alert").click(function(){ $(this).parent().hide() });
+
+ /* Add or remove this layer from the project */
+ addRmLayerBtn.click(function() {
+ var directive = $(this).data('directive');
+
+ if (directive == 'add') {
+ /* If adding get the deps for this layer */
+ libtoaster.getLayerDepsForProject(ctx.xhrDataTypeaheadUrl, ctx.projectId, ctx.layerVersion.id, function (data) {
+ /* got result for dependencies */
+ if (data.list.length == 0){
+ var editData = { layerAdd : ctx.layerVersion.id };
+ libtoaster.editProject(ctx.xhrEditProjectUrl, ctx.projectId, editData,
+ function() {
+ setLayerInCurrentPrj(true);
+ });
+ return;
+ } else {
+ /* The add deps will include this layer so no need to add it
+ * separately.
+ */
+ show_layer_deps_modal(ctx.projectId, ctx.layerVersion, data.list, null, null, true, function () {
+ /* Success add deps and layer */
+ setLayerInCurrentPrj(true, data.list);
+ });
+ }
+ }, null);
+ } else if (directive == 'remove') {
+ var editData = { layerDel : ctx.layerVersion.id };
+
+ libtoaster.editProject(ctx.xhrEditProjectUrl, ctx.projectId, editData,
+ function () {
+ /* Success removed layer */
+ //window.location.reload();
+ setLayerInCurrentPrj(false);
+ }, function () {
+ console.warn ("Removing layer from project failed");
+ });
+ }
+ });
+
+ /* Handler for all of the Change buttons */
+ $(".change-btn").click(function(){
+ var mParent = $(this).parent();
+ var prop = $(this).data('layer-prop');
+
+ /* We have inputs, select and textareas to potentially grab the value
+ * from.
+ */
+ var entryElement = mParent.find("input");
+ if (entryElement.length == 0)
+ entryElement = mParent.find("textarea");
+ if (entryElement.length == 0) {
+ console.warn("Could not find element to get data from for this change");
+ return;
+ }
+
+ var data = { layer_version_id: ctx.layerVersion.id };
+ data[prop] = entryElement.val();
+
+ $.ajax({
+ type: "POST",
+ url: ctx.xhrUpdateLayerUrl,
+ data: data,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (data) {
+ if (data.error != "ok") {
+ console.warn(data.error);
+ } else {
+ /* success layer property changed */
+ var inputArea = mParent.parents("dd");
+ var text;
+
+ text = entryElement.val();
+
+ /* Hide the "Not set" text if it's visible */
+ inputArea.find(".muted").hide();
+ inputArea.find(".current-value").text(text);
+ /* Same behaviour as cancel in that we hide the form/show current
+ * value.
+ */
+ inputArea.find(".cancel").click();
+ }
+ },
+ error: function (data) {
+ console.warn("Call failed");
+ console.warn(data);
+ }
+ });
+ });
+
+ /* Disable the change button when we have no data in the input */
+ $("dl input, dl textarea").on("input",function() {
+ if ($(this).val().length == 0)
+ $(this).parent().children(".change-btn").attr("disabled", "disabled");
+ else
+ $(this).parent().children(".change-btn").removeAttr("disabled");
+ });
+
+ /* This checks to see if the dt's dd has data in it or if the change data
+ * form is visible, otherwise hide it
+ */
+ $("dl").children().each(function (){
+ if ($(this).is("dt")) {
+ var dd = $(this).next("dd");
+ if (!dd.children("form:visible")|| !dd.find(".current-value").html()){
+ if (ctx.layerVersion.sourceId == 3){
+ /* There's no current value and the layer is editable
+ * so show the "Not set" and hide the delete icon
+ */
+ dd.find(".muted").show();
+ dd.find(".delete-current-value").hide();
+ } else {
+ /* We're not viewing an editable layer so hide the empty dd/dl pair */
+ $(this).hide();
+ dd.hide();
+ }
+ }
+ }
+ });
+
+ /* Hide the right column if it contains no information */
+ if ($("dl.item-info").children(':visible').length == 0) {
+ $("dl.item-info").parent().hide();
+ }
+
+ /* Clear the current search selection and reload the results */
+ $(".target-search-clear").click(function(){
+ $("#target-search").val("");
+ $(this).parents("form").submit();
+ });
+
+ $(".machine-search-clear").click(function(){
+ $("#machine-search").val("");
+ $(this).parents("form").submit();
+ });
+
+
+ layerDepsList.find(".icon-trash").click(layerRemoveClick);
+ layerDepsList.find("a").tooltip();
+ $(".icon-trash").tooltip();
+ $(".commit").tooltip();
+
+}
diff --git a/bitbake/lib/toaster/toastergui/static/js/libtoaster.js b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js
new file mode 100644
index 0000000000..fcf82ac65b
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js
@@ -0,0 +1,421 @@
+"use strict";
+/* All shared functionality to go in libtoaster object.
+ * This object really just helps readability since we can then have
+ * a traceable namespace.
+ */
+var libtoaster = (function (){
+
+ /* makeTypeahead parameters
+ * elementSelector: JQuery elementSelector string
+ * xhrUrl: the url to get the JSON from expects JSON in the form:
+ * { "list": [ { "name": "test", "detail" : "a test thing" }, .... ] }
+ * xhrParams: the data/parameters to pass to the getJSON url e.g.
+ * { 'type' : 'projects' } the text typed will be passed as 'value'.
+ * selectedCB: function to call once an item has been selected one
+ * arg of the item.
+ */
+ function _makeTypeahead (jQElement, xhrUrl, xhrParams, selectedCB) {
+
+ jQElement.typeahead({
+ source: function(query, process){
+ xhrParams.value = query;
+ $.getJSON(xhrUrl, this.options.xhrParams, function(data){
+ if (data.error !== "ok") {
+ console.log("Error getting data from server "+data.error);
+ return;
+ }
+
+ return process (data.list);
+ });
+ },
+ updater: function(item) {
+ var itemObj = this.$menu.find('.active').data('itemObject');
+ selectedCB(itemObj);
+ return item;
+ },
+ matcher: function(item) { return ~item.name.toLowerCase().indexOf(this.query.toLowerCase()); },
+ highlighter: function (item) {
+ if (item.hasOwnProperty('detail'))
+ /* Use jquery to escape the value as text into a span */
+ return $('<span></span>').text(item.name+' '+item.detail).get(0);
+ return $('<span></span>').text(item.name).get(0);
+ },
+ sorter: function (items) { return items; },
+ xhrUrl: xhrUrl,
+ xhrParams: xhrParams,
+ });
+
+
+ /* Copy of bootstrap's render func but sets selectedObject value */
+ function customRenderFunc (items) {
+ var that = this;
+
+ items = $(items).map(function (i, item) {
+ i = $(that.options.item).attr('data-value', item.name).data('itemObject', item);
+ i.find('a').html(that.highlighter(item));
+ return i[0];
+ });
+
+ items.first().addClass('active');
+ this.$menu.html(items);
+ return this;
+ }
+
+ jQElement.data('typeahead').render = customRenderFunc;
+ }
+
+ /*
+ * url - the url of the xhr build */
+ function _startABuild (url, project_id, targets, onsuccess, onfail) {
+ var data;
+
+ if (project_id)
+ data = 'project_id='+project_id+'&targets='+targets;
+ else
+ data = 'targets='+targets;
+
+ $.ajax( {
+ type: "POST",
+ url: url,
+ data: data,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (_data) {
+ if (_data.error !== "ok") {
+ console.warn(_data.error);
+ } else {
+ if (onsuccess !== undefined) onsuccess(_data);
+ }
+ },
+ error: function (_data) {
+ console.warn("Call failed");
+ console.warn(_data);
+ if (onfail) onfail(data);
+ } });
+ }
+
+ /* cancelABuild:
+ * url: xhr_projectbuild
+ * builds_ids: space separated list of build request ids
+ * onsuccess: callback for successful execution
+ * onfail: callback for failed execution
+ */
+ function _cancelABuild(url, build_ids, onsuccess, onfail){
+ $.ajax( {
+ type: "POST",
+ url: url,
+ data: { 'buildCancel': build_ids },
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (_data) {
+ if (_data.error !== "ok") {
+ console.warn(_data.error);
+ } else {
+ if (onsuccess !== undefined) onsuccess(_data);
+ }
+ },
+ error: function (_data) {
+ console.warn("Call failed");
+ console.warn(_data);
+ if (onfail) onfail(data);
+ }
+ });
+ }
+
+ /* Get a project's configuration info */
+ function _getProjectInfo(url, projectId, onsuccess, onfail){
+ $.ajax({
+ type: "POST",
+ url: url,
+ data: { project_id : projectId },
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (_data) {
+ if (_data.error !== "ok") {
+ console.warn(_data.error);
+ } else {
+ if (onsuccess !== undefined) onsuccess(_data);
+ }
+ },
+ error: function (_data) {
+ console.warn(_data);
+ if (onfail) onfail(_data);
+ }
+ });
+ }
+
+ /* Properties for data can be:
+ * layerDel (csv)
+ * layerAdd (csv)
+ * projectName
+ * projectVersion
+ * machineName
+ */
+ function _editProject(url, projectId, data, onSuccess, onFail){
+ $.ajax({
+ type: "POST",
+ url: url,
+ data: data,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (data) {
+ if (data.error != "ok") {
+ console.log(data.error);
+ if (onFail !== undefined)
+ onFail(data);
+ } else {
+ if (onSuccess !== undefined)
+ onSuccess(data);
+ }
+ },
+ error: function (data) {
+ console.log("Call failed");
+ console.log(data);
+ }
+ });
+ }
+
+ function _getLayerDepsForProject(xhrDataTypeaheadUrl, projectId, layerId, onSuccess, onFail){
+ /* Check for dependencies not in the current project */
+ $.getJSON(xhrDataTypeaheadUrl,
+ { type: 'layerdeps', 'value': layerId , project_id: projectId },
+ function(data) {
+ if (data.error != "ok") {
+ console.log(data.error);
+ if (onFail !== undefined)
+ onFail(data);
+ } else {
+ onSuccess(data);
+ }
+ }, function() {
+ console.log("E: Failed to make request");
+ });
+ }
+
+ /* parses the query string of the current window.location to an object */
+ function _parseUrlParams() {
+ var string = window.location.search;
+ string = string.substr(1);
+ var stringArray = string.split ("&");
+ var obj = {};
+
+ for (var i in stringArray) {
+ var keyVal = stringArray[i].split ("=");
+ obj[keyVal[0]] = keyVal[1];
+ }
+
+ return obj;
+ }
+
+ /* takes a flat object and outputs it as a query string
+ * e.g. the output of dumpsUrlParams
+ */
+ function _dumpsUrlParams(obj) {
+ var str = "?";
+
+ for (var key in obj){
+ if (!obj[key])
+ continue;
+
+ str += key+ "="+obj[key].toString();
+ str += "&";
+ }
+
+ return str;
+ }
+
+
+ return {
+ reload_params : reload_params,
+ startABuild : _startABuild,
+ cancelABuild : _cancelABuild,
+ makeTypeahead : _makeTypeahead,
+ getProjectInfo: _getProjectInfo,
+ getLayerDepsForProject : _getLayerDepsForProject,
+ editProject : _editProject,
+ debug: false,
+ parseUrlParams : _parseUrlParams,
+ dumpsUrlParams : _dumpsUrlParams,
+ };
+})();
+
+/* keep this in the global scope for compatability */
+function reload_params(params) {
+ var uri = window.location.href;
+ var splitlist = uri.split("?");
+ var url = splitlist[0];
+ var parameters = splitlist[1];
+ // deserialize the call parameters
+ var cparams = [];
+ if(parameters)
+ cparams = parameters.split("&");
+
+ var nparams = {};
+ for (var i = 0; i < cparams.length; i++) {
+ var temp = cparams[i].split("=");
+ nparams[temp[0]] = temp[1];
+ }
+ // update parameter values
+ for (i in params) {
+ nparams[encodeURIComponent(i)] = encodeURIComponent(params[i]);
+ }
+ // serialize the structure
+ var callparams = [];
+ for (i in nparams) {
+ callparams.push(i+"="+nparams[i]);
+ }
+ window.location.href = url+"?"+callparams.join('&');
+}
+
+
+/* Things that happen for all pages */
+$(document).ready(function() {
+
+ /* If we don't have a console object which might be the case in some
+ * browsers, no-op it to avoid undefined errors.
+ */
+ if (!window.console) {
+ window.console = {};
+ window.console.warn = function() {};
+ window.console.error = function() {};
+ }
+
+ /*
+ * PrettyPrint plugin.
+ *
+ */
+ // Init
+ prettyPrint();
+
+ // Prevent invalid links from jumping page scroll
+ $('a[href=#]').click(function() {
+ return false;
+ });
+
+
+ /* Belen's additions */
+
+ // turn Edit columns dropdown into a multiselect menu
+ $('.dropdown-menu input, .dropdown-menu label').click(function(e) {
+ e.stopPropagation();
+ });
+
+ // enable popovers in any table cells that contain an anchor with the
+ // .btn class applied, and make sure popovers work on click, are mutually
+ // exclusive and they close when your click outside their area
+
+ $('html').click(function(){
+ $('td > a.btn').popover('hide');
+ });
+
+ $('td > a.btn').popover({
+ html:true,
+ placement:'left',
+ container:'body',
+ trigger:'manual'
+ }).click(function(e){
+ $('td > a.btn').not(this).popover('hide');
+ // ideally we would use 'toggle' here
+ // but it seems buggy in our Bootstrap version
+ $(this).popover('show');
+ e.stopPropagation();
+ });
+
+ // enable tooltips for applied filters
+ $('th a.btn-primary').tooltip({container:'body', html:true, placement:'bottom', delay:{hide:1500}});
+
+ // hide applied filter tooltip when you click on the filter button
+ $('th a.btn-primary').click(function () {
+ $('.tooltip').hide();
+ });
+
+ // enable help information tooltip
+ $(".get-help").tooltip({container:'body', html:true, delay:{show:300}});
+
+ // show help bubble only on hover inside tables
+ $(".hover-help").css("visibility","hidden");
+ $("th, td").hover(function () {
+ $(this).find(".hover-help").css("visibility","visible");
+ });
+ $("th, td").mouseleave(function () {
+ $(this).find(".hover-help").css("visibility","hidden");
+ });
+
+ // show task type and outcome in task details pages
+ $(".task-info").tooltip({ container: 'body', html: true, delay: {show: 200}, placement: 'right' });
+
+ // initialise the tooltips for the icon-pencil icons
+ $(".icon-pencil").tooltip({ container: 'body', html: true, delay: {show: 400}, title: "Change" });
+
+ // initialise the tooltips for the download icons
+ $(".icon-download-alt").tooltip({ container: 'body', html: true, delay: { show: 200 } });
+
+ // initialise popover for debug information
+ $(".icon-info-sign").popover( { placement: 'bottom', html: true, container: 'body' });
+
+ // linking directly to tabs
+ $(function(){
+ var hash = window.location.hash;
+ $('ul.nav a[href="' + hash + '"]').tab('show');
+
+ $('.nav-tabs a').click(function () {
+ $(this).tab('show');
+ $('body').scrollTop();
+ });
+ });
+
+ // toggle for long content (variables, python stack trace, etc)
+ $('.full, .full-hide').hide();
+ $('.full-show').click(function(){
+ $('.full').slideDown(function(){
+ $('.full-hide').show();
+ });
+ $(this).hide();
+ });
+ $('.full-hide').click(function(){
+ $(this).hide();
+ $('.full').slideUp(function(){
+ $('.full-show').show();
+ });
+ });
+
+ //toggle the errors and warnings sections
+ $('.show-errors').click(function() {
+ $('#collapse-errors').addClass('in');
+ });
+ $('.toggle-errors').click(function() {
+ $('#collapse-errors').toggleClass('in');
+ });
+ $('.show-warnings').click(function() {
+ $('#collapse-warnings').addClass('in');
+ });
+ $('.toggle-warnings').click(function() {
+ $('#collapse-warnings').toggleClass('in');
+ });
+ $('.show-exceptions').click(function() {
+ $('#collapse-exceptions').addClass('in');
+ });
+ $('.toggle-exceptions').click(function() {
+ $('#collapse-exceptions').toggleClass('in');
+ });
+
+ //show warnings section when requested from the previous page
+ if (location.href.search('#warnings') > -1) {
+ $('#collapse-warnings').addClass('in');
+ }
+
+ function check_for_duplicate_ids () {
+ /* warn about duplicate element ids */
+ var ids = {};
+ $("[id]").each(function() {
+ if (this.id && ids[this.id]) {
+ console.warn('Duplicate element id #'+this.id);
+ }
+ ids[this.id] = true;
+ });
+ }
+
+ if (libtoaster.debug) {
+ check_for_duplicate_ids();
+ } else {
+ /* Debug is false so supress warnings by overriding the functions */
+ window.console.warn = function () {};
+ window.console.error = function () {};
+ }
+});
diff --git a/bitbake/lib/toaster/toastergui/static/js/machines.js b/bitbake/lib/toaster/toastergui/static/js/machines.js
new file mode 100644
index 0000000000..973a037be7
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/machines.js
@@ -0,0 +1,97 @@
+"use strict"
+
+function machinesPageInit (ctx) {
+
+
+ function setLayerInCurrentPrj(addLayerBtn, depsList){
+ var alertMsg = $("#alert-msg");
+
+ $(".select-or-add").each(function(){
+ /* If we have added a layer it may also enable other machines so search
+ * for other machines that have that layer and enable them */
+ var selectMachineBtn = $(this).children(".select-machine-btn");
+ var otherAddLayerBtns = $(this).children(".add-layer");
+
+ if (addLayerBtn.data('layer-version-id') == selectMachineBtn.data('layer-version-id')) {
+ otherAddLayerBtns.fadeOut(function(){
+ selectMachineBtn.fadeIn();
+ });
+ }
+ });
+
+ /* Reset alert message */
+ alertMsg.text("");
+
+ /* If we have added layer dependencies */
+ if (depsList) {
+ alertMsg.append("You have added <strong>"+(depsList.length+1)+"</strong> layers to <a id=\"project-affected-name\"></a>: <span id=\"layer-affected-name\"></span> and its dependencies ");
+
+ /* Build the layer deps list */
+ depsList.map(function(layer, i){
+ var link = $("<a></a>");
+
+ link.attr("href", layer.layerdetailurl);
+ link.text(layer.name);
+ link.tooltip({title: layer.tooltip});
+
+ if (i != 0)
+ alertMsg.append(", ");
+
+ alertMsg.append(link);
+ });
+ } else {
+ alertMsg.append("You have added <strong>1</strong> layer to <a id=\"project-affected-name\"></a>: <strong id=\"layer-affected-name\"></strong>");
+ }
+
+ var layerName = addLayerBtn.data('layer-name');
+ alertMsg.children("#layer-affected-name").text(layerName);
+ alertMsg.children("#project-affected-name").text(ctx.projectName).attr('href', ctx.projectPageUrl);
+
+ $("#alert-area").show();
+ }
+
+ $("#dismiss-alert").click(function(){ $(this).parent().hide() });
+
+ /* Add or remove this layer from the project */
+ $(".add-layer").click(function() {
+ var btn = $(this);
+ /* If adding get the deps for this layer */
+ var layer = {
+ id : $(this).data('layer-version-id'),
+ name : $(this).data('layer-name'),
+ };
+
+ libtoaster.getLayerDepsForProject(ctx.xhrDataTypeaheadUrl, ctx.projectId, layer.id, function (data) {
+ /* got result for dependencies */
+ if (data.list.length == 0){
+ var editData = { layerAdd : layer.id };
+ libtoaster.editProject(ctx.xhrEditProjectUrl, ctx.projectId, editData,
+ function() {
+ setLayerInCurrentPrj(btn);
+ });
+ return;
+ } else {
+ /* The add deps will include this layer so no need to add it
+ * separately.
+ */
+ show_layer_deps_modal(ctx.projectId, layer, data.list, null, null, true, function () {
+ /* Success add deps and layer */
+ setLayerInCurrentPrj(btn, data.list);
+ });
+ }
+ }, null);
+ });
+
+ $(".select-machine-btn").click(function(){
+ var data = { machineName : $(this).data('machine-name') };
+ libtoaster.editProject(ctx.xhrEditProjectUrl, ctx.projectId, data,
+ function (){
+ window.location.replace(ctx.projectPageUrl+"#/machineselected");
+ }, null);
+ });
+
+ $("#show-all-btn").click(function(){
+ $("#search").val("")
+ $("#searchform").submit();
+ });
+}
diff --git a/bitbake/lib/toaster/toastergui/static/js/main.js b/bitbake/lib/toaster/toastergui/static/js/main.js
deleted file mode 100644
index eef6b468f4..0000000000
--- a/bitbake/lib/toaster/toastergui/static/js/main.js
+++ /dev/null
@@ -1,111 +0,0 @@
-$(document).ready(function() {
-
- /*
- * PrettyPrint plugin.
- *
- */
- // Init
- prettyPrint();
-
- // Prevent invalid links from jumping page scroll
- $('a[href=#]').click(function() {
- return false;
- });
-
-
- /* Belen's additions */
-
- // turn Edit columns dropdown into a multiselect menu
- $('.dropdown-menu input, .dropdown-menu label').click(function(e) {
- e.stopPropagation();
- });
-
- // enable popovers in any table cells that contain an anchor with the
- // .btn class applied, and make sure popovers work on click, are mutually
- // exclusive and they close when your click outside their area
-
- $('html').click(function(e){
- $('td > a.btn').popover('hide');
- });
-
- $('td > a.btn').popover({
- html:true,
- placement:'left',
- container:'body',
- trigger:'manual'
- }).click(function(e){
- $('td > a.btn').not(this).popover('hide');
- // ideally we would use 'toggle' here
- // but it seems buggy in our Bootstrap version
- $(this).popover('show');
- e.stopPropagation();
- });
-
- // enable tooltips for applied filters
- $('th a.btn-primary').tooltip({container:'body', html:true, placement:'bottom', delay:{hide:1500}});
-
- // hide applied filter tooltip when you click on the filter button
- $('th a.btn-primary').click(function () {
- $('.tooltip').hide();
- });
-
- // enable help information tooltip
- $(".get-help").tooltip({container:'body', html:true, delay:{show:300}});
-
- // show help bubble only on hover inside tables
- $(".hover-help").css("visibility","hidden");
- $("th, td").hover(function () {
- $(this).find(".hover-help").css("visibility","visible");
- });
- $("th, td").mouseleave(function () {
- $(this).find(".hover-help").css("visibility","hidden");
- });
-
- // show task type and outcome in task details pages
- $(".task-info").tooltip({ container: 'body', html: true, delay: {show: 200}, placement: 'right' });
-
- // linking directly to tabs
- $(function(){
- var hash = window.location.hash;
- hash && $('ul.nav a[href="' + hash + '"]').tab('show');
-
- $('.nav-tabs a').click(function (e) {
- $(this).tab('show');
- $('body').scrollTop();
- });
- });
-
- // toggle for long content (variables, python stack trace, etc)
- $('.full, .full-hide').hide();
- $('.full-show').click(function(){
- $('.full').slideDown(function(){
- $('.full-hide').show();
- });
- $(this).hide();
- });
- $('.full-hide').click(function(){
- $(this).hide();
- $('.full').slideUp(function(){
- $('.full-show').show();
- });
- });
-
- //toggle the errors and warnings sections
- $('.show-errors').click(function() {
- $('#collapse-errors').addClass('in');
- });
- $('.toggle-errors').click(function() {
- $('#collapse-errors').toggleClass('in');
- });
- $('.show-warnings').click(function() {
- $('#collapse-warnings').addClass('in');
- });
- $('.toggle-warnings').click(function() {
- $('#collapse-warnings').toggleClass('in');
- });
- //show warnings section when requested from the previous page
- if (location.href.search('#warnings') > -1) {
- $('#collapse-warnings').addClass('in');
- }
-
-});
diff --git a/bitbake/lib/toaster/toastergui/static/js/projectapp.js b/bitbake/lib/toaster/toastergui/static/js/projectapp.js
new file mode 100644
index 0000000000..0b6e0126dd
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/projectapp.js
@@ -0,0 +1,882 @@
+// vim: set tabstop=4 expandtab ai:
+// BitBake Toaster Implementation
+//
+// Copyright (C) 2013 Intel Corporation
+//
+// 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.
+
+angular_formpost = function($httpProvider) {
+ // Use x-www-form-urlencoded Content-Type
+ // By Ezekiel Victor, http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/, no license, with attribution
+ $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
+
+ /**
+ * The workhorse; converts an object to x-www-form-urlencoded serialization.
+ * @param {Object} obj
+ * @return {String}
+ */
+ var param = function(obj) {
+ var query = '', name, value, fullSubName, subName, subValue, innerObj, i;
+
+ for(name in obj) {
+ value = obj[name];
+
+ if(value instanceof Array) {
+ for(i=0; i<value.length; ++i) {
+ subValue = value[i];
+ fullSubName = name + '[' + i + ']';
+ innerObj = {};
+ innerObj[fullSubName] = subValue;
+ query += param(innerObj) + '&';
+ }
+ }
+ else if(value instanceof Object) {
+ for(subName in value) {
+ subValue = value[subName];
+ fullSubName = name + '[' + subName + ']';
+ innerObj = {};
+ innerObj[fullSubName] = subValue;
+ query += param(innerObj) + '&';
+ }
+ }
+ else if(value !== undefined && value !== null)
+ query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
+ }
+
+ return query.length ? query.substr(0, query.length - 1) : query;
+ };
+
+ // Override $http service's default transformRequest
+ $httpProvider.defaults.transformRequest = [function(data) {
+ return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;
+ }];
+};
+
+
+/**
+ * Helper to execute callback on elements from array differences; useful for incremental UI updating.
+ * @param {Array} oldArray
+ * @param {Array} newArray
+ * @param {function} compareElements
+ * @param {function} onAdded
+ * @param {function} onDeleted
+ *
+ * no return
+ */
+function _diffArrays(existingArray, newArray, compareElements, onAdded, onDeleted ) {
+ var added = [];
+ var removed = [];
+ newArray.forEach( function( newElement ) {
+ var existingIndex = existingArray.findIndex(function ( existingElement ) {
+ return compareElements(newElement, existingElement);
+ });
+ if (existingIndex < 0 && onAdded) { added.push(newElement); }
+ });
+ existingArray.forEach( function( existingElement ) {
+ var newIndex = newArray.findIndex(function ( newElement ) {
+ return compareElements(newElement, existingElement);
+ });
+ if (newIndex < 0 && onDeleted) { removed.push(existingElement); }
+ });
+
+ if (onAdded) {
+ added.map(onAdded);
+ }
+
+ if (onDeleted) {
+ removed.map(onDeleted);
+ }
+
+}
+
+// add Array findIndex if not there
+
+if (Array.prototype.findIndex === undefined) {
+ Array.prototype.findIndex = function (callback) {
+ var i = 0;
+ for ( i = 0; i < this.length; i++ )
+ if (callback(this[i], i, this)) return i;
+ return -1;
+ };
+}
+
+var projectApp = angular.module('project', ['ngCookies', 'ngAnimate', 'ui.bootstrap', 'ngRoute', 'ngSanitize'], angular_formpost);
+
+// modify the template tag markers to prevent conflicts with Django
+projectApp.config(function($interpolateProvider) {
+ $interpolateProvider.startSymbol("{[");
+ $interpolateProvider.endSymbol("]}");
+});
+
+
+// add time interval to HH:mm filter
+projectApp.filter('timediff', function() {
+ return function(input) {
+ function pad(j) {
+ if (parseInt(j) < 10) {return "0" + j;}
+ return j;
+ }
+ seconds = parseInt(input);
+ minutes = Math.floor(seconds / 60);
+ seconds = seconds - minutes * 60;
+ hours = Math.floor(seconds / 3600);
+ seconds = seconds - hours * 3600;
+ return pad(hours) + ":" + pad(minutes) + ":" + pad(seconds);
+ };
+});
+
+// add "time to future" eta that computes time from now to a point in the future
+projectApp.filter('toeta', function() {
+ return function(input) {
+ var crtmiliseconds = new Date().getTime();
+ diff = (parseInt(input) - crtmiliseconds ) / 1000;
+ console.log("Debug: future time ", input, "crt time", crtmiliseconds, ":", diff);
+ return diff < 0 ? 300 : diff;
+ };
+});
+
+/**
+ * main controller for the project page
+ */
+
+projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $location, $cookies, $cookieStore, $q, $sce, $anchorScroll, $animate, $sanitize) {
+
+ /**
+ * Retrieves text suggestions for text-edit drop down autocomplete boxes
+ */
+
+ $scope.getAutocompleteSuggestions = function(type, currentValue) {
+ var deffered = $q.defer();
+
+ $http({method:"GET", url: $scope.urls.xhr_datatypeahead, params : { type: type, value: currentValue}})
+ .success(function (_data) {
+ if (_data.error != "ok") {
+ console.warn(_data.error);
+ deffered.reject(_data.error);
+ }
+ deffered.resolve(_data.list);
+ });
+
+ return deffered.promise;
+ };
+
+ var inXHRcall = false;
+
+ /**
+ * XHR call wrapper that automatically handles errors and auto-updates the page content to reflect project state on server side.
+ */
+ $scope._makeXHRCall = function(callparams) {
+ if (inXHRcall) {
+ if (callparams.data === undefined) {
+ // we simply skip the data refresh calls
+ console.warn("TRC1: race on XHR, aborted");
+ return;
+ } else {
+ // we return a promise that we'll solve by reissuing the command later
+ var delayed = $q.defer();
+ console.warn("TRC2: race on XHR, delayed");
+ $interval(function () {$scope._makeXHRCall(callparams).then(function (d) { delayed.resolve(d); });}, 100, 1);
+
+ return delayed.promise;
+ }
+
+ }
+ var deffered = $q.defer();
+
+ if (undefined === callparams.headers) { callparams.headers = {}; }
+ callparams.headers['X-CSRFToken'] = $cookies.csrftoken;
+
+ $http(callparams).success(function(_data, _status, _headers, _config) {
+ if (_data.error != "ok") {
+ console.warn("Failed XHR request (" + _status + "): " + _data.error);
+ console.error("Failed XHR request: ", _data, _status, _headers, _config);
+ // stop refreshing hte page
+ $interval.cancel($scope.pollHandle);
+ deffered.reject(_data.error);
+ }
+ else {
+ if (_data.layers !== undefined) {
+
+ var addedLayers = [];
+ var deletedLayers = [];
+
+ // step 1 - delete entries not found
+ $scope.layers.forEach(function (elem) {
+ if (-1 == _data.layers.findIndex(function (elemX) { return elemX.id == elem.id && elemX.name == elem.name; })) {
+ deletedLayers.push(elem);
+ }
+ });
+ deletedLayers.forEach(function (elem) {
+ $scope.layers.splice($scope.layers.indexOf(elem),1);
+ });
+ // step 2 - merge new entries
+ _data.layers.forEach(function (elem) {
+ var found = false;
+ var i;
+ for (i = 0 ; i < $scope.layers.length; i ++) {
+ if ($scope.layers[i].orderid < elem.orderid) continue;
+ if ($scope.layers[i].orderid == elem.orderid) {
+ found = true; break;
+ }
+ if ($scope.layers[i].orderid > elem.orderid) break;
+ }
+ if (!found) {
+ $scope.layers.splice(i, 0, elem);
+ addedLayers.push(elem);
+ }
+ });
+
+ // step 3 - display alerts.
+ if (addedLayers.length > 0) {
+ $scope.displayAlert($scope.zone2alerts,
+ "You have added <b>"+addedLayers.length+"</b> layer" + ((addedLayers.length>1)?"s: ":": ") + addedLayers.map(function (e) { return "<a href=\""+e.layerdetailurl+"\">"+e.name+"</a>"; }).join(", "),
+ "alert-info");
+ // invalidate error layer data based on current layers
+ $scope.layersForTargets = {};
+ }
+ if (deletedLayers.length > 0) {
+ $scope.displayAlert($scope.zone2alerts, "You have deleted <b>"+deletedLayers.length+"</b> layer" + ((deletedLayers.length>1)?"s: ":": ") + deletedLayers.map(function (e) { return "<a href=\""+e.layerdetailurl+"\">"+e.name+"</a>"; }).join(", "), "alert-info");
+ // invalidate error layer data based on current layers
+ $scope.layersForTargets = {};
+ }
+
+ }
+
+
+ if (_data.builds !== undefined) {
+ var toDelete = [];
+ // step 1 - delete entries not found
+ $scope.builds.forEach(function (elem) {
+ if (-1 == _data.builds.findIndex(function (elemX) { return elemX.id == elem.id && elemX.status == elem.status; })) {
+ toDelete.push(elem);
+ }
+ });
+ toDelete.forEach(function (elem) {
+ $scope.builds.splice($scope.builds.indexOf(elem),1);
+ });
+ // step 2 - merge new entries
+ _data.builds.forEach(function (elem) {
+ var found = false;
+ var i = 0;
+ for (i = 0 ; i < $scope.builds.length; i ++) {
+ if ($scope.builds[i].id > elem.id) continue;
+ if ($scope.builds[i].id == elem.id) {
+ found=true;
+ // do deep data copy
+ for (var attr in elem) {
+ $scope.builds[i][attr] = elem[attr];
+ }
+ break;
+ }
+ if ($scope.builds[i].id < elem.id) break;
+ }
+ if (!found) {
+ $scope.builds.splice(i, 0, elem);
+ }
+ });
+ // step 3 - merge "Canceled" builds
+ $scope.canceledBuilds.forEach(function (elem) {
+ // mock the build object
+ var found = false;
+ var i = 0;
+ for (i = 0; i < $scope.builds.length; i ++) {
+ if ($scope.builds[i].id > elem.id) continue;
+ if ($scope.builds[i].id == elem.id) { found=true; break; }
+ if ($scope.builds[i].id < elem.id) break;
+ }
+ if (!found) {
+ $scope.builds.splice(i, 0, elem);
+ }
+ });
+
+
+ $scope.fetchLayersForTargets();
+ }
+ if (_data.targets !== undefined) {
+ $scope.targets = _data.targets;
+ }
+ if (_data.machine !== undefined) {
+ $scope.machine = _data.machine;
+ }
+ if (_data.user !== undefined) {
+ $scope.user = _data.user;
+ }
+
+ if (_data.prj !== undefined) {
+ $scope.project = _data.prj;
+
+ // update breadcrumb, outside the controller
+ $('#project_name').text($scope.project.name);
+ }
+
+ $scope.validateData();
+ inXHRcall = false;
+ deffered.resolve(_data);
+ }
+ }).error(function(_data, _status, _headers, _config) {
+ if (_status === 0) {
+ // the server has gone away
+ // alert("The server is not responding. The application will terminate now");
+ $interval.cancel($scope.pollHandle);
+ }
+ else {
+ console.error("Failed HTTP XHR request: ", _data, _status, _headers, _config);
+ inXHRcall = false;
+ deffered.reject(_data.error);
+ }
+ });
+
+ return deffered.promise;
+ };
+
+ $scope.layeralert = undefined;
+ /**
+ * Verifies and shows user alerts on invalid project data
+ */
+
+ $scope.validateData = function () {
+ if ($scope.layers.length === 0) {
+ $scope.layeralert = $scope.displayAlert($scope.zone1alerts, "You need to add some layers to this project. <a href=\""+$scope.urls.layers+"\">View all layers available in Toaster</a> or <a href=\""+$scope.urls.importlayer+"\">import a layer</a>");
+ } else {
+ if ($scope.layeralert !== undefined) {
+ $scope.layeralert.close();
+ $scope.layeralert = undefined;
+ }
+ }
+ };
+
+ $scope.buildExistingTarget = function(targets) {
+ $scope.buildTargetList(targets.map(function(v){return v.target;}));
+ };
+
+ $scope.buildTargetList = function(targetlist) {
+ var oldTargetName = $scope.targetName;
+ $scope.targetName = targetlist.join(' ');
+ $scope.buildNamedTarget();
+ $scope.targetName = oldTargetName;
+ };
+
+ $scope.buildNamedTarget = function() {
+ if ($scope.targetName === undefined && $scope.targetName1 === undefined){
+ console.warn("No target defined, please type in a target name");
+ return;
+ }
+
+ // this writes the $scope.safeTargetName variable
+ $scope.sanitizeTargetName();
+
+ $scope._makeXHRCall({
+ method: "POST", url: $scope.urls.xhr_build,
+ data : {
+ targets: $scope.safeTargetName,
+ }
+ }).then(function (data) {
+ // make sure nobody re-uses the current $safeTargetName
+ delete $scope.safeTargetName;
+ console.warn("TRC3: received ", data);
+ $scope.targetName = undefined;
+ $scope.targetName1 = undefined;
+ $location.hash('buildslist');
+ // call $anchorScroll()
+ $anchorScroll();
+ });
+ };
+
+ $scope.sanitizeTargetName = function() {
+ $scope.safeTargetName = undefined;
+ if (undefined === $scope.targetName) $scope.safeTargetName = $scope.targetName1;
+ if (undefined === $scope.targetName1) $scope.safeTargetName = $scope.targetName;
+
+ if (undefined === $scope.safeTargetName) return;
+
+ $scope.safeTargetName = $scope.safeTargetName.replace(/\[.*\]/, '').trim();
+ };
+
+ $scope.buildCancel = function(build) {
+ $scope._makeXHRCall({
+ method: "POST", url: $scope.urls.xhr_build,
+ data: {
+ buildCancel: build.id,
+ }
+ }).then( function () {
+ build.status = "deleted";
+ $scope.canceledBuilds.push(build);
+ });
+ };
+
+ $scope.buildDelete = function(build) {
+ $scope.canceledBuilds.splice($scope.canceledBuilds.indexOf(build), 1);
+ };
+
+
+ $scope.onLayerSelect = function (item) {
+ $scope.layerAddId = item.id;
+ };
+
+
+ $scope.layerAddById = function (id) {
+ $scope.layerAddId = id;
+ $scope.layerAdd();
+ };
+
+ $scope.layerAdd = function() {
+
+ $http({method:"GET", url: $scope.urls.xhr_datatypeahead, params : { type: "layerdeps", value: $scope.layerAddId }})
+ .success(function (_data) {
+ if (_data.error != "ok") {
+ console.warn(_data.error);
+ } else {
+ if (_data.list.length > 0) {
+ // activate modal
+ var modalInstance = $modal.open({
+ templateUrl: 'dependencies_modal',
+ controller: function ($scope, $modalInstance, items, layerAddName) {
+ $scope.items = items;
+ $scope.layerAddName = layerAddName;
+ $scope.selectedItems = (function () {
+ s = {};
+ for (var i = 0; i < items.length; i++)
+ { s[items[i].id] = true; }
+ return s;
+ })();
+
+ $scope.ok = function() {
+ console.warn("TRC4: scope selected is ", $scope.selectedItems);
+ $modalInstance.close(Object.keys($scope.selectedItems).filter(function (e) { return $scope.selectedItems[e];}));
+ };
+
+ $scope.cancel = function() {
+ $modalInstance.dismiss('cancel');
+ };
+
+ $scope.update = function() {
+ console.warn("TRC5: updated ", $scope.selectedItems);
+ };
+ },
+ resolve: {
+ items: function () {
+ return _data.list;
+ },
+ layerAddName: function () {
+ return $scope.layerAddName;
+ },
+ }
+ });
+
+ modalInstance.result.then(function (selectedArray) {
+ selectedArray.push($scope.layerAddId);
+ console.warn("TRC6: selected", selectedArray);
+
+ $scope._makeXHRCall({
+ method: "POST", url: $scope.urls.xhr_edit,
+ data: {
+ layerAdd: selectedArray.join(","),
+ }
+ }).then(function () {
+ $scope.adjustMostBuiltItems(selectedArray.length);
+ $scope.layerAddName = undefined;
+ });
+ });
+ }
+ else {
+ $scope.adjustMostBuiltItems(1);
+ $scope._makeXHRCall({
+ method: "POST", url: $scope.urls.xhr_edit,
+ data: {
+ layerAdd: $scope.layerAddId,
+ }
+ }).then(function () {
+ $scope.layerAddName = undefined;
+ });
+ }
+ }
+ });
+ };
+
+ $scope.layerDel = function(id) {
+ $scope.adjustMostBuiltItems(-1);
+ $scope._makeXHRCall({
+ method: "POST", url: $scope.urls.xhr_edit,
+ data: {
+ layerDel: id,
+ }
+ });
+ };
+
+ $scope.adjustMostBuiltItems = function(listDelta) {
+ $scope.layerCount += listDelta;
+ $scope.mutedtargets = ($scope.layerCount == 0 ? "muted" : "");
+ };
+
+/*
+*/
+
+
+ /**
+ * Verifies if a project settings change would trigger layer updates. If user confirmation is needed,
+ * a modal dialog will prompt the user to ack the changes. If not, the editProjectSettings() function is called directly.
+ *
+ * Only "versionlayers" change for is supported (and hardcoded) for now.
+ */
+
+ $scope.testProjectSettingsChange = function(elementid) {
+ if (elementid != '#change-project-version') throw "Not implemented";
+
+ $http({method:"GET", url: $scope.urls.xhr_datatypeahead, params : { type: "versionlayers", value: $scope.projectVersion }}).
+ success(function (_data) {
+ if (_data.error != "ok") {
+ alert (_data.error);
+ }
+ else {
+ if (_data.list.length > 0) {
+ // activate modal
+ var modalInstance = $modal.open({
+ templateUrl: 'change_version_modal',
+ controller: function ($scope, $modalInstance, items, releaseName, releaseDescription) {
+ $scope.items = items;
+ $scope.releaseName = releaseName;
+ $scope.releaseDescription = releaseDescription;
+
+ $scope.ok = function() {
+ $modalInstance.close();
+ };
+
+ $scope.cancel = function() {
+ $modalInstance.dismiss('cancel');
+ };
+
+ },
+ resolve: {
+ items: function () {
+ return _data.list;
+ },
+ releaseName: function () {
+ return $scope.releases.filter(function (e) { if (e.id == $scope.projectVersion) return e;})[0].name;
+ },
+ releaseDescription: function () {
+ return $scope.releases.filter(function (e) { if (e.id == $scope.projectVersion) return e;})[0].description;
+ },
+ }
+ });
+
+ modalInstance.result.then(function () { $scope.editProjectSettings(elementid); });
+ } else {
+ $scope.editProjectSettings(elementid);
+ }
+ }
+ });
+ };
+
+ /**
+ * Performs changes to project settings, and updates the user interface accordingly.
+ */
+
+ $scope.editProjectSettings = function(elementid) {
+ var data = {};
+ console.warn("TRC7: editProjectSettings with ", elementid);
+ var alertText;
+ var alertZone;
+ var oldLayers = [];
+
+ switch(elementid) {
+ case '#select-machine':
+ alertText = "You have changed the machine to: <strong>" + $scope.machineName + "</strong>";
+ alertZone = $scope.zone2alerts;
+ data.machineName = $scope.machineName;
+ break;
+ case '#change-project-name':
+ data.projectName = $scope.projectName;
+ alertText = "You have changed the project name to: <strong>" + $scope.projectName + "</strong>";
+ alertZone = $scope.zone3alerts;
+ break;
+ case '#change-project-version':
+ data.projectVersion = $scope.projectVersion;
+ alertText = "You have changed the release to: ";
+ alertZone = $scope.zone3alerts;
+ // save old layers
+ oldLayers = $scope.layers.slice(0);
+ break;
+ default:
+ throw "FIXME: implement conversion for element " + elementid;
+ }
+
+ $scope._makeXHRCall({
+ method: "POST", url: $scope.urls.xhr_edit, data: data,
+ }).then( function (_data) {
+ $scope.toggle(elementid);
+ if (data.projectVersion !== undefined) {
+ alertText += "<strong>" + $scope.project.release.desc + "</strong>. ";
+ }
+ if (elementid == '#change-project-version') {
+ $scope.layersForTargets = {}; // invalidate error layers for the targets, since layers changed
+
+ // requirement https://bugzilla.yoctoproject.org/attachment.cgi?id=2229, notification for changed version to include layers
+ $scope.zone2alerts.forEach(function (e) { e.close(); });
+
+
+ // warnings - this is executed AFTER the generic XHRCall handling is done; at this point,
+ if (_data.layers !== undefined) {
+ // show added/deleted layer notifications; scope.layers is already updated by this point.
+ var addedLayers = [];
+ var deletedLayers = [];
+ _diffArrays( oldLayers, $scope.layers, function (e, f) { return e.id == f.id; },
+ function (e) {addedLayers.push(e); },
+ function (e) {deletedLayers.push(e); });
+
+ var hasDifferentLayers = (addedLayers.length || deletedLayers.length)
+ if (hasDifferentLayers) {
+ alertText += "This has caused the following changes in your project layers:<ul>";
+ }
+ // some of the deleted layers are actually replaced (changed) layers
+ var changedLayers = [];
+ deletedLayers.forEach(function (e) {
+ if ( -1 < addedLayers.findIndex(function (f) { return f.name == e.name; })) {
+ changedLayers.push(e);
+ }
+ });
+
+ changedLayers.forEach(function (e) {
+ deletedLayers.splice(deletedLayers.indexOf(e), 1);
+ });
+
+ if (addedLayers.length > 0) {
+ alertText += "<li><strong>"+addedLayers.length+"</strong> layer" + ((addedLayers.length>1)?"s":"") + " changed to the <strong> " + $scope.project.release.name + " </strong> branch: " + addedLayers.map(function (e) { return "<a href=\""+e.layerdetailurl+"\">"+e.name+"</a>"; }).join(", ") + "</li>";
+ }
+ if (deletedLayers.length > 0) {
+ alertText += "<li><strong>"+deletedLayers.length+"</strong> layer" + ((deletedLayers.length>1)?"s":"") + " deleted: " + deletedLayers.map(function (e) { return "<a href=\""+e.layerdetailurl+"\">"+e.name+"</a>"; }).join(", ") + "</li>";
+ }
+
+ }
+ if (hasDifferentLayers) {
+ alertText += "</ul>";
+ }
+ }
+ $scope.displayAlert(alertZone, alertText, "alert-info");
+ });
+ };
+
+
+ /**
+ * Extracts a command passed through the local path in location, and executes/updates UI based on the command
+ */
+
+ $scope.updateDisplayWithCommands = function() {
+
+ function _cmdExecuteWithParam(param, f) {
+ var cmd = $location.path();
+ if (cmd.indexOf(param) === 0) {
+ if (cmd.indexOf("=") > -1) {
+ var parameter = cmd.split("=", 2)[1];
+ if (parameter !== undefined && parameter.length > 0) {
+ f(parameter);
+ }
+ } else {
+ f();
+ }
+ }
+ }
+
+ _cmdExecuteWithParam("/newproject", function () {
+ $scope.displayAlert($scope.zone1alerts,
+ "Your project <strong>" + $scope.project.name +
+ "</strong> has been created. You can now <a href=\""+ $scope.urls.layers +
+ "\">add layers</a> and <a href=\""+ $scope.urls.targets +
+ "\">select targets</a> you want to build.", "alert-success");
+ });
+
+ _cmdExecuteWithParam("/machineselected", function () {
+ $scope.displayAlert($scope.zone2alerts, "You have changed the machine to: <strong>" + $scope.machine.name + "</strong>", "alert-info");
+ var machineDistro = angular.element("#machine-distro");
+
+ angular.element("html, body").animate({ scrollTop: machineDistro.position().top }, 700).promise().done(function() {
+ $animate.addClass(machineDistro, "machines-highlight");
+ });
+ });
+
+ _cmdExecuteWithParam("/layerimported", function () {
+ var imported = $cookieStore.get("layer-imported-alert");
+ var text;
+
+ if (!imported)
+ return;
+
+ if (imported.deps_added.length === 0) {
+ text = "You have imported <strong><a href=\""+$scope.urls.layer+
+ imported.imported_layer.id+"\">"+imported.imported_layer.name+
+ "</a></strong> and added it to your project.";
+ } else {
+ var links = "<a href=\""+$scope.urls.layer+
+ imported.imported_layer.id+"\">"+imported.imported_layer.name+
+ "</a>, ";
+
+ imported.deps_added.map (function(item, index){
+ links +="<a href=\""+$scope.urls.layer+item.id+"\" >"+item.name+
+ "</a>";
+ /*If we're at the last element we don't want the trailing comma */
+ if (imported.deps_added[index+1] !== undefined)
+ links += ", ";
+ });
+
+ /* Length + 1 here to do deps + the imported layer */
+ text = "You have imported <strong><a href=\""+$scope.urls.layer+
+ imported.imported_layer.id+"\">"+imported.imported_layer.name+
+ "</a></strong> and added <strong>"+(imported.deps_added.length+1)+
+ "</strong> layers to your project: <strong>"+links+"</strong>";
+ }
+
+ $scope.displayAlert($scope.zone2alerts, text, "alert-info");
+ // This doesn't work
+ $cookieStore.remove("layer-imported-alert");
+ //use jquery plugin instead
+ $.removeCookie("layer-imported-alert", { path: "/"});
+ });
+
+ _cmdExecuteWithParam("/targetbuild=", function (targets) {
+ var oldTargetName = $scope.targetName;
+ $scope.targetName = targets.split(",").join(" ");
+ $scope.buildNamedTarget();
+ $scope.targetName = oldTargetName;
+ $location.path('');
+ });
+
+ _cmdExecuteWithParam("/machineselect=", function (machine) {
+ $scope.machineName = machine;
+ $scope.toggle('#select-machine');
+ });
+
+
+ _cmdExecuteWithParam("/layeradd=", function (layer) {
+ angular.forEach(layer.split(","), function (l) {
+ $scope.layerAddId = l;
+ $scope.layerAdd();
+ });
+ });
+ };
+
+ /**
+ * Utility function to display an alert to the user
+ */
+
+ $scope.displayAlert = function(zone, text, type) {
+ if (zone.maxid === undefined) { zone.maxid = 0; }
+ var crtid = zone.maxid ++;
+ angular.forEach(zone, function (o) { o.close(); });
+ o = {
+ id: crtid, text: text, type: type,
+ close: function() {
+ zone.splice((function(id) {
+ for (var i = 0; i < zone.length; i++)
+ if (id == zone[i].id)
+ { return i; }
+ return undefined;
+ }) (crtid), 1);
+ },
+ };
+ zone.push(o);
+ return o;
+ };
+
+ /**
+ * Toggles display items between label and input box (the edit pencil icon) on selected settings in project page
+ */
+
+ $scope.toggle = function(id) {
+ $scope.projectName = $scope.project.name;
+ $scope.projectVersion = $scope.project.release.id;
+ $scope.machineName = $scope.machine.name;
+
+ angular.element(id).toggle();
+ angular.element(id+"-opposite").toggle();
+ };
+
+ /**
+ * Functionality related to "Most build targets"
+ */
+
+ $scope.enableBuildSelectedTargets = function () {
+ var keys = Object.keys($scope.mostBuiltTargets);
+ keys = keys.filter(function (e) { if ($scope.mostBuiltTargets[e]) return e; });
+ return keys.length === 0;
+ };
+
+ $scope.disableBuildCheckbox = function(t) {
+ if ( $scope.layerCount == 0 ) {
+ $scope.mostBuiltTargets[t] = 0;
+ return true;
+ };
+ return false;
+ }
+
+ $scope.buildSelectedTargets = function () {
+ var keys = Object.keys($scope.mostBuiltTargets);
+ keys = keys.filter(function (e) { if ($scope.mostBuiltTargets[e]) return e; });
+
+ $scope.buildTargetList(keys);
+ for (var i = 0; i < keys.length; i++)
+ {
+ $scope.mostBuiltTargets[keys[i]] = 0;
+ }
+ };
+
+ /**
+ * Helper function to deal with error string recognition and manipulation
+ */
+
+ $scope.getTargetNameFromErrorMsg = function (msg) {
+ return msg.split(" ").splice(2).map(function (v) { return v.replace(/'/g, ''); });
+ };
+
+ /**
+ * Utility function to retrieve which layers can be added to the project if the target was not
+ * provided by any of the existing project layers
+ */
+
+ $scope.fetchLayersForTargets = function () {
+ $scope.builds.forEach(function (buildrequest) {
+ buildrequest.errors.forEach(function (error) {
+ if (error.msg.indexOf("Nothin") === 0) {
+ $scope.getTargetNameFromErrorMsg(error.msg).forEach(function (target) {
+ if ($scope.layersForTargets[target] === undefined)
+ $scope.getAutocompleteSuggestions("layers4target", target).then( function (list) {
+ $scope.layersForTargets[target] = list;
+ });
+ });
+ }
+ });
+ });
+ };
+
+
+ /**
+ * Page init code - just init variables and set the automated refresh
+ */
+
+ $scope.init = function() {
+ $scope.canceledBuilds = [];
+ $scope.layersForTargets = {};
+ $scope.fetchLayersForTargets();
+ $scope.pollHandle = $interval(function () { $scope._makeXHRCall({method: "GET", url: $scope.urls.xhr_edit, data: undefined});}, 2000, 0);
+ };
+
+});
+
+
+var _testing_scope;
+
+function test_set_alert(text) {
+ _testing_scope = angular.element("div#main").scope();
+ _testing_scope.displayAlert(_testing_scope.zone3alerts, text);
+ console.warn("TRC8: zone3alerts", _testing_scope.zone3alerts);
+ _testing_scope.$digest();
+}
diff --git a/bitbake/lib/toaster/toastergui/static/js/ui-bootstrap-tpls-0.11.0.js b/bitbake/lib/toaster/toastergui/static/js/ui-bootstrap-tpls-0.11.0.js
new file mode 100644
index 0000000000..fa6a861317
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/ui-bootstrap-tpls-0.11.0.js
@@ -0,0 +1,10 @@
+/*
+ * angular-ui-bootstrap
+ * http://angular-ui.github.io/bootstrap/
+
+ * Version: 0.11.0 - 2014-05-01
+ * License: MIT
+ */
+angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(a,b,c){function d(a){for(var b in a)if(void 0!==f.style[b])return a[b]}var e=function(d,f,g){g=g||{};var h=a.defer(),i=e[g.animation?"animationEndEventName":"transitionEndEventName"],j=function(){c.$apply(function(){d.unbind(i,j),h.resolve(d)})};return i&&d.bind(i,j),b(function(){angular.isString(f)?d.addClass(f):angular.isFunction(f)?f(d):angular.isObject(f)&&d.css(f),i||h.resolve(d)}),h.promise.cancel=function(){i&&d.unbind(i,j),h.reject("Transition cancelled")},h.promise},f=document.createElement("trans"),g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},h={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return e.transitionEndEventName=d(g),e.animationEndEventName=d(h),e}]),angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(a){return{link:function(b,c,d){function e(b){function d(){j===e&&(j=void 0)}var e=a(c,b);return j&&j.cancel(),j=e,e.then(d,d),e}function f(){k?(k=!1,g()):(c.removeClass("collapse").addClass("collapsing"),e({height:c[0].scrollHeight+"px"}).then(g))}function g(){c.removeClass("collapsing"),c.addClass("collapse in"),c.css({height:"auto"})}function h(){if(k)k=!1,i(),c.css({height:0});else{c.css({height:c[0].scrollHeight+"px"});{c[0].offsetWidth}c.removeClass("collapse in").addClass("collapsing"),e({height:0}).then(i)}}function i(){c.removeClass("collapsing"),c.addClass("collapse")}var j,k=!0;b.$watch(d.collapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on("$destroy",function(){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(b,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.$watch("isOpen",function(b){b&&d.closeOthers(a)}),a.toggleOpen=function(){a.isDisabled||(a.isOpen=!a.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(a,b,c,d,e){d.setHeading(e(a,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(a,b,c,d){a.$watch(function(){return d[c.accordionTransclude]},function(a){a&&(b.html(""),b.append(a))})}}}),angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(a,b){a.closeable="close"in b}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(a,b,c){b.addClass("ng-binding").data("$binding",c.bindHtmlUnsafe),a.$watch(c.bindHtmlUnsafe,function(a){b.html(a||"")})}}),angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(a){this.activeClass=a.activeClass||"active",this.toggleEvent=a.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(a,b,c,d){var e=d[0],f=d[1];f.$render=function(){b.toggleClass(e.activeClass,angular.equals(f.$modelValue,a.$eval(c.btnRadio)))},b.bind(e.toggleEvent,function(){var d=b.hasClass(e.activeClass);(!d||angular.isDefined(c.uncheckable))&&a.$apply(function(){f.$setViewValue(d?null:a.$eval(c.btnRadio)),f.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){var d=a.$eval(b);return angular.isDefined(d)?d:c}var h=d[0],i=d[1];i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.bind(h.toggleEvent,function(){a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition",function(a,b,c){function d(){e();var c=+a.interval;!isNaN(c)&&c>=0&&(g=b(f,c))}function e(){g&&(b.cancel(g),g=null)}function f(){h?(a.next(),d()):a.pause()}var g,h,i=this,j=i.slides=a.slides=[],k=-1;i.currentSlide=null;var l=!1;i.select=a.select=function(e,f){function g(){if(!l){if(i.currentSlide&&angular.isString(f)&&!a.noTransition&&e.$element){e.$element.addClass(f);{e.$element[0].offsetWidth}angular.forEach(j,function(a){angular.extend(a,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(e,{direction:f,active:!0,entering:!0}),angular.extend(i.currentSlide||{},{direction:f,leaving:!0}),a.$currentTransition=c(e.$element,{}),function(b,c){a.$currentTransition.then(function(){h(b,c)},function(){h(b,c)})}(e,i.currentSlide)}else h(e,i.currentSlide);i.currentSlide=e,k=m,d()}}function h(b,c){angular.extend(b,{direction:"",active:!0,leaving:!1,entering:!1}),angular.extend(c||{},{direction:"",active:!1,leaving:!1,entering:!1}),a.$currentTransition=null}var m=j.indexOf(e);void 0===f&&(f=m>k?"next":"prev"),e&&e!==i.currentSlide&&(a.$currentTransition?(a.$currentTransition.cancel(),b(g)):g())},a.$on("$destroy",function(){l=!0}),i.indexOfSlide=function(a){return j.indexOf(a)},a.next=function(){var b=(k+1)%j.length;return a.$currentTransition?void 0:i.select(j[b],"next")},a.prev=function(){var b=0>k-1?j.length-1:k-1;return a.$currentTransition?void 0:i.select(j[b],"prev")},a.isActive=function(a){return i.currentSlide===a},a.$watch("interval",d),a.$on("$destroy",e),a.play=function(){h||(h=!0,d())},a.pause=function(){a.noPause||(h=!1,e())},i.addSlide=function(b,c){b.$element=c,j.push(b),1===j.length||b.active?(i.select(j[j.length-1]),1==j.length&&a.play()):b.active=!1},i.removeSlide=function(a){var b=j.indexOf(a);j.splice(b,1),j.length>0&&a.active?i.select(b>=j.length?j[b-1]:j[b]):k>b&&k--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{active:"=?"},link:function(a,b,c,d){d.addSlide(a,b),a.$on("$destroy",function(){d.removeSlide(a)}),a.$watch("active",function(b){b&&d.select(a)})}}}),angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(a,b){function c(a,b,c){return 1===b&&c>28?29===c&&(a%4===0&&a%100!==0||a%400===0):3===b||5===b||8===b||10===b?31>c:!0}this.parsers={};var d={yyyy:{regex:"\\d{4}",apply:function(a){this.year=+a}},yy:{regex:"\\d{2}",apply:function(a){this.year=+a+2e3}},y:{regex:"\\d{1,4}",apply:function(a){this.year=+a}},MMMM:{regex:a.DATETIME_FORMATS.MONTH.join("|"),apply:function(b){this.month=a.DATETIME_FORMATS.MONTH.indexOf(b)}},MMM:{regex:a.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(b){this.month=a.DATETIME_FORMATS.SHORTMONTH.indexOf(b)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(a){this.month=a-1}},M:{regex:"[1-9]|1[0-2]",apply:function(a){this.month=a-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},EEEE:{regex:a.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:a.DATETIME_FORMATS.SHORTDAY.join("|")}};this.createParser=function(a){var c=[],e=a.split("");return angular.forEach(d,function(b,d){var f=a.indexOf(d);if(f>-1){a=a.split(""),e[f]="("+b.regex+")",a[f]="$";for(var g=f+1,h=f+d.length;h>g;g++)e[g]="",a[g]="$";a=a.join(""),c.push({index:f,apply:b.apply})}}),{regex:new RegExp("^"+e.join("")+"$"),map:b(c,"index")}},this.parse=function(b,d){if(!angular.isString(b))return b;d=a.DATETIME_FORMATS[d]||d,this.parsers[d]||(this.parsers[d]=this.createParser(d));var e=this.parsers[d],f=e.regex,g=e.map,h=b.match(f);if(h&&h.length){for(var i,j={year:1900,month:0,date:1,hours:0},k=1,l=h.length;l>k;k++){var m=g[k-1];m.apply&&m.apply.call(j,h[k])}return c(j.year,j.month,j.date)&&(i=new Date(j.year,j.month,j.date,j.hours)),i}}}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(a,b){function c(a,c){return a.currentStyle?a.currentStyle[c]:b.getComputedStyle?b.getComputedStyle(a)[c]:a.style[c]}function d(a){return"static"===(c(a,"position")||"static")}var e=function(b){for(var c=a[0],e=b.offsetParent||c;e&&e!==c&&d(e);)e=e.offsetParent;return e||c};return{position:function(b){var c=this.offset(b),d={top:0,left:0},f=e(b[0]);f!=a[0]&&(d=this.offset(angular.element(f)),d.top+=f.clientTop-f.scrollTop,d.left+=f.clientLeft-f.scrollLeft);var g=b[0].getBoundingClientRect();return{width:g.width||b.prop("offsetWidth"),height:g.height||b.prop("offsetHeight"),top:c.top-d.top,left:c.left-d.left}},offset:function(c){var d=c[0].getBoundingClientRect();return{width:d.width||c.prop("offsetWidth"),height:d.height||c.prop("offsetHeight"),top:d.top+(b.pageYOffset||a[0].documentElement.scrollTop),left:d.left+(b.pageXOffset||a[0].documentElement.scrollLeft)}},positionElements:function(a,b,c,d){var e,f,g,h,i=c.split("-"),j=i[0],k=i[1]||"center";e=d?this.offset(a):this.position(a),f=b.prop("offsetWidth"),g=b.prop("offsetHeight");var l={center:function(){return e.left+e.width/2-f/2},left:function(){return e.left},right:function(){return e.left+e.width}},m={center:function(){return e.top+e.height/2-g/2},top:function(){return e.top},bottom:function(){return e.top+e.height}};switch(j){case"right":h={top:m[k](),left:l[j]()};break;case"left":h={top:m[k](),left:e.left-f};break;case"bottom":h={top:m[j](),left:l[k]()};break;default:h={top:e.top-g,left:l[k]()}}return h}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(a,b,c,d,e,f,g,h){var i=this,j={$setViewValue:angular.noop};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(c,e){i[c]=angular.isDefined(b[c])?8>e?d(b[c])(a.$parent):a.$parent.$eval(b[c]):h[c]}),angular.forEach(["minDate","maxDate"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(a){i[d]=a?new Date(a):null,i.refreshView()}):i[d]=h[d]?new Date(h[d]):null}),a.datepickerMode=a.datepickerMode||h.datepickerMode,a.uniqueId="datepicker-"+a.$id+"-"+Math.floor(1e4*Math.random()),this.activeDate=angular.isDefined(b.initDate)?a.$parent.$eval(b.initDate):new Date,a.isActive=function(b){return 0===i.compare(b.date,i.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){j=a,j.$render=function(){i.render()}},this.render=function(){if(j.$modelValue){var a=new Date(j.$modelValue),b=!isNaN(a);b?this.activeDate=a:f.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.'),j.$setValidity("date",b)}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var a=j.$modelValue?new Date(j.$modelValue):null;j.$setValidity("date-disabled",!a||this.element&&!this.isDisabled(a))}},this.createDateObject=function(a,b){var c=j.$modelValue?new Date(j.$modelValue):null;return{date:a,label:g(a,b),selected:c&&0===this.compare(a,c),disabled:this.isDisabled(a),current:0===this.compare(a,new Date)}},this.isDisabled=function(c){return this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},a.select=function(b){if(a.datepickerMode===i.minMode){var c=j.$modelValue?new Date(j.$modelValue):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),j.$setViewValue(c),j.$render()}else i.activeDate=b,a.datepickerMode=i.modes[i.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=i.activeDate.getFullYear()+a*(i.step.years||0),c=i.activeDate.getMonth()+a*(i.step.months||0);i.activeDate.setFullYear(b,c,1),i.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===i.maxMode&&1===b||a.datepickerMode===i.minMode&&-1===b||(a.datepickerMode=i.modes[i.modes.indexOf(a.datepickerMode)+b])},a.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var k=function(){e(function(){i.element[0].focus()},0,!1)};a.$on("datepicker.focus",k),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey)if(b.preventDefault(),b.stopPropagation(),"enter"===c||"space"===c){if(i.isDisabled(i.activeDate))return;a.select(i.activeDate),k()}else!b.ctrlKey||"up"!==c&&"down"!==c?(i.handleKeyDown(c,b),i.refreshView()):(a.toggleMode("up"===c?1:-1),k())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f)}}}).directive("daypicker",["dateFilter",function(a){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(b,c,d,e){function f(a,b){return 1!==b||a%4!==0||a%100===0&&a%400!==0?i[b]:29}function g(a,b){var c=new Array(b),d=new Date(a),e=0;for(d.setHours(12);b>e;)c[e++]=new Date(d),d.setDate(d.getDate()+1);return c}function h(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}b.showWeeks=e.showWeeks,e.step={months:1},e.element=c;var i=[31,28,31,30,31,30,31,31,30,31,30,31];e._refreshView=function(){var c=e.activeDate.getFullYear(),d=e.activeDate.getMonth(),f=new Date(c,d,1),i=e.startingDay-f.getDay(),j=i>0?7-i:-i,k=new Date(f);j>0&&k.setDate(-j+1);for(var l=g(k,42),m=0;42>m;m++)l[m]=angular.extend(e.createDateObject(l[m],e.formatDay),{secondary:l[m].getMonth()!==d,uid:b.uniqueId+"-"+m});b.labels=new Array(7);for(var n=0;7>n;n++)b.labels[n]={abbr:a(l[n].date,e.formatDayHeader),full:a(l[n].date,"EEEE")};if(b.title=a(e.activeDate,e.formatDayTitle),b.rows=e.split(l,7),b.showWeeks){b.weekNumbers=[];for(var o=h(b.rows[0][0].date),p=b.rows.length;b.weekNumbers.push(o++)<p;);}},e.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},e.handleKeyDown=function(a){var b=e.activeDate.getDate();if("left"===a)b-=1;else if("up"===a)b-=7;else if("right"===a)b+=1;else if("down"===a)b+=7;else if("pageup"===a||"pagedown"===a){var c=e.activeDate.getMonth()+("pageup"===a?-1:1);e.activeDate.setMonth(c,1),b=Math.min(f(e.activeDate.getFullYear(),e.activeDate.getMonth()),b)}else"home"===a?b=1:"end"===a&&(b=f(e.activeDate.getFullYear(),e.activeDate.getMonth()));e.activeDate.setDate(b)},e.refreshView()}}}]).directive("monthpicker",["dateFilter",function(a){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(b,c,d,e){e.step={years:1},e.element=c,e._refreshView=function(){for(var c=new Array(12),d=e.activeDate.getFullYear(),f=0;12>f;f++)c[f]=angular.extend(e.createDateObject(new Date(d,f,1),e.formatMonth),{uid:b.uniqueId+"-"+f});b.title=a(e.activeDate,e.formatMonthTitle),b.rows=e.split(c,3)},e.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth())-new Date(b.getFullYear(),b.getMonth())},e.handleKeyDown=function(a){var b=e.activeDate.getMonth();if("left"===a)b-=1;else if("up"===a)b-=3;else if("right"===a)b+=1;else if("down"===a)b+=3;else if("pageup"===a||"pagedown"===a){var c=e.activeDate.getFullYear()+("pageup"===a?-1:1);e.activeDate.setFullYear(c)}else"home"===a?b=0:"end"===a&&(b=11);e.activeDate.setMonth(b)},e.refreshView()}}}]).directive("yearpicker",["dateFilter",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(a,b,c,d){function e(a){return parseInt((a-1)/f,10)*f+1}var f=d.yearRange;d.step={years:f},d.element=b,d._refreshView=function(){for(var b=new Array(f),c=0,g=e(d.activeDate.getFullYear());f>c;c++)b[c]=angular.extend(d.createDateObject(new Date(g+c,0,1),d.formatYear),{uid:a.uniqueId+"-"+c});a.title=[b[0].label,b[f-1].label].join(" - "),a.rows=d.split(b,5)},d.compare=function(a,b){return a.getFullYear()-b.getFullYear()},d.handleKeyDown=function(a){var b=d.activeDate.getFullYear();"left"===a?b-=1:"up"===a?b-=5:"right"===a?b+=1:"down"===a?b+=5:"pageup"===a||"pagedown"===a?b+=("pageup"===a?-1:1)*d.step.years:"home"===a?b=e(d.activeDate.getFullYear()):"end"===a&&(b=e(d.activeDate.getFullYear())+f-1),d.activeDate.setFullYear(b)},d.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","dateParser","datepickerPopupConfig",function(a,b,c,d,e,f,g){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(h,i,j,k){function l(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function m(a){if(a){if(angular.isDate(a)&&!isNaN(a))return k.$setValidity("date",!0),a;if(angular.isString(a)){var b=f.parse(a,n)||new Date(a);return isNaN(b)?void k.$setValidity("date",!1):(k.$setValidity("date",!0),b)}return void k.$setValidity("date",!1)}return k.$setValidity("date",!0),null}var n,o=angular.isDefined(j.closeOnDateSelection)?h.$parent.$eval(j.closeOnDateSelection):g.closeOnDateSelection,p=angular.isDefined(j.datepickerAppendToBody)?h.$parent.$eval(j.datepickerAppendToBody):g.appendToBody;h.showButtonBar=angular.isDefined(j.showButtonBar)?h.$parent.$eval(j.showButtonBar):g.showButtonBar,h.getText=function(a){return h[a+"Text"]||g[a+"Text"]},j.$observe("datepickerPopup",function(a){n=a||g.datepickerPopup,k.$render()});var q=angular.element("<div datepicker-popup-wrap><div datepicker></div></div>");q.attr({"ng-model":"date","ng-change":"dateSelection()"});var r=angular.element(q.children()[0]);j.datepickerOptions&&angular.forEach(h.$parent.$eval(j.datepickerOptions),function(a,b){r.attr(l(b),a)}),angular.forEach(["minDate","maxDate"],function(a){j[a]&&(h.$parent.$watch(b(j[a]),function(b){h[a]=b}),r.attr(l(a),a))}),j.dateDisabled&&r.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),k.$parsers.unshift(m),h.dateSelection=function(a){angular.isDefined(a)&&(h.date=a),k.$setViewValue(h.date),k.$render(),o&&(h.isOpen=!1,i[0].focus())},i.bind("input change keyup",function(){h.$apply(function(){h.date=k.$modelValue})}),k.$render=function(){var a=k.$viewValue?e(k.$viewValue,n):"";i.val(a),h.date=m(k.$modelValue)};var s=function(a){h.isOpen&&a.target!==i[0]&&h.$apply(function(){h.isOpen=!1})},t=function(a){h.keydown(a)};i.bind("keydown",t),h.keydown=function(a){27===a.which?(a.preventDefault(),a.stopPropagation(),h.close()):40!==a.which||h.isOpen||(h.isOpen=!0)},h.$watch("isOpen",function(a){a?(h.$broadcast("datepicker.focus"),h.position=p?d.offset(i):d.position(i),h.position.top=h.position.top+i.prop("offsetHeight"),c.bind("click",s)):c.unbind("click",s)}),h.select=function(a){if("today"===a){var b=new Date;angular.isDate(k.$modelValue)?(a=new Date(k.$modelValue),a.setFullYear(b.getFullYear(),b.getMonth(),b.getDate())):a=new Date(b.setHours(0,0,0,0))}h.dateSelection(a)},h.close=function(){h.isOpen=!1,i[0].focus()};var u=a(q)(h);p?c.find("body").append(u):i.after(u),h.$on("$destroy",function(){u.remove(),i.unbind("keydown",t),c.unbind("click",s)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(a,b){b.bind("click",function(a){a.preventDefault(),a.stopPropagation()})}}}),angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function(a){var b=null;this.open=function(e){b||(a.bind("click",c),a.bind("keydown",d)),b&&b!==e&&(b.isOpen=!1),b=e},this.close=function(e){b===e&&(b=null,a.unbind("click",c),a.unbind("keydown",d))};var c=function(a){a&&a.isDefaultPrevented()||b.$apply(function(){b.isOpen=!1})},d=function(a){27===a.which&&(b.focusToggleElement(),c())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(a,b,c,d,e,f){var g,h=this,i=a.$new(),j=d.openClass,k=angular.noop,l=b.onToggle?c(b.onToggle):angular.noop;this.init=function(d){h.$element=d,b.isOpen&&(g=c(b.isOpen),k=g.assign,a.$watch(g,function(a){i.isOpen=!!a}))},this.toggle=function(a){return i.isOpen=arguments.length?!!a:!i.isOpen},this.isOpen=function(){return i.isOpen},i.focusToggleElement=function(){h.toggleElement&&h.toggleElement[0].focus()},i.$watch("isOpen",function(b,c){f[b?"addClass":"removeClass"](h.$element,j),b?(i.focusToggleElement(),e.open(i)):e.close(i),k(a,b),angular.isDefined(b)&&b!==c&&l(a,{open:!!b})}),a.$on("$locationChangeSuccess",function(){i.isOpen=!1}),a.$on("$destroy",function(){i.$destroy()})}]).directive("dropdown",function(){return{restrict:"CA",controller:"DropdownController",link:function(a,b,c,d){d.init(b)}}}).directive("dropdownToggle",function(){return{restrict:"CA",require:"?^dropdown",link:function(a,b,c,d){if(d){d.toggleElement=b;var e=function(e){e.preventDefault(),b.hasClass("disabled")||c.disabled||a.$apply(function(){d.toggle()})};b.bind("click",e),b.attr({"aria-haspopup":!0,"aria-expanded":!1}),a.$watch(d.isOpen,function(a){b.attr("aria-expanded",!!a)}),a.$on("$destroy",function(){b.unbind("click",e)})}}}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c<a.length;c++)if(b==a[c].key)return a[c]},keys:function(){for(var b=[],c=0;c<a.length;c++)b.push(a[c].key);return b},top:function(){return a[a.length-1]},remove:function(b){for(var c=-1,d=0;d<a.length;d++)if(b==a[d].key){c=d;break}return a.splice(c,1)[0]},removeTop:function(){return a.splice(a.length-1,1)[0]},length:function(){return a.length}}}}}).directive("modalBackdrop",["$timeout",function(a){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(b){b.animate=!1,a(function(){b.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function(a,b){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||"template/modal/window.html"},link:function(c,d,e){d.addClass(e.windowClass||""),c.size=e.size,b(function(){c.animate=!0,d[0].focus()}),c.close=function(b){var c=a.getTop();c&&c.value.backdrop&&"static"!=c.value.backdrop&&b.target===b.currentTarget&&(b.preventDefault(),b.stopPropagation(),a.dismiss(c.key,"backdrop click"))}}}}]).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(a,b,c,d,e,f){function g(){for(var a=-1,b=n.keys(),c=0;c<b.length;c++)n.get(b[c]).value.backdrop&&(a=c);return a}function h(a){var b=c.find("body").eq(0),d=n.get(a).value;n.remove(a),j(d.modalDomEl,d.modalScope,300,function(){d.modalScope.$destroy(),b.toggleClass(m,n.length()>0),i()})}function i(){if(k&&-1==g()){var a=l;j(k,l,150,function(){a.$destroy(),a=null}),k=void 0,l=void 0}}function j(c,d,e,f){function g(){g.done||(g.done=!0,c.remove(),f&&f())}d.animate=!1;var h=a.transitionEndEventName;if(h){var i=b(g,e);c.bind(h,function(){b.cancel(i),g(),d.$apply()})}else b(g,0)}var k,l,m="modal-open",n=f.createNew(),o={};return e.$watch(g,function(a){l&&(l.index=a)}),c.bind("keydown",function(a){var b;27===a.which&&(b=n.top(),b&&b.value.keyboard&&(a.preventDefault(),e.$apply(function(){o.dismiss(b.key,"escape key press")})))}),o.open=function(a,b){n.add(a,{deferred:b.deferred,modalScope:b.scope,backdrop:b.backdrop,keyboard:b.keyboard});var f=c.find("body").eq(0),h=g();h>=0&&!k&&(l=e.$new(!0),l.index=h,k=d("<div modal-backdrop></div>")(l),f.append(k));var i=angular.element("<div modal-window></div>");i.attr({"template-url":b.windowTemplateUrl,"window-class":b.windowClass,size:b.size,index:n.length()-1,animate:"animate"}).html(b.content);var j=d(i)(b.scope);n.top().value.modalDomEl=j,f.append(j),f.addClass(m)},o.close=function(a,b){var c=n.get(a).value;c&&(c.deferred.resolve(b),h(a))},o.dismiss=function(a,b){var c=n.get(a).value;c&&(c.deferred.reject(b),h(a))},o.dismissAll=function(a){for(var b=this.getTop();b;)this.dismiss(b.key,a),b=this.getTop()},o.getTop=function(){return n.top()},o}]).provider("$modal",function(){var a={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(b,c,d,e,f,g,h){function i(a){return a.template?d.when(a.template):e.get(a.templateUrl,{cache:f}).then(function(a){return a.data})}function j(a){var c=[];return angular.forEach(a,function(a){(angular.isFunction(a)||angular.isArray(a))&&c.push(d.when(b.invoke(a)))}),c}var k={};return k.open=function(b){var e=d.defer(),f=d.defer(),k={result:e.promise,opened:f.promise,close:function(a){h.close(k,a)},dismiss:function(a){h.dismiss(k,a)}};if(b=angular.extend({},a.options,b),b.resolve=b.resolve||{},!b.template&&!b.templateUrl)throw new Error("One of template or templateUrl options is required.");var l=d.all([i(b)].concat(j(b.resolve)));return l.then(function(a){var d=(b.scope||c).$new();d.$close=k.close,d.$dismiss=k.dismiss;var f,i={},j=1;b.controller&&(i.$scope=d,i.$modalInstance=k,angular.forEach(b.resolve,function(b,c){i[c]=a[j++]}),f=g(b.controller,i)),h.open(k,{scope:d,deferred:e,content:a[0],backdrop:b.backdrop,keyboard:b.keyboard,windowClass:b.windowClass,windowTemplateUrl:b.windowTemplateUrl,size:b.size})},function(a){e.reject(a)}),l.then(function(){f.resolve(!0)},function(){f.reject(!1)}),k},k}]};return a}),angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function(a,b,c){var d=this,e={$setViewValue:angular.noop},f=b.numPages?c(b.numPages).assign:angular.noop;this.init=function(f,g){e=f,this.config=g,e.$render=function(){d.render()},b.itemsPerPage?a.$parent.$watch(c(b.itemsPerPage),function(b){d.itemsPerPage=parseInt(b,10),a.totalPages=d.calculateTotalPages()}):this.itemsPerPage=g.itemsPerPage},this.calculateTotalPages=function(){var b=this.itemsPerPage<1?1:Math.ceil(a.totalItems/this.itemsPerPage);return Math.max(b||0,1)},this.render=function(){a.page=parseInt(e.$viewValue,10)||1},a.selectPage=function(b){a.page!==b&&b>0&&b<=a.totalPages&&(e.$setViewValue(b),e.$render())},a.getText=function(b){return a[b+"Text"]||d.config[b+"Text"]},a.noPrevious=function(){return 1===a.page},a.noNext=function(){return a.page===a.totalPages},a.$watch("totalItems",function(){a.totalPages=d.calculateTotalPages()}),a.$watch("totalPages",function(b){f(a.$parent,b),a.page>b?a.selectPage(b):e.$render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(a,b){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@"},require:["pagination","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(c,d,e,f){function g(a,b,c){return{number:a,text:b,active:c}}function h(a,b){var c=[],d=1,e=b,f=angular.isDefined(k)&&b>k;f&&(l?(d=Math.max(a-Math.floor(k/2),1),e=d+k-1,e>b&&(e=b,d=e-k+1)):(d=(Math.ceil(a/k)-1)*k+1,e=Math.min(d+k-1,b)));for(var h=d;e>=h;h++){var i=g(h,h,h===a);c.push(i)}if(f&&!l){if(d>1){var j=g(d-1,"...",!1);c.unshift(j)}if(b>e){var m=g(e+1,"...",!1);c.push(m)}}return c}var i=f[0],j=f[1];if(j){var k=angular.isDefined(e.maxSize)?c.$parent.$eval(e.maxSize):b.maxSize,l=angular.isDefined(e.rotate)?c.$parent.$eval(e.rotate):b.rotate;c.boundaryLinks=angular.isDefined(e.boundaryLinks)?c.$parent.$eval(e.boundaryLinks):b.boundaryLinks,c.directionLinks=angular.isDefined(e.directionLinks)?c.$parent.$eval(e.directionLinks):b.directionLinks,i.init(j,b),e.maxSize&&c.$parent.$watch(a(e.maxSize),function(a){k=parseInt(a,10),i.render()});var m=i.render;i.render=function(){m(),c.page>0&&c.page<=c.totalPages&&(c.pages=h(c.page,c.totalPages))}}}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(a){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@"},require:["pager","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(b,c,d,e){var f=e[0],g=e[1];g&&(b.align=angular.isDefined(d.align)?b.$parent.$eval(d.align):a.align,f.init(g,a))}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function a(a){var b=/[A-Z]/g,c="-";
+return a.replace(b,function(a,b){return(b?c:"")+a.toLowerCase()})}var b={placement:"top",animation:!0,popupDelay:0},c={mouseenter:"mouseleave",click:"click",focus:"blur"},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(e,f,g,h,i,j,k){return function(e,l,m){function n(a){var b=a||o.trigger||m,d=c[b]||b;return{show:b,hide:d}}var o=angular.extend({},b,d),p=a(e),q=k.startSymbol(),r=k.endSymbol(),s="<div "+p+'-popup title="'+q+"tt_title"+r+'" content="'+q+"tt_content"+r+'" placement="'+q+"tt_placement"+r+'" animation="tt_animation" is-open="tt_isOpen"></div>';return{restrict:"EA",scope:!0,compile:function(){var a=f(s);return function(b,c,d){function f(){b.tt_isOpen?m():k()}function k(){(!y||b.$eval(d[l+"Enable"]))&&(b.tt_popupDelay?v||(v=g(p,b.tt_popupDelay,!1),v.then(function(a){a()})):p()())}function m(){b.$apply(function(){q()})}function p(){return v=null,u&&(g.cancel(u),u=null),b.tt_content?(r(),t.css({top:0,left:0,display:"block"}),w?i.find("body").append(t):c.after(t),z(),b.tt_isOpen=!0,b.$digest(),z):angular.noop}function q(){b.tt_isOpen=!1,g.cancel(v),v=null,b.tt_animation?u||(u=g(s,500)):s()}function r(){t&&s(),t=a(b,function(){}),b.$digest()}function s(){u=null,t&&(t.remove(),t=null)}var t,u,v,w=angular.isDefined(o.appendToBody)?o.appendToBody:!1,x=n(void 0),y=angular.isDefined(d[l+"Enable"]),z=function(){var a=j.positionElements(c,t,b.tt_placement,w);a.top+="px",a.left+="px",t.css(a)};b.tt_isOpen=!1,d.$observe(e,function(a){b.tt_content=a,!a&&b.tt_isOpen&&q()}),d.$observe(l+"Title",function(a){b.tt_title=a}),d.$observe(l+"Placement",function(a){b.tt_placement=angular.isDefined(a)?a:o.placement}),d.$observe(l+"PopupDelay",function(a){var c=parseInt(a,10);b.tt_popupDelay=isNaN(c)?o.popupDelay:c});var A=function(){c.unbind(x.show,k),c.unbind(x.hide,m)};d.$observe(l+"Trigger",function(a){A(),x=n(a),x.show===x.hide?c.bind(x.show,f):(c.bind(x.show,k),c.bind(x.hide,m))});var B=b.$eval(d[l+"Animation"]);b.tt_animation=angular.isDefined(B)?!!B:o.animation,d.$observe(l+"AppendToBody",function(a){w=angular.isDefined(a)?h(a)(b):w}),w&&b.$on("$locationChangeSuccess",function(){b.tt_isOpen&&q()}),b.$on("$destroy",function(){g.cancel(u),g.cancel(v),A(),s()})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(a){return a("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(a){return a("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function(a){return a("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig",function(a,b,c){var d=this,e=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max,this.addBar=function(b,c){e||c.css({transition:"none"}),this.bars.push(b),b.$watch("value",function(c){b.percent=+(100*c/a.max).toFixed(2)}),b.$on("$destroy",function(){c=null,d.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},templateUrl:"template/progressbar/progress.html"}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(a,b,c,d){d.addBar(a,b)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]))}}}),angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","ratingConfig",function(a,b,c){var d={$setViewValue:angular.noop};this.init=function(e){d=e,d.$render=this.render,this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):c.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):c.stateOff;var f=angular.isDefined(b.ratingStates)?a.$parent.$eval(b.ratingStates):new Array(angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max);a.range=this.buildTemplateObjects(f)},this.buildTemplateObjects=function(a){for(var b=0,c=a.length;c>b;b++)a[b]=angular.extend({index:b},{stateOn:this.stateOn,stateOff:this.stateOff},a[b]);return a},a.rate=function(b){!a.readonly&&b>=0&&b<=a.range.length&&(d.$setViewValue(b),d.$render())},a.enter=function(b){a.readonly||(a.value=b),a.onHover({value:b})},a.reset=function(){a.value=d.$viewValue,a.onLeave()},a.onKeydown=function(b){/(37|38|39|40)/.test(b.which)&&(b.preventDefault(),b.stopPropagation(),a.rate(a.value+(38===b.which||39===b.which?1:-1)))},this.render=function(){a.value=d.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f)}}}),angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(b){b.active&&b!==a&&(b.active=!1,b.onDeselect())}),a.active=!0,a.onSelect()},b.addTab=function(a){c.push(a),1===c.length?a.active=!0:a.active&&b.select(a)},b.removeTab=function(a){var d=c.indexOf(a);if(a.active&&c.length>1){var e=d==c.length-1?d-1:d+1;b.select(c[e])}c.splice(d,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1}}}).directive("tab",["$parse",function(a){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(b,c,d){return function(b,c,e,f){b.$watch("active",function(a){a&&f.select(b)}),b.disabled=!1,e.disabled&&b.$parent.$watch(a(e.disabled),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},f.addTab(b),b.$on("$destroy",function(){f.removeTab(b)}),b.$transcludeFn=d}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(a,b){a.$watch("headingElement",function(a){a&&(b.html(""),b.append(a))})}}}]).directive("tabContentTransclude",function(){function a(a){return a.tagName&&(a.hasAttribute("tab-heading")||a.hasAttribute("data-tab-heading")||"tab-heading"===a.tagName.toLowerCase()||"data-tab-heading"===a.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(b,c,d){var e=b.$eval(d.tabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function(a,b,c,d,e,f){function g(){var b=parseInt(a.hours,10),c=a.showMeridian?b>0&&13>b:b>=0&&24>b;return c?(a.showMeridian&&(12===b&&(b=0),a.meridian===p[1]&&(b+=12)),b):void 0}function h(){var b=parseInt(a.minutes,10);return b>=0&&60>b?b:void 0}function i(a){return angular.isDefined(a)&&a.toString().length<2?"0"+a:a}function j(a){k(),o.$setViewValue(new Date(n)),l(a)}function k(){o.$setValidity("time",!0),a.invalidHours=!1,a.invalidMinutes=!1}function l(b){var c=n.getHours(),d=n.getMinutes();a.showMeridian&&(c=0===c||12===c?12:c%12),a.hours="h"===b?c:i(c),a.minutes="m"===b?d:i(d),a.meridian=n.getHours()<12?p[0]:p[1]}function m(a){var b=new Date(n.getTime()+6e4*a);n.setHours(b.getHours(),b.getMinutes()),j()}var n=new Date,o={$setViewValue:angular.noop},p=angular.isDefined(b.meridians)?a.$parent.$eval(b.meridians):f.meridians||e.DATETIME_FORMATS.AMPMS;this.init=function(c,d){o=c,o.$render=this.render;var e=d.eq(0),g=d.eq(1),h=angular.isDefined(b.mousewheel)?a.$parent.$eval(b.mousewheel):f.mousewheel;h&&this.setupMousewheelEvents(e,g),a.readonlyInput=angular.isDefined(b.readonlyInput)?a.$parent.$eval(b.readonlyInput):f.readonlyInput,this.setupInputEvents(e,g)};var q=f.hourStep;b.hourStep&&a.$parent.$watch(c(b.hourStep),function(a){q=parseInt(a,10)});var r=f.minuteStep;b.minuteStep&&a.$parent.$watch(c(b.minuteStep),function(a){r=parseInt(a,10)}),a.showMeridian=f.showMeridian,b.showMeridian&&a.$parent.$watch(c(b.showMeridian),function(b){if(a.showMeridian=!!b,o.$error.time){var c=g(),d=h();angular.isDefined(c)&&angular.isDefined(d)&&(n.setHours(c),j())}else l()}),this.setupMousewheelEvents=function(b,c){var d=function(a){a.originalEvent&&(a=a.originalEvent);var b=a.wheelDelta?a.wheelDelta:-a.deltaY;return a.detail||b>0};b.bind("mousewheel wheel",function(b){a.$apply(d(b)?a.incrementHours():a.decrementHours()),b.preventDefault()}),c.bind("mousewheel wheel",function(b){a.$apply(d(b)?a.incrementMinutes():a.decrementMinutes()),b.preventDefault()})},this.setupInputEvents=function(b,c){if(a.readonlyInput)return a.updateHours=angular.noop,void(a.updateMinutes=angular.noop);var d=function(b,c){o.$setViewValue(null),o.$setValidity("time",!1),angular.isDefined(b)&&(a.invalidHours=b),angular.isDefined(c)&&(a.invalidMinutes=c)};a.updateHours=function(){var a=g();angular.isDefined(a)?(n.setHours(a),j("h")):d(!0)},b.bind("blur",function(){!a.invalidHours&&a.hours<10&&a.$apply(function(){a.hours=i(a.hours)})}),a.updateMinutes=function(){var a=h();angular.isDefined(a)?(n.setMinutes(a),j("m")):d(void 0,!0)},c.bind("blur",function(){!a.invalidMinutes&&a.minutes<10&&a.$apply(function(){a.minutes=i(a.minutes)})})},this.render=function(){var a=o.$modelValue?new Date(o.$modelValue):null;isNaN(a)?(o.$setValidity("time",!1),d.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(a&&(n=a),k(),l())},a.incrementHours=function(){m(60*q)},a.decrementHours=function(){m(60*-q)},a.incrementMinutes=function(){m(r)},a.decrementMinutes=function(){m(-r)},a.toggleMeridian=function(){m(720*(n.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f,b.find("input"))}}}),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(a){var b=/^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+(.*)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+c+'".');return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(a,b,c,d,e,f,g){var h=[9,13,27,38,40];return{require:"ngModel",link:function(i,j,k,l){var m,n=i.$eval(k.typeaheadMinLength)||1,o=i.$eval(k.typeaheadWaitMs)||0,p=i.$eval(k.typeaheadEditable)!==!1,q=b(k.typeaheadLoading).assign||angular.noop,r=b(k.typeaheadOnSelect),s=k.typeaheadInputFormatter?b(k.typeaheadInputFormatter):void 0,t=k.typeaheadAppendToBody?i.$eval(k.typeaheadAppendToBody):!1,u=b(k.ngModel).assign,v=g.parse(k.typeahead),w=i.$new();i.$on("$destroy",function(){w.$destroy()});var x="typeahead-"+w.$id+"-"+Math.floor(1e4*Math.random());j.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":x});var y=angular.element("<div typeahead-popup></div>");y.attr({id:x,matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"}),angular.isDefined(k.typeaheadTemplateUrl)&&y.attr("template-url",k.typeaheadTemplateUrl);var z=function(){w.matches=[],w.activeIdx=-1,j.attr("aria-expanded",!1)},A=function(a){return x+"-option-"+a};w.$watch("activeIdx",function(a){0>a?j.removeAttr("aria-activedescendant"):j.attr("aria-activedescendant",A(a))});var B=function(a){var b={$viewValue:a};q(i,!0),c.when(v.source(i,b)).then(function(c){var d=a===l.$viewValue;if(d&&m)if(c.length>0){w.activeIdx=0,w.matches.length=0;for(var e=0;e<c.length;e++)b[v.itemName]=c[e],w.matches.push({id:A(e),label:v.viewMapper(w,b),model:c[e]});w.query=a,w.position=t?f.offset(j):f.position(j),w.position.top=w.position.top+j.prop("offsetHeight"),j.attr("aria-expanded",!0)}else z();d&&q(i,!1)},function(){z(),q(i,!1)})};z(),w.query=void 0;var C;l.$parsers.unshift(function(a){return m=!0,a&&a.length>=n?o>0?(C&&d.cancel(C),C=d(function(){B(a)},o)):B(a):(q(i,!1),z()),p?a:a?void l.$setValidity("editable",!1):(l.$setValidity("editable",!0),a)}),l.$formatters.push(function(a){var b,c,d={};return s?(d.$model=a,s(i,d)):(d[v.itemName]=a,b=v.viewMapper(i,d),d[v.itemName]=void 0,c=v.viewMapper(i,d),b!==c?b:a)}),w.select=function(a){var b,c,e={};e[v.itemName]=c=w.matches[a].model,b=v.modelMapper(i,e),u(i,b),l.$setValidity("editable",!0),r(i,{$item:c,$model:b,$label:v.viewMapper(i,e)}),z(),d(function(){j[0].focus()},0,!1)},j.bind("keydown",function(a){0!==w.matches.length&&-1!==h.indexOf(a.which)&&(a.preventDefault(),40===a.which?(w.activeIdx=(w.activeIdx+1)%w.matches.length,w.$digest()):38===a.which?(w.activeIdx=(w.activeIdx?w.activeIdx:w.matches.length)-1,w.$digest()):13===a.which||9===a.which?w.$apply(function(){w.select(w.activeIdx)}):27===a.which&&(a.stopPropagation(),z(),w.$digest()))}),j.bind("blur",function(){m=!1});var D=function(a){j[0]!==a.target&&(z(),w.$digest())};e.bind("click",D),i.$on("$destroy",function(){e.unbind("click",D)});var E=a(y)(w);t?e.find("body").append(E):j.after(E)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(a,b,c){a.templateUrl=c.templateUrl,a.isOpen=function(){return a.matches.length>0},a.isActive=function(b){return a.active==b},a.selectActive=function(b){a.active=b},a.selectMatch=function(b){a.select({activeIdx:b})}}}}).directive("typeaheadMatch",["$http","$templateCache","$compile","$parse",function(a,b,c,d){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(e,f,g){var h=d(g.templateUrl)(e.$parent)||"template/typeahead/typeahead-match.html";a.get(h,{cache:b}).success(function(a){f.replaceWith(c(a.trim())(e))})}}}]).filter("typeaheadHighlight",function(){function a(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(b,c){return c?(""+b).replace(new RegExp(a(c),"gi"),"<strong>$&</strong>"):b}}),angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(a){a.put("template/accordion/accordion-group.html",'<div class="panel panel-default">\n <div class="panel-heading">\n <h4 class="panel-title">\n <a class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a>\n </h4>\n </div>\n <div class="panel-collapse" collapse="!isOpen">\n <div class="panel-body" ng-transclude></div>\n </div>\n</div>')}]),angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(a){a.put("template/accordion/accordion.html",'<div class="panel-group" ng-transclude></div>')}]),angular.module("template/alert/alert.html",[]).run(["$templateCache",function(a){a.put("template/alert/alert.html",'<div class="alert" ng-class="{\'alert-{{type || \'warning\'}}\': true, \'alert-dismissable\': closeable}" role="alert">\n <button ng-show="closeable" type="button" class="close" ng-click="close()">\n <span aria-hidden="true">&times;</span>\n <span class="sr-only">Close</span>\n </button>\n <div ng-transclude></div>\n</div>\n')}]),angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(a){a.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n <ol class="carousel-indicators" ng-show="slides.length > 1">\n <li ng-repeat="slide in slides track by $index" ng-class="{active: isActive(slide)}" ng-click="select(slide)"></li>\n </ol>\n <div class="carousel-inner" ng-transclude></div>\n <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-left"></span></a>\n <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-right"></span></a>\n</div>\n')}]),angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(a){a.put("template/carousel/slide.html","<div ng-class=\"{\n 'active': leaving || (active && !entering),\n 'prev': (next || active) && direction=='prev',\n 'next': (next || active) && direction=='next',\n 'right': direction=='prev',\n 'left': direction=='next'\n }\" class=\"item text-center\" ng-transclude></div>\n")}]),angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/datepicker.html",'<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n <daypicker ng-switch-when="day" tabindex="0"></daypicker>\n <monthpicker ng-switch-when="month" tabindex="0"></monthpicker>\n <yearpicker ng-switch-when="year" tabindex="0"></yearpicker>\n</div>')}]),angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/day.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="{{5 + showWeeks}}"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n <tr>\n <th ng-show="showWeeks" class="text-center"></th>\n <th ng-repeat="label in labels track by $index" class="text-center"><small aria-label="{{label.full}}">{{label.abbr}}</small></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-show="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n <button type="button" style="width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/month.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/popup.html",'<ul class="dropdown-menu" ng-style="{display: (isOpen && \'block\') || \'none\', top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)">\n <li ng-transclude></li>\n <li ng-if="showButtonBar" style="padding:10px 9px 2px">\n <span class="btn-group">\n <button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')">{{ getText(\'current\') }}</button>\n <button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}</button>\n </span>\n <button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}</button>\n </li>\n</ul>\n')}]),angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/year.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="3"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(a){a.put("template/modal/backdrop.html",'<div class="modal-backdrop fade"\n ng-class="{in: animate}"\n ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(a){a.put("template/modal/window.html",'<div tabindex="-1" role="dialog" class="modal fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n <div class="modal-dialog" ng-class="{\'modal-sm\': size == \'sm\', \'modal-lg\': size == \'lg\'}"><div class="modal-content" ng-transclude></div></div>\n</div>')}]),angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(a){a.put("template/pagination/pager.html",'<ul class="pager">\n <li ng-class="{disabled: noPrevious(), previous: align}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}</a></li>\n <li ng-class="{disabled: noNext(), next: align}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}</a></li>\n</ul>')}]),angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(a){a.put("template/pagination/pagination.html",'<ul class="pagination">\n <li ng-if="boundaryLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(1)">{{getText(\'first\')}}</a></li>\n <li ng-if="directionLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}</a></li>\n <li ng-repeat="page in pages track by $index" ng-class="{active: page.active}"><a href ng-click="selectPage(page.number)">{{page.text}}</a></li>\n <li ng-if="directionLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}</a></li>\n <li ng-if="boundaryLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(totalPages)">{{getText(\'last\')}}</a></li>\n</ul>')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("template/popover/popover.html",[]).run(["$templateCache",function(a){a.put("template/popover/popover.html",'<div class="popover {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="title" ng-show="title"></h3>\n <div class="popover-content" ng-bind="content"></div>\n </div>\n</div>\n')}]),angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude></div>')}]),angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/progress.html",'<div class="progress" ng-transclude></div>')}]),angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/progressbar.html",'<div class="progress">\n <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude></div>\n</div>')}]),angular.module("template/rating/rating.html",[]).run(["$templateCache",function(a){a.put("template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n <i ng-repeat="r in range track by $index" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')">\n <span class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n </i>\n</span>')}]),angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}">\n <a ng-click="select()" tab-heading-transclude>{{heading}}</a>\n</li>\n')}]),angular.module("template/tabs/tabset-titles.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tabset-titles.html","<ul class=\"nav {{type && 'nav-' + type}}\" ng-class=\"{'nav-stacked': vertical}\">\n</ul>\n")}]),angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tabset.html",'\n<div>\n <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n <div class="tab-content">\n <div class="tab-pane" \n ng-repeat="tab in tabs" \n ng-class="{active: tab.active}"\n tab-content-transclude="tab">\n </div>\n </div>\n</div>\n')}]),angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(a){a.put("template/timepicker/timepicker.html",'<table>\n <tbody>\n <tr class="text-center">\n <td><a ng-click="incrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td>&nbsp;</td>\n <td><a ng-click="incrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n <tr>\n <td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidHours}">\n <input type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-mousewheel="incrementHours()" ng-readonly="readonlyInput" maxlength="2">\n </td>\n <td>:</td>\n <td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n <input type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2">\n </td>\n <td ng-show="showMeridian"><button type="button" class="btn btn-default text-center" ng-click="toggleMeridian()">{{meridian}}</button></td>\n </tr>\n <tr class="text-center">\n <td><a ng-click="decrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td>&nbsp;</td>\n <td><a ng-click="decrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(a){a.put("template/typeahead/typeahead-match.html",'<a tabindex="-1" bind-html-unsafe="match.label | typeaheadHighlight:query"></a>')}]),angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(a){a.put("template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-if="isOpen()" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{match.id}}">\n <div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n </li>\n</ul>')
+}]); \ No newline at end of file
diff --git a/bitbake/lib/toaster/toastergui/static/js/ui-bootstrap-tpls-0.11.0.min.js b/bitbake/lib/toaster/toastergui/static/js/ui-bootstrap-tpls-0.11.0.min.js
new file mode 100644
index 0000000000..fa6a861317
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/static/js/ui-bootstrap-tpls-0.11.0.min.js
@@ -0,0 +1,10 @@
+/*
+ * angular-ui-bootstrap
+ * http://angular-ui.github.io/bootstrap/
+
+ * Version: 0.11.0 - 2014-05-01
+ * License: MIT
+ */
+angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(a,b,c){function d(a){for(var b in a)if(void 0!==f.style[b])return a[b]}var e=function(d,f,g){g=g||{};var h=a.defer(),i=e[g.animation?"animationEndEventName":"transitionEndEventName"],j=function(){c.$apply(function(){d.unbind(i,j),h.resolve(d)})};return i&&d.bind(i,j),b(function(){angular.isString(f)?d.addClass(f):angular.isFunction(f)?f(d):angular.isObject(f)&&d.css(f),i||h.resolve(d)}),h.promise.cancel=function(){i&&d.unbind(i,j),h.reject("Transition cancelled")},h.promise},f=document.createElement("trans"),g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},h={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return e.transitionEndEventName=d(g),e.animationEndEventName=d(h),e}]),angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(a){return{link:function(b,c,d){function e(b){function d(){j===e&&(j=void 0)}var e=a(c,b);return j&&j.cancel(),j=e,e.then(d,d),e}function f(){k?(k=!1,g()):(c.removeClass("collapse").addClass("collapsing"),e({height:c[0].scrollHeight+"px"}).then(g))}function g(){c.removeClass("collapsing"),c.addClass("collapse in"),c.css({height:"auto"})}function h(){if(k)k=!1,i(),c.css({height:0});else{c.css({height:c[0].scrollHeight+"px"});{c[0].offsetWidth}c.removeClass("collapse in").addClass("collapsing"),e({height:0}).then(i)}}function i(){c.removeClass("collapsing"),c.addClass("collapse")}var j,k=!0;b.$watch(d.collapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on("$destroy",function(){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(b,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.$watch("isOpen",function(b){b&&d.closeOthers(a)}),a.toggleOpen=function(){a.isDisabled||(a.isOpen=!a.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(a,b,c,d,e){d.setHeading(e(a,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(a,b,c,d){a.$watch(function(){return d[c.accordionTransclude]},function(a){a&&(b.html(""),b.append(a))})}}}),angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(a,b){a.closeable="close"in b}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(a,b,c){b.addClass("ng-binding").data("$binding",c.bindHtmlUnsafe),a.$watch(c.bindHtmlUnsafe,function(a){b.html(a||"")})}}),angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(a){this.activeClass=a.activeClass||"active",this.toggleEvent=a.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(a,b,c,d){var e=d[0],f=d[1];f.$render=function(){b.toggleClass(e.activeClass,angular.equals(f.$modelValue,a.$eval(c.btnRadio)))},b.bind(e.toggleEvent,function(){var d=b.hasClass(e.activeClass);(!d||angular.isDefined(c.uncheckable))&&a.$apply(function(){f.$setViewValue(d?null:a.$eval(c.btnRadio)),f.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){var d=a.$eval(b);return angular.isDefined(d)?d:c}var h=d[0],i=d[1];i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.bind(h.toggleEvent,function(){a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition",function(a,b,c){function d(){e();var c=+a.interval;!isNaN(c)&&c>=0&&(g=b(f,c))}function e(){g&&(b.cancel(g),g=null)}function f(){h?(a.next(),d()):a.pause()}var g,h,i=this,j=i.slides=a.slides=[],k=-1;i.currentSlide=null;var l=!1;i.select=a.select=function(e,f){function g(){if(!l){if(i.currentSlide&&angular.isString(f)&&!a.noTransition&&e.$element){e.$element.addClass(f);{e.$element[0].offsetWidth}angular.forEach(j,function(a){angular.extend(a,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(e,{direction:f,active:!0,entering:!0}),angular.extend(i.currentSlide||{},{direction:f,leaving:!0}),a.$currentTransition=c(e.$element,{}),function(b,c){a.$currentTransition.then(function(){h(b,c)},function(){h(b,c)})}(e,i.currentSlide)}else h(e,i.currentSlide);i.currentSlide=e,k=m,d()}}function h(b,c){angular.extend(b,{direction:"",active:!0,leaving:!1,entering:!1}),angular.extend(c||{},{direction:"",active:!1,leaving:!1,entering:!1}),a.$currentTransition=null}var m=j.indexOf(e);void 0===f&&(f=m>k?"next":"prev"),e&&e!==i.currentSlide&&(a.$currentTransition?(a.$currentTransition.cancel(),b(g)):g())},a.$on("$destroy",function(){l=!0}),i.indexOfSlide=function(a){return j.indexOf(a)},a.next=function(){var b=(k+1)%j.length;return a.$currentTransition?void 0:i.select(j[b],"next")},a.prev=function(){var b=0>k-1?j.length-1:k-1;return a.$currentTransition?void 0:i.select(j[b],"prev")},a.isActive=function(a){return i.currentSlide===a},a.$watch("interval",d),a.$on("$destroy",e),a.play=function(){h||(h=!0,d())},a.pause=function(){a.noPause||(h=!1,e())},i.addSlide=function(b,c){b.$element=c,j.push(b),1===j.length||b.active?(i.select(j[j.length-1]),1==j.length&&a.play()):b.active=!1},i.removeSlide=function(a){var b=j.indexOf(a);j.splice(b,1),j.length>0&&a.active?i.select(b>=j.length?j[b-1]:j[b]):k>b&&k--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{active:"=?"},link:function(a,b,c,d){d.addSlide(a,b),a.$on("$destroy",function(){d.removeSlide(a)}),a.$watch("active",function(b){b&&d.select(a)})}}}),angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(a,b){function c(a,b,c){return 1===b&&c>28?29===c&&(a%4===0&&a%100!==0||a%400===0):3===b||5===b||8===b||10===b?31>c:!0}this.parsers={};var d={yyyy:{regex:"\\d{4}",apply:function(a){this.year=+a}},yy:{regex:"\\d{2}",apply:function(a){this.year=+a+2e3}},y:{regex:"\\d{1,4}",apply:function(a){this.year=+a}},MMMM:{regex:a.DATETIME_FORMATS.MONTH.join("|"),apply:function(b){this.month=a.DATETIME_FORMATS.MONTH.indexOf(b)}},MMM:{regex:a.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(b){this.month=a.DATETIME_FORMATS.SHORTMONTH.indexOf(b)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(a){this.month=a-1}},M:{regex:"[1-9]|1[0-2]",apply:function(a){this.month=a-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},EEEE:{regex:a.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:a.DATETIME_FORMATS.SHORTDAY.join("|")}};this.createParser=function(a){var c=[],e=a.split("");return angular.forEach(d,function(b,d){var f=a.indexOf(d);if(f>-1){a=a.split(""),e[f]="("+b.regex+")",a[f]="$";for(var g=f+1,h=f+d.length;h>g;g++)e[g]="",a[g]="$";a=a.join(""),c.push({index:f,apply:b.apply})}}),{regex:new RegExp("^"+e.join("")+"$"),map:b(c,"index")}},this.parse=function(b,d){if(!angular.isString(b))return b;d=a.DATETIME_FORMATS[d]||d,this.parsers[d]||(this.parsers[d]=this.createParser(d));var e=this.parsers[d],f=e.regex,g=e.map,h=b.match(f);if(h&&h.length){for(var i,j={year:1900,month:0,date:1,hours:0},k=1,l=h.length;l>k;k++){var m=g[k-1];m.apply&&m.apply.call(j,h[k])}return c(j.year,j.month,j.date)&&(i=new Date(j.year,j.month,j.date,j.hours)),i}}}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(a,b){function c(a,c){return a.currentStyle?a.currentStyle[c]:b.getComputedStyle?b.getComputedStyle(a)[c]:a.style[c]}function d(a){return"static"===(c(a,"position")||"static")}var e=function(b){for(var c=a[0],e=b.offsetParent||c;e&&e!==c&&d(e);)e=e.offsetParent;return e||c};return{position:function(b){var c=this.offset(b),d={top:0,left:0},f=e(b[0]);f!=a[0]&&(d=this.offset(angular.element(f)),d.top+=f.clientTop-f.scrollTop,d.left+=f.clientLeft-f.scrollLeft);var g=b[0].getBoundingClientRect();return{width:g.width||b.prop("offsetWidth"),height:g.height||b.prop("offsetHeight"),top:c.top-d.top,left:c.left-d.left}},offset:function(c){var d=c[0].getBoundingClientRect();return{width:d.width||c.prop("offsetWidth"),height:d.height||c.prop("offsetHeight"),top:d.top+(b.pageYOffset||a[0].documentElement.scrollTop),left:d.left+(b.pageXOffset||a[0].documentElement.scrollLeft)}},positionElements:function(a,b,c,d){var e,f,g,h,i=c.split("-"),j=i[0],k=i[1]||"center";e=d?this.offset(a):this.position(a),f=b.prop("offsetWidth"),g=b.prop("offsetHeight");var l={center:function(){return e.left+e.width/2-f/2},left:function(){return e.left},right:function(){return e.left+e.width}},m={center:function(){return e.top+e.height/2-g/2},top:function(){return e.top},bottom:function(){return e.top+e.height}};switch(j){case"right":h={top:m[k](),left:l[j]()};break;case"left":h={top:m[k](),left:e.left-f};break;case"bottom":h={top:m[j](),left:l[k]()};break;default:h={top:e.top-g,left:l[k]()}}return h}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(a,b,c,d,e,f,g,h){var i=this,j={$setViewValue:angular.noop};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(c,e){i[c]=angular.isDefined(b[c])?8>e?d(b[c])(a.$parent):a.$parent.$eval(b[c]):h[c]}),angular.forEach(["minDate","maxDate"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(a){i[d]=a?new Date(a):null,i.refreshView()}):i[d]=h[d]?new Date(h[d]):null}),a.datepickerMode=a.datepickerMode||h.datepickerMode,a.uniqueId="datepicker-"+a.$id+"-"+Math.floor(1e4*Math.random()),this.activeDate=angular.isDefined(b.initDate)?a.$parent.$eval(b.initDate):new Date,a.isActive=function(b){return 0===i.compare(b.date,i.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){j=a,j.$render=function(){i.render()}},this.render=function(){if(j.$modelValue){var a=new Date(j.$modelValue),b=!isNaN(a);b?this.activeDate=a:f.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.'),j.$setValidity("date",b)}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var a=j.$modelValue?new Date(j.$modelValue):null;j.$setValidity("date-disabled",!a||this.element&&!this.isDisabled(a))}},this.createDateObject=function(a,b){var c=j.$modelValue?new Date(j.$modelValue):null;return{date:a,label:g(a,b),selected:c&&0===this.compare(a,c),disabled:this.isDisabled(a),current:0===this.compare(a,new Date)}},this.isDisabled=function(c){return this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},a.select=function(b){if(a.datepickerMode===i.minMode){var c=j.$modelValue?new Date(j.$modelValue):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),j.$setViewValue(c),j.$render()}else i.activeDate=b,a.datepickerMode=i.modes[i.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=i.activeDate.getFullYear()+a*(i.step.years||0),c=i.activeDate.getMonth()+a*(i.step.months||0);i.activeDate.setFullYear(b,c,1),i.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===i.maxMode&&1===b||a.datepickerMode===i.minMode&&-1===b||(a.datepickerMode=i.modes[i.modes.indexOf(a.datepickerMode)+b])},a.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var k=function(){e(function(){i.element[0].focus()},0,!1)};a.$on("datepicker.focus",k),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey)if(b.preventDefault(),b.stopPropagation(),"enter"===c||"space"===c){if(i.isDisabled(i.activeDate))return;a.select(i.activeDate),k()}else!b.ctrlKey||"up"!==c&&"down"!==c?(i.handleKeyDown(c,b),i.refreshView()):(a.toggleMode("up"===c?1:-1),k())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f)}}}).directive("daypicker",["dateFilter",function(a){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(b,c,d,e){function f(a,b){return 1!==b||a%4!==0||a%100===0&&a%400!==0?i[b]:29}function g(a,b){var c=new Array(b),d=new Date(a),e=0;for(d.setHours(12);b>e;)c[e++]=new Date(d),d.setDate(d.getDate()+1);return c}function h(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}b.showWeeks=e.showWeeks,e.step={months:1},e.element=c;var i=[31,28,31,30,31,30,31,31,30,31,30,31];e._refreshView=function(){var c=e.activeDate.getFullYear(),d=e.activeDate.getMonth(),f=new Date(c,d,1),i=e.startingDay-f.getDay(),j=i>0?7-i:-i,k=new Date(f);j>0&&k.setDate(-j+1);for(var l=g(k,42),m=0;42>m;m++)l[m]=angular.extend(e.createDateObject(l[m],e.formatDay),{secondary:l[m].getMonth()!==d,uid:b.uniqueId+"-"+m});b.labels=new Array(7);for(var n=0;7>n;n++)b.labels[n]={abbr:a(l[n].date,e.formatDayHeader),full:a(l[n].date,"EEEE")};if(b.title=a(e.activeDate,e.formatDayTitle),b.rows=e.split(l,7),b.showWeeks){b.weekNumbers=[];for(var o=h(b.rows[0][0].date),p=b.rows.length;b.weekNumbers.push(o++)<p;);}},e.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},e.handleKeyDown=function(a){var b=e.activeDate.getDate();if("left"===a)b-=1;else if("up"===a)b-=7;else if("right"===a)b+=1;else if("down"===a)b+=7;else if("pageup"===a||"pagedown"===a){var c=e.activeDate.getMonth()+("pageup"===a?-1:1);e.activeDate.setMonth(c,1),b=Math.min(f(e.activeDate.getFullYear(),e.activeDate.getMonth()),b)}else"home"===a?b=1:"end"===a&&(b=f(e.activeDate.getFullYear(),e.activeDate.getMonth()));e.activeDate.setDate(b)},e.refreshView()}}}]).directive("monthpicker",["dateFilter",function(a){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(b,c,d,e){e.step={years:1},e.element=c,e._refreshView=function(){for(var c=new Array(12),d=e.activeDate.getFullYear(),f=0;12>f;f++)c[f]=angular.extend(e.createDateObject(new Date(d,f,1),e.formatMonth),{uid:b.uniqueId+"-"+f});b.title=a(e.activeDate,e.formatMonthTitle),b.rows=e.split(c,3)},e.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth())-new Date(b.getFullYear(),b.getMonth())},e.handleKeyDown=function(a){var b=e.activeDate.getMonth();if("left"===a)b-=1;else if("up"===a)b-=3;else if("right"===a)b+=1;else if("down"===a)b+=3;else if("pageup"===a||"pagedown"===a){var c=e.activeDate.getFullYear()+("pageup"===a?-1:1);e.activeDate.setFullYear(c)}else"home"===a?b=0:"end"===a&&(b=11);e.activeDate.setMonth(b)},e.refreshView()}}}]).directive("yearpicker",["dateFilter",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(a,b,c,d){function e(a){return parseInt((a-1)/f,10)*f+1}var f=d.yearRange;d.step={years:f},d.element=b,d._refreshView=function(){for(var b=new Array(f),c=0,g=e(d.activeDate.getFullYear());f>c;c++)b[c]=angular.extend(d.createDateObject(new Date(g+c,0,1),d.formatYear),{uid:a.uniqueId+"-"+c});a.title=[b[0].label,b[f-1].label].join(" - "),a.rows=d.split(b,5)},d.compare=function(a,b){return a.getFullYear()-b.getFullYear()},d.handleKeyDown=function(a){var b=d.activeDate.getFullYear();"left"===a?b-=1:"up"===a?b-=5:"right"===a?b+=1:"down"===a?b+=5:"pageup"===a||"pagedown"===a?b+=("pageup"===a?-1:1)*d.step.years:"home"===a?b=e(d.activeDate.getFullYear()):"end"===a&&(b=e(d.activeDate.getFullYear())+f-1),d.activeDate.setFullYear(b)},d.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","dateParser","datepickerPopupConfig",function(a,b,c,d,e,f,g){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(h,i,j,k){function l(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function m(a){if(a){if(angular.isDate(a)&&!isNaN(a))return k.$setValidity("date",!0),a;if(angular.isString(a)){var b=f.parse(a,n)||new Date(a);return isNaN(b)?void k.$setValidity("date",!1):(k.$setValidity("date",!0),b)}return void k.$setValidity("date",!1)}return k.$setValidity("date",!0),null}var n,o=angular.isDefined(j.closeOnDateSelection)?h.$parent.$eval(j.closeOnDateSelection):g.closeOnDateSelection,p=angular.isDefined(j.datepickerAppendToBody)?h.$parent.$eval(j.datepickerAppendToBody):g.appendToBody;h.showButtonBar=angular.isDefined(j.showButtonBar)?h.$parent.$eval(j.showButtonBar):g.showButtonBar,h.getText=function(a){return h[a+"Text"]||g[a+"Text"]},j.$observe("datepickerPopup",function(a){n=a||g.datepickerPopup,k.$render()});var q=angular.element("<div datepicker-popup-wrap><div datepicker></div></div>");q.attr({"ng-model":"date","ng-change":"dateSelection()"});var r=angular.element(q.children()[0]);j.datepickerOptions&&angular.forEach(h.$parent.$eval(j.datepickerOptions),function(a,b){r.attr(l(b),a)}),angular.forEach(["minDate","maxDate"],function(a){j[a]&&(h.$parent.$watch(b(j[a]),function(b){h[a]=b}),r.attr(l(a),a))}),j.dateDisabled&&r.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),k.$parsers.unshift(m),h.dateSelection=function(a){angular.isDefined(a)&&(h.date=a),k.$setViewValue(h.date),k.$render(),o&&(h.isOpen=!1,i[0].focus())},i.bind("input change keyup",function(){h.$apply(function(){h.date=k.$modelValue})}),k.$render=function(){var a=k.$viewValue?e(k.$viewValue,n):"";i.val(a),h.date=m(k.$modelValue)};var s=function(a){h.isOpen&&a.target!==i[0]&&h.$apply(function(){h.isOpen=!1})},t=function(a){h.keydown(a)};i.bind("keydown",t),h.keydown=function(a){27===a.which?(a.preventDefault(),a.stopPropagation(),h.close()):40!==a.which||h.isOpen||(h.isOpen=!0)},h.$watch("isOpen",function(a){a?(h.$broadcast("datepicker.focus"),h.position=p?d.offset(i):d.position(i),h.position.top=h.position.top+i.prop("offsetHeight"),c.bind("click",s)):c.unbind("click",s)}),h.select=function(a){if("today"===a){var b=new Date;angular.isDate(k.$modelValue)?(a=new Date(k.$modelValue),a.setFullYear(b.getFullYear(),b.getMonth(),b.getDate())):a=new Date(b.setHours(0,0,0,0))}h.dateSelection(a)},h.close=function(){h.isOpen=!1,i[0].focus()};var u=a(q)(h);p?c.find("body").append(u):i.after(u),h.$on("$destroy",function(){u.remove(),i.unbind("keydown",t),c.unbind("click",s)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(a,b){b.bind("click",function(a){a.preventDefault(),a.stopPropagation()})}}}),angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function(a){var b=null;this.open=function(e){b||(a.bind("click",c),a.bind("keydown",d)),b&&b!==e&&(b.isOpen=!1),b=e},this.close=function(e){b===e&&(b=null,a.unbind("click",c),a.unbind("keydown",d))};var c=function(a){a&&a.isDefaultPrevented()||b.$apply(function(){b.isOpen=!1})},d=function(a){27===a.which&&(b.focusToggleElement(),c())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(a,b,c,d,e,f){var g,h=this,i=a.$new(),j=d.openClass,k=angular.noop,l=b.onToggle?c(b.onToggle):angular.noop;this.init=function(d){h.$element=d,b.isOpen&&(g=c(b.isOpen),k=g.assign,a.$watch(g,function(a){i.isOpen=!!a}))},this.toggle=function(a){return i.isOpen=arguments.length?!!a:!i.isOpen},this.isOpen=function(){return i.isOpen},i.focusToggleElement=function(){h.toggleElement&&h.toggleElement[0].focus()},i.$watch("isOpen",function(b,c){f[b?"addClass":"removeClass"](h.$element,j),b?(i.focusToggleElement(),e.open(i)):e.close(i),k(a,b),angular.isDefined(b)&&b!==c&&l(a,{open:!!b})}),a.$on("$locationChangeSuccess",function(){i.isOpen=!1}),a.$on("$destroy",function(){i.$destroy()})}]).directive("dropdown",function(){return{restrict:"CA",controller:"DropdownController",link:function(a,b,c,d){d.init(b)}}}).directive("dropdownToggle",function(){return{restrict:"CA",require:"?^dropdown",link:function(a,b,c,d){if(d){d.toggleElement=b;var e=function(e){e.preventDefault(),b.hasClass("disabled")||c.disabled||a.$apply(function(){d.toggle()})};b.bind("click",e),b.attr({"aria-haspopup":!0,"aria-expanded":!1}),a.$watch(d.isOpen,function(a){b.attr("aria-expanded",!!a)}),a.$on("$destroy",function(){b.unbind("click",e)})}}}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c<a.length;c++)if(b==a[c].key)return a[c]},keys:function(){for(var b=[],c=0;c<a.length;c++)b.push(a[c].key);return b},top:function(){return a[a.length-1]},remove:function(b){for(var c=-1,d=0;d<a.length;d++)if(b==a[d].key){c=d;break}return a.splice(c,1)[0]},removeTop:function(){return a.splice(a.length-1,1)[0]},length:function(){return a.length}}}}}).directive("modalBackdrop",["$timeout",function(a){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(b){b.animate=!1,a(function(){b.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function(a,b){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||"template/modal/window.html"},link:function(c,d,e){d.addClass(e.windowClass||""),c.size=e.size,b(function(){c.animate=!0,d[0].focus()}),c.close=function(b){var c=a.getTop();c&&c.value.backdrop&&"static"!=c.value.backdrop&&b.target===b.currentTarget&&(b.preventDefault(),b.stopPropagation(),a.dismiss(c.key,"backdrop click"))}}}}]).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(a,b,c,d,e,f){function g(){for(var a=-1,b=n.keys(),c=0;c<b.length;c++)n.get(b[c]).value.backdrop&&(a=c);return a}function h(a){var b=c.find("body").eq(0),d=n.get(a).value;n.remove(a),j(d.modalDomEl,d.modalScope,300,function(){d.modalScope.$destroy(),b.toggleClass(m,n.length()>0),i()})}function i(){if(k&&-1==g()){var a=l;j(k,l,150,function(){a.$destroy(),a=null}),k=void 0,l=void 0}}function j(c,d,e,f){function g(){g.done||(g.done=!0,c.remove(),f&&f())}d.animate=!1;var h=a.transitionEndEventName;if(h){var i=b(g,e);c.bind(h,function(){b.cancel(i),g(),d.$apply()})}else b(g,0)}var k,l,m="modal-open",n=f.createNew(),o={};return e.$watch(g,function(a){l&&(l.index=a)}),c.bind("keydown",function(a){var b;27===a.which&&(b=n.top(),b&&b.value.keyboard&&(a.preventDefault(),e.$apply(function(){o.dismiss(b.key,"escape key press")})))}),o.open=function(a,b){n.add(a,{deferred:b.deferred,modalScope:b.scope,backdrop:b.backdrop,keyboard:b.keyboard});var f=c.find("body").eq(0),h=g();h>=0&&!k&&(l=e.$new(!0),l.index=h,k=d("<div modal-backdrop></div>")(l),f.append(k));var i=angular.element("<div modal-window></div>");i.attr({"template-url":b.windowTemplateUrl,"window-class":b.windowClass,size:b.size,index:n.length()-1,animate:"animate"}).html(b.content);var j=d(i)(b.scope);n.top().value.modalDomEl=j,f.append(j),f.addClass(m)},o.close=function(a,b){var c=n.get(a).value;c&&(c.deferred.resolve(b),h(a))},o.dismiss=function(a,b){var c=n.get(a).value;c&&(c.deferred.reject(b),h(a))},o.dismissAll=function(a){for(var b=this.getTop();b;)this.dismiss(b.key,a),b=this.getTop()},o.getTop=function(){return n.top()},o}]).provider("$modal",function(){var a={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(b,c,d,e,f,g,h){function i(a){return a.template?d.when(a.template):e.get(a.templateUrl,{cache:f}).then(function(a){return a.data})}function j(a){var c=[];return angular.forEach(a,function(a){(angular.isFunction(a)||angular.isArray(a))&&c.push(d.when(b.invoke(a)))}),c}var k={};return k.open=function(b){var e=d.defer(),f=d.defer(),k={result:e.promise,opened:f.promise,close:function(a){h.close(k,a)},dismiss:function(a){h.dismiss(k,a)}};if(b=angular.extend({},a.options,b),b.resolve=b.resolve||{},!b.template&&!b.templateUrl)throw new Error("One of template or templateUrl options is required.");var l=d.all([i(b)].concat(j(b.resolve)));return l.then(function(a){var d=(b.scope||c).$new();d.$close=k.close,d.$dismiss=k.dismiss;var f,i={},j=1;b.controller&&(i.$scope=d,i.$modalInstance=k,angular.forEach(b.resolve,function(b,c){i[c]=a[j++]}),f=g(b.controller,i)),h.open(k,{scope:d,deferred:e,content:a[0],backdrop:b.backdrop,keyboard:b.keyboard,windowClass:b.windowClass,windowTemplateUrl:b.windowTemplateUrl,size:b.size})},function(a){e.reject(a)}),l.then(function(){f.resolve(!0)},function(){f.reject(!1)}),k},k}]};return a}),angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function(a,b,c){var d=this,e={$setViewValue:angular.noop},f=b.numPages?c(b.numPages).assign:angular.noop;this.init=function(f,g){e=f,this.config=g,e.$render=function(){d.render()},b.itemsPerPage?a.$parent.$watch(c(b.itemsPerPage),function(b){d.itemsPerPage=parseInt(b,10),a.totalPages=d.calculateTotalPages()}):this.itemsPerPage=g.itemsPerPage},this.calculateTotalPages=function(){var b=this.itemsPerPage<1?1:Math.ceil(a.totalItems/this.itemsPerPage);return Math.max(b||0,1)},this.render=function(){a.page=parseInt(e.$viewValue,10)||1},a.selectPage=function(b){a.page!==b&&b>0&&b<=a.totalPages&&(e.$setViewValue(b),e.$render())},a.getText=function(b){return a[b+"Text"]||d.config[b+"Text"]},a.noPrevious=function(){return 1===a.page},a.noNext=function(){return a.page===a.totalPages},a.$watch("totalItems",function(){a.totalPages=d.calculateTotalPages()}),a.$watch("totalPages",function(b){f(a.$parent,b),a.page>b?a.selectPage(b):e.$render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(a,b){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@"},require:["pagination","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(c,d,e,f){function g(a,b,c){return{number:a,text:b,active:c}}function h(a,b){var c=[],d=1,e=b,f=angular.isDefined(k)&&b>k;f&&(l?(d=Math.max(a-Math.floor(k/2),1),e=d+k-1,e>b&&(e=b,d=e-k+1)):(d=(Math.ceil(a/k)-1)*k+1,e=Math.min(d+k-1,b)));for(var h=d;e>=h;h++){var i=g(h,h,h===a);c.push(i)}if(f&&!l){if(d>1){var j=g(d-1,"...",!1);c.unshift(j)}if(b>e){var m=g(e+1,"...",!1);c.push(m)}}return c}var i=f[0],j=f[1];if(j){var k=angular.isDefined(e.maxSize)?c.$parent.$eval(e.maxSize):b.maxSize,l=angular.isDefined(e.rotate)?c.$parent.$eval(e.rotate):b.rotate;c.boundaryLinks=angular.isDefined(e.boundaryLinks)?c.$parent.$eval(e.boundaryLinks):b.boundaryLinks,c.directionLinks=angular.isDefined(e.directionLinks)?c.$parent.$eval(e.directionLinks):b.directionLinks,i.init(j,b),e.maxSize&&c.$parent.$watch(a(e.maxSize),function(a){k=parseInt(a,10),i.render()});var m=i.render;i.render=function(){m(),c.page>0&&c.page<=c.totalPages&&(c.pages=h(c.page,c.totalPages))}}}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(a){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@"},require:["pager","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(b,c,d,e){var f=e[0],g=e[1];g&&(b.align=angular.isDefined(d.align)?b.$parent.$eval(d.align):a.align,f.init(g,a))}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function a(a){var b=/[A-Z]/g,c="-";
+return a.replace(b,function(a,b){return(b?c:"")+a.toLowerCase()})}var b={placement:"top",animation:!0,popupDelay:0},c={mouseenter:"mouseleave",click:"click",focus:"blur"},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(e,f,g,h,i,j,k){return function(e,l,m){function n(a){var b=a||o.trigger||m,d=c[b]||b;return{show:b,hide:d}}var o=angular.extend({},b,d),p=a(e),q=k.startSymbol(),r=k.endSymbol(),s="<div "+p+'-popup title="'+q+"tt_title"+r+'" content="'+q+"tt_content"+r+'" placement="'+q+"tt_placement"+r+'" animation="tt_animation" is-open="tt_isOpen"></div>';return{restrict:"EA",scope:!0,compile:function(){var a=f(s);return function(b,c,d){function f(){b.tt_isOpen?m():k()}function k(){(!y||b.$eval(d[l+"Enable"]))&&(b.tt_popupDelay?v||(v=g(p,b.tt_popupDelay,!1),v.then(function(a){a()})):p()())}function m(){b.$apply(function(){q()})}function p(){return v=null,u&&(g.cancel(u),u=null),b.tt_content?(r(),t.css({top:0,left:0,display:"block"}),w?i.find("body").append(t):c.after(t),z(),b.tt_isOpen=!0,b.$digest(),z):angular.noop}function q(){b.tt_isOpen=!1,g.cancel(v),v=null,b.tt_animation?u||(u=g(s,500)):s()}function r(){t&&s(),t=a(b,function(){}),b.$digest()}function s(){u=null,t&&(t.remove(),t=null)}var t,u,v,w=angular.isDefined(o.appendToBody)?o.appendToBody:!1,x=n(void 0),y=angular.isDefined(d[l+"Enable"]),z=function(){var a=j.positionElements(c,t,b.tt_placement,w);a.top+="px",a.left+="px",t.css(a)};b.tt_isOpen=!1,d.$observe(e,function(a){b.tt_content=a,!a&&b.tt_isOpen&&q()}),d.$observe(l+"Title",function(a){b.tt_title=a}),d.$observe(l+"Placement",function(a){b.tt_placement=angular.isDefined(a)?a:o.placement}),d.$observe(l+"PopupDelay",function(a){var c=parseInt(a,10);b.tt_popupDelay=isNaN(c)?o.popupDelay:c});var A=function(){c.unbind(x.show,k),c.unbind(x.hide,m)};d.$observe(l+"Trigger",function(a){A(),x=n(a),x.show===x.hide?c.bind(x.show,f):(c.bind(x.show,k),c.bind(x.hide,m))});var B=b.$eval(d[l+"Animation"]);b.tt_animation=angular.isDefined(B)?!!B:o.animation,d.$observe(l+"AppendToBody",function(a){w=angular.isDefined(a)?h(a)(b):w}),w&&b.$on("$locationChangeSuccess",function(){b.tt_isOpen&&q()}),b.$on("$destroy",function(){g.cancel(u),g.cancel(v),A(),s()})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(a){return a("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(a){return a("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function(a){return a("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig",function(a,b,c){var d=this,e=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max,this.addBar=function(b,c){e||c.css({transition:"none"}),this.bars.push(b),b.$watch("value",function(c){b.percent=+(100*c/a.max).toFixed(2)}),b.$on("$destroy",function(){c=null,d.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},templateUrl:"template/progressbar/progress.html"}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(a,b,c,d){d.addBar(a,b)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]))}}}),angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","ratingConfig",function(a,b,c){var d={$setViewValue:angular.noop};this.init=function(e){d=e,d.$render=this.render,this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):c.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):c.stateOff;var f=angular.isDefined(b.ratingStates)?a.$parent.$eval(b.ratingStates):new Array(angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max);a.range=this.buildTemplateObjects(f)},this.buildTemplateObjects=function(a){for(var b=0,c=a.length;c>b;b++)a[b]=angular.extend({index:b},{stateOn:this.stateOn,stateOff:this.stateOff},a[b]);return a},a.rate=function(b){!a.readonly&&b>=0&&b<=a.range.length&&(d.$setViewValue(b),d.$render())},a.enter=function(b){a.readonly||(a.value=b),a.onHover({value:b})},a.reset=function(){a.value=d.$viewValue,a.onLeave()},a.onKeydown=function(b){/(37|38|39|40)/.test(b.which)&&(b.preventDefault(),b.stopPropagation(),a.rate(a.value+(38===b.which||39===b.which?1:-1)))},this.render=function(){a.value=d.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f)}}}),angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(b){b.active&&b!==a&&(b.active=!1,b.onDeselect())}),a.active=!0,a.onSelect()},b.addTab=function(a){c.push(a),1===c.length?a.active=!0:a.active&&b.select(a)},b.removeTab=function(a){var d=c.indexOf(a);if(a.active&&c.length>1){var e=d==c.length-1?d-1:d+1;b.select(c[e])}c.splice(d,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1}}}).directive("tab",["$parse",function(a){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(b,c,d){return function(b,c,e,f){b.$watch("active",function(a){a&&f.select(b)}),b.disabled=!1,e.disabled&&b.$parent.$watch(a(e.disabled),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},f.addTab(b),b.$on("$destroy",function(){f.removeTab(b)}),b.$transcludeFn=d}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(a,b){a.$watch("headingElement",function(a){a&&(b.html(""),b.append(a))})}}}]).directive("tabContentTransclude",function(){function a(a){return a.tagName&&(a.hasAttribute("tab-heading")||a.hasAttribute("data-tab-heading")||"tab-heading"===a.tagName.toLowerCase()||"data-tab-heading"===a.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(b,c,d){var e=b.$eval(d.tabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function(a,b,c,d,e,f){function g(){var b=parseInt(a.hours,10),c=a.showMeridian?b>0&&13>b:b>=0&&24>b;return c?(a.showMeridian&&(12===b&&(b=0),a.meridian===p[1]&&(b+=12)),b):void 0}function h(){var b=parseInt(a.minutes,10);return b>=0&&60>b?b:void 0}function i(a){return angular.isDefined(a)&&a.toString().length<2?"0"+a:a}function j(a){k(),o.$setViewValue(new Date(n)),l(a)}function k(){o.$setValidity("time",!0),a.invalidHours=!1,a.invalidMinutes=!1}function l(b){var c=n.getHours(),d=n.getMinutes();a.showMeridian&&(c=0===c||12===c?12:c%12),a.hours="h"===b?c:i(c),a.minutes="m"===b?d:i(d),a.meridian=n.getHours()<12?p[0]:p[1]}function m(a){var b=new Date(n.getTime()+6e4*a);n.setHours(b.getHours(),b.getMinutes()),j()}var n=new Date,o={$setViewValue:angular.noop},p=angular.isDefined(b.meridians)?a.$parent.$eval(b.meridians):f.meridians||e.DATETIME_FORMATS.AMPMS;this.init=function(c,d){o=c,o.$render=this.render;var e=d.eq(0),g=d.eq(1),h=angular.isDefined(b.mousewheel)?a.$parent.$eval(b.mousewheel):f.mousewheel;h&&this.setupMousewheelEvents(e,g),a.readonlyInput=angular.isDefined(b.readonlyInput)?a.$parent.$eval(b.readonlyInput):f.readonlyInput,this.setupInputEvents(e,g)};var q=f.hourStep;b.hourStep&&a.$parent.$watch(c(b.hourStep),function(a){q=parseInt(a,10)});var r=f.minuteStep;b.minuteStep&&a.$parent.$watch(c(b.minuteStep),function(a){r=parseInt(a,10)}),a.showMeridian=f.showMeridian,b.showMeridian&&a.$parent.$watch(c(b.showMeridian),function(b){if(a.showMeridian=!!b,o.$error.time){var c=g(),d=h();angular.isDefined(c)&&angular.isDefined(d)&&(n.setHours(c),j())}else l()}),this.setupMousewheelEvents=function(b,c){var d=function(a){a.originalEvent&&(a=a.originalEvent);var b=a.wheelDelta?a.wheelDelta:-a.deltaY;return a.detail||b>0};b.bind("mousewheel wheel",function(b){a.$apply(d(b)?a.incrementHours():a.decrementHours()),b.preventDefault()}),c.bind("mousewheel wheel",function(b){a.$apply(d(b)?a.incrementMinutes():a.decrementMinutes()),b.preventDefault()})},this.setupInputEvents=function(b,c){if(a.readonlyInput)return a.updateHours=angular.noop,void(a.updateMinutes=angular.noop);var d=function(b,c){o.$setViewValue(null),o.$setValidity("time",!1),angular.isDefined(b)&&(a.invalidHours=b),angular.isDefined(c)&&(a.invalidMinutes=c)};a.updateHours=function(){var a=g();angular.isDefined(a)?(n.setHours(a),j("h")):d(!0)},b.bind("blur",function(){!a.invalidHours&&a.hours<10&&a.$apply(function(){a.hours=i(a.hours)})}),a.updateMinutes=function(){var a=h();angular.isDefined(a)?(n.setMinutes(a),j("m")):d(void 0,!0)},c.bind("blur",function(){!a.invalidMinutes&&a.minutes<10&&a.$apply(function(){a.minutes=i(a.minutes)})})},this.render=function(){var a=o.$modelValue?new Date(o.$modelValue):null;isNaN(a)?(o.$setValidity("time",!1),d.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(a&&(n=a),k(),l())},a.incrementHours=function(){m(60*q)},a.decrementHours=function(){m(60*-q)},a.incrementMinutes=function(){m(r)},a.decrementMinutes=function(){m(-r)},a.toggleMeridian=function(){m(720*(n.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f,b.find("input"))}}}),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(a){var b=/^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+(.*)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+c+'".');return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(a,b,c,d,e,f,g){var h=[9,13,27,38,40];return{require:"ngModel",link:function(i,j,k,l){var m,n=i.$eval(k.typeaheadMinLength)||1,o=i.$eval(k.typeaheadWaitMs)||0,p=i.$eval(k.typeaheadEditable)!==!1,q=b(k.typeaheadLoading).assign||angular.noop,r=b(k.typeaheadOnSelect),s=k.typeaheadInputFormatter?b(k.typeaheadInputFormatter):void 0,t=k.typeaheadAppendToBody?i.$eval(k.typeaheadAppendToBody):!1,u=b(k.ngModel).assign,v=g.parse(k.typeahead),w=i.$new();i.$on("$destroy",function(){w.$destroy()});var x="typeahead-"+w.$id+"-"+Math.floor(1e4*Math.random());j.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":x});var y=angular.element("<div typeahead-popup></div>");y.attr({id:x,matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"}),angular.isDefined(k.typeaheadTemplateUrl)&&y.attr("template-url",k.typeaheadTemplateUrl);var z=function(){w.matches=[],w.activeIdx=-1,j.attr("aria-expanded",!1)},A=function(a){return x+"-option-"+a};w.$watch("activeIdx",function(a){0>a?j.removeAttr("aria-activedescendant"):j.attr("aria-activedescendant",A(a))});var B=function(a){var b={$viewValue:a};q(i,!0),c.when(v.source(i,b)).then(function(c){var d=a===l.$viewValue;if(d&&m)if(c.length>0){w.activeIdx=0,w.matches.length=0;for(var e=0;e<c.length;e++)b[v.itemName]=c[e],w.matches.push({id:A(e),label:v.viewMapper(w,b),model:c[e]});w.query=a,w.position=t?f.offset(j):f.position(j),w.position.top=w.position.top+j.prop("offsetHeight"),j.attr("aria-expanded",!0)}else z();d&&q(i,!1)},function(){z(),q(i,!1)})};z(),w.query=void 0;var C;l.$parsers.unshift(function(a){return m=!0,a&&a.length>=n?o>0?(C&&d.cancel(C),C=d(function(){B(a)},o)):B(a):(q(i,!1),z()),p?a:a?void l.$setValidity("editable",!1):(l.$setValidity("editable",!0),a)}),l.$formatters.push(function(a){var b,c,d={};return s?(d.$model=a,s(i,d)):(d[v.itemName]=a,b=v.viewMapper(i,d),d[v.itemName]=void 0,c=v.viewMapper(i,d),b!==c?b:a)}),w.select=function(a){var b,c,e={};e[v.itemName]=c=w.matches[a].model,b=v.modelMapper(i,e),u(i,b),l.$setValidity("editable",!0),r(i,{$item:c,$model:b,$label:v.viewMapper(i,e)}),z(),d(function(){j[0].focus()},0,!1)},j.bind("keydown",function(a){0!==w.matches.length&&-1!==h.indexOf(a.which)&&(a.preventDefault(),40===a.which?(w.activeIdx=(w.activeIdx+1)%w.matches.length,w.$digest()):38===a.which?(w.activeIdx=(w.activeIdx?w.activeIdx:w.matches.length)-1,w.$digest()):13===a.which||9===a.which?w.$apply(function(){w.select(w.activeIdx)}):27===a.which&&(a.stopPropagation(),z(),w.$digest()))}),j.bind("blur",function(){m=!1});var D=function(a){j[0]!==a.target&&(z(),w.$digest())};e.bind("click",D),i.$on("$destroy",function(){e.unbind("click",D)});var E=a(y)(w);t?e.find("body").append(E):j.after(E)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(a,b,c){a.templateUrl=c.templateUrl,a.isOpen=function(){return a.matches.length>0},a.isActive=function(b){return a.active==b},a.selectActive=function(b){a.active=b},a.selectMatch=function(b){a.select({activeIdx:b})}}}}).directive("typeaheadMatch",["$http","$templateCache","$compile","$parse",function(a,b,c,d){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(e,f,g){var h=d(g.templateUrl)(e.$parent)||"template/typeahead/typeahead-match.html";a.get(h,{cache:b}).success(function(a){f.replaceWith(c(a.trim())(e))})}}}]).filter("typeaheadHighlight",function(){function a(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(b,c){return c?(""+b).replace(new RegExp(a(c),"gi"),"<strong>$&</strong>"):b}}),angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(a){a.put("template/accordion/accordion-group.html",'<div class="panel panel-default">\n <div class="panel-heading">\n <h4 class="panel-title">\n <a class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a>\n </h4>\n </div>\n <div class="panel-collapse" collapse="!isOpen">\n <div class="panel-body" ng-transclude></div>\n </div>\n</div>')}]),angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(a){a.put("template/accordion/accordion.html",'<div class="panel-group" ng-transclude></div>')}]),angular.module("template/alert/alert.html",[]).run(["$templateCache",function(a){a.put("template/alert/alert.html",'<div class="alert" ng-class="{\'alert-{{type || \'warning\'}}\': true, \'alert-dismissable\': closeable}" role="alert">\n <button ng-show="closeable" type="button" class="close" ng-click="close()">\n <span aria-hidden="true">&times;</span>\n <span class="sr-only">Close</span>\n </button>\n <div ng-transclude></div>\n</div>\n')}]),angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(a){a.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n <ol class="carousel-indicators" ng-show="slides.length > 1">\n <li ng-repeat="slide in slides track by $index" ng-class="{active: isActive(slide)}" ng-click="select(slide)"></li>\n </ol>\n <div class="carousel-inner" ng-transclude></div>\n <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-left"></span></a>\n <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-right"></span></a>\n</div>\n')}]),angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(a){a.put("template/carousel/slide.html","<div ng-class=\"{\n 'active': leaving || (active && !entering),\n 'prev': (next || active) && direction=='prev',\n 'next': (next || active) && direction=='next',\n 'right': direction=='prev',\n 'left': direction=='next'\n }\" class=\"item text-center\" ng-transclude></div>\n")}]),angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/datepicker.html",'<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n <daypicker ng-switch-when="day" tabindex="0"></daypicker>\n <monthpicker ng-switch-when="month" tabindex="0"></monthpicker>\n <yearpicker ng-switch-when="year" tabindex="0"></yearpicker>\n</div>')}]),angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/day.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="{{5 + showWeeks}}"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n <tr>\n <th ng-show="showWeeks" class="text-center"></th>\n <th ng-repeat="label in labels track by $index" class="text-center"><small aria-label="{{label.full}}">{{label.abbr}}</small></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-show="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n <button type="button" style="width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/month.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/popup.html",'<ul class="dropdown-menu" ng-style="{display: (isOpen && \'block\') || \'none\', top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)">\n <li ng-transclude></li>\n <li ng-if="showButtonBar" style="padding:10px 9px 2px">\n <span class="btn-group">\n <button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')">{{ getText(\'current\') }}</button>\n <button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}</button>\n </span>\n <button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}</button>\n </li>\n</ul>\n')}]),angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/year.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="3"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(a){a.put("template/modal/backdrop.html",'<div class="modal-backdrop fade"\n ng-class="{in: animate}"\n ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(a){a.put("template/modal/window.html",'<div tabindex="-1" role="dialog" class="modal fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n <div class="modal-dialog" ng-class="{\'modal-sm\': size == \'sm\', \'modal-lg\': size == \'lg\'}"><div class="modal-content" ng-transclude></div></div>\n</div>')}]),angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(a){a.put("template/pagination/pager.html",'<ul class="pager">\n <li ng-class="{disabled: noPrevious(), previous: align}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}</a></li>\n <li ng-class="{disabled: noNext(), next: align}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}</a></li>\n</ul>')}]),angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(a){a.put("template/pagination/pagination.html",'<ul class="pagination">\n <li ng-if="boundaryLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(1)">{{getText(\'first\')}}</a></li>\n <li ng-if="directionLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}</a></li>\n <li ng-repeat="page in pages track by $index" ng-class="{active: page.active}"><a href ng-click="selectPage(page.number)">{{page.text}}</a></li>\n <li ng-if="directionLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}</a></li>\n <li ng-if="boundaryLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(totalPages)">{{getText(\'last\')}}</a></li>\n</ul>')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("template/popover/popover.html",[]).run(["$templateCache",function(a){a.put("template/popover/popover.html",'<div class="popover {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="title" ng-show="title"></h3>\n <div class="popover-content" ng-bind="content"></div>\n </div>\n</div>\n')}]),angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude></div>')}]),angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/progress.html",'<div class="progress" ng-transclude></div>')}]),angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/progressbar.html",'<div class="progress">\n <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude></div>\n</div>')}]),angular.module("template/rating/rating.html",[]).run(["$templateCache",function(a){a.put("template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n <i ng-repeat="r in range track by $index" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')">\n <span class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n </i>\n</span>')}]),angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}">\n <a ng-click="select()" tab-heading-transclude>{{heading}}</a>\n</li>\n')}]),angular.module("template/tabs/tabset-titles.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tabset-titles.html","<ul class=\"nav {{type && 'nav-' + type}}\" ng-class=\"{'nav-stacked': vertical}\">\n</ul>\n")}]),angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tabset.html",'\n<div>\n <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n <div class="tab-content">\n <div class="tab-pane" \n ng-repeat="tab in tabs" \n ng-class="{active: tab.active}"\n tab-content-transclude="tab">\n </div>\n </div>\n</div>\n')}]),angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(a){a.put("template/timepicker/timepicker.html",'<table>\n <tbody>\n <tr class="text-center">\n <td><a ng-click="incrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td>&nbsp;</td>\n <td><a ng-click="incrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n <tr>\n <td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidHours}">\n <input type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-mousewheel="incrementHours()" ng-readonly="readonlyInput" maxlength="2">\n </td>\n <td>:</td>\n <td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n <input type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2">\n </td>\n <td ng-show="showMeridian"><button type="button" class="btn btn-default text-center" ng-click="toggleMeridian()">{{meridian}}</button></td>\n </tr>\n <tr class="text-center">\n <td><a ng-click="decrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td>&nbsp;</td>\n <td><a ng-click="decrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(a){a.put("template/typeahead/typeahead-match.html",'<a tabindex="-1" bind-html-unsafe="match.label | typeaheadHighlight:query"></a>')}]),angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(a){a.put("template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-if="isOpen()" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{match.id}}">\n <div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n </li>\n</ul>')
+}]); \ No newline at end of file
diff --git a/bitbake/lib/toaster/toastergui/templates/base.html b/bitbake/lib/toaster/toastergui/templates/base.html
index 9ef249aab3..58392b36f5 100644
--- a/bitbake/lib/toaster/toastergui/templates/base.html
+++ b/bitbake/lib/toaster/toastergui/templates/base.html
@@ -1,14 +1,16 @@
<!DOCTYPE html>
{% load static %}
-<html>
+<html lang="en">
<head>
<title>{% if objectname %} {{objectname|title}} - {% endif %}Toaster</title>
-<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}" type="text/css">
-<link rel="stylesheet" href="{% static 'css/bootstrap-responsive.min.css' %}" type='text/css'>
-<link rel="stylesheet" href="{% static 'css/font-awesome.min.css' %}" type='text/css'>
-<link rel="stylesheet" href="{% static 'css/prettify.css' %}" type='text/css'>
-<link rel="stylesheet" href="{% static 'css/default.css' %}" type='text/css'>
+<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}" type="text/css"/>
+<link rel="stylesheet" href="{% static 'css/bootstrap-responsive.min.css' %}" type='text/css'/>
+<link rel="stylesheet" href="{% static 'css/font-awesome.min.css' %}" type='text/css'/>
+<link rel="stylesheet" href="{% static 'css/prettify.css' %}" type='text/css'/>
+<link rel="stylesheet" href="{% static 'css/default.css' %}" type='text/css'/>
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<script src="{% static 'js/jquery-2.0.3.min.js' %}">
</script>
<script src="{% static 'js/jquery.cookie.js' %}">
@@ -17,36 +19,35 @@
</script>
<script src="{% static 'js/prettify.js' %}">
</script>
-<script src="{% static 'js/main.js' %}">
+<script src="{% static 'js/libtoaster.js' %}">
</script>
+{% if DEBUG %}
+<script>
+ libtoaster.debug = true;
+ </script>
+{% endif %}
+<script src="{% static 'js/base.js' %}"></script>
+{%if MANAGED %}
+<script>
+ $(document).ready(function () {
+ /* Vars needed for base.js */
+ var ctx = {};
+ ctx.xhrDataTypeaheadUrl = "{% url 'xhr_datatypeahead' %}";
+ ctx.projectBuildUrl = "{% url 'xhr_build' %}";
+ ctx.projectPageUrl = "{% url 'base_project' %}";
+ ctx.projectInfoUrl = "{% url 'xhr_projectinfo' %}";
+ ctx.numProjects = {{projects|length}};
+ {% if project %}
+ ctx.projectId = {{project.id}};
+ {% endif %}
+ ctx.currentUrl = "{{request.path|escapejs}}";
+
+ basePageInit(ctx);
+ });
+</script>
+{% endif %}
<script>
-function reload_params(params) {
- uri = window.location.href;
- splitlist = uri.split("?");
- url = splitlist[0], parameters=splitlist[1];
- // deserialize the call parameters
- if(parameters){
- cparams = parameters.split("&");
- }else{
- cparams = []
- }
- nparams = {}
- for (i = 0; i < cparams.length; i++) {
- temp = cparams[i].split("=");
- nparams[temp[0]] = temp[1];
- }
- // update parameter values
- for (i in params) {
- nparams[encodeURIComponent(i)] = encodeURIComponent(params[i]);
- }
- // serialize the structure
- callparams = []
- for (i in nparams) {
- callparams.push(i+"="+nparams[i]);
- }
- window.location.href = url+"?"+callparams.join('&');
-}
</script>
{% block extraheadcontent %}
@@ -57,28 +58,61 @@ function reload_params(params) {
<div class="navbar navbar-static-top">
<div class="navbar-inner">
<a class="brand logo" href="#"><img src="{% static 'img/logo.png' %}" class="" alt="Yocto logo project"/></a>
- <a class="brand" href="/">Toaster</a>
- {%if MANAGED %}
- <div class="btn-group pull-right">
- <a class="btn" href="{% url 'newproject' %}">New project</a>
- <button class="btn dropdown-toggle" data-toggle="dropdown">
- <i class="icon-caret-down"></i>
- </button>
- <ul class="dropdown-menu">
-{% for prj in projects %}
- <li><a href="{% url 'project' prj.id %}">{{prj.name}}</a></li>
-{% endfor %}
- <li><hr/></li>
- <li><a href="#">Clone project</a></li>
- <li><a href="#">Export project</a></li>
- <li><a href="#">Import project</a></li>
- </ul>
- </div>
- {%endif%}
- <a class="pull-right manual" target="_blank" href="http://www.yoctoproject.org/documentation/toaster-manual">
+ <span class="brand">
+ <a href="/">Toaster</a>
+ {% if DEBUG %}
+ <i class="icon-info-sign" title="<strong>Toaster version information</strong>" data-content="<dl><dt>Branch</dt><dd>{{TOASTER_BRANCH}}</dd><dt>Revision</dt><dd>{{TOASTER_REVISION}}</dd><dt>Mode</dt><dd>{%if MANAGED%}Build{%else%}Analysis{%endif%}</dd></dl>"></i>
+ {% endif %}
+ </span>
+ <a class="pull-right manual" target="_blank" href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html">
<i class="icon-book"></i>
Toaster manual
</a>
+ {%if MANAGED %}
+ <div class="btn-group pull-right">
+ <a class="btn" id="new-project-button" href="{% url 'newproject' %}">New project</a>
+ </div>
+ <!-- New build popover -->
+ <div class="btn-group pull-right" id="new-build-button">
+ <button class="btn dropdown-toggle" data-toggle="dropdown">
+ New build
+ <i class="icon-caret-down"></i>
+ </button>
+ <ul class="dropdown-menu new-build multi-select">
+ <li>
+ <h3>New build</h3>
+ <h6>Project:</h6>
+ <span id="project">
+ <a class="lead" href="{% if project.id %}{% url 'project' project.id %}{% endif %}">{{project.name}}</a>
+ <i class="icon-pencil"></i>
+ </span>
+ <form id="change-project-form" style="display:none;">
+ <div class="input-append">
+ <input type="text" class="input-medium" id="project-name-input" placeholder="Type a project name" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead"/>
+ <button id="save-project-button" class="btn" type="button">Save</button>
+ <a href="#" id="cancel-change-project" class="btn btn-link">Cancel</a>
+ </div>
+ <p><a id="view-all-projects" href="{% url 'all-projects' %}">View all projects</a></p>
+ </form>
+ </li>
+ <div class="alert" style="display:none">
+ This project's configuration is incomplete,<br/>so you cannot run builds.<br/>
+ <p><a href="{% if project.id %}{% url 'project' project.id %}{% endif %}">View project configuration</a></p>
+ </div>
+ <li id="targets-form">
+ <h6>Recipe(s):</h6>
+ <form>
+ <input type="text" class="input-xlarge" id="build-target-input" placeholder="Type a recipe name" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" />
+ <div>
+ <a class="btn btn-primary" id="build-button" disabled="disabled" data-project-id="{{project.id}}">Build</a>
+ </div>
+ </form>
+ </li>
+ </ul>
+ </div>
+
+ {%endif%}
+
</div>
</div>
diff --git a/bitbake/lib/toaster/toastergui/templates/basebuilddetailpage.html b/bitbake/lib/toaster/toastergui/templates/basebuilddetailpage.html
index 5149768517..c8e217e9dd 100644
--- a/bitbake/lib/toaster/toastergui/templates/basebuilddetailpage.html
+++ b/bitbake/lib/toaster/toastergui/templates/basebuilddetailpage.html
@@ -7,7 +7,10 @@
<div class="section">
<ul class="breadcrumb" id="breadcrumb">
<li><a href="{% url 'all-builds' %}">All builds</a></li>
- <li><a href="{%url 'builddashboard' build.pk%}">{{build.target_set.all.0.target}} {%if build.target_set.all.count > 1%}(+ {{build.target_set.all.count|add:"-1"}}){%endif%} {{build.machine}} ({{build.completed_on|date:"d/m/y H:i"}})</a></li>
+ {% if MANAGED and build.project %}
+ <li><a href="{% url 'project' build.project.id %}">{{build.project.name}}</a></li>
+ {%endif%}
+ <li><a href="{%url 'builddashboard' build.pk%}">{{build.target_set.all.0.target}} {%if build.target_set.all.count > 1%}(+ {{build.target_set.all.count|add:"-1"}}){%endif%}{%if not MANAGED %}{{build.machine}}{%endif%} ({{build.completed_on|date:"d/m/y H:i"}})</a></li>
{% block localbreadcrumb %}{% endblock %}
</ul>
<script>
diff --git a/bitbake/lib/toaster/toastergui/templates/basebuildpage.html b/bitbake/lib/toaster/toastergui/templates/basebuildpage.html
index 46110519e9..c03f1b4015 100644
--- a/bitbake/lib/toaster/toastergui/templates/basebuildpage.html
+++ b/bitbake/lib/toaster/toastergui/templates/basebuildpage.html
@@ -8,11 +8,14 @@
<!-- Breadcrumbs -->
<div class="section">
<ul class="breadcrumb" id="breadcrumb">
-<li><a href="{% url 'all-builds' %}">All builds</a></li>
+ <li><a href="{% url 'all-builds' %}">All builds</a></li>
+ {% if MANAGED and build.project %}
+ <li><a href="{% url 'project' build.project.id %}">{{build.project.name}}</a></li>
+ {%endif%}
<li>
{% block parentbreadcrumb %}
<a href="{%url 'builddashboard' build.pk%}">
- {{build.get_sorted_target_list.0.target}} {%if build.target_set.all.count > 1%}(+ {{build.target_set.all.count|add:"-1"}}){%endif%} {{build.machine}} ({{build.completed_on|date:"d/m/y H:i"}})
+ {{build.get_sorted_target_list.0.target}} {%if build.target_set.all.count > 1%}(+ {{build.target_set.all.count|add:"-1"}}){%endif%} {%if not MANAGED %}{{build.machine}}{% endif %} ({{build.completed_on|date:"d/m/y H:i"}})
</a>
{% endblock %}
</li>
diff --git a/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html b/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html
index 54edaaf27c..0807f4cb1d 100644
--- a/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html
+++ b/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html
@@ -4,17 +4,23 @@
{% block pagecontent %}
- <div class="">
+ <div class="row-fluid">
<!-- Breadcrumbs -->
<div class="section">
<ul class="breadcrumb" id="breadcrumb">
<li><a href="{% url 'all-builds' %}">All builds</a></li>
{% block parentbreadcrumb %}
{% if project %}
+ {% if project_html %}
<li>
- <a href="{%url 'project' project.id %}">{{project.name}}
+ {{project.name}}
+ </li>
+ {% else %}
+ <li>
+ <a href="{%url 'project' project.id %}"><span id="project_name">{{project.name}}</span>
</a>
</li>
+ {% endif %}
{% endif %}
{% endblock %}
{% block localbreadcrumb %}{% endblock %}
@@ -28,14 +34,10 @@
</script>
</div>
- <div class="row-fluid">
-
- <!-- Begin right container -->
- {% block projectinfomain %}{% endblock %}
- <!-- End right container -->
+ <!-- Begin main page container -->
+ {% block projectinfomain %}{% endblock %}
+ <!-- End main container -->
-
- </div>
</div>
diff --git a/bitbake/lib/toaster/toastergui/templates/basetable_bottom.html b/bitbake/lib/toaster/toastergui/templates/basetable_bottom.html
index e6b9506281..d48ad92020 100644
--- a/bitbake/lib/toaster/toastergui/templates/basetable_bottom.html
+++ b/bitbake/lib/toaster/toastergui/templates/basetable_bottom.html
@@ -25,7 +25,7 @@
<div class="pull-right">
<span class="help-inline" style="padding-top:5px;">Show rows:</span>
<select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
- {% with "2 5 10 25 50 100" as list%}
+ {% with "10 25 50 100 150" as list%}
{% for i in list.split %}
<option value="{{i}}">{{i}}</option>
{% endfor %}
@@ -58,9 +58,12 @@
}
// load cookie for number of entries to be displayed on page
- pagesize = $.cookie('count');
- if (!pagesize)
- pagesize = 10;
+ if ({{request.GET.count}} != "") {
+ pagesize = {{request.GET.count}};
+ } else {
+ pagesize = $.cookie('_count');
+ }
+
$('.pagesize option').prop('selected', false)
.filter('[value="' + pagesize + '"]')
.attr('selected', true);
@@ -81,9 +84,9 @@
$('.progress, .lead span').tooltip({container:'table', placement:'top'});
$(".pagesize").change(function () {
- reload_params({"count":$(this).val()});
// save cookie with pagesize
- $.cookie("count", $(this).val(), { path : $(location).attr('pathname') });
+ $.cookie("_count", $(this).val(), { path : $(location).attr('pathname') });
+ reload_params({"count":$(this).val()});
});
});
</script>
diff --git a/bitbake/lib/toaster/toastergui/templates/basetable_top.html b/bitbake/lib/toaster/toastergui/templates/basetable_top.html
index e43eb2ce12..92a3b50801 100644
--- a/bitbake/lib/toaster/toastergui/templates/basetable_top.html
+++ b/bitbake/lib/toaster/toastergui/templates/basetable_top.html
@@ -175,6 +175,7 @@
<button class="btn" type="submit" value="Search">Search</button>
</form>
<div class="pull-right">
+ {% block custombuttons%} {% endblock %}
{% if tablecols %}
<div class="btn-group">
<button class="btn dropdown-toggle" data-toggle="dropdown">Edit columns
@@ -211,7 +212,7 @@
<span class="divider-vertical"></span>
<span class="help-inline" style="padding-top:5px;">Show rows:</span>
<select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
- {% with "2 5 10 25 50 100" as list%}
+ {% with "10 25 50 100 150" as list%}
{% for i in list.split %}
<option value="{{i}}">{{i}}</option>
{% endfor %}
diff --git a/bitbake/lib/toaster/toastergui/templates/basetable_top_buildprojects.html b/bitbake/lib/toaster/toastergui/templates/basetable_top_buildprojects.html
new file mode 100644
index 0000000000..d517179592
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/basetable_top_buildprojects.html
@@ -0,0 +1,16 @@
+{% extends "basetable_top.html" %}
+
+{%block custombuttons %}
+{% if MANAGED %}
+ <div class="btn-group builds-projects">
+ <button class="btn dropdown-toggle" data-toggle="dropdown">
+ <span class="selection">Show all builds</span>
+ <i class="icon-caret-down"></i>
+ </button>
+ <ul class="dropdown-menu">
+ <li><a href="{% url 'all-builds'%}">Show all builds</a></li>
+ <li><a href="{% url 'all-projects'%}">Show all projects</a></li>
+ </ul>
+ </div>
+{% endif %}
+{%endblock%}
diff --git a/bitbake/lib/toaster/toastergui/templates/basetable_top_layers.html b/bitbake/lib/toaster/toastergui/templates/basetable_top_layers.html
new file mode 100644
index 0000000000..bd6e7dd2de
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/basetable_top_layers.html
@@ -0,0 +1,5 @@
+{% extends "basetable_top.html" %}
+
+{%block custombuttons %}
+ <a class="btn" href="{% url 'importlayer' %}" style="margin-right:5px;">Import layer</a>
+{%endblock%}
diff --git a/bitbake/lib/toaster/toastergui/templates/basetable_top_projectbuilds.html b/bitbake/lib/toaster/toastergui/templates/basetable_top_projectbuilds.html
new file mode 100644
index 0000000000..bfefff5e33
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/basetable_top_projectbuilds.html
@@ -0,0 +1,16 @@
+{% extends "basetable_top.html" %}
+
+{%block custombuttons %}
+{% if MANAGED %}
+ <div class="btn-group builds-projects">
+ <button class="btn dropdown-toggle" data-toggle="dropdown">
+ <span class="selection">Show all projects</span>
+ <i class="icon-caret-down"></i>
+ </button>
+ <ul class="dropdown-menu">
+ <li><a href="{% url 'all-builds'%}">Show all builds</a></li>
+ <li><a href="{% url 'all-projects'%}">Show all projects</a></li>
+ </ul>
+ </div>
+{% endif %}
+{%endblock%}
diff --git a/bitbake/lib/toaster/toastergui/templates/bpackage.html b/bitbake/lib/toaster/toastergui/templates/bpackage.html
index 2d4948be4b..80229f908d 100644
--- a/bitbake/lib/toaster/toastergui/templates/bpackage.html
+++ b/bitbake/lib/toaster/toastergui/templates/bpackage.html
@@ -88,7 +88,9 @@
</a>
</td>
<!-- Layer directory -->
- <td class="recipe__layer_version__layer__local_path">{{package.recipe.layer_version.layer.local_path}}</td>
+ {% if not MANAGED or not build.project %}
+ <td class="recipe__layer_version__layer__local_path">{{package.recipe.layer_version.layer.local_path}}</td>
+ {% endif %}
{%else%}
<td class="recipe__name"></td>
<td class="recipe__version"></td>
diff --git a/bitbake/lib/toaster/toastergui/templates/build.html b/bitbake/lib/toaster/toastergui/templates/build.html
index faabd22f8b..f7ad2f4892 100644
--- a/bitbake/lib/toaster/toastergui/templates/build.html
+++ b/bitbake/lib/toaster/toastergui/templates/build.html
@@ -4,85 +4,30 @@
{% load projecttags %}
{% load humanize %}
+{% block extraheadcontent %}
+<link rel="stylesheet" href="/static/css/jquery-ui.min.css" type='text/css'>
+<link rel="stylesheet" href="/static/css/jquery-ui.structure.min.css" type='text/css'>
+<link rel="stylesheet" href="/static/css/jquery-ui.theme.min.css" type='text/css'>
+<script src="/static/js/jquery-ui.min.js"></script>
+<script src="/static/js/filtersnippet.js"></script>
+{% endblock %}
+
{% block pagecontent %}
+
+<script>
+ // intiialize the date range controls
+ $(document).ready(function () {
+ date_init('started_on','{{last_date_from}}','{{last_date_to}}','{{dateMin_started_on}}','{{dateMax_started_on}}','{{daterange_selected}}');
+ date_init('completed_on','{{last_date_from}}','{{last_date_to}}','{{dateMin_completed_on}}','{{dateMax_completed_on}}','{{daterange_selected}}');
+ });
+</script>
+
<div class="row-fluid">
- {% if not objects.paginator.count and not request.GET.filter and not request.GET.search %}
- <!-- Empty - no data in database -->
- <div class="hero-unit span12">
- <button type="button" class="close" data-dismiss="alert">&times;</button>
- <div class="row-fluid">
- <div class="span6">
- <h1>This is Toaster</h1>
- <p>A web interface to <a href="http://www.yoctoproject.org/tools-resources/projects/bitbake">BitBake</a>, the <a href="http://www.yoctoproject.org">Yocto Project</a> build system.</p>
- <p class="hero-actions">
- <a class="btn btn-primary btn-large" href="https://www.yoctoproject.org/documentation/toaster-manual">Show me the manual</a>
- <a class="btn btn-large" href="https://wiki.yoctoproject.org/wiki/Contribute_to_Toaster">I want to contribute</a>
- </p>
- </div>
- <div class="span5">
- <a href="http://www.yoctoproject.org"><img src="{% static 'img/toaster.png' %}" class="thumbnail" alt="Yocto Project"/> </a>
- </div>
- </div>
- </div>
- {% endif %}
- {%if mru.count > 0%}
- <div class="page-header top-air">
- <h1>
- Recent Builds
- </h1>
- </div>
- {% for build in mru %}
- <div class="alert {%if build.outcome == build.SUCCEEDED%}alert-success{%elif build.outcome == build.FAILED%}alert-error{%else%}alert-info{%endif%}">
- <div class="row-fluid">
- <div class="lead span5">
- {%if build.outcome == build.SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif build.outcome == build.FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}
- {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
- <a href="{%url 'builddashboard' build.pk%}" class="{%if build.outcome == build.SUCCEEDED %}success{%else%}error{%endif%}">
- {% endif %}
- <span data-toggle="tooltip" {%if build.target_set.all.count > 1%}title="Targets: {%for target in build.target_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{build.target_set.all.0.target}} {%if build.target_set.all.count > 1%}(+ {{build.target_set.all.count|add:"-1"}}){%endif%} {{build.machine}} ({{build.completed_on|naturaltime}})</span>
- {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
- </a>
- {% endif %}
- </div>
- {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
- <div class="span2 lead">
- {% if build.errors_no %}
- <i class="icon-minus-sign red"></i> <a href="{%url 'builddashboard' build.pk%}#errors" class="error">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>
- {% endif %}
- </div>
- <div class="span2 lead">
- {% if build.warnings_no %}
- <i class="icon-warning-sign yellow"></i> <a href="{%url 'builddashboard' build.pk%}#warnings" class="warning">{{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a>
- {% endif %}
- </div>
- <div class="lead pull-right">
- Build time: <a href="{% url 'buildtime' build.pk %}">{{ build.timespent|sectohms }}</a>
- </div>
- {%endif%}{%if build.outcome == build.IN_PROGRESS %}
- <div class="span4">
- <div class="progress" style="margin-top:5px;" data-toggle="tooltip" title="{{build.completeper}}% of tasks complete">
- <div style="width: {{build.completeper}}%;" class="bar"></div>
- </div>
- </div>
- <div class="lead pull-right">ETA: in {{build.eta|naturaltime}}</div>
- {%endif%}
- </div>
- </div>
+ {% include "mrb_section.html" %}
- {% endfor %}{%endif%}
- {% if not objects.paginator.count and not request.GET.filter and not request.GET.search %}
- <!-- Empty - no data in database -->
- {% if mru.count == 0 %}
- <div class="page-header top-air">
- <h1>All builds</h1>
- </div>
- <div class="alert alert-info lead">
- Toaster has not recorded any builds yet. Go build something with <a href="http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html#test-run">Knotty</a> or <a href="https://www.yoctoproject.org/documentation/hob-manual">Hob</a>
- </div>
- {% endif %}
- {% else %}
+ {% if 1 %}
<div class="page-header top-air">
<h1>
{% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
@@ -108,25 +53,52 @@
{% else %}
- {% include "basetable_top.html" %}
+ {% include "basetable_top_buildprojects.html" %}
<!-- Table data rows; the order needs to match the order of "tablecols" definitions; and the <td class value needs to match the tablecols clclass value for show/hide buttons to work -->
{% for build in objects %}
<tr class="data">
- <td class="outcome"><a href="{% url "builddashboard" build.id %}">{%if build.outcome == build.SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif build.outcome == build.FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}</a></td>
+ <td class="outcome">
+ <a href="{% url "builddashboard" build.id %}">{%if build.outcome == build.SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif build.outcome == build.FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}</a> &nbsp;
+ </td>
<td class="target">{% for t in build.target_set.all %} <a href="{% url "builddashboard" build.id %}"> {{t.target}} </a> <br />{% endfor %}</td>
<td class="machine"><a href="{% url "builddashboard" build.id %}">{{build.machine}}</a></td>
<td class="started_on"><a href="{% url "builddashboard" build.id %}">{{build.started_on|date:"d/m/y H:i"}}</a></td>
<td class="completed_on"><a href="{% url "builddashboard" build.id %}">{{build.completed_on|date:"d/m/y H:i"}}</a></td>
- <td class="failed_tasks error">{% query build.task_build outcome=4 order__gt=0 as exectask%}{% if exectask.count == 1 %}<a href="{% url "task" build.id exectask.0.id %}">{{exectask.0.recipe.name}}.{{exectask.0.task_name}}</a>{% elif exectask.count > 1%}<a href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}}</a>{%endif%}</td>
- <td class="errors_no">{% if build.errors_no %}<a class="errors_no error" href="{% url "builddashboard" build.id %}#errors">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>{%endif%}</td>
+ <td class="failed_tasks error">
+ {% query build.task_build outcome=4 order__gt=0 as exectask%}
+ {% if exectask.count == 1 %}
+ <a href="{% url "task" build.id exectask.0.id %}">{{exectask.0.recipe.name}}.{{exectask.0.task_name}}</a>
+ {% if MANAGED and build.project %}
+ <a href="{% url 'build_artifact' build.id "tasklogfile" exectask.0.id %}">
+ <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
+ </a>
+ {% endif %}
+ {% elif exectask.count > 1%}
+ <a href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}} task{{exectask.count|pluralize}}</a>
+ {%endif%}
+ </td>
+ <td class="errors_no">
+ {% if build.errors_no %}
+ <a class="errors_no error" href="{% url "builddashboard" build.id %}#errors">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>
+ {%endif%}
+ </td>
<td class="warnings_no">{% if build.warnings_no %}<a class="warnings_no warning" href="{% url "builddashboard" build.id %}#warnings">{{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a>{%endif%}</td>
<td class="time"><a href="{% url "buildtime" build.id %}">{{build.timespent|sectohms}}</a></td>
- <td class="log">{{build.cooker_log_path}}</td>
+ {% if not MANAGED or not build.project %}
+ <td class="log">{{build.cooker_log_path}}</td>
+ {% endif %}
<td class="output">
{% if build.outcome == build.SUCCEEDED %}
<a href="{%url "builddashboard" build.id%}#images">{{fstypes|get_dict_value:build.id}}</a>
{% endif %}
</td>
+ {% if MANAGED %}
+ <td class="project">
+ {% if build.project %}
+ <a href="{% url 'project' build.project.id %}">{{build.project.name}}</a>
+ {% endif %}
+ </td>
+ {% endif %}
</tr>
{% endfor %}
diff --git a/bitbake/lib/toaster/toastergui/templates/builddashboard.html b/bitbake/lib/toaster/toastergui/templates/builddashboard.html
index acf4d0a361..4e600283a5 100644
--- a/bitbake/lib/toaster/toastergui/templates/builddashboard.html
+++ b/bitbake/lib/toaster/toastergui/templates/builddashboard.html
@@ -36,9 +36,21 @@
{% endif %}
<span > <i class="icon-warning-sign yellow"></i><strong><a href="#warnings" class="warning show-warnings"> {{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a></strong></span>
{% endif %}
- <span class="pull-right">Build time: <a href="{% url 'buildtime' build.pk %}">{{ build.timespent|sectohms }}</a></span>
+ <span class="pull-right">Build time: <a href="{% url 'buildtime' build.pk %}">{{ build.timespent|sectohms }}</a>
+ {% if MANAGED and build.project %}
+ <a class="btn {%if build.outcome == build.SUCCEEDED%}btn-success{%else%}btn-danger{%endif%} pull-right log" href="{% url 'build_artifact' build.id "cookerlog" build.id %}">Download build log</a>
+ {% endif %}
+ </span>
{%endif%}
</div>
+ {% if build.toaster_exceptions.count > 0 %}
+ <div class="row">
+ <small class="pull-right">
+ <i class="icon-question-sign get-help get-help-blue" title="" data-original-title="Toaster exceptions do not affect your build: only the operation of Toaster"></i>
+ <a class="show-exceptions" href="#exceptions">Toaster threw {{build.toaster_exceptions.count}} exception{{build.toaster_exceptions.count|pluralize}}</a>
+ </small>
+ </div>
+ {% endif %}
</div>
</div>
@@ -46,7 +58,7 @@
<div class="accordion span10 pull-right" id="errors">
<div class="accordion-group">
<div class="accordion-heading">
- <a class="accordion-toggle error toggle-errors">
+ <a class="accordion-toggle error toggle-errors">
<h2 id="error-toggle">
<i class="icon-minus-sign"></i>
{{build.errors_no}} error{{build.errors_no|pluralize}}
@@ -60,7 +72,8 @@
<div class="alert alert-error">
<pre>{{error.message}}</pre>
</div>
- {% endif %}{% endfor %}
+ {% endif %}
+ {% endfor %}
</div>
</div>
</div>
@@ -70,23 +83,23 @@
{%if build.outcome == build.SUCCEEDED%}
<!-- built images -->
+{% if hasImages %}
<div class="row-fluid span10 pull-right">
- {% if hasImages %}
- <h2>Images</h2>
- {% for target in targets %}
+ <h2>Images</h2>
+ {% for target in targets %}
{% if target.target.is_image %}
- <div class="well dashboard-section">
- <h3><a href="{% url 'target' build.pk target.target.pk %}">{{target.target}}</a>
+ <div class="well dashboard-section">
+ <h3><a href="{% url 'target' build.pk target.target.pk %}">{{target.target}}</a>
</h3>
- <dl class="dl-horizontal">
- <dt>Packages included</dt>
- <dd><a href="{% url 'target' build.pk target.target.pk %}">{{target.npkg}}</a></dd>
- <dt>Total package size</dt>
- <dd>{{target.pkgsz|filtered_filesizeformat}}</dd>
+ <dl class="dl-horizontal">
+ <dt>Packages included</dt>
+ <dd><a href="{% url 'target' build.pk target.target.pk %}">{{target.npkg}}</a></dd>
+ <dt>Total package size</dt>
+ <dd>{{target.pkgsz|filtered_filesizeformat}}</dd>
{% if target.targetHasNoImages %}
- </dl>
- <div class="row-fluid">
- <div class="alert alert-info span7">
+ </dl>
+ <div class="row-fluid">
+ <div class="alert alert-info span7">
<p>
<b>This build did not create any image files</b>
</p>
@@ -99,38 +112,81 @@
license manifest information</a> in Toaster.
</p>
</div>
- </div>
+ </div>
{% else %}
- <dt>
- <i class="icon-question-sign get-help" title="The location in disk of the license manifest, a document listing all packages installed in your image and their licenses"></i>
- <a href="{% url 'targetpkg' build.pk target.target.pk %}">License manifest</a>
- </dt>
- <dd><code>{{target.target.license_manifest_path}}</code></dd>
- <dt>
- <i class="icon-question-sign get-help" title="Image files are stored in <code>/build/tmp/deploy/images/</code>"></i>
- Image files
- </dt>
- <dd>
- <ul>
+ <dt>
+ <i class="icon-question-sign get-help" title="The location in disk of the license manifest, a document listing all packages installed in your image and their licenses"></i>
+
+ {% if MANAGED and build.project %}
+ License manifest
+ {% else %}
+ <a href="{% url 'targetpkg' build.pk target.target.pk %}">License manifest</a>
+ {% endif %}
+ </dt>
+ {% if MANAGED and build.project %}
+ <dd>
+ <a href="{% url 'targetpkg' build.pk target.target.pk %}">View in Toaster</a> |
+ <a href="{% url 'build_artifact' build.pk 'licensemanifest' target.target.pk %}">Download</a></dd>
+ {% else %}
+ <dd><code>{{target.target.license_manifest_path}}</code></dd>
+ {% endif %}
+ <dt>
+ <i class="icon-question-sign get-help" title="Image files are stored in <code>/build/tmp/deploy/images/</code>"></i>
+ Image files
+ </dt>
+ <dd>
+ <ul>
{% for i in target.imageFiles %}
- <li>{{i.path}}
- ({{i.size|filtered_filesizeformat}})</li>
+ {% if build.project %}
+ <li><a href="{% url 'build_artifact' build.pk 'imagefile' i.id %}">{{i.path}}</a>
+ {% else %}
+ <li>{{i.path}}
+ {% endif %}
+ ({{i.size|filtered_filesizeformat}})</li>
{% endfor %}
- </ul>
- </dd>
- </dl>
+ </ul>
+ </dd>
+ </dl>
{% endif %}
- </div>
+ </div>
{% endif %}
- {% endfor %}
-
- {% endif %}
+ {% endfor %}
</div>
+{% endif %}
{%else%}
<!-- error dump -->
{%endif%}
+<!-- other artifacts -->
+{% if build.buildartifact_set.all.count > 0 %}
+<div class="row-fluid span10 pull-right">
+<h2>Other artifacts</h2>
+
+ <div class="well dashboard-section">
+ <dl class="dl-horizontal">
+ <dt>
+ <i class="icon-question-sign get-help" title="Build artifacts discovered in <i>tmp/deploy/images</i>. Usually kernel images and kernel modules."></i>
+ Other artifacts</dt>
+ <dd><div>
+ {% for ba in build.buildartifact_set.all|dictsort:"file_name" %}
+ {% if MANAGED and build.project %}
+ <a href="{%url 'build_artifact' build.id 'buildartifact' ba.id %}">
+ {% endif %}
+ {{ba.get_local_file_name}}
+ {% if MANAGED and build.project %}
+ </a>
+ {% endif %}
+
+ ({{ba.file_size|filtered_filesizeformat}}) <br/>
+ {% endfor %}
+ </div>
+ </dd>
+
+ </div>
+
+</div>
+{% endif %}
<!-- build summary -->
<div class="row-fluid span10 pull-right">
<h2>Build summary</h2>
@@ -145,6 +201,27 @@
<div class="well span4 dashboard-section">
<h4><a href="{%url 'tasks' build.pk%}">Tasks</a></h4>
<dl>
+ {% query build.task_build outcome=4 order__gt=0 as exectask%}
+ {% if exectask.count > 0 %}
+ <dt>Failed tasks</dt>
+ <dd>
+ {% if exectask.count == 1 %}
+ <a class="error" href="{% url "task" build.id exectask.0.id %}">
+ {{exectask.0.recipe.name}}
+ <span class="task-name">{{exectask.0.task_name}}</span>
+
+ {% if MANAGED and build.project %}
+ <a href="{% url 'build_artifact' build.id "tasklogfile" exectask.0.id %}">
+ <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
+ </a>
+ {% endif %}
+
+ </a>
+ {% elif exectask.count > 1%}
+ <a class="error" href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}}</a>
+ {% endif %}
+ </dd>
+ {% endif %}
<dt>Total number of tasks</dt><dd><a href="{% url 'tasks' build.pk %}">{% query build.task_build order__gt=0 as alltasks %}{{alltasks.count}}</a></dd>
<dt>
Tasks executed
@@ -154,12 +231,12 @@
<dt>
Tasks not executed
<i class="icon-question-sign get-help" title="'Not executed' tasks don't need to run because their outcome is provided by another task"></i>
- </dt>
+ </dt>
<dd><a href="{% url 'tasks' build.pk %}?filter=task_executed%3A0&amp;count=25&amp;search=&amp;page=1&amp;orderby=order%3A%2B">{% query build.task_build task_executed=0 order__gt=0 as noexectask%}{{noexectask.count}}</a></dd>
<dt>
Reuse
<i class="icon-question-sign get-help" title="The percentage of 'not executed' tasks over the total number of tasks, which is a measure of the efficiency of your build"></i>
- </dt>
+ </dt>
<dd>
{% query build.task_build order__gt=0 as texec %}
{% if noexectask.count|multiply:100|divide:texec.count < 0 %}
@@ -206,6 +283,33 @@
</div>
{% endif %}
+
+{% if build.toaster_exceptions.count > 0 %}
+<div class="accordion span10 pull-right" id="exceptions">
+ <div class="accordion-group">
+ <div class="accordion-heading">
+ <a class="accordion-toggle exception toggle-exceptions">
+ <h2 id="exception-toggle">
+ <i class="icon-warning-sign"></i>
+ {{build.toaster_exceptions.count}} Toaster exception{{build.toaster_exceptions.count|pluralize}}
+ </h2>
+ </a>
+ </div>
+ <div class="accordion-body collapse" id="collapse-exceptions">
+ <div class="accordion-inner">
+ <div class="span10">
+ {% for exception in build.toaster_exceptions %}
+ <div class="alert alert-exception">
+ <pre>{{exception.message}}</pre>
+ </div>
+ {% endfor %}
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+{% endif %}
+
<script type="text/javascript">
$(document).ready(function() {
//show warnings section when requested from the previous page
diff --git a/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html b/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html
new file mode 100644
index 0000000000..2a4571f42e
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html
@@ -0,0 +1,67 @@
+{% extends "baseprojectpage.html" %}
+
+{% load static %}
+{% load projecttags %}
+{% load humanize %}
+
+{% block localbreadcrumb %}
+<li> {{buildrequest.get_sorted_target_list.0.target}} {%if buildrequest.brtarget_set.all.count > 1%}(+ {{buildrequest.brtarget_set.all.count|add:"-1"}}){%endif%} {{buildrequest.get_machine}} ({{buildrequest.updated|date:"d/m/y H:i"}}) </li>
+{% endblock %}
+
+{% block projectinfomain %}
+ <!-- begin content -->
+
+ <div class="row-fluid">
+
+ <!-- end left sidebar container -->
+ <!-- Begin right container -->
+ <div class="span10">
+ <div class="page-header">
+ <h1>
+ <span data-toggle="tooltip" {%if buildrequest.brtarget_set.all.count > 1%}title="Targets: {%for target in buildrequest.brtarget_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{buildrequest.brtarget_set.all.0.target}} {%if buildrequest.brtarget_set.all.count > 1%}(+ {{buildrequest.brtarget_set.all.count|add:"-1"}}){%endif%} {{buildrequest.get_machine}} </span>
+
+ </h1>
+ </div>
+ <div class="alert alert-error">
+ <p class="lead">
+ <strong>Failed</strong>
+ on {{ buildrequest.updated|date:'d/m/y H:i' }}
+ with
+
+ <i class="icon-minus-sign error" style="margin-left:6px;"></i>
+ <strong><a class="error accordion-toggle toggle-errors" href="#errors">
+ {{buildrequest.brerror_set.all.count}} error{{buildrequest.brerror_set.all.count|pluralize}}
+ </a></strong>
+ <span class="pull-right">Build time: {{buildrequest.get_duration|sectohms}}</span>
+ </p>
+ </div>
+
+ <div class="accordion" id="errors" name="errors">
+ <div class="accordion-group">
+ <div class="accordion-heading">
+ <a class="accordion-toggle error toggle-errors">
+ <h2>
+ <i class="icon-minus-sign"></i>
+ {{buildrequest.brerror_set.all.count}} error{{buildrequest.brerror_set.all.count|pluralize}}
+ </h2>
+ </a>
+ </div>
+ <div class="accordion-body collapse in" id="collapse-errors">
+ <div class="accordion-inner">
+ <div class="span10">
+ {% for error in buildrequest.brerror_set.all %}
+ <div class="alert alert-error">
+ ERROR: <div class="air well"><pre>{{error.errmsg}}</pre></div>
+ </div>
+ {% endfor %}
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ </div> <!-- end of row-fluid -->
+
+
+{%endblock%}
diff --git a/bitbake/lib/toaster/toastergui/templates/configuration.html b/bitbake/lib/toaster/toastergui/templates/configuration.html
index 49a6a89d5c..d3b34a2096 100644
--- a/bitbake/lib/toaster/toastergui/templates/configuration.html
+++ b/bitbake/lib/toaster/toastergui/templates/configuration.html
@@ -50,7 +50,9 @@
<th>Layer</th>
<th>Layer branch</th>
<th>Layer commit</th>
- <th>Layer directory</th>
+ {% if not MANAGED or not build.project %}
+ <th>Layer directory</th>
+ {% endif %}
</tr>
</thead>
<tbody>{% for lv in build.layer_version_build.all|dictsort:"layer.name" %}
@@ -61,7 +63,9 @@
<li>{{lv.commit}}</li> </ul>">
{{lv.commit|truncatechars:13}}
</a></td>
+ {% if not MANAGED or not build.project %}
<td>{{lv.layer.local_path}}</td>
+ {% endif %}
</tr>{% endfor %}
</tbody>
</table>
diff --git a/bitbake/lib/toaster/toastergui/templates/configvars.html b/bitbake/lib/toaster/toastergui/templates/configvars.html
index 1bd29aac0d..3e4c7e85ea 100644
--- a/bitbake/lib/toaster/toastergui/templates/configvars.html
+++ b/bitbake/lib/toaster/toastergui/templates/configvars.html
@@ -55,7 +55,7 @@
<td class="variable_value"><a data-toggle="modal" href="#variable-{{variable.pk}}">{{variable.variable_value|truncatechars:153}}</a></td>
<td class="file"><a data-toggle="modal" href="#variable-{{variable.pk}}">
{% if variable.vhistory.all %} {% autoescape off %}
- {{variable.vhistory.all | filter_setin_files:file_filter }}
+ {{variable.vhistory.all | filter_setin_files:file_filter | cut_layer_path_prefix:layer_names}}
{% endautoescape %} {% endif %}
</a></td>
<td class="description">
@@ -115,7 +115,7 @@
<tbody>
{% for vh in variable.vhistory.all %}
<tr>
- <td>{{forloop.counter}}</td><td>{{vh.file_name}}</td><td>{{vh.operation}}</td><td>{{vh.line_number}}</td>
+ <td>{{forloop.counter}}</td><td>{{vh.file_name|cut_layer_path_prefix:layer_names}}</td><td>{{vh.operation}}</td><td>{{vh.line_number}}</td>
</tr>
{%endfor%}
</tbody>
diff --git a/bitbake/lib/toaster/toastergui/templates/detail_pagination_bottom.html b/bitbake/lib/toaster/toastergui/templates/detail_pagination_bottom.html
new file mode 100644
index 0000000000..355ae9073c
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/detail_pagination_bottom.html
@@ -0,0 +1,60 @@
+{% comment %}
+ Show pagination controls as per search/pagination table detail spec.
+ Input: objects, setup for pagination using the standard method in views.
+ object_count, count for complete list of objects, (all pages, no pattern)
+{% endcomment %}
+
+{# only paginate if 10 or more rows unfiltered, all pages #}
+{% if object_count >= 10 %}
+<div class="pagination">
+ <ul>
+{%if objects.has_previous %}
+ <li><a href="javascript:reload_params({'page':{{objects.previous_page_number}}})">&laquo;</a></li>
+{%else%}
+ <li class="disabled"><a href="#">&laquo;</a></li>
+{%endif%}
+{% for i in objects.page_range %}
+ <li{%if i == objects.number %} class="active" {%endif%}><a href="javascript:reload_params({'page':{{i}}})">{{i}}</a></li>
+{% endfor %}
+{%if objects.has_next%}
+ <li><a href="javascript:reload_params({'page':{{objects.next_page_number}}})">&raquo;</a></li>
+{%else%}
+ <li class="disabled"><a href="#">&raquo;</a></li>
+{%endif%}
+ </ul>
+
+ <div class="pull-right">
+ <span class="help-inline" style="padding-bottom:10px;">Show rows:</span>
+ <select class="pagesize">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
+ <option value="{{i}}">{{i}}</option>
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+</div>
+
+<!-- Update page display settings -->
+<script>
+ $(document).ready(function() {
+ // load cookie for number of entries to be displayed on page
+ if ({{request.GET.count}} != "") {
+ pagesize = {{request.GET.count}};
+ } else {
+ pagesize = $.cookie('_count');
+ }
+
+ $('.pagesize option').prop('selected', false)
+ .filter('[value="' + pagesize + '"]')
+ .attr('selected', true);
+
+ $(".pagesize").change(function () {
+ // save cookie with pagesize
+ $.cookie("_count", $(this).val(), { path : $(location).attr('pathname') });
+ reload_params({"count":$(this).val()});
+ });
+});
+</script>
+{% endif %}
+
diff --git a/bitbake/lib/toaster/toastergui/templates/detail_search_header.html b/bitbake/lib/toaster/toastergui/templates/detail_search_header.html
new file mode 100644
index 0000000000..ca8e158cb1
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/detail_search_header.html
@@ -0,0 +1,68 @@
+{% comment %}
+ Show a detail table Search field and Rows per page.
+ Input:
+ objects, our boilerplated paginated with search fields set.
+ object_count, count of full, unfiltered, objects list
+ search_what, fills in "Search ___"
+ Only show the search form if we have more than 10 results,
+ or if return from a previous search.
+{% endcomment %}
+
+
+<script>
+$(document).ready(function() {
+ /* Clear the current search selection and reload the results */
+ $(".search-clear").click(function(){
+ $("#search").val("");
+ $(this).parents("form").submit();
+ });
+});
+</script>
+<div class="row-fluid">
+{% if objects.paginator.count > 10 or request.GET.search %}
+ {% if objects.paginator.count == 0 %}
+ <div class="alert">
+ <h3>No {{search_what}} found</h3>
+ <form id="searchform" class="input-append">
+ {% else %}
+ <form id="searchform" class="navbar-search input-append pull-left">
+ {% endif %}
+
+ <input id="search" class="input-xlarge" type="text" placeholder="Search {{search_what}}" name="search" value="{{request.GET.search}}">
+ <input type="hidden" value="name:+" name="orderby">
+ <input type="hidden" value="l" name="page">
+ {% if request.GET.search %}
+ <a class="add-on btn search-clear">
+ <i class="icon-remove"></i>
+ </a>
+ {% endif %}
+ <button type="submit" class="btn">Search</button>
+ {% if objects.paginator.count == 0 %}
+ <button type="submit" class="btn btn-link search-clear">
+ Show all {{search_what}}
+ </button>
+ {% endif %}
+ </form>
+{% endif %}
+
+{% if objects.paginator.count == 0 %}
+ </div> {# end alert #}
+{% else %}
+ {% if object_count > 10 %}
+ <div class="pull-right">
+ <span class="help-inline" style="padding-top:5px;">Show rows:</span>
+ <select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
+ {% if request.session.limit == i %}
+ <option value="{{i}}" selected>{{i}}</option>
+ {% else %}
+ <option value="{{i}}">{{i}}</option>
+ {% endif %}
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+ {% endif %}
+{% endif %}
+</div> {# row-fluid #}
diff --git a/bitbake/lib/toaster/toastergui/templates/detail_sorted_header.html b/bitbake/lib/toaster/toastergui/templates/detail_sorted_header.html
new file mode 100644
index 0000000000..a7917dcf5a
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/detail_sorted_header.html
@@ -0,0 +1,25 @@
+{% comment %}
+ Adds sorted columns to a detail table.
+ Must be preceded by <table class="table table-bordered table-hover tablesorter" id="otable">
+ Must be followed by <tbody>...</tbody></table>.
+ Requires tablecols setup column fields dclass, clclass, qhelp, orderfield.
+{% endcomment %}
+{% load projecttags %}
+{# <table class="table table-bordered table-hover tablesorter" id="otable"> #}
+ <thead>
+ <!-- Table header row; generated from "tablecols" entry in the context dict -->
+ <tr>
+ {% for tc in tablecols %}<th class="{{tc.dclass}} {{tc.clclass}}">
+ {%if tc.qhelp%}<i class="icon-question-sign get-help" title="{{tc.qhelp}}"></i>{%endif%}
+ {%if tc.orderfield%}<a {%if tc.ordericon%} class="sorted" {%endif%}href="javascript:reload_params({'page': 1, 'orderby' : '{{tc.orderfield}}' })" onclick="saveOrderCookie('{{tc.orderfield}}')">{{tc.name}}</a>{%else%}<span class="muted">{{tc.name}}</span>{%endif%}
+ {%if tc.ordericon%} <i class="icon-caret-{{tc.ordericon}}"></i>{%endif%}
+ {% if request.GET.search and forloop.first %}
+ <span class="badge badge-info">{{objects.paginator.count}}</span>
+ {% endif %}
+ {%if tc.filter%}<div class="btn-group pull-right">
+ <a href="#filter_{{tc.filter.class}}" role="button" class="btn btn-mini {%if request.GET.filter%}{{tc.filter.options|filtered_icon:request.GET.filter}} {%endif%}" {%if request.GET.filter and tc.filter.options|filtered_tooltip:request.GET.filter %} title="<p>{{tc.filter.options|filtered_tooltip:request.GET.filter}}</p><p><a class='btn btn-small btn-primary' href=javascript:reload_params({'filter':''})>Show all {% if filter_search_display %}{{filter_search_display}}{% else %}{{objectname}}{% endif %}</a></p>" {%endif%} data-toggle="modal"> <i class="icon-filter filtered"></i> </a>
+ </div>{%endif%}
+ </th>{% endfor %}
+ </tr>
+ </thead>
+
diff --git a/bitbake/lib/toaster/toastergui/templates/filtersnippet.html b/bitbake/lib/toaster/toastergui/templates/filtersnippet.html
index 90ffd3de6c..f624d88bad 100644
--- a/bitbake/lib/toaster/toastergui/templates/filtersnippet.html
+++ b/bitbake/lib/toaster/toastergui/templates/filtersnippet.html
@@ -1,5 +1,6 @@
{% load projecttags %}
<!-- '{{f.class}}' filter -->
+{% with f.class as key %}
<form id="filter_{{f.class}}" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true">
<input type="hidden" name="search" value="{{request.GET.search}}"/>
<div class="modal-header">
@@ -13,22 +14,37 @@
<div class="modal-body">
<p>{{f.label}}</p>
<label class="radio">
- <input type="radio" name="filter" {%if request.GET.filter%}{{f.options|check_filter_status:request.GET.filter}} {%else%} checked {%endif%} value=""> All {%if filter_search_display%}{{filter_search_display|title}}{%else%}{{objectname|title}}{%endif%} ({{total_count}})
+ <input type="radio" name="filter" {%if request.GET.filter%}{{f.options|check_filter_status:request.GET.filter}} {%else%} checked {%endif%} value="" data-key="{{key}}"> All {%if filter_search_display%}{{filter_search_display|title}}{%else%}{{objectname|title}}{%endif%}
</label>
{% for option in f.options %}
- {% if option.2 %}
- <label class="radio">
- <input type="radio" name="filter" {%if request.GET.filter == option.1 %}checked{%endif%} value="{{option.1}}"> {{option.0}} ({{option.2}})
+ {% if option.1 == 'daterange' %}
+ <div class="form-inline">
+ <label class="radio">
+ <input type="radio" name="filter" id="filter_value_{{key}}" {%if key == daterange_selected %}checked{%endif%} value="{{option.1}}" data-key="{{key}}"> {{option.0}}
{% else %}
- <label class="radio muted">
- <input type="radio" name="filter" disabled {%if request.GET.filter == option.1 %}checked{%endif%} value="{{option.1}}"> {{option.0}} ({{option.2}})
+ {% if 1 %}
+ <label class="radio">
+ <input type="radio" name="filter" {%if request.GET.filter == option.1 %}checked{%endif%} value="{{option.1}}" data-key="{{key}}"> {{option.0}}
+ {% comment "do not disable radio selections by count for now" %}{% else %}
+ <label class="radio muted">
+ <input type="radio" name="filter" disabled {%if request.GET.filter == option.1 %}checked{%endif%} value="{{option.1}}" data-key="{{key}}"> {{option.0}}
+ {% endcomment %}{% endif %}
{% endif %}
{% if option.3 %}<i class="icon-question-sign get-help" data-placement="right" title="{{option.3}}"></i>{% endif %}
- </label>
+ </label>
+ {% if option.1 == 'daterange' %}
+ <input type="text" id="date_from_{{key}}" name="date_from_{{key}}" disabled class="input-small" /><label class="help-inline">to</label>
+ <input type="text" id="date_to_{{key}}" name="date_to_{{key}}" disabled class="input-small" />
+ <label class="help-inline get-help" >(dd/mm/yyyy)</label>
+ </div>
+ {% endif %}
{% endfor %}
+ <!-- daterange persistence -->
+ <input type="hidden" id="last_date_from_{{key}}" name="last_date_from" value="{{last_date_from}}"/>
+ <input type="hidden" id="last_date_to_{{key}}" name="last_date_to" value="{{last_date_to}}"/>
</div>
<div class="modal-footer">
- <button type="submit" class="btn btn-primary">Apply</button>
+ <button type="submit" class="btn btn-primary" data-key="{{key}}">Apply</button>
{% if request.GET.filter %}
{% if request.GET.filter|string_remove_regex:':.*' != f.options.0.1|string_remove_regex:':.*' %}
<span class="help-inline pull-left">You can only apply one filter to the table. This filter will override the current filter.</span>
@@ -36,4 +52,4 @@
{% endif %}
</div>
</form>
-
+{% endwith %}
diff --git a/bitbake/lib/toaster/toastergui/templates/importlayer.html b/bitbake/lib/toaster/toastergui/templates/importlayer.html
index 7e48eac66e..5ef8a5786c 100644
--- a/bitbake/lib/toaster/toastergui/templates/importlayer.html
+++ b/bitbake/lib/toaster/toastergui/templates/importlayer.html
@@ -1,68 +1,139 @@
{% extends "baseprojectpage.html" %}
{% load projecttags %}
{% load humanize %}
+{% load static %}
{% block localbreadcrumb %}
-<li>Layers</li>
+<li>Import layer</li>
{% endblock %}
{% block projectinfomain %}
+
+ <script src="{% static 'js/importlayer.js' %}"></script>
+ <script>
+ $(document).ready(function (){
+ var ctx = {
+ xhrDataTypeaheadUrl : "{% url 'xhr_datatypeahead' %}",
+ layerDetailsUrl : "{% url 'base_layerdetails' %}",
+ xhrImportLayerUrl : "{% url 'xhr_importlayer' %}",
+ xhrEditProjectUrl : "{% url 'xhr_projectedit' project.id %}",
+ projectPageUrl : "{% url 'project' project.id %}",
+ projectId : {{project.id}}
+ };
+
+ try {
+ importLayerPageInit(ctx);
+ } catch (e) {
+ document.write("Sorry, An error has occurred loading this page");
+ console.warn(e);
+ }
+ });
+ </script>
+
<div class="page-header">
<h1>Import layer</h1>
</div>
+
+ {% include "layers_dep_modal.html" %}
<form>
{% if project %}
- <span class="help-block" style="padding-left:19px;">The layer you are importing must be compatible with {{project.release.name}} ({{project.release.description}}), which is the release you are using in this project.</span>
+ <span class="help-block" style="padding-left:19px;">The layer you are importing must be compatible with <strong>{{project.release.description}}</strong>, which is the release you are using in this project.</span>
{% endif %}
- <fieldset class="air">
- <legend>Layer repository information</legend>
- <label>
+ <fieldset class="air">
+ <legend>Layer repository information</legend>
+ <div class="alert alert-error" id="import-error" style="display:none">
+ <button type="button" class="close" data-dismiss="alert">&times;</button>
+ <h3></h3>
+ <p></p>
+ <ul></ul>
+ </div>
+
+ <div class="control-group" id="layer-name-ctrl">
+ <label class="control-label" for="import-layer-name">
+ Layer name
+ <span class="icon-question-sign get-help" title="Something like 'meta-mylayer'. Your layer name must be unique and can only include letters, numbers and dashes"></span>
+ </label>
+ <div class="controls">
+ <input id="import-layer-name" type="text" required autofocus data-autocomplete="off" data-provide="typeahead">
+ <span class="help-inline" style="display: none;" id="invalid-layer-name-hint">A valid layer name can only include letters, numbers and dashes</span>
+ <span class="help-inline" style="display: none;" id="duplicated-layer-name-hint"></span>
+ </div>
+
+ </div>
+ <span id="duplicate-layer-info" style="display:none">
+ <div class="alert warning">
+ <h3>A layer called <a href="" class="dup-layer-link"><span class="dup-layer-name"></span></a> already exists</h3>
+ <p>Layer names must be unqiue. Please use a different layer name.</p>
+ </div>
+ <dl>
+ <dt>
+ The <span class="dup-layer-name"></span> repository url is
+ </dt>
+ <dd>
+ <span id="dup-layer-vcs-url"></span>
+ </dd>
+
+ <dt>
+ The <span class="dup-layer-name"></span> revision is
+ </dt>
+ <dd>
+ <span id="dup-layer-revision"></span>
+ </dd>
+ </dl>
+
+ <p><a href="" class="dup-layer-link">View the <span class="dup-layer-name"></span> layer information</a></p>
+
+ </span>
+
+ <span class="fields-apart-from-layer-name">
+ <label for="layer-git-repo-url" class="project-form">
Git repository URL
- <i class="icon-question-sign get-help" title="Fetch/clone URL of the repository. Currently, Toaster only supports Git repositories."></i>
+ <span class="icon-question-sign get-help" title="Fetch/clone URL of the repository. Currently, Toaster only supports Git repositories." ></span>
</label>
- <input id="repo" type="text" class="input-xxlarge" required>
- <label class="project-form">
+
+ <input type="text" id="layer-git-repo-url" class="input-xxlarge" required>
+ <label class="project-form" for="layer-subdir">
Repository subdirectory
<span class="muted">(optional)</span>
- <i class="icon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></i>
+ <span class="icon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></span>
</label>
- <input type="text" id="subdir">
- <label class="project-form">Branch, tag or commit</label>
- <input type="text" class="span4" id="layer-version" required>
- <label class="project-form">
- Layer name
- <i class="icon-question-sign get-help" title="Something like 'meta-mylayer'. Your layer name must be unique and can only include letters, numbers and dashes"></i>
- </label>
- <input id="layer-name" type="text" required>
+ <input type="text" id="layer-subdir">
+
+ <div class="control-group" id="layer-revision-ctrl">
+ <label class="control-label project-form" for="layer-git-ref">Revision
+ <span class="icon-question-sign get-help" title="You can provide a Git branch, a tag or a commit SHA as the revision"></span>
+ </label>
+ <div class="controls">
+ <input type="text" class="span3" id="layer-git-ref" required>
+ <span class="help-inline" style="diaply:none;" id="invalid-layer-revision-hint"></span>
+ </div>
+ </div>
+ </span>
+
</fieldset>
+
+ <span class="fields-apart-from-layer-name">
<fieldset class="air">
<legend>
Layer dependencies
<span class="muted">(optional)</span>
- <i class="icon-question-sign get-help heading-help" title="Other layers this layer depends upon"></i>
+ <span class="icon-question-sign get-help heading-help" title="Other layers this layer depends upon"></span>
</legend>
- <ul class="unstyled configuration-list">
- <li>
- <a href="" class="layer-info" title="OpenEmbedded | daisy">openembedded-core (meta)</a>
- <i class="icon-trash"></i>
- </li>
+ <ul class="unstyled configuration-list" id="layer-deps-list">
</ul>
<div class="input-append">
- <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off"
- data-provide="typeahead" data-source='
- []
- ' placeholder="Type a layer name" id="layer-dependency" class="input-xlarge">
- <a class="btn" type="button" id="add-layer-dependency" disabled>
+ <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" placeholder="Type a layer name" id="layer-dependency" class="input-xlarge">
+ <a class="btn" type="button" id="add-layer-dependency-btn" disabled>
Add layer
</a>
</div>
<span class="help-inline">You can only add layers Toaster knows about</span>
</fieldset>
- <div class="form-actions">
- <a href="#dependencies-message" class="btn btn-primary btn-large" data-toggle="modal" data-target="#dependencies-message" disabled>Import and add to project</a>
- <a href="layer-details-just-imported.html" class="btn btn-large" disabled>Just import for the moment</a>
- <span class="help-inline" style="vertical-align: middle;">To import a layer, you need to enter a repository URL, a branch, tag or commit and a layer name</span>
+ <div class="form-actions" id="form-actions">
+ <button class="btn btn-primary btn-large" data-toggle="modal" id="import-and-add-btn" data-target="#dependencies-message" disabled>Import and add to project</button>
+ <span class="help-inline" id="import-and-add-hint" style="vertical-align: middle;">To import a layer, you need to enter a repository URL, a branch, tag or commit and a layer name</span>
</div>
- </form>
+ </span>
+ </form>
{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/landing.html b/bitbake/lib/toaster/toastergui/templates/landing.html
new file mode 100644
index 0000000000..5bbe694f89
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/landing.html
@@ -0,0 +1,95 @@
+{% extends "base.html" %}
+
+{% load static %}
+{% load projecttags %}
+{% load humanize %}
+
+{% block pagecontent %}
+
+ <div class="container-fluid">
+ <div class="row-fluid">
+ <!-- Empty - no data in database -->
+ <div class="hero-unit span12 {%if MANAGED%}well-transparent{%endif%}">
+ <div class="row-fluid">
+ <div class="span6">
+ <h1>
+ This is Toaster
+ </h1>
+ <p>A web interface to <a href="http://www.yoctoproject.org/tools-resources/projects/bitbake">BitBake</a>, the <a href="http://www.yoctoproject.org">Yocto Project</a> build system.</p>
+
+ {% if MANAGED %}
+
+ {% if lvs_nos %}
+ <p class="hero-actions">
+ <a class="btn btn-primary btn-large" href="{% url 'newproject' %}">
+ To start building, create your first Toaster project
+ </a>
+ </p>
+ {% else %}
+ <div class="alert alert-info lead air">
+ Toaster has no layer information. Without layer information, you cannot run builds. To generate layer information you can:
+ <ul>
+ <li>
+ <a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#layer-source">Configure a layer source</a>
+ </li>
+ <li>
+ <a href="{% url 'newproject' %}">Create a project</a>, then import layers
+ </li>
+ </ul>
+ </div>
+ {% endif %}
+
+ <ul class="unstyled">
+ <li>
+ <a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html">Read the Toaster manual</a>
+ </li>
+ <li>
+ <a href="https://wiki.yoctoproject.org/wiki/Contribute_to_Toaster">Contribute to Toaster</a>
+ </li>
+ </ul>
+
+ {% else %}
+
+ <p class="hero-actions">
+ <a class="btn btn-primary btn-large" href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html">
+ Show me the manual
+ </a>
+ <a class="btn btn-large" href="https://wiki.yoctoproject.org/wiki/Contribute_to_Toaster">
+ I want to contribute
+ </a>
+ </p>
+
+ {% endif %}
+ </div>
+ <div class="span6">
+ {% if MANAGED %}
+ <img alt="Yocto Project" class="thumbnail" src="{% static 'img/toaster_1.7.png' %}"/>
+ {% else %}
+ <img alt="Yocto Project" class="thumbnail" src="{% static 'img/toaster.png' %}"/>
+ {% endif %}
+ </div>
+ </div>
+ </div>
+
+ {% if not MANAGED %}
+ <!-- Empty - no data in database -->
+ <div class="page-header top-air">
+ <h1>
+ All builds
+ </h1>
+ </div>
+ <div class="alert alert-info lead">
+ Toaster has not recorded any builds yet. Go build something with
+ <a href="http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html#test-run">
+ Knotty
+ </a>
+ or
+ <a href="https://www.yoctoproject.org/documentation/hob-manual">
+ Hob
+ </a>
+ </div>
+ {% endif %}
+
+ </div>
+
+{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/landing_not_managed.html b/bitbake/lib/toaster/toastergui/templates/landing_not_managed.html
new file mode 100644
index 0000000000..5bc435d149
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/landing_not_managed.html
@@ -0,0 +1,32 @@
+{% extends "base.html" %}
+
+{% load static %}
+{% load projecttags %}
+{% load humanize %}
+
+{% block pagecontent %}
+
+ <div class="container-fluid">
+ <div class="row-fluid">
+ <!-- Empty - no build module -->
+ <div class="page-header top-air">
+ <h1>
+ This page only works with Toaster in 'Build' mode
+ </h1>
+ </div>
+ <div class="alert alert-info lead">
+ <p">
+ The 'Build' mode allows you to configure and run your Yocto Project builds from Toaster.
+ <ul>
+ <li><a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#intro-modes">
+ Read about the 'Build' mode
+ </a></li>
+ <li><a href="/">
+ View your builds
+ </a></li>
+ </ul>
+ </p>
+ </div>
+ </div>
+
+{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/layerdetails.html b/bitbake/lib/toaster/toastergui/templates/layerdetails.html
index 78dc54bfd1..0d3aa15373 100644
--- a/bitbake/lib/toaster/toastergui/templates/layerdetails.html
+++ b/bitbake/lib/toaster/toastergui/templates/layerdetails.html
@@ -1,159 +1,502 @@
{% extends "baseprojectpage.html" %}
{% load projecttags %}
{% load humanize %}
-
+{% load static %}
{% block localbreadcrumb %}
-<li>Layer Details</li>
+<li><a href="{% url 'layers' %}">All compatible layers</a></li>
+<li>
+ {{layerversion.layer.name}} ({{layerversion.get_vcs_reference|truncatechars:13}})
+</li>
{% endblock %}
-
{% block projectinfomain %}
-<div class="page-header">
- <h1>Layer Details</h1>
-</div>
-
- <div class="row-fluid span7 tabbable">
- <ul class="nav nav-pills">
- <li class="active">
- <a data-toggle="tab" href="#information">Layer details</a>
- </li>
- <li>
- <a data-toggle="tab" href="#targets">Targets (0)</a>
- </li>
- <li>
- <a data-toggle="tab" href="#machines">Machines (0)</a>
- </li>
- <li>
- <a data-toggle="tab" href="#classes">Classes (0)</a>
- </li>
- <li>
- <a data-toggle="tab" href="#bbappends">bbappends (0)</a>
- </li>
- </ul>
- <div class="tab-content">
- <div name="information" id="information" class="tab-pane active">
- <dl class="dl-horizontal">
- <dt class="">
- <i class="icon-question-sign get-help" title="Fetch/clone URL of the repository"></i>
- Repository URL
- </dt>
- <dd>
- <form id="change-repo-form" class="control-group">
- <div class="input-append">
- <input type="text" class="input-xlarge" id="type-repo" value="{{layerversion.layer.vcs_url}}">
- <button id="apply-change-repo" class="btn" type="button">Change</button>
- <!--a href="#" id="cancel-change-repo" class="btn btn-link">Cancel</a-->
- </div>
- <span class="help-block">Cloning this Git repository failed</span>
- </form>
- </dd>
- <dt>
- <i class="icon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></i>
- Repository subdirectory
- </dt>
- <dd>
- <span id="subdir">{{layerversion.dirpath}}</span>
- <i id="change-subdir" class="icon-pencil"></i>
- <i id="delete-subdir" class="icon-trash"></i>
- <form id="change-subdir-form" style="display:none;">
- <div class="input-append">
- <input type="text" id="type-subdir" value="meta-acer">
- <button id="apply-change-subdir" class="btn" type="button">Change</button>
- <a href="#" id="cancel-change-subdir" class="btn btn-link">Cancel</a>
- </div>
- </form>
- </dd>
- <dt>Brach, tag or commit</dt>
- <dd>
- {{layerversion.up_branch.name}}
- <i class="icon-pencil"></i>
- </dd>
- <dt>
- <i class="icon-question-sign get-help" title="The Yocto Project versions with which this layer is compatible. Currently Toaster supports Yocto Project 1.6 and 1.7"></i>
- Yocto Project compatibility
- </dt>
- <dd>
- <i class="icon-pencil"></i>
- </dd>
- <dt>
- <i class="icon-question-sign get-help" title="Other layers this layer depends upon"></i>
- Layer dependencies
- </dt>
- <dd>
- <ul class="unstyled">
- {% for ld in layer.dependencies.all %}
- <li>
- <a href="#">openembedded core (meta)</a>
- <i class="icon-trash"></i>
- </li>
- {% endfor %}
- </ul>
- <div class="input-append">
- <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off"
- data-provide="typeahead" data-source='
- '
- placeholder="Type a layer name" id="layer-dependency">
- <a class="btn" type="button" id="add-layer-dependency" disabled>
- Add layer
- </a>
- </div>
- <span class="help-block">You can only add layers Toaster knows about</span>
- </dd>
- </dl>
- </div>
- <div name="targets" id="targets" class="tab-pane">
- <div class="alert alert-info">
- <strong>There is no target data for {{layerversion.layer.name}} ... yet</strong> <br />
- Toaster learns about layers as they are built. Once you have used {{layerversion.layer.name}} in a build, Toaster will show you
- here the targets it provides.
- </div>
- </div>
- <div name="machines" id="machines" class="tab-pane">
- <div class="alert alert-info">
- <strong>There is no machine data for {{layerversion.layer.name}} ... yet</strong> <br />
- Toaster learns about layers as they are built. Once you have used {{layerversion.layer.name}} in a build, Toaster will show you
- here the machines it provides.
- </div>
+
+
+<script src="{% static 'js/layerdetails.js' %}"></script>
+<script>
+
+ $(document).ready(function (){
+ var ctx = {
+ projectBuildUrl : "{% url 'xhr_build' %}",
+ layerDetailsUrl : "{% url 'base_layerdetails' %}",
+ projectPageUrl : "{% url 'project' project.id %}",
+ xhrEditProjectUrl : "{% url 'xhr_projectedit' project.id %}",
+ xhrDataTypeaheadUrl : "{% url 'xhr_datatypeahead' %}",
+ xhrUpdateLayerUrl : "{% url 'xhr_updatelayer' %}",
+ projectId : {{project.id}},
+ projectName : "{{project.name}}",
+ numTargets : {{total_targets}},
+ numMachines: {{machines|length}},
+ layerVersion : {
+ name : "{{layerversion.layer.name}}",
+ id : {{layerversion.id}},
+ commit: "{{layerversion.get_vcs_reference}}",
+ inCurrentPrj : {{layer_in_project}},
+ url : "{% url 'layerdetails' layerversion.id %}",
+ sourceId: {{layerversion.layer_source_id}},
+ }
+ };
+
+ try {
+ layerDetailsPageInit(ctx);
+ } catch (e) {
+ document.write("Sorry, An error has occurred loading this page");
+ console.warn(e);
+ }
+ });
+</script>
+
+{# If this is not an imported layer then hide the edit ui #}
+{% if layerversion.layer_source_id != 3 %}
+<style>
+ .icon-pencil {
+ display:none;
+ }
+.delete-current-value{
+ display: none;
+}
+ li .icon-trash {
+ display:none;
+ }
+ .add-deps {
+ display:none;
+ }
+</style>
+{% endif %}
+
+{% include "layers_dep_modal.html" %}
+ <div class="row-fluid span11">
+ <div class="page-header">
+ <h1>{{layerversion.layer.name}} <small class="commit"
+ {% if layerversion.get_vcs_reference|length > 13 %}
+ data-toggle="tooltip" title="{{layerversion.get_vcs_reference}}"
+ {% endif %}>
+ ({{layerversion.get_vcs_reference|truncatechars:13}})</small></h1>
+ </div>
+ </div>
+
+ <div class="row-fluid span7 tabbable">
+ <div class="alert alert-info lead" id="alert-area" style="display:none">
+ <button type="button" class="close" id="dismiss-alert">&times;</button>
+ <span id="alert-msg"></span>
</div>
- </div>
-</div>
-<div class="row span4 well">
-<h2>About {{layerversion.layer.name}}</h2>
-<dl>
-
- <dt>
- Summary
- <i class="icon-question-sign get-help" title="One-line description of the layer"></i>
- </dt>
- <dd>
- <span >{{layerversion.layer.summary}}</span>
- <i class="icon-pencil"></i>
- </dd>
- <!--form>
- <textarea class="span12" rows="2"></textarea>
- <button class="btn" type="button">Change</button>
- <a href="#" class="btn btn-link">Cancel</a>
- </form-->
- <dt>
- Description
- </dt>
- <dd>
- <span >{{layerversion.layer.description}}</span>
- <i class="icon-pencil"></i>
- </dd>
- <!--form>
- <textarea class="span12" rows="6"></textarea>
- <button class="btn" type="button">Change</button>
- <a href="#" class="btn btn-link">Cancel</a>
- </form-->
- <dt>
- Maintainer(s)
- </dt>
- <dd>
- <span class="muted">Not set</span>
- <i class="icon-pencil"></i>
- </dd>
-</dl>
-</div>
+ <ul class="nav nav-pills">
+ <li class="active">
+ <a data-toggle="tab" href="#information" id="details-tab">Layer details</a>
+ </li>
+ <li>
+ <a data-toggle="tab" href="#targets" id="targets-tab">Recipes ({{total_targets}})</a>
+ </li>
+ <li>
+ <a data-toggle="tab" href="#machines" id="machines-tab">Machines ({{total_machines}})</a>
+ </li>
+ </ul>
+ <div class="tab-content">
+ <span class="button-place">
+ {% if layer_in_project == 0 %}
+ <button id="add-remove-layer-btn" data-directive="add" class="btn btn-large btn-block">
+ <span class="icon-plus"></span>
+ Add the {{layerversion.layer.name}} layer to your project
+ </button>
+ {% else %}
+ <button id="add-remove-layer-btn" data-directive="remove" class="btn btn-block btn-large btn-danger">
+ <span class="icon-trash"></span>
+ Delete the {{layerversion.layer.name}} layer from your project
+ </button>
+ {% endif %}
+ </span>
+
+ <!-- layer details pane -->
+ <div name="information" id="information" class="tab-pane active">
+ <dl class="dl-horizontal">
+ <dt class="">
+ <i class="icon-question-sign get-help" title="Fetch/clone URL of the repository"></i>
+ Repository URL
+ </dt>
+ <dd>
+ <span class="current-value">{{layerversion.layer.vcs_url}}</span>
+ {% if layerversion.get_vcs_link_url %}
+ <a href="{{layerversion.get_vcs_link_url}}/" class="icon-share get-info" target="_blank"></a>
+ {% endif %}
+ <form id="change-repo-form" class="control-group" style="display:none">
+ <div class="input-append">
+ <input type="text" class="input-xlarge" value="{{layerversion.layer.vcs_url}}">
+ <button data-layer-prop="vcs_url" class="btn change-btn" type="button">Save</button>
+ <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a>
+ </div>
+ </form>
+ <i class="icon-pencil" ></i>
+ </dd>
+ <dt>
+ <i class="icon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></i>
+ Repository subdirectory
+ </dt>
+ <dd>
+ <span class="muted" style="display:none">Not set</span>
+ <span class="current-value">{{layerversion.dirpath}}</span>
+ {% if layerversion.get_vcs_dirpath_link_url %}
+ <a href="{{layerversion.get_vcs_dirpath_link_url}}" class="icon-share get-info" target="_blank"></a>
+ {% endif %}
+ <form id="change-subdir-form" style="display:none;">
+ <div class="input-append">
+ <input type="text" value="{{layerversion.dirpath}}">
+ <button data-layer-prop="dirpath" class="btn change-btn" type="button">Save</button>
+ <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a>
+ </div>
+ </form>
+ <i id="change-subdir" class="icon-pencil"></i>
+ <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
+ </dd>
+ <dt>
+ <i class="icon-question-sign get-help" title="The Git branch, tag or commit"></i>
+ Revision
+ </dt>
+ <dd>
+ <span class="current-value">{{layerversion.get_vcs_reference}}</span>
+ <form style="display:none;">
+ <div class="input-append">
+ <input type="text" value="{{layerversion.get_vcs_reference}}">
+ <button data-layer-prop="commit" class="btn change-btn" type="button">Save</button>
+ <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a>
+ </div>
+ </form>
+ <i class="icon-pencil"></i>
+ </dd>
+ <dt>
+ <i class="icon-question-sign get-help" title="Other layers this layer depends upon"></i>
+ Layer dependencies
+ </dt>
+ <dd>
+ <ul class="unstyled" id="layer-deps-list">
+ {% for ld in layerversion.dependencies.all %}
+ <span class="current-value">
+ <li data-layer-id="{{ld.depends_on.id}}">
+ <a data-toggle="tooltip" title="{{ld.depends_on.layer.vcs_url}} | {{ld.depends_on.get_vcs_reference}}" href="{% url 'layerdetails' ld.depends_on.id %}">{{ld.depends_on.layer.name}}</a>
+ <span class="icon-trash " data-toggle="tooltip" title="Delete"></span>
+ </li>
+ </span>
+ {% endfor %}
+ </ul>
+ <div class="input-append add-deps">
+ <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" placeholder="Type a layer name" id="layer-dep-input">
+ <a class="btn" type="button" id="add-layer-dependency-btn" disabled>
+ Add layer
+ </a>
+ </div>
+ <span class="help-block add-deps">You can only add layers Toaster knows about</span>
+ </dd>
+ </dl>
+ </div>
+ <!-- targets tab -->
+ <div name="targets" id="targets" class="tab-pane">
+ {% if total_targets == 0 %}
+ <div class="alert alert-info">
+ <p>Toaster does not have recipe information for the <strong> {{layerversion.layer.name}} </strong> layer.</p>
+ <p>Toaster learns about layers when you build them. If this layer provides any recipes, they will be listed here after you build the <strong> {{layerversion.layer.name}} </strong> layer.</p>
+ </div>
+ {% else %}
+
+ <div class="row-fluid">
+
+ {% if targets.paginator.count == 0 %}
+ <div class="alert">
+ <h3>No targets found</h3>
+ {% endif %}
+
+ {# only show the search form if we have more than 10 results #}
+ {% if targets.paginator.count > 10 or request.GET.targets_search %}
+ {% if targets.paginator.count == 0 %}
+ <form class="input-append">
+ {% else %}
+ <form class="navbar-search input-append pull-left">
+ {% endif %}
+
+ <input type="text" id="target-search" name="targets_search" placeholder="Search recipes" class="input-xlarge" value="{{request.GET.targets_search}}">
+ {% if request.GET.targets_search %}
+ <a class="add-on btn target-search-clear">
+ <i class="icon-remove"></i>
+ </a>
+ {% endif %}
+ <button type="submit" class="btn">Search</button>
+ {% if targets.paginator.count == 0 %}
+ <button type="submit" class="btn btn-link target-search-clear">Show all targets</a>
+ {% endif %}
+ </form>
+ {% endif %}
+
+ {% if targets.paginator.count == 0 %}
+ <!-- end alert -->
+ </div>
+ <!-- end row-fluid -->
+ </div>
+ {% else %}
+
+ {% if total_targets > 10 %}
+ <div class="pull-right">
+ <span class="help-inline" style="padding-top:5px;">Show rows:</span>
+ <select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
+ {% if request.session.limit == i %}
+ <option value="{{i}}" selected>{{i}}</option>
+ {% else %}
+ <option value="{{i}}">{{i}}</option>
+ {% endif %}
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+ {% endif %}
+ </div>
+
+ <table class="table table-bordered table-hover">
+ <thead>
+ <tr>
+ <th>
+ <i class="icon-question-sign get-help" title="Information about a single piece of software, including where to download the source, configuration options, how to compile the source files and how to package the compiled output"></i>
+ Recipe
+ {% if request.GET.targets_search %}
+ <span class="badge badge-info">{{targets.paginator.count}}</span>
+ {% endif %}
+ </th>
+ <th>
+ <i class="icon-question-sign get-help" title="The recipe version and revision"></i>
+ Recipe version
+ </th>
+ <th class="span4">Summary</th>
+ <th class="span2">Build recipe</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for target in targets %}
+ <tr>
+ <td>
+ {{target.name}}
+ {% if target.up_id %}
+ <a href="{{target.get_layersource_view_url}}" class="icon-share get-info" target="_blank"></a>
+ {% endif %}
+ </td>
+ <td>{{target.version}}</td>
+ <td>{{target.summary}}</td>
+ <td><button class="btn btn-block build-target-btn" data-target-name="{{target.name}}" {% if layer_in_project == 0 %}disabled="disabled"{% endif %} >Build recipe</button></td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+
+ {% if total_targets > 10 %}
+ <!-- Show pagination controls -->
+ <div class="pagination">
+ <ul>
+ {%if targets.has_previous %}
+ <li><a href="?tpage={{targets.previous_page_number}}{{request.GET.limit}}#targets">&laquo;</a></li>
+ {%else%}
+ <li class="disabled"><a href="#">&laquo;</a></li>
+ {%endif%}
+ {% for i in targets.page_range %}
+ <li {%if i == targets.number %} class="active" {%endif%}><a href="?tpage={{i}}#targets">{{i}}</a></li>
+ {% endfor %}
+ {%if targets.has_next%}
+ <li><a href="?tpage={{targets.next_page_number}}#targets">&raquo;</a></li>
+ {%else%}
+ <li class="disabled"><a href="#">&raquo;</a></li>
+ {%endif%}
+ </ul>
+ <div class="pull-right">
+ <span class="help-inline" style="padding-bottom:10px;">Show rows:</span>
+ <select class="pagesize">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
+ {% if request.session.limit == i %}
+ <option value="{{i}}" selected>{{i}}</option>
+ {% else %}
+ <option value="{{i}}">{{i}}</option>
+ {% endif %}
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+ </div>
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ </div>
+
+
+ <div name="machines" id="machines" class="tab-pane">
+ {% if total_machines == 0 %}
+ <div class="alert alert-info">
+ <p>Toaster does not have machine information for the <strong> {{layerversion.layer.name}} </strong> layer.</p>
+ <p>Toaster learns about layers when you build them. If this layer provides any machines, they will be listed here after you build the <strong> {{layerversion.layer.name}} </strong> layer.</p>
+ </div>
+ {% else %}
+
+ <div class="row-fluid">
+
+ {% if machines.paginator.count == 0 %}
+ <div class="alert">
+ <h3>No machines found</h3>
+ {% endif %}
+
+ {# only show the search form if we have more than 10 results #}
+ {% if machines.paginator.count > 10 or request.GET.machines_search %}
+ {% if machines.paginator.count == 0 %}
+ <form class="input-append">
+ {% else %}
+ <form class="navbar-search input-append pull-left">
+ {% endif %}
+
+ <input type="text" id="machine-search" name="machines_search" placeholder="Search machines" class="input-xlarge" value="{{request.GET.machines_search}}">
+ {% if request.GET.machines_search %}
+ <a class="add-on btn machine-search-clear">
+ <i class="icon-remove"></i>
+ </a>
+ {% endif %}
+ <button type="submit" class="btn">Search</button>
+ {% if machines.paginator.count == 0 %}
+ <button type="submit" class="btn btn-link machine-search-clear">Show all machines</a>
+ {% endif %}
+ </form>
+ {% endif %}
+
+ {% if machines.paginator.count == 0 %}
+ <!-- end alert -->
+ </div>
+ <!-- end row-fluid -->
+ </div>
+
+ {% else %}
+
+ {% if total_machines > 10 %}
+ <div class="pull-right">
+ <span class="help-inline" style="padding-top:5px;">Show rows:</span>
+ <select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
+ {% if request.session.limit == i %}
+ <option value="{{i}}" selected>{{i}}</option>
+ {% else %}
+ <option value="{{i}}">{{i}}</option>
+ {% endif %}
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+ {% endif %}
+
+ </div>
+
+ <table class="table table-bordered table-hover">
+ <thead>
+ <tr>
+ <th>
+ <i class="icon-question-sign get-help" title="The machine is the hardware for which you are building"></i>
+ Machine
+ {% if request.GET.machines_search %}
+ <span class="badge badge-info">{{machines.paginator.count}}</span>
+ {% endif %}
+ </th>
+ <th>Description</th>
+ <th class="span2">Select machine</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for machine in machines %}
+ <tr>
+ <td>
+ {{machine.name}}
+ {% if machine.get_vcs_machine_file_link_url %}
+ <a href="{{machine.get_vcs_machine_file_link_url}}" target="_blank"><i class="icon-share get-info"></i></a>
+ {% endif %}
+ </td>
+ <td>{{machine.description}}</td>
+ <td><button class="btn btn-block select-machine-btn" data-machine-name="{{machine.name}}" {% if layer_in_project == 0 %}disabled="disabled"{% endif %}}>Select machine</button></td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+
+ {% if total_machines > 10 %}
+ <!-- Show pagination controls -->
+ <div class="pagination">
+ <ul>
+ {%if machines.has_previous %}
+ <li><a href="?mpage={{machines.previous_page_number}}{{request.GET.limit}}#machines">&laquo;</a></li>
+ {%else%}
+ <li class="disabled"><a href="#">&laquo;</a></li>
+ {%endif%}
+ {% for i in machines.page_range %}
+ <li {%if i == machines.number %} class="active" {%endif%}><a href="?mpage={{i}}#machines">{{i}}</a></li>
+ {% endfor %}
+ {%if machines.has_next%}
+ <li><a href="?mpage={{machines.next_page_number}}#machines">&raquo;</a></li>
+ {%else%}
+ <li class="disabled"><a href="#">&raquo;</a></li>
+ {%endif%}
+ </ul>
+ <div class="pull-right">
+ <span class="help-inline" style="padding-bottom:10px;">Show rows:</span>
+ <select class="pagesize">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
+ {% if request.session.limit == i %}
+ <option value="{{i}}" selected>{{i}}</option>
+ {% else %}
+ <option value="{{i}}">{{i}}</option>
+ {% endif %}
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+ </div>
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ </div>
+ </div>
+ </div>
+ <div class="row-fluid span4 well">
+ <h2>About {{layerversion.layer.name}}</h2>
+ <dl class="item-info">
+
+ <dt>
+ Summary
+ <i class="icon-question-sign get-help" title="One-line description of the layer"></i>
+ </dt>
+ <dd>
+ <span class="muted" style="display:none">Not set</span>
+ <span class="current-value">{{layerversion.layer.summary|default_if_none:''}}</span>
+ <form style="display:none; margin-bottom:20px">
+ <textarea class="span12" rows="2">{% if layerversion.layer.summary %}{{layerversion.layer.summary}}{% endif %}</textarea>
+ <button class="btn change-btn" data-layer-prop="summary" type="button">Save</button>
+ <a href="#" class="btn btn-link cancel">Cancel</a>
+ </form>
+ <i class="icon-pencil"></i>
+ <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
+ </dd>
+ <dt>
+ Description
+ </dt>
+ <dd>
+ <span class="muted" style="display:none">Not set</span>
+ <span class="current-value">{{layerversion.layer.description|default_if_none:''}}</span>
+ <form style="display:none; margin-bottom:20px">
+ <textarea class="span12" rows="6">{% if layerversion.layer.description %}{{layerversion.layer.description}}{% endif %}</textarea>
+ <button class="btn change-btn" data-layer-prop="description" type="button" >Save</button>
+ <a href="#" class="btn btn-link cancel">Cancel</a>
+ </form>
+ <i class="icon-pencil"></i>
+ <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
+ </dd>
+ </dd>
+ {% if layerversion.layer.up_id %}
+ <dt>Layer index</dt>
+ <dd>
+ <a href="http://layers.openembedded.org/layerindex/branch/{{layerversion.up_branch.name}}/layer/{{layerversion.layer.name}}"/>layer index link</a>
+
+ </dd>
+ {% endif %}
+ </dl>
+ </div>
{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/layers.html b/bitbake/lib/toaster/toastergui/templates/layers.html
index 281b72aec5..24d31c770e 100644
--- a/bitbake/lib/toaster/toastergui/templates/layers.html
+++ b/bitbake/lib/toaster/toastergui/templates/layers.html
@@ -3,53 +3,103 @@
{% load humanize %}
{% block localbreadcrumb %}
-<li>Layers</li>
+<li>All compatible layers</li>
{% endblock %}
{% block projectinfomain %}
<div class="page-header">
<h1>
- All layers
- <i class="icon-question-sign get-help heading-help" title="This page lists all the layers compatible with Yocto Project 1.7 'Dxxxx' that Toaster knows about. They include community-created layers suitable for use on top of OpenEmbedded Core and any layers you have imported"></i>
+ {% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
+ {{objects.paginator.count}} layer{{objects.paginator.count|pluralize}} found
+ {% elif request.GET.filter and objects.paginator.count == 0 or request.GET.search and objects.paginator.count == 0 %}
+ No layers found
+ {%else%}
+ All compatible layers
+ {%endif%}
+ <i class="icon-question-sign get-help heading-help" title="This page lists all the layers compatible with the release selected for this project, which is {{project.release.description}}"></i>
</h1>
</div>
- <!--div class="alert">
- <div class="input-append" style="margin-bottom:0px;">
- <input class="input-xxlarge" type="text" placeholder="Search layers" value="browser" />
- <a class="add-on btn">
- <i class="icon-remove"></i>
- </a>
- <button class="btn" type="button">Search</button>
- <a class="btn btn-link" href="#">Show all layers</a>
- </div>
- </div-->
- <div id="layer-added" class="alert alert-info lead" style="display:none;"></div>
- <div id="layer-removed" class="alert alert-info lead" style="display:none;">
- <button type="button" class="close" data-dismiss="alert">&times;</button>
- <strong>1</strong> layer deleted from <a href="project-with-targets.html">your project</a>: <a href="#">meta-aarch64</a>
- </div>
+ <div id="zone1alerts">
+ </div>
+
+{% if objects.paginator.count == 0 %}
+ {% if request.GET.filter or request.GET.search %}
+ <div class="row-fluid">
+ <div class="alert">
+ <form class="no-results input-append" id="searchform">
+ <input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
+ <button class="btn" type="submit" value="Search">Search</button>
+ <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all layers</button>
+ </form>
+ </div>
+ </div>
+ {% else %}
+ <div class="alert alert-info lead">
+ <p>Toaster has no layer information. To generate layer information you can:</p>
+ <ul>
+ <li><a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#layer-source">Configure a layer source</a></li>
+ <li><a href="{% url 'importlayer' %}">Import a layer</a></li>
+ </ul>
+ </div>
+ {% endif %}
-{% include "basetable_top.html" %}
- {% for lv in objects %}
+{% else %}
+
+{% include "basetable_top_layers.html" %}
+ {% for o in objects %}
<tr class="data">
- <td class="layer"><a href="{% url 'layerdetails' lv.id %}">{{lv.layer.name}}</a></td>
- <td class="description">{{lv.layer.summary}}</td>
- <td class="source"><a href="{% url 'layerdetails' lv.pk %}">{{lv.layer_source.name}}</a></td>
- <td class="git-repo"><a href="{% url 'layerdetails' lv.pk %}"><code>{{lv.layer.layer_index_url}}</code></a></td>
- <td class="git-subdir" style="display: table-cell;"><a href="{% url 'layerdetails' lv.pk %}"><code>{{lv.dirpath}}</code></a></td>
- <td class="branch">{% if lv.branch %}{{lv.branch}}{% else %}{{lv.up_branch.name}}{% endif %}</td>
- <td class="dependencies">{% for lvs in lv.dependencies.all %}{{lvs.layer.name}}<br/>{%endfor%}</td>
- <td class="add-layers">
- <button id="remove-layer-{{lv.pk}}" class="btn btn-danger btn-block remove-layer" title="1 layer deleted" style="display:none;">
+ <td class="layer"><a href="{% url 'layerdetails' o.id %}">{{o.layer.name}}</a></td>
+ <td class="description">{% if o.layer.summary %}{{o.layer.summary}}{%endif%}</td>
+ <td class="git-repo"><a href="{% url 'layerdetails' o.pk %}"><code>{{o.layer.vcs_url}}</code></a>
+ {% if o.get_vcs_link_url %}
+ <a target="_blank" href="{{ o.get_vcs_link_url }}"><i class="icon-share get-info"></i></a>
+ {% endif %}
+ </td>
+ <td class="git-subdir" style="display: table-cell;"><a href="{% url 'layerdetails' o.pk %}"><code>{{o.dirpath}}</code></a>
+ {% if o.dirpath and o.get_vcs_dirpath_link_url %}
+ <a target="_blank" href="{{ o.get_vcs_dirpath_link_url }}"><i class="icon-share get-info"></i></a>
+ {% endif %}
+ </td>
+ <td class="branch">
+ {% with vcs_ref=o.get_vcs_reference %}
+ {% if vcs_ref|is_shaid %}
+ <a class="btn" data-content="<ul class='unstyled'> <li>{{vcs_ref}}</li> </ul>">
+ {{vcs_ref|truncatechars:10}}
+ </a>
+ {% else %}
+ {{vcs_ref}}
+ {% endif %}
+ {% endwith %}
+ </td>
+ <td class="dependencies">
+ {% with ods=o.dependencies.all%}
+ {% if ods.count %}
+ <a class="btn"
+ title="<a href='{% url "layerdetails" o.pk %}'>{{o.layer.name}}</a> dependencies"
+ data-content="<ul class='unstyled'>
+ {% for i in ods%}
+ <li><a href='{% url "layerdetails" i.depends_on.pk %}'>{{i.depends_on.layer.name}}</a></li>
+ {% endfor %}
+ </ul>">
+ {{ods.count}}
+ </a>
+ {% endif %}
+ {% endwith %}
+ </td>
+ {% if project %}
+ <td class="add-del-layers" value="{{o.pk}}">
+ <div id="layer-tooltip-{{o.pk}}" style="display: none; font-size: 11px; line-height: 1.3;" class="tooltip-inner">layer was modified</div>
+ <button id="layer-del-{{o.pk}}" class="btn btn-danger btn-block remove-layer layerbtn" style="display:none;" onclick="layerDel({{o.pk}}, '{{o.layer.name}}', '{%url 'layerdetails' o.pk%}')" >
<i class="icon-trash"></i>
Delete layer
</button>
- <button id="add-layer-{{lv.pk}}" class="btn btn-block add-layer" title="1 layer added">
+ <button id="layer-add-{{o.pk}}" class="btn btn-block layerbtn" style="display:none;" onclick="layerAdd({{o.pk}}, '{{o.layer.name}}', '{%url 'layerdetails' o.pk%}')" title="layer added">
<i class="icon-plus"></i>
Add layer
</button>
</td>
+ {% endif %}
</tr>
{% endfor %}
{% include "basetable_bottom.html" %}
@@ -57,122 +107,195 @@
<!-- Modals -->
<!-- 'Layer dependencies modal' -->
- <div id="dependencies-message" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true">
+ <div id="dependencies_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true">
+ <form id="dependencies_modal_form">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
- <h3>meta-acer dependencies</h3>
+ <h3><span class="layer-name"></span> dependencies</h3>
</div>
<div class="modal-body">
- <p><strong>meta-acer</strong> depends on some layers that are not added to your project. Select the ones you want to add:</p>
- <ul class="unstyled">
- <li>
- <label class="checkbox">
- <input type="checkbox" checked="checked">
- meta-android
- </label>
- </li>
- <li>
- <label class="checkbox">
- <input type="checkbox" checked="checked">
- meta-oe
- </label>
- </li>
+ <p><strong class="layer-name"></strong> depends on some layers that are not added to your project. Select the ones you want to add:</p>
+ <ul class="unstyled" id="dependencies_list">
</ul>
</div>
<div class="modal-footer">
- <button id="add-layer-dependencies" type="submit" class="btn btn-primary" data-dismiss="modal" >Add layers</button>
- <button class="btn" data-dismiss="modal">Cancel</button>
+ <button class="btn btn-primary" type="submit">Add layers</button>
+ <button class="btn" type="reset" data-dismiss="modal">Cancel</button>
</div>
+ </form>
</div>
- <script src="assets/js/jquery-1.9.1.min.js" type='text/javascript'></script>
- <script src="assets/js/jquery.tablesorter.min.js" type='text/javascript'></script>
- <script src="assets/js/jquery-ui-1.10.3.custom.min.js"></script>
- <script src="assets/js/bootstrap.min.js" type='text/javascript'></script>
- <script src="assets/js/prettify.js" type='text/javascript'></script>
- <script src="assets/js/jit.js" type='text/javascript'></script>
- <script src="assets/js/main.js" type='text/javascript'></script>
-
- <script>
- $(document).ready(function() {
-
- //show or hide selected columns on load
- $("input:checkbox").each(function(){
- var selectedType = $(this).val();
- if($(this).is(":checked")){
- $("."+selectedType).show();
+{% if project %}
+<script>
+
+var tooltipUpdateText;
+
+/* ensure csrf cookie exists {% csrf_token %} */
+function _makeXHREditCall(data, onsuccess, onfail) {
+ $.ajax( {
+ type: "POST",
+ url: "{% url 'xhr_projectedit' project.id %}",
+ data: data,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (_data) {
+ if (_data.error != "ok") {
+ console.warn(_data.error);
+ } else {
+ updateButtons(_data.layers.map(function (e) {return e.id}));
+ if (onsuccess != undefined) onsuccess(_data);
}
- else{
- $("."+selectedType).hide();
+ },
+ error: function (_data) {
+ console.warn("Call failed");
+ console.warn(_data);
+ }
+ });
+}
+
+function updateLayerCountLabels (amount) {
+ /* Update the filter labels */
+ var countLabel = $("#projectlayer__project\\:{{project.id}}_count");
+ countLabel.text(Number(countLabel.text())+amount);
+
+ var countLabelRemaining = $("#projectlayer__project\\:NOT{{project.id}}_count");
+ countLabelRemaining.text(Number(countLabelRemaining.text())-amount);
+}
+
+
+function layerDel(layerId, layerName, layerURL) {
+ tooltipUpdateText = "1 layer deleted";
+ _makeXHREditCall({ 'layerDel': layerId }, function () {
+ updateLayerCountLabels(-1);
+
+ show_alert("You have deleted <strong>1</strong> layer from <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>: <a href=\""+layerURL+"\">" + layerName +"</a>");
+ });
+}
+
+function show_alert(text, cls) {
+ $("#zone1alerts").html("<div class=\"alert alert-info lead\"><button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>" + text + "</div>");
+}
+
+function show_dependencies_modal(layerId, layerName, layerURL, dependencies) {
+ // update layer name
+ $('.layer-name').text(layerName);
+ var deplistHtml = "";
+ for (var i = 0; i < dependencies.length; i++) {
+ deplistHtml += "<li><label class=\"checkbox\"><input name=\"dependencies\" value=\""
+ deplistHtml += dependencies[i].id;
+ deplistHtml +="\" type=\"checkbox\" checked=\"checked\"/>";
+ deplistHtml += dependencies[i].name;
+ deplistHtml += "</label></li>";
+ }
+ $('#dependencies_list').html(deplistHtml);
+
+ var selected = [layerId];
+ var layer_link_list = "<a href='"+layerURL+"'>"+layerName+"</a>";
+
+ $("#dependencies_modal_form").submit(function (e) {
+ e.preventDefault();
+ $("input[name='dependencies']:checked").map(function () { selected.push(parseInt($(this).val()))});
+ if (selected.length > 1) {
+ tooltipUpdateText = "" + selected.length + " layers added";
+ } else {
+ tooltipUpdateText = "1 layer added";
+ }
+
+ for (var i = 0; i < selected.length; i++) {
+ for (var j = 0; j < dependencies.length; j++) {
+ if (dependencies[j].id == selected[i]) {
+ layer_link_list+= ", <a href='"+dependencies[j].layerdetailurl+"'>"+dependencies[j].name+"</a>"
+ break;
+ }
}
+ }
+
+ $('#dependencies_modal').modal('hide');
+
+ {% if project %}
+ _makeXHREditCall({ 'layerAdd': selected.join(",") }, function () {
+ show_alert("You have added <strong>"+selected.length+"</strong> layers to <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>: " + layer_link_list);
});
+ {% endif %}
- // enable add layer button
- $('#add-layer-with-deps').removeAttr('disabled');
+ });
+ $('#dependencies_modal').modal('show');
+}
- //edit columns functionality (show / hide table columns)
- $("input:checkbox").change();
- $("input:checkbox").change(function(){
- var selectedType = $(this).val();
- if($(this).is(":checked")){
- $("."+selectedType).show();
- }
- else{
- $("."+selectedType).hide();
- }
- });
- //turn edit columns dropdown into a multi-select menu
- $('.dropdown-menu input, .dropdown-menu label').click(function(e) {
- e.stopPropagation();
- });
+function layerAdd(layerId, layerName, layerURL) {
+ $.ajax({
+ url: '{% url "xhr_datatypeahead" %}',
+ data: {'type': 'layerdeps','value':layerId},
+ success: function(_data) {
+ if (_data.error != "ok") {
+ console.warn(_data.error);
+ } else {
+ updateLayerCountLabels(_data.list.length+1);
- //show tooltip with applied filter
- $('#filtered').tooltip({container:'table', placement:'bottom', delay:{hide:1500}, html:true});
+ if (_data.list.length > 0) {
+ show_dependencies_modal(layerId, layerName, layerURL, _data.list);
+ }
+ else {
+ tooltipUpdateText = "1 layer added";
+ _makeXHREditCall({ 'layerAdd': layerId }, function () {
+ show_alert("You have added <strong>1</strong> layer to <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>: <a href=\""+layerURL+"\">" + layerName +"</a>");
+ });
+ }
+ }
+ }
+ })
+}
- $('#filtered').click(function() {
- $(this).tooltip('hide');
- });
+function button_set(id, state) {
+ var tohide, toshow;
+ if (state == "add")
+ {
+ tohide = "#layer-del-";
+ toshow = "#layer-add-";
+ }
+ else if (state == "del")
+ {
+ tohide = "#layer-add-";
+ toshow = "#layer-del-";
+ }
- //show layer added tooltip
- $("#remove-layer, #add-layer, #add-layer-with-deps2").tooltip({ trigger: 'manual' });
-
- // add layer without dependencies
- $("#add-layer").click(function(){
- $('#layer-removed').hide();
- $('#layer-added').html('<button type="button" class="close" data-dismiss="alert">&times;</button><strong>1</strong> layer added to <a href="project-with-targets.html">your project</a>: <a href="#">meta-aarch64</a>').fadeIn();
- $('#add-layer').tooltip('show');
- $("#add-layer").hide();
- $(".add-layers .tooltip").delay(2000).fadeOut(function(){
- $("#remove-layer").delay(300).fadeIn();
- });
- });
- // add layer with dependencies
- $(document).on("click", "#add-layer-dependencies", function() {
- $('#layer-removed').hide();
- $('#layer-added').html('<button type="button" class="close" data-dismiss="alert">&times;</button><strong>3</strong> layers added to <a href="project-with-targets.html">your project</a>: <a href="#">meta-acer</a> and its dependencies <a href="#">meta-android</a> and <a href="#">meta-oe</a>').delay(400).fadeIn(function(){
- $('#add-layer-with-deps').tooltip('show');
- $("#add-layer-with-deps, #add-layer-with-deps").hide();
- $(".add-layers .tooltip").delay(2000).fadeOut(function(){
- $("#remove-layer-with-deps").delay(300).fadeIn();
- });
+ var previouslyvisible = $(tohide + id).is(":visible");
+ if (previouslyvisible) {
+ $(tohide + id).fadeOut( function() {
+ $("#layer-tooltip-" + id).text(tooltipUpdateText);
+ $("#layer-tooltip-" + id).fadeIn().delay(2000).fadeOut(function(){
+ $(toshow + id).delay(300).fadeIn();
});
});
+ } else {
+ $(tohide + id).hide();
+ $("#layer-tooltip-" + id).hide();
+ $(toshow + id).show();
+ }
+};
- // delete layer
- $("#remove-layer").click(function(){
- $('#layer-added').hide();
- $('#layer-removed').show();
- $('#remove-layer').tooltip('show');
- $("#remove-layer").hide();
- $(".add-layers .tooltip").delay(2000).fadeOut(function(){
- $("#add-layer").delay(300).fadeIn();
- });
- });
+function updateButtons(projectLayers) {
+ var displayedLayers = [];
+ $(".add-del-layers").map(function () { displayedLayers.push(parseInt($(this).attr('value')))});
+ for (var i=0; i < displayedLayers.length; i++) {
+ if (projectLayers.indexOf(displayedLayers[i]) > -1) {
+ button_set(displayedLayers[i], "del");
+ }
+ else {
+ button_set(displayedLayers[i], "add");
+ }
+ }
+}
- });
+$(document).ready(function (){
+ $('.layerbtn').tooltip({ trigger: 'manual' });
+ updateButtons({{projectlayerset}});
+});
</script>
+{%endif%}
+
+{%endif%}
{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/layers_dep_modal.html b/bitbake/lib/toaster/toastergui/templates/layers_dep_modal.html
new file mode 100644
index 0000000000..8222027d4f
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/layers_dep_modal.html
@@ -0,0 +1,99 @@
+<!-- 'Layer dependencies modal' -->
+ <div id="dependencies_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true">
+ <form id="dependencies_modal_form">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
+ <h3><span id="title"></span> dependencies</h3>
+ </div>
+ <div class="modal-body">
+ <p id="body-text"> <strong id="layer-name"></strong> depends on some layers that are not added to your project. Select the ones you want to add:</p>
+ <ul class="unstyled" id="dependencies_list">
+ </ul>
+ </div>
+ <div class="modal-footer">
+ <button class="btn btn-primary" type="submit">Add layers</button>
+ <button class="btn" type="reset" data-dismiss="modal">Cancel</button>
+ </div>
+ </form>
+ </div>
+
+<script>
+ /* projectId: current project
+ * layer: Object representing the parent layer { id: .. name: ... url }
+ * dependencies: array of dependency layer objects { id: .. name: ..}
+ * title: optional override for title
+ * body: optional override for body
+ * addToProject: Whether to add layers to project on accept
+ * successAdd: function to run on success
+ */
+function show_layer_deps_modal(projectId, layer, dependencies, title, body, addToProject, successAdd) {
+
+ // update layer name
+ if (title) {
+ $('#dependencies_modal #title').text(title);
+ } else {
+ $('#dependencies_modal #title').text(layer.name);
+ }
+
+ if (body) {
+ $("#dependencies_modal #body-text").html(body);
+ } else {
+ $("#dependencies_modal #layer-name").text(layer.name);
+ }
+
+ var deplistHtml = "";
+ for (var i = 0; i < dependencies.length; i++) {
+ deplistHtml += "<li><label class=\"checkbox\"><input name=\"dependencies\" value=\"";
+ deplistHtml += dependencies[i].id;
+ deplistHtml +="\" type=\"checkbox\" checked=\"checked\"/>";
+ deplistHtml += dependencies[i].name;
+ deplistHtml += "</label></li>";
+ }
+ $('#dependencies_list').html(deplistHtml);
+
+ var selected = [];
+ /* -1 is a special dummy Id which we use when the layer isn't yet in the
+ * system, normally we would add the current layer to the selection.
+ */
+ if (layer.id != -1)
+ selected.push(layer.id);
+
+ var layer_link_list = "<a href='"+layer.url+"'>"+layer.name+"</a>";
+
+ $("#dependencies_modal_form").submit(function (e) {
+ e.preventDefault();
+ $("input[name='dependencies']:checked").map(function () { selected.push(parseInt($(this).val()))});
+ if (selected.length > 1) {
+ tooltipUpdateText = "" + selected.length + " layers added";
+ } else {
+ tooltipUpdateText = "1 layer added";
+ }
+
+ for (var i = 0; i < selected.length; i++) {
+ for (var j = 0; j < dependencies.length; j++) {
+ if (dependencies[j].id == selected[i]) {
+ layer_link_list+= ", <a href='"+dependencies[j].layerdetailurl+"'>"+dependencies[j].name+"</a>"
+ break;
+ }
+ }
+ }
+
+ $('#dependencies_modal').modal('hide');
+
+ if (addToProject) {
+ var editProjectUrl = "{% url 'xhr_projectedit' project.id %}";
+ libtoaster.editProject(editProjectUrl, projectId, { 'layerAdd': selected.join(",") }, function () {
+ if (successAdd) {
+ successAdd(selected);
+ }
+ }, function () {
+ console.log ("Adding layers to project failed");
+ });
+ } else {
+ successAdd(selected);
+ }
+ });
+
+ $('#dependencies_modal').modal('show');
+}
+</script>
diff --git a/bitbake/lib/toaster/toastergui/templates/machines.html b/bitbake/lib/toaster/toastergui/templates/machines.html
index 18e7485d50..2ac35378e0 100644
--- a/bitbake/lib/toaster/toastergui/templates/machines.html
+++ b/bitbake/lib/toaster/toastergui/templates/machines.html
@@ -1,63 +1,92 @@
{% extends "baseprojectpage.html" %}
{% load projecttags %}
{% load humanize %}
-
+{% load static %}
{% block localbreadcrumb %}
-<li>Machines</li>
+<li>All compatible machines</li>
{% endblock %}
{% block projectinfomain %}
- <div class="page-header">
- <h1>
- All machines
- <i class="icon-question-sign get-help heading-help" title="This page lists all the machines compatible with Yocto Project 1.7 'Dxxxx' that Toaster knows about. They include community-created targets suitable for use on top of OpenEmbedded Core and any targets you have imported"></i>
- </h1>
- </div>
- <!--div class="alert">
- <div class="input-append" style="margin-bottom:0px;">
- <input class="input-xxlarge" type="text" placeholder="Search targets" value="browser" />
- <a class="add-on btn">
- <i class="icon-remove"></i>
- </a>
- <button class="btn" type="button">Search</button>
- <a class="btn btn-link" href="#">Show all targets</a>
- </div>
- </div-->
- <div id="target-added" class="alert alert-info lead" style="display:none;"></div>
- <div id="target-removed" class="alert alert-info lead" style="display:none;">
- <button type="button" class="close" data-dismiss="alert">&times;</button>
- <strong>1</strong> target deleted from <a href="project-with-targets.html">your project</a>: <a href="#">meta-aarch64</a>
- </div>
+<script src="{% static 'js/machines.js' %}"></script>
+<script>
+
+ $(document).ready(function (){
+ var ctx = {
+ projectPageUrl : "{% url 'project' project.id %}",
+ projectName : "{{project.name}}",
+ xhrEditProjectUrl : "{% url 'xhr_projectedit' project.id %}",
+ projectId : {{project.id}},
+ xhrDataTypeaheadUrl : "{% url 'xhr_datatypeahead' %}",
+ };
+
+ try {
+ machinesPageInit(ctx);
+ } catch (e) {
+ document.write("Sorry, An error has occurred loading this page");
+ console.warn(e);
+ }
+ });
+</script>
+{% include "layers_dep_modal.html" %}
+<div class="page-header">
+ <h1>
+ {% if request.GET.search or request.GET.filter %}
+ {% if objects.paginator.count != 0 %}
+ {{objects.paginator.count}} machines found
+ {% else %}
+ No machines found
+ {% endif %}
+ {% else %}
+ All machines
+ <i class="icon-question-sign get-help heading-help" title="This page lists all the machines compatible with the current project that Toaster knows about. They include community-created targets suitable for use on top of OpenEmbedded Core and any targets you have imported"></i>
+ {% endif %}
+ </h1>
+</div>
+<div class="alert alert-info lead" id="alert-area" style="display:none">
+ <button type="button" class="close" id="dismiss-alert">&times;</button>
+ <span id="alert-msg"></span>
+</div>
+{% if objects.paginator.count == 0 %}
+ {% if request.GET.search %}
+ <div class="alert row-fluid">
+ <form class="navbar-search input-append pull-left" id="searchform">
+ <input class="input-xxlarge" id="search" name="search" type="text" placeholder="Search machines" value="{{request.GET.search}}"><a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>
+ <input type="hidden" name="orderby" value="">
+ <input type="hidden" name="page" value="1">
+ <button class="btn" type="submit" value="Search">Search</button>
+ <button type="submit" class="btn btn-link" id="show-all-btn">Show all machines</button>
+ </form>
+ </div>
+ {% else %}
+ <div class="alert alert-info lead">
+ Toaster has no machine information. To generate machine information you should <a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#layer-source">configure a layer source</a>
+ </div>
+ {% endif %}
-{% include "basetable_top.html" %}
- {% for o in objects %}
- <tr class="data">
- <td class="machine">
- {{o.name}}
- <a machine="_blank" href="http://layers.openembedded.org/layerindex/branch/master/machines/?q=3g-router-image"><i class="icon-share get-info"></i></a>
- </td>
- <td class="description">{{o.description}}</td>
- <td class="machine-file">
- <code>{{o.file_path}}</code>
- <a href="http://github.com/embeddedgeeks/meta-embeddedgeeks/blob/master/machines-core/images/3g-router-image.bb" machine="_blank"><i class="icon-share get-info"></i></a>
- </td>
- <td class="layer"><a href="#">{{o.layer_version.layer.name}}</a></td>
- <td class="source">{{o.layer_source.name}}</td>
- <td class="branch">{{o.layer_version.commit}}</td>
- <td class="build">
- <a id="build-machine" href="project-with-machines.html?machine=3g-router-image" class="btn btn-block" style="display:none;">
- Build machine
- </a>
- <a id="add-layer" href="#" class="btn btn-block nopop" title="1 layer added">
- <i class="icon-plus"></i>
- Add layer
- <i class="icon-question-sign get-help" title="To build this machine, you must first add the meta-embeddedgeeks layer to your project"></i>
- </a>
- </td>
- </tr>
- {% endfor %}
+{% else %}
+ {% include "basetable_top.html" %}
+ {% for o in objects %}
+ <tr class="data">
+ <td class="machine">{{o.name}}</td>
+ <td class="description">{{o.description}}</td>
+ <td class="layer"><a href="{%url "layerdetails" o.layer_version.id %}">{{o.layer_version.layer.name}}</a></td>
+ <td class="branch">{{o.layer_version.get_vcs_reference}}</td>
+ <td class="machinefile"><code>/machine/conf/{{o.name}}.conf</code><a href="{{o.get_vcs_machine_file_link_url}}" target="_blank"><i class="icon-share get-info"></i></a></td>
+ <td class="select-or-add">
+ <a href="#" class="btn btn-block select-machine-btn" data-machine-name="{{o.name}}" data-layer-version-id="{{o.layer_version.id}}"
+ {%if o.layer_version.id not in project_layers %}style="display:none" {%endif%} >Select machine</a>
+ <a href="#" class="btn btn-block nopop add-layer" data-layer-version-id="{{o.layer_version.id}}" data-layer-name="{{o.layer_version.layer.name}}" {%if o.layer_version.id in project_layers %}style="display:none" {%endif%}
+ >
+ <i class="icon-plus"></i>
+ Add layer
+ <i class="icon-question-sign get-help" title="To build this machine, you must first add the {{o.layer_version.layer.name}} layer to your project"></i>
+ </a>
+ </td>
+ </tr>
+ {% endfor %}
-{% include "basetable_bottom.html" %}
+ {% include "basetable_bottom.html" %}
+{% endif %}
{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/managed_builds.html b/bitbake/lib/toaster/toastergui/templates/managed_builds.html
new file mode 100644
index 0000000000..63ae5408f5
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/managed_builds.html
@@ -0,0 +1,167 @@
+{% extends "base.html" %}
+
+{% load static %}
+{% load projecttags %}
+{% load humanize %}
+
+{% block extraheadcontent %}
+<link rel="stylesheet" href="/static/css/jquery-ui.min.css" type='text/css'>
+<link rel="stylesheet" href="/static/css/jquery-ui.structure.min.css" type='text/css'>
+<link rel="stylesheet" href="/static/css/jquery-ui.theme.min.css" type='text/css'>
+<script src="/static/js/jquery-ui.min.js"></script>
+<script src="/static/js/filtersnippet.js"></script>
+{% endblock %}
+
+{% block pagecontent %}
+
+<script>
+ // initialize the date range controls
+ $(document).ready(function () {
+ date_init('created','{{last_date_from}}','{{last_date_to}}','{{dateMin_created}}','{{dateMax_created}}','{{daterange_selected}}');
+ date_init('updated','{{last_date_from}}','{{last_date_to}}','{{dateMin_updated}}','{{dateMax_updated}}','{{daterange_selected}}');
+ });
+</script>
+
+<div class="row-fluid">
+
+ {% include "managed_mrb_section.html" %}
+
+
+ {% if 1 %}
+ <div class="page-header top-air">
+ <h1>
+ {% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
+ {{objects.paginator.count}} build{{objects.paginator.count|pluralize}} found
+ {%elif request.GET.filter and objects.paginator.count == 0 or request.GET.search and objects.paginator.count == 0 %}
+ No builds found
+ {%else%}
+ All builds
+ {%endif%}
+ </h1>
+ </div>
+
+ {% if objects.paginator.count == 0 %}
+ <div class="row-fluid">
+ {% if request.GET.filter or request.GET.search %}
+ <div class="alert">
+ <form class="no-results input-append" id="searchform">
+ <input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
+ <button class="btn" type="submit" value="Search">Search</button>
+ <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all builds</button>
+ </form>
+ </div>
+ {% else %}
+ <div class="alert alert-info">
+ <p class="lead">Toaster has not recorded any builds yet. To run a build, <a href="{% url 'all-projects' %}">select the project</a> for which you want to build.
+ </div>
+ {% endif %}
+ </div>
+
+
+ {% else %} {# We have builds to display #}
+ {% include "basetable_top_buildprojects.html" %}
+ <!-- Table data rows; the order needs to match the order of "tablecols" definitions; and the <td class value needs to match the tablecols clclass value for show/hide buttons to work -->
+ {% for buildrequest in objects %}{% if buildrequest.build %} {% with build=buildrequest.build %} {# if we have a build, just display it #}
+ <tr class="data">
+ <td class="outcome"><a href="{% url "builddashboard" build.id %}">{%if build.outcome == build.SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif build.outcome == build.FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}</a>
+ {% if build.project %}
+ &nbsp; <a href="{% url 'build_artifact' build.id "cookerlog" build.id %}">
+ <i class="icon-download-alt" title="" data-original-title="Download build log"></i>
+ </a>
+ {% endif %}
+
+ </td>
+ <td class="target">{% for t in build.target_set.all %} <a href="{% url "builddashboard" build.id %}"> {{t.target}} </a> <br />{% endfor %}</td>
+ <td class="machine"><a href="{% url "builddashboard" build.id %}">{{build.machine}}</a></td>
+ {% if MANAGED %}
+ <td class="project">
+ {% if build.project %}
+ <a href="{% url 'project' build.project.id %}">{{build.project.name}}</a>
+ {% endif %}
+ </td>
+ {% endif %}
+ <td class="started_on"><a href="{% url "builddashboard" build.id %}">{{build.started_on|date:"d/m/y H:i"}}</a></td>
+ <td class="completed_on"><a href="{% url "builddashboard" build.id %}">{{build.completed_on|date:"d/m/y H:i"}}</a></td>
+ <td class="failed_tasks error">
+ {% query build.task_build outcome=4 order__gt=0 as exectask%}
+ {% if exectask.count == 1 %}
+ <a href="{% url "task" build.id exectask.0.id %}">{{exectask.0.recipe.name}}.{{exectask.0.task_name}}</a>
+ {% if MANAGED and build.project %}
+ <a href="{% url 'build_artifact' build.id "tasklogfile" exectask.0.id %}">
+ <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
+ </a>
+ {% endif %}
+ {% elif exectask.count > 1%}
+ <a href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}} task{{exectask.count|pluralize}}</a>
+ {%endif%}
+ </td>
+ <td class="errors_no">
+ {% if build.errors_no %}
+ <a class="errors_no error" href="{% url "builddashboard" build.id %}#errors">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>
+ {% if MANAGED and build.project and build.buildartifact_set.count %}
+ <a href="{% url 'build_artifact' build.id "cookerlog" build.id %}">
+ <i class="icon-download-alt" title="" data-original-title="Download build log"></i>
+ </a>
+ {% endif %}
+ {%endif%}
+ </td>
+ <td class="warnings_no">{% if build.warnings_no %}<a class="warnings_no warning" href="{% url "builddashboard" build.id %}#warnings">{{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a>{%endif%}</td>
+ <td class="time"><a href="{% url "buildtime" build.id %}">{{build.timespent|sectohms}}</a></td>
+ {% if not MANAGED or not build.project %}
+ <td class="log">{{build.cooker_log_path}}</td>
+ {% endif %}
+ <td class="output">
+ {% if build.outcome == build.SUCCEEDED %}
+ <a href="{%url "builddashboard" build.id%}#images">{{fstypes|get_dict_value:build.id}}</a>
+ {% endif %}
+ </td>
+ </tr>
+
+
+ {%endwith%}
+ {% else %} {# we don't have a build for this build request, mask the data with build request data #}
+
+
+
+ <tr class="data">
+ <td class="outcome">{% if buildrequest.state == buildrequest.REQ_FAILED %}<i class="icon-minus-sign error"></i>{%else%}FIXME_build_request_state{%endif%}</td>
+ <td class="target">
+ <a href="{% url "buildrequestdetails" buildrequest.project.id buildrequest.id %}"><span data-toggle="tooltip" {%if buildrequest.brtarget_set.all.count > 1%}title="Targets: {%for target in buildrequest.brtarget_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{buildrequest.brtarget_set.all.0.target}} {%if buildrequest.brtarget_set.all.count > 1%}(+ {{buildrequest.brtarget_set.all.count|add:"-1"}}){%endif%} </span></a>
+ </td>
+ <td class="machine">
+ <a href="{% url "buildrequestdetails" buildrequest.project.id buildrequest.id %}">{{buildrequest.machine}}</a>
+ </td>
+ {% if MANAGED %}
+ <td class="project">
+ <a href="{% url 'project' buildrequest.project.id %}">{{buildrequest.project.name}}</a>
+ </td>
+ {% endif %}
+ <td class="started_on">
+ <a href="{% url "buildrequestdetails" buildrequest.project.id buildrequest.id %}">{{buildrequest.created|date:"d/m/y H:i"}}</a>
+ </td>
+ <td class="completed_on">
+ <a href="{% url "buildrequestdetails" buildrequest.project.id buildrequest.id %}">{{buildrequest.updated|date:"d/m/y H:i"}}</a>
+ </td>
+ <td class="failed_tasks error">
+ </td>
+ <td class="errors_no">
+ <a class="errors_no error" href="{% url "buildrequestdetails" buildrequest.project.id buildrequest.id %}#errors">{{buildrequest.brerror_set.all.count}} error{{buildrequest.brerror_set.all.count|pluralize}}</a>
+ </td>
+ <td class="warnings_no">
+ </td>
+ <td class="time">
+ {{br.timespent.total_seconds|sectohms}}
+ </td>
+ <td class="output"> {# we have no output here #}
+ </td>
+ </tr>
+ {%endif%}
+ {% endfor %}
+
+
+ {% include "basetable_bottom.html" %}
+ {% endif %} {# objects.paginator.count #}
+{% endif %} {# empty #}
+</div><!-- end row-fluid-->
+
+{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/managed_mrb_section.html b/bitbake/lib/toaster/toastergui/templates/managed_mrb_section.html
new file mode 100644
index 0000000000..a6d4ac66fc
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/managed_mrb_section.html
@@ -0,0 +1,183 @@
+{% load static %}
+{% load projecttags %}
+{% load humanize %}
+
+{%if mru|length > 0%}
+{# Template provides the latest builds section requires mru in the context which can be added from _managed_get_latest_builds #}
+ <div class="page-header top-air">
+ <h1>
+ Latest builds
+ </h1>
+ </div>
+ <div id="latest-builds">
+ {% for buildrequest in mru %}{% with build=buildrequest.build %}
+
+ {% if build %} {# if we have a build, just display it #}
+
+ <div class="alert {%if build.outcome == build.SUCCEEDED%}alert-success{%elif build.outcome == build.FAILED%}alert-error{%else%}alert-info{%endif%} {% if MANAGED and build.project %}project-name{% endif %} ">
+ {% if MANAGED and build.project %}
+ <span class="label {%if build.outcome == build.SUCCEEDED%}label-success{%elif build.outcome == build.FAILED%}label-important{%else%}label-info{%endif%}">
+ <a href="{% url 'project' build.project.id %}"> {{build.project.name}} </a>
+ </span>
+ {% endif %}
+
+ <div class="row-fluid">
+ <div class="span3 lead">
+ {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
+ <a href="{%url 'builddashboard' build.pk%}" class="{%if build.outcome == build.SUCCEEDED %}success{%else%}error{%endif%}">
+ {% endif %}
+ <span data-toggle="tooltip" {%if build.target_set.all.count > 1%}title="Targets: {%for target in build.target_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{build.target_set.all.0.target}} {%if build.target_set.all.count > 1%}(+ {{build.target_set.all.count|add:"-1"}}){%endif%}
+ </span>
+ {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
+ </a>
+ {% endif %}
+ </div>
+ {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
+ <div class="span2 lead">
+ {% if build.completed_on|format_build_date %}
+ {{ build.completed_on|date:'d/m/y H:i' }}
+ {% else %}
+ {{ build.completed_on|date:'H:i' }}
+ {% endif %}
+ </div>
+ <div class="span2 lead">
+ {% if build.errors_no %}
+ <i class="icon-minus-sign red"></i> <a href="{%url 'builddashboard' build.pk%}#errors" class="error">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>
+ {% endif %}
+ </div>
+ <div class="span2 lead">
+ {% if build.warnings_no %}
+ <i class="icon-warning-sign yellow"></i> <a href="{%url 'builddashboard' build.pk%}#warnings" class="warning">{{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a>
+ {% endif %}
+ </div>
+ <div class="lead ">
+ <span class="lead{%if not MANAGED or not build.project%} pull-right{%endif%}">
+ Build time: <a href="{% url 'buildtime' build.pk %}">{{ build.timespent|sectohms }}</a>
+ </span>
+ {% if build.project %}
+ <button class="btn {%if build.outcome == build.SUCCEEDED%}btn-success{%elif build.outcome == build.FAILED%}btn-danger{%else%}btn-info{%endif%} pull-right" onclick='scheduleBuild({% url 'xhr_projectbuild' build.project.id as bpi%}{{bpi|json}}, {{build.project.name|json}}, {% url 'project' buildrequest.project.id as bpurl%}{{bpurl|json}}, {{build.get_sorted_target_list|mapselect:'target'|json}})'>Run again</button>
+ {% endif %}
+ </div>
+ {%endif%}
+ {%if build.outcome == build.IN_PROGRESS %}
+ <div class="span4 offset1">
+ <div class="progress" style="margin-top:5px;" data-toggle="tooltip" title="{{build.completeper}}% of tasks complete">
+ <div style="width: {{build.completeper}}%;" class="bar"></div>
+ </div>
+ </div>
+ <div class="lead pull-right">{{build.completeper}}% tasks completed</div>
+ {%endif%}
+ </div>
+ </div>
+
+ {% else %} {# we use the project's page recent build design #}
+
+
+
+
+ <div class="alert {% if buildrequest.state == buildrequest.REQ_FAILED %}alert-error{% else %}alert-info{% endif %} project-name">
+ <span class="label {% if buildrequest.state == buildrequest.REQ_FAILED %}label-important{% else%}label-info{% endif %}">
+ <a href="{% url 'project' buildrequest.project.id %}"> {{buildrequest.project.name}} </a>
+ </span>
+ <div class="row-fluid">
+
+ {% if buildrequest.state == buildrequest.REQ_FAILED %}
+ <div class="span3 lead">
+ <a href="{%url 'buildrequestdetails' buildrequest.project.id buildrequest.pk%}" class="error">
+ <span data-toggle="tooltip" {%if buildrequest.brtarget_set.all.count > 1%}title="Targets: {%for target in buildrequest.brtarget_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{buildrequest.brtarget_set.all.0.target}} {%if buildrequest.brtarget_set.all.count > 1%}(+ {{buildrequest.brtarget_set.all.count|add:"-1"}}){%endif%} </span>
+ </a>
+ </div>
+ <div class="span2 lead">
+ {% if buildrequest.updated|format_build_date %}
+ {{ buildrequest.updated|date:'d/m/y H:i' }}
+ {% else %}
+ {{ buildrequest.updated|date:'H:i' }}
+ {% endif %}
+ </div>
+ <div class="span2 lead">
+ {% if buildrequest.brerror_set.all.count %}
+ <i class="icon-minus-sign red"></i> <a href="{%url 'buildrequestdetails' buildrequest.project.id buildrequest.pk %}#errors" class="error">{{buildrequest.brerror_set.all.count}} error{{buildrequest.brerror_set.all.count|pluralize}}</a>
+ {% endif %}
+ </div>
+ <div class="span2 lead"> {# there are no warnings for buildrequests #}
+ </div>
+ <div class="lead ">
+ <span class="lead{%if not MANAGED or not buildrequest.project%} pull-right{%endif%}">
+ Build time: {{ buildrequest.get_duration|sectohms }}
+ </span>
+ <button class="btn btn-danger pull-right" onclick='scheduleBuild({% url 'xhr_projectbuild' buildrequest.project.id as bpi%}{{bpi|json}}, {{buildrequest.project.name|json}}, {% url 'project' buildrequest.project.id as bpurl%}{{bpurl|json}}, {{buildrequest.get_sorted_target_list|mapselect:'target'|json}})'>Run again</button>
+
+ </div>
+
+
+ {% elif buildrequest.state == buildrequest.REQ_QUEUED %}
+
+ <div class="lead span5">
+
+ <span data-toggle="tooltip" {%if buildrequest.brtarget_set.all.count > 1%}title="Targets: {%for target in buildrequest.brtarget_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{buildrequest.brtarget_set.all.0.target}} {%if buildrequest.brtarget_set.all.count > 1%}(+ {{buildrequest.brtarget_set.all.count|add:"-1"}}){%endif%} </span>
+ </div>
+ <div class="span4 lead">Build queued
+ <i title="This build will start as soon as a build server is available" class="icon-question-sign get-help get-help-blue heading-help" data-toggle="tooltip"></i>
+ </div>
+ <button class="btn btn-info pull-right cancel-build-btn" data-build-id="{{buildrequest.id}}" data-request-url="{% url 'xhr_projectbuild' buildrequest.project.id %}" >Cancel</button>
+
+ {% elif buildrequest.state == buildrequest.REQ_CREATED %}
+
+ <div class="lead span3">
+ <span data-toggle="tooltip" {%if buildrequest.brtarget_set.all.count > 1%}title="Targets: {%for target in buildrequest.brtarget_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{buildrequest.brtarget_set.all.0.target}} {%if buildrequest.brtarget_set.all.count > 1%}(+ {{buildrequest.brtarget_set.all.count|add:"-1"}}){%endif%} </span>
+ </div>
+ <div class="span6" >
+ <span class="lead">Creating build</span>
+ </div>
+
+ {% elif buildrequest.state == buildrequest.REQ_INPROGRESS %}
+
+ <div class="lead span5">
+ <span data-toggle="tooltip" {%if buildrequest.brtarget_set.all.count > 1%}title="Targets: {%for target in buildrequest.brtarget_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{buildrequest.brtarget_set.all.0.target}} {%if buildrequest.brtarget_set.all.count > 1%}(+ {{buildrequest.brtarget_set.all.count|add:"-1"}}){%endif%} </span>
+ </div>
+ <div class="span4 lead">
+ Checking out layers
+ </div>
+ {% else %}
+
+ <div>FIXME!</div>
+
+ {% endif %}
+ <div class="lead pull-right">
+ </div>
+ </div>
+ </div>
+
+
+
+ {% endif %} {# this ends the build request most recent build section #}
+
+{%endwith%}{% endfor %}
+ </div>
+
+<script>
+
+function scheduleBuild(url, projectName, projectUrl, buildlist) {
+ console.log("scheduleBuild");
+ libtoaster.startABuild(url, null, buildlist.join(" "), function(){
+ window.location.reload();
+ }, null);
+}
+
+$(document).ready(function(){
+
+ $(".cancel-build-btn").click(function (){
+ var url = $(this).data('request-url');
+ var buildIds = $(this).data('build-id');
+ var btn = $(this);
+
+ libtoaster.cancelABuild(url, buildIds, function(){
+ btn.parents(".alert").fadeOut();
+ }, null);
+ });
+});
+
+</script>
+
+{%endif%}
+
diff --git a/bitbake/lib/toaster/toastergui/templates/mrb_section.html b/bitbake/lib/toaster/toastergui/templates/mrb_section.html
new file mode 100644
index 0000000000..c7bddf0372
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/mrb_section.html
@@ -0,0 +1,69 @@
+{% load static %}
+{% load projecttags %}
+{% load humanize %}
+
+
+{%if mru.count > 0%}
+
+ <div class="page-header top-air">
+ <h1>
+ Latest builds
+ </h1>
+ </div>
+ <div id="latest-builds">
+ {% for build in mru %}
+ <div class="alert {%if build.outcome == build.SUCCEEDED%}alert-success{%elif build.outcome == build.FAILED%}alert-error{%else%}alert-info{%endif%} {% if MANAGED and build.project %}project-name{% endif %} ">
+ {% if MANAGED and build.project %}
+ <span class="label {%if build.outcome == build.SUCCEEDED%}label-success{%elif build.outcome == build.FAILED%}label-danger{%else%}label-info{%endif%}"> {{build.project.name}} </span>
+ {% endif %}
+
+ <div class="row-fluid">
+ <div class="span3 lead">
+ {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
+ <a href="{%url 'builddashboard' build.pk%}" class="{%if build.outcome == build.SUCCEEDED %}success{%else%}error{%endif%}">
+ {% endif %}
+ <span data-toggle="tooltip" {%if build.target_set.all.count > 1%}title="Targets: {%for target in build.target_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{build.target_set.all.0.target}} {%if build.target_set.all.count > 1%}(+ {{build.target_set.all.count|add:"-1"}}){%endif%}
+ </span>
+ {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
+ </a>
+ {% endif %}
+ </div>
+ <div class="span2 lead">
+ {% if build.completed_on|format_build_date %}
+ {{ build.completed_on|date:'d/m/y H:i' }}
+ {% else %}
+ {{ build.completed_on|date:'H:i' }}
+ {% endif %}
+ </div>
+ {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
+ <div class="span2 lead">
+ {% if build.errors_no %}
+ <i class="icon-minus-sign red"></i> <a href="{%url 'builddashboard' build.pk%}#errors" class="error">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>
+ {% endif %}
+ </div>
+ <div class="span2 lead">
+ {% if build.warnings_no %}
+ <i class="icon-warning-sign yellow"></i> <a href="{%url 'builddashboard' build.pk%}#warnings" class="warning">{{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a>
+ {% endif %}
+ </div>
+ <div class="lead ">
+ <span class="lead{%if not MANAGED or not build.project%} pull-right{%endif%}">
+ Build time: <a href="{% url 'buildtime' build.pk %}">{{ build.timespent|sectohms }}</a>
+ </span>
+ </div>
+ {%endif%}
+ {%if build.outcome == build.IN_PROGRESS %}
+ <div class="span4">
+ <div class="progress" style="margin-top:5px;" data-toggle="tooltip" title="{{build.completeper}}% of tasks complete">
+ <div style="width: {{build.completeper}}%;" class="bar"></div>
+ </div>
+ </div>
+ <div class="lead pull-right">ETA: in {{build.eta|naturaltime}}</div>
+ {%endif%}
+ </div>
+ </div>
+
+ {% endfor %}
+ </div>
+{%endif%}
+
diff --git a/bitbake/lib/toaster/toastergui/templates/newproject.html b/bitbake/lib/toaster/toastergui/templates/newproject.html
index 12c4e9f07f..dcb6590642 100644
--- a/bitbake/lib/toaster/toastergui/templates/newproject.html
+++ b/bitbake/lib/toaster/toastergui/templates/newproject.html
@@ -3,42 +3,97 @@
{% load humanize %}
{% block pagecontent %}
<div class="row-fluid">
- <div class="span6">
- <div class="page-header">
- <h1>Create a new project</h1>
- </div>
- <div class="container-fluid">
- {% if alert %}
- <div class="alert alert-error row-fluid" role="alert">{{alert}}</div>
- {% endif %}
- </div>
- <form method="POST">{% csrf_token %}
- <fieldset>
- <label>Project name <span class="muted">(required)</span></label>
- <input type="text" class="input-xlarge" required name="projectname" value="{{projectname}}">
- <label class="project-form">
- Project owner
- <i class="icon-question-sign get-help" title="The go-to person for this project"></i>
- </label>
- <input type="text" name="username" value="{{username}}">
- <label class="project-form">Owner's email</label>
- <input type="email" class="input-large" name="email" value="{{email}}">
- <label class="project-form">
- Yocto Project version
- <i class="icon-question-sign get-help" title="This sets the branch for the Yocto Project core layers (meta, meta-yocto and meta-yocto-bsp), and for the layers you use from the OpenEmbedded Metadata Index"></i>
- </label>
- <select name="projectversion" id="projectversion">
- {% for release in releases %}
- <option value="{{release.id}}"{%if projectversion == release.id %} selected{%endif%}>{{release.name}} ({{release.description}})</option>
- {% endfor %}
- </select>
- </fieldset>
-
- <div class="form-actions">
- <input type="submit" class="btn btn-primary btn-large" value="Create project"/>
- </div>
- </form>
- </div>
- </div>
- </div>
+ <div class="page-header">
+ <h1>Create a new project</h1>
+ </div>
+ <div class="container-fluid">
+ {% if alert %}
+ <div class="alert alert-error row-fluid" role="alert">{{alert}}</div>
+ {% endif %}
+ </div>
+ {% if releases.count > 0 %}
+ <form method="POST">{% csrf_token %}
+ <fieldset>
+ <label>Project name <span class="muted">(required)</span></label>
+ <input type="text" class="input-xlarge" required id="new-project-name" name="projectname">
+ {% if releases.count > 1 %}
+ <label class="project-form">
+ Release
+ <i class="icon-question-sign get-help" title="The version of the build system you want to use"></i>
+ </label>
+ <select name="projectversion" id="projectversion">
+ {% for release in releases %}
+ <option value="{{release.id}}"
+ {%if defaultbranch == release.name %}
+ selected
+ {%endif%}
+
+ >{{release.description}}</option>
+ {% endfor %}
+ </select>
+ {% for release in releases %}
+ <div class="row-fluid helptext" id="description-{{release.id}}" style="display: none">
+ <span class="help-block span5">{{release.helptext|safe}}</span>
+ </div>
+ {% endfor %}
+ {% else %}
+ <input type="hidden" name="projectversion" value="{{releases.0.id}}"/>
+ {% endif %}
+
+ </fieldset>
+
+ <div class="form-actions">
+ <input type="submit" class="btn btn-primary btn-large" value="Create project"></input>
+ <span class="help-inline" style="vertical-align:middle;">To create a project, you need to enter a project name</span>
+ </div>
+ </form>
+ {% else %}
+ <br/>
+ <div class="alert alert-warning row-fluid span6">
+ <h3>No releases configured</h3>
+ <p>
+ It looks like Toaster releases have not been configured properly. Contact the person who set up Toaster, and tell them about it.
+ </p>
+ <p>
+ If you are the Toaster administrator, we are sorry: setting up Toaster is not easy.
+ <ul>
+ <li><a href="{% url 'admin:orm_release_changelist' %}">Log in to the Django administration interface</a> and check the "Releases" section.</li>
+ <li>Check out the <a href="https://wiki.yoctoproject.org/wiki/Setting_up_a_hosted_managed_mode_for_Toaster#Releases">documentation about configuring releases</a></li>
+ </ul>
+ </p>
+ </div>
+ {% endif %}
+
+ </div>
+ <script type="text/javascript">
+ $(document).ready(function () {
+ // hide the new project button
+ $("#new-project-button").hide();
+ $('.btn-primary').attr('disabled', 'disabled');
+
+ // enable submit button when all required fields are populated
+ $("input#new-project-name").on('input', function() {
+ if ($("input#new-project-name").val().length > 0 ){
+ $('.btn-primary').removeAttr('disabled');
+ $(".help-inline").css('visibility','hidden');
+ }
+ else {
+ $('.btn-primary').attr('disabled', 'disabled');
+ $(".help-inline").css('visibility','visible');
+ }
+ });
+
+ // show relevant help text for the selected release
+ var selected_release = $('select').val();
+ $("#description-" + selected_release).show();
+
+
+ $('select').change(function(){
+ var new_release = $('select').val();
+ $(".helptext").hide();
+ $('#description-' + new_release).fadeIn();
+ });
+ })
+ </script>
+</div>
{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/package_detail_base.html b/bitbake/lib/toaster/toastergui/templates/package_detail_base.html
index cd015d3555..ad75454310 100644
--- a/bitbake/lib/toaster/toastergui/templates/package_detail_base.html
+++ b/bitbake/lib/toaster/toastergui/templates/package_detail_base.html
@@ -54,7 +54,7 @@
<h2>Package information</h2>
<!-- info presented as definition list -->
- <dl>
+ <dl class="item-info">
<dt>
Size
<i class="icon-question-sign get-help" title="The size of the package"></i>
@@ -135,11 +135,14 @@
</dt>
<dd class="iscommit">{{package.recipe.layer_version.commit}}</dd>
+
+ {% if not MANAGED or not build.project %}
<dt>
Layer directory
<i class="icon-question-sign get-help" title="Path to the layer providing the recipe that builds this package"></i>
</dt>
<dd><code>{{package.recipe.layer_version.layer.local_path}}</code></dd>
+ {% endif %}
</dl>
</div> <!-- row4 well -->
{% endblock twocolumns %}
diff --git a/bitbake/lib/toaster/toastergui/templates/package_included_reverse_dependencies.html b/bitbake/lib/toaster/toastergui/templates/package_included_reverse_dependencies.html
index a36464cad5..4ba472f2d6 100644
--- a/bitbake/lib/toaster/toastergui/templates/package_included_reverse_dependencies.html
+++ b/bitbake/lib/toaster/toastergui/templates/package_included_reverse_dependencies.html
@@ -15,7 +15,7 @@
<div class="tab-content">
<div class="tab-pane active" id="brought-in-by">
- {% ifequal reverse_deps|length 0 %}
+ {% ifequal reverse_count 0 %}
<div class="alert alert-info">
<strong>{{package.fullpackagespec}}</strong> has no reverse runtime dependencies.
</div>
@@ -29,7 +29,7 @@
<a href="{% url 'package_included_detail' build.id target.id reverse_dep.package_id %}">
{{reverse_dep.package.name}}
</a>
- <script>fmtAliasHelp("{{reverse_dep.name}}", "{{reverse_dep.alias}}", true)</script>
+ <script>fmtAliasHelp("{{reverse_dep.package.name}}", "{{reverse_dep.alias}}", true)</script>
</td>
{% else %}
<td>
diff --git a/bitbake/lib/toaster/toastergui/templates/project.html b/bitbake/lib/toaster/toastergui/templates/project.html
index c3a470c54a..5f8f4d1bc7 100644
--- a/bitbake/lib/toaster/toastergui/templates/project.html
+++ b/bitbake/lib/toaster/toastergui/templates/project.html
@@ -1,366 +1,467 @@
-{% extends "base.html" %}
+ {% extends "baseprojectpage.html" %}
+<!--
+vim: expandtab tabstop=2
+-->
{% load projecttags %}
{% load humanize %}
-{% block pagecontent %}
+{% load static %}
+
+
+{% block projectinfomain %}
+<script src="{% static "js/angular.min.js" %}"></script>
+<script src="{% static "js/angular-animate.min.js" %}"></script>
+<script src="{% static "js/angular-cookies.min.js" %}"></script>
+<script src="{% static "js/angular-route.min.js" %}"></script>
+<script src="{% static "js/angular-sanitize.min.js" %}"></script>
+<script src="{% static "js/ui-bootstrap-tpls-0.11.0.js" %}"></script>
+
+{% if lvs_nos == 0 %}
+
+ <div class="page-header">
+ <h1> {{ project.name }} </h1>
+ </div>
+ <div class="alert alert-info lead">
+ <p>Toaster has no layer information. Without layer information, you cannot run builds. To generate layer information you can:</p>
+ <ul>
+ <li> <a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#layer-source">Configure a layer source</a></li>
+ <li> <a href="{% url 'importlayer' %}">Import a layer</a></li>
+ </ul>
+</div>
-<script>
+{%else%}
-var buildrequests = [];
-
-function targetInPage(targetname) {
- return targetname in $("ul#target-list > li > a").map(function (i, x) {return x.text});
-}
-
-function setEventHandlers() {
- $("i#del-target-icon").unbind().click(function (evt) {
- console.log("del target", evt.target.attributes["x-data"].value);
- postEditAjaxRequest({"targetDel": evt.target.attributes["x-data"].value});
- });
- $("button#add-target-button").unbind().click( function (evt) {
- if ( $("input#target")[0].value.length == 0) {
- alert("cannot add empty target");
- return;
- }
- postEditAjaxRequest({"targetAdd" : $("input#target")[0].value});
- });
-}
-
-function onEditPageUpdate(data) {
- // update targets
- var i; var orightml = "";
-
- $("span#target-count").html(data.targets.length);
- for (i = 0; i < data.targets.length; i++) {
- if (! targetInPage(data.targets[i].target)) {
- orightml += '<li><a href="#">'+data.targets[i].target;
- if (data.targets[i].task != "" && data.targets[i].task !== null) {
- orightml += " ("+data.targets[i].task+")";
- }
- orightml += '</a><i title="" data-original-title="" class="icon-trash" id="del-target-icon" x-data="'+data.targets[i].pk+'"></i></li>';
- }
- }
-
- $("ul#target-list").html(orightml);
-
- // update recent builds
-
- setEventHandlers();
-}
-
-function onEditAjaxSuccess(data, textstatus) {
- console.log("XHR returned:", data, "(" + textstatus + ")");
- if (data.error != "ok") {
- alert("error on request:\n" + data.error);
- return;
- }
- onEditPageUpdate(data);
-}
-
-function onEditAjaxError(jqXHR, textstatus, error) {
- alert("XHR errored:\n" + error + "\n(" + textstatus + ")");
-}
-
-function postEditAjaxRequest(reqdata) {
- var ajax = $.ajax({
- type:"POST",
- data: $.param(reqdata),
- url:"{% url 'xhr_projectedit' project.id%}",
- headers: { 'X-CSRFToken': $.cookie("csrftoken")},
- success: onEditAjaxSuccess,
- error: onEditAjaxError,
- })
-}
-
-
-
-
-$(document).ready(function () {
- setEventHandlers();
-
- /* Provide XHR calls for the "build" buttons.*/
- $("button#build-all-button").click( function (evt) {
- var ajax = $.ajax({
- type:"POST",
- url:"{% url 'xhr_projectbuild' project.id %}",
- headers: { 'X-CSRFToken': $.cookie("csrftoken")},
- success: function (data, textstatus) {
- if (data.error != "ok") {
- alert("XHR fail: " + data.error );
- }
- },
- error: function (jqXHR, textstatus, error) { alert("XHR errored:" + error + "(" + textstatus + ")"); },
- })
- });
-});
+<div id="main" role="main" ng-app="project" ng-controller="prjCtrl" class="top-padded">
+ <!-- project name -->
+ <div class="page-header">
+ <h1>{[project.name]}</h1>
+ </div>
-</script>
+ <!-- alerts section 1-->
+ <div ng-repeat="a in zone1alerts">
+ <div class="alert alert-dismissible lead" role="alert" ng-class="a.type"><button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span></button>
+ <span ng-bind-html="a.text"></span>
+ </div>
+ </div>
+ <!-- custom templates for ng -->
- <div class="page-header">
- <h1>
- {{project.name}}
- {% if project.build_set.all.count == 0 %}
- <small>No builds yet</small>
- {% else %}
- <small><a href="#">{{project.build_set.all.count}} builds</a></small>
- {% endif %}
- </h1>
+ <script type="text/ng-template" id="suggestion_details">
+ <a> {[match.model.name]} {[match.model.detail]} </a>
+ </script>
+
+ <!-- modal dialogs -->
+ <script type="text/ng-template" id="dependencies_modal">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
+ <h3><span ng-bind="layerAddName"></span> dependencies</h3>
+ </div>
+ <div class="modal-body">
+ <p><strong>{[layerAddName]}</strong> depends on some layers that are not added to your project. Select the ones you want to add:</p>
+ <ul class="unstyled">
+ <li ng-repeat="ld in items">
+ <label class="checkbox">
+ <input type="checkbox" ng-model="selectedItems[ld.id]"> {[ld.name]}
+ </label>
+ </li>
+ </ul>
+ </div>
+ <div class="modal-footer">
+ <button class="btn btn-primary" ng-click="ok()">Add layers</button>
+ <button class="btn" ng-click="cancel()">Cancel</button>
+ </div>
+ </form>
+ </script>
+
+
+ <script type="text/ng-template" id="change_version_modal">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
+ <h3>Changing release to {[releaseDescription]}</h3>
+ </div>
+ <div class="modal-body">
+ <p>The following project layers do not exist for the {[releaseDescription]} release:</p>
+ <ul>
+ <li ng-repeat="i in items"><span class="layer-info" data-toggle="tooltip" tooltip="{[i.detail]}">{[i.name]}</span></li>
+ </ul>
+ <p>If you change the release to {[releaseDescription]}, the above layers will be deleted from your project.</p>
+ </div>
+ <div class="modal-footer">
+ <button class="btn btn-primary" ng-click="ok()">Change release and delete layers</button>
+ <button class="btn" ng-click="cancel()">Cancel</button>
+ </div>
+ </script>
+
+ <script type="text/ng-template" id="target_display">
+ <div ng-switch on="t.task.length">
+ <div ng-switch-when="0">{[t.target]}</div>
+ <div ng-switch-default>{[t.target]}:{[t.task]}</div>
+ </div>
+ </script>
+
+
+ <!-- build form -->
+ <div class="well">
+ <form class="build-form" ng-submit="buildNamedTarget()">
+ <div class="input-append controls">
+ <input type="text" class="huge input-xxlarge" placeholder="Type the recipe(s) you want to build" autocomplete="off" ng-model="targetName" typeahead="e.name for e in getAutocompleteSuggestions('targets', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" ng-disabled="!layers.length"/>
+ <button type="submit" class="btn btn-large btn-primary" ng-disabled="!targetName.length">
+ Build
+ </button>
+ </div>
+ <i class="icon-question-sign get-help get-help-blue" title="Type the name of one or more recipes you want to build, separated by a space. You can also specify a task by appending a semicolon and a task name to a recipe name, like so: <code>core-image-minimal:do_build</code>"></i>
+ <p>
+ <a href="{% url 'all-targets' %}">View all compatible recipes</a>
+ <i class="icon-question-sign get-help get-help-blue heading-help" title="View all the recipes you can build with the release selected for this project, which is {[project.release.desc]}"></i>
+ {% if completedbuilds.count %}
+ | <a href="{% url 'projectbuilds' project.id %}">View all project builds ({{completedbuilds.count}})</a>
+ {% endif %}
+ </p>
+ </form>
+ </div>
+
+
+ <!-- latest builds list -->
+
+ <a id="buildslist"></a>
+ <h2 class="air" ng-if="builds.length">Latest builds</h2>
+ <div class="animate-repeat alert" ng-repeat="b in builds track by b.id" ng-class="{'queued':'alert-info', 'deleted':'alert-info', 'in progress': 'alert-info', 'failed':'alert-error', 'completed':{'In Progress':'alert-info', 'Succeeded':'alert-success', 'Failed':'alert-error'}[b.build[0].status]}[b.status]">
+ <div class="row-fluid">
+ <switch ng-switch="b.status">
+
+ <case ng-switch-when="failed">
+ <div class="lead span3">
+ <a ng-class="{'succeeded': 'success', 'failed': 'error'}[b.status]" href="{[b.br_page_url]}">
+ <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span>
+ </a>
+ </div>
+ <div class="span2 lead">
+ <ngif ng-if="b.updated - todaydate > 0">
+ {[b.updated|date:'HH:mm']}
+ </ngif>
+ <ngif ng-if="b.updated - todaydate < 0">
+ {[b.updated|date:'dd/MM/yy HH:mm']}
+ </ngif>
+ </div>
+ <div class="span2">
+ <ngif ng-if="b.errors.length">
+ <span>
+ <i class="icon-minus-sign red lead"></i>
+ <a href="{[b.br_page_url]}#errors" class="lead error">{[b.errors.length]}
+ <ng-pluralize count="b.errors.length" when="{'1':'error','other':'errors'}"></ng-pluralize></a>
+ </span>
+ </ngif>
+ </div>
+ <div class="span2">
+ <!-- we don't have warnings in this case -->
</div>
+ <div> <span class="lead">Build time: {[b.command_time|timediff]}</span>
+ <button class="btn pull-right" ng-class="{'succeeded': 'btn-success', 'failed': 'btn-danger'}[b.status]"
+ ng-click="buildExistingTarget(b.targets)">Run again</button>
+ </div>
+ </case>
- <div class="well">
- <form class="build-form">
- <div class="input-append input-prepend controls">
- <input type="text" class="huge span7" placeholder="Type the target(s) you want to build" autocomplete="off" data-minLength="1" data-autocomplete="off"
- data-provide="typeahead" data-source='["core-image-base [meta | daisy]",
- "core-image-clutter [meta | daisy]",
- "core-image-directfb [meta | daisy]",
- "core-image-myimage [meta-imported-layer | 3e1dbabbf3&hellip;]",
- "core-image-anotherimage [meta-imported-layer | master]",
- "core-image-full-cmdline [meta | daisy]",
- "core-image-lsb [meta | daisy]",
- "core-image-lsb-dev [meta | daisy]",
- "core-image-lsb-sdk [meta| daisy]",
- "core-image-minimal [meta| daisy]"
- ]'>
- <a href="#" id="build-button" class="btn btn-large btn-primary" disabled>
- Build
- <i class="icon-question-sign get-help heading-help" style="margin-left: 5px;" title="Type the name of one or more targets you want to build, separated by a space. You can also specify a task by appending a semicolon and a task name to a target name, like so: <code>core-image-minimal:do_build</code>"></i>
- </a>
- </div>
- <p>
- <a href="all-targets.html" style="padding-right: 5px;">
- View all targets
- </a>
- |
- <a href="{% url 'projectbuilds' project.id%}" style="padding-left:5px;">
- View all project builds ({{project.build_set.count}})
- </a>
- </form>
+ <case ng-switch-when="queued">
+ <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div>
+ <div class="span4 lead" >Build queued
+ <i title="This build will start as soon as a build server is available" class="icon-question-sign get-help get-help-blue heading-help" data-toggle="tooltip"></i>
</div>
+ <button class="btn pull-right btn-info" ng-click="buildCancel(b)">Cancel</button>
+ </case>
+ <case ng-switch-when="created">
+ <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div>
+ <div class="span4">
+ <span class="lead">Creating build</span>
+ </div>
+ <button class="btn pull-right btn-info" ng-click="buildCancel(b)">Cancel</button>
+ </case>
+ <case ng-switch-when="deleted">
+ <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div>
+ <div class="span4" id="{[b.id]}-deleted" >
+ <span class="lead">Build cancelled</span>
+ </div>
+ <button class="btn pull-right btn-info" ng-click="buildDelete(b)">Close</button>
+ </case>
+ <case ng-switch-when="in progress">
+ <switch ng-switch="b.build.length">
+ <case ng-switch-when="0">
+ <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div>
+ <div class="span4 lead">
+ Checking out layers
+ </div>
+ </case>
+ <case ng-switch-default="">
+ <div class="lead span3"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div>
+ <div class="span4 offset1" >
+ <div class="progress" style="margin-top:5px;" data-toggle="tooltip" tooltip="{[b.build[0].completeper]}% of tasks complete">
+ <div style="width: {[b.build[0].completeper]}%;" class="bar"></div>
+ </div>
+ </div>
+ <div class="text-right lead">{[b.build[0].completeper]}% tasks completed</div>
+ </case>
+ </case>
- {% if builds|length > 0 or buildrequests|length > 0 %}
- <h2 class="air">Recent Builds</h2>
- <div id="scheduled-builds">
- {% for br in buildrequests %}
-<div class="alert {% if br.0.state == br.0.REQ_FAILED%}alert-error{%else%}alert-info{%endif%}" id="build-request">
- <div class="row-fluid">
- <div class="lead span4">
+ <case ng-switch-when="completed">
+ <div class="lead span3">
+ <a ng-class="{'Succeeded': 'success', 'Failed': 'error'}[b.build[0].status]" href="{[b.build[0].build_page_url]}">
+ <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span>
+ </a>
+ </div>
+ <div class="span2 lead">
+ <ngif ng-if="b.build[0].completed_on - todaydate > 0">
+ {[b.build[0].completed_on|date:'HH:mm']}
+ </ngif>
+ <ngif ng-if="b.build[0].completed_on - todaydate < 0">
+ {[b.build[0].completed_on|date:'dd/MM/yy HH:mm']}
+ </ngif>
+ </div>
+ <div class="span2">
+ <ngif ng-if="b.build[0].errors">
<span>
- {{br.0.brtarget_set.all.0.target}} {%if br.brtarget_set.all.count > 1%}(+ {{br.brtarget_set.all.count|add:"-1"}}){%endif%} {{br.1.machine.value}} (Created {{br.0.created}})
+ <i class="icon-minus-sign red lead"></i>
+ <a href="{[b.build[0].build_page_url]}#errors" class="lead error">{[b.build[0].errors]}
+ <ng-pluralize count="b.build[0].errors" when="{'1':'error','other':'errors'}"></ng-pluralize></a>
</span>
+ </ngif>
</div>
<div class="span2">
- {{br.0.get_state_display}}
+ <ngif ng-if="b.build[0].warnings">
+ <span>
+ <i class="icon-warning-sign yellow lead"></i>
+ <a href="{[b.build[0].build_page_url]}#warnings" class="lead warning">{[b.build[0].warnings]}
+ <ng-pluralize count="b.build[0].warnings" when="{'1':'warning','other':'warnings'}"></ng-pluralize></a>
+ </span>
+ </ngif>
</div>
- <div class="span8">
-{% if br.state == br.REQ_FAILED%}
- {% for bre in br.0.brerror_set.all %} {{bre.errmsg}} ({{bre.errtype}}) <br/><hr/><code>{{bre.traceback}}</code>{%endfor%}
-{%endif%}
+ <div> <span class="lead">Build time: <a href="{[b.build[0].build_time_page_url]}">{[b.build[0].build_time|timediff]}</a></span>
+ <button class="btn pull-right" ng-class="{'Succeeded': 'btn-success', 'Failed': 'btn-danger'}[b.build[0].status]"
+ ng-click="buildExistingTarget(b.targets)">Run again</button>
+
</div>
+ </case>
- </div>
-</div>
- {% endfor %}
+ <case ng-switch-default="">
+ <div>FIXME!</div>
+ </case>
+ </switch>
+ <div class="lead pull-right">
+ </div>
+ </div>
+ </div>
+
+ <h2 class="air">Project configuration</h2>
+ <!-- alerts section 2 -->
+ <div ng-repeat="a in zone2alerts">
+ <div class="alert alert-dismissible lead" role="alert" ng-class="a.type"><button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span></button>
+ <span ng-bind-html="a.text"></span>
+ </div>
+ </div>
+
+ <div class="row-fluid">
+
+ <!-- project layers -->
+ <div id="layer-container" class="well well-transparent span4">
+ <h3>
+ Layers <span class="muted counter">({[layers.length]})</span>
+ <i class="icon-question-sign get-help heading-help" title="Bitbake reads metadata files from modules called 'layers'. Layers allow you to isolate different types of customizations from each other. <a href='http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#understanding-and-creating-layers' target='_blank'>More on layers</a>"></i>
+ </h3>
+ <div class="alert" ng-if="!layers.length">
+ <b>You need to add some layers </b>
+ <p>
+ You can:
+ <ul>
+ <li> <a href="{% url 'layers'%}">View all compatible layers available in Toaster</a>
+ <li> <a href="{% url 'importlayer' %}">Import a layer</a>
+ <li> <a href="https://www.yoctoproject.org/docs/1.6.1/dev-manual/dev-manual.html#understanding-and-creating-layers" target="_blank">Read about layers in the manual</a>
+ </ul>
+ Or type a layer name below.
+ </p>
+ </div>
+ <form ng-submit="layerAdd()">
+ <div class="input-append">
+ <input type="text" class="input-xlarge" id="layer" autocomplete="off" placeholder="Type a layer name" data-minLength="1" ng-model="layerAddName" typeahead="e.name for e in getAutocompleteSuggestions('layers', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" typeahead-on-select="onLayerSelect($item, $model, $label)" typeahead-editable="false" ng-class="{ 'has-error': layerAddName.$invalid }" />
+ <input type="submit" id="add-layer" class="btn" value="Add" ng-disabled="!layerAddName.length"/>
+ </div>
+ {% csrf_token %}
+ </form>
+ <p>
+ <a href="{% url 'layers' %}">View all compatible layers</a>
+ <i class="icon-question-sign get-help" title="View all the layers you can build with the release selected for this project, which is {[project.release.desc]}"></i>
+ |
+ <a href="{% url 'importlayer' %}">Import layer</a></p>
+ <ul class="unstyled configuration-list">
+ <li ng-repeat="l in layers track by l.id" class="animate-repeat">
+ <a href="{[l.layerdetailurl]}" class="layer-info" data-toggle="tooltip" tooltip-placement="right" tooltip="{[l.giturl]} | {[l.branch.name]}">{[l.name]}</a>
+ <i class="icon-trash" ng-click="layerDel(l.id)" tooltip="Delete"></i>
+ </li>
+ </ul>
</div>
+ <!-- project targets -->
+ <div id="target-container" class="well well-transparent span4">
+ <h3>
+ Recipes
+ <i class="icon-question-sign get-help heading-help" title="What you build, often an image recipe that produces a root file system file. Something like <code>core-image-minimal</code> or <code>core-image-sato</code>"></i>
+ </h3>
+ <form ng-submit="buildNamedTarget()">
+ <div class="input-append">
+ <input type="text" class="input-xlarge" placeholder="Type the recipe(s) you want to build" autocomplete="off" data-minLength="1" ng-model="targetName1" typeahead="e.name for e in getAutocompleteSuggestions('targets', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" ng-disabled="!layers.length">
+ <button type="submit" class="btn btn-primary" ng-disabled="!targetName1.length">
+ Build </button>
+ </div>
+ {% csrf_token %}
+ </form>
+ <p>
+ <a href="{% url 'all-targets' %}">View all compatible recipes</a>
+ <i class="icon-question-sign get-help" title="View all the recipes you can build with the release selected for this project, which is {[project.release.desc]}"></i>
+ </p>
+ <div ng-if="frequenttargets.length">
+ <h4 class="air">
+ Most built recipes
+ </h4>
+ <ul class="unstyled configuration-list {[mutedtargets]}">
+ <li ng-repeat="t in frequenttargets">
+ <label class="checkbox">
+ <input type="checkbox" ng-model="mostBuiltTargets[t]" ng-disabled="disableBuildCheckbox(t)" ng-checked="mostBuiltTargets[t] && !disableBuildCheckbox(t)">{[t]}
+ </label>
+ </li>
+ </ul>
+ <button class="btn btn-large btn-primary" ng-disabled="enableBuildSelectedTargets()" ng-click="buildSelectedTargets()">Build selected recipes</button>
+ </div>
+ </div>
-<!-- Lifted from build.html -->
- {% for build in builds %}
-<div class="alert {%if build.outcome == build.SUCCEEDED%}alert-success{%elif build.outcome == build.FAILED%}alert-error{%else%}alert-info{%endif%}">
- <div class="row-fluid">
- <div class="lead span5">
- {%if build.outcome == build.SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif build.outcome == build.FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}
- {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
- <a href="{%url 'builddashboard' build.pk%}" class="{%if build.outcome == build.SUCCEEDED %}success{%else%}error{%endif%}">
- {% endif %}
- <span data-toggle="tooltip" {%if build.target_set.all.count > 1%}title="Targets: {%for target in build.target_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{build.target_set.all.0.target}} {%if build.target_set.all.count > 1%}(+ {{build.target_set.all.count|add:"-1"}}){%endif%} {{build.machine}} ({{build.completed_on|naturaltime}})</span>
- {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
- </a>
- {% endif %}
- </div>
- {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
- <div class="span2 lead">
- {% if build.errors_no %}
- <i class="icon-minus-sign red"></i> <a href="{%url 'builddashboard' build.pk%}#errors" class="error">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>
- {% endif %}
- </div>
- <div class="span2 lead">
- {% if build.warnings_no %}
- <i class="icon-warning-sign yellow"></i> <a href="{%url 'builddashboard' build.pk%}#warnings" class="warning">{{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a>
- {% endif %}
- </div >
- <div class="lead pull-right">
- Build time: <a href="{% url 'buildtime' build.pk %}">{{ build.timespent|sectohms }}</a>
- </div>
- {%endif%}{%if build.outcome == build.IN_PROGRESS %}
- <div class="span4">
- <div class="progress" style="margin-top:5px;" data-toggle="tooltip" title="{{build.completeper}}% of tasks complete">
- <div style="width: {{build.completeper}}%;" class="bar"></div>
- </div>
- </div>
- <div class="lead pull-right">ETA: in {{build.eta|naturaltime}}</div>
- {%endif%}
+ <!-- project configuration -->
+ <div id="machine-distro" class="well well-transparent span4">
+ <h3>
+ Machine
+ <i class="icon-question-sign get-help heading-help" title="The machine is the hardware for which you want to build. You can only set one machine per project"></i>
+ </h3>
+ <p class="lead" id="select-machine-opposite">
+ <span>{[machine.name]}</span>
+ <i id="change-machine" class="icon-pencil" ng-click="toggle('#select-machine')"></i>
+ </p>
+ <div id="select-machine" style="display: none">
+ <div class="alert alert-info">
+ <strong>Machine changes have a big impact on build outcome.</strong>
+ You cannot really compare the builds for the new machine with the previous ones.
</div>
+ <form ng-submit="editProjectSettings('#select-machine')" class="input-append">
+ <input type="text" id="machine" autocomplete="off" ng-model="machineName" value="{[machine.name]}" typeahead="m.name for m in getAutocompleteSuggestions('machines', $viewValue)" typeahead-template-url="suggestion_details" />
+ <input type="submit" id="apply-change-machine" class="btn" type="button" ng-disabled="machineName == machine.name || machineName.length == 0" value="Save"></input>
+ <input type="reset" id="cancel-machine" class="btn btn-link" ng-click="toggle('#select-machine')" value="Cancel"></input>
+ {% csrf_token %}
+ </form>
+ <p>
+ <a href="{% url 'machines' %}" class="link">View all compatible machines</a>
+ <i class="icon-question-sign get-help" title="View all the machines you can set with the release selected for this project, which is {[project.release.desc]}"></i>
+ </p>
+ </div>
+ <p class="link-action">
+ <a href="{% url 'projectconf' project.id %}" class="link">Edit configuration variables</a>
+ <i data-original-title="You can set other project configuration options here. Each option, like everything else in the build system, is a variable - value pair" class="icon-question-sign get-help heading-help" title=""></i>
+ </p>
</div>
- {% endfor %}
-<!-- end of lift-->
- {%endif%}
-
- <h2 class="air">Project configuration</h2>
-
- <div class="row-fluid">
-
- <div id="layer-container" class="well well-transparent span4">
- <h3>
- Add layers
- <i data-original-title="OpenEmbedded organises metadata into modules called 'layers'. Layers allow you to isolate different types of customizations from each other. <a href='http://www.yoctoproject.org/docs/1.6.1/dev-manual/dev-manual.html#understanding-and-creating-layers' target='_blank'>More on layers</a>" class="icon-question-sign get-help heading-help" title=""></i>
- </h3>
- <form style="margin-top:20px;">
- <div class="input-append">
- <input class="input-xlarge" id="layer" autocomplete="off" placeholder="Type a layer name" data-provide="typeahead" data-source="" data-minlength="1" data-autocomplete="off" type="text">
- <button id="add-layer" class="btn" disabled="">Add</button>
- </div>
- <div id="import-alert" class="alert alert-info" style="display:none;">
- Toaster does not know about this layer. Please <a href="#">import it</a>
- </div>
- <div id="dependency-alert" class="alert alert-info" style="display:none;">
- <p><strong>meta-tizen</strong> depends on the layers below. Check the ones you want to add: </p>
- <ul class="unstyled">
- {% for f in layer_dependency %}
- <li>
- <label class="checkbox">
- <input checked="checked" type="checkbox">
- meta-ruby
- </label>
- </li>
- {% endfor %}
- </ul>
- <button id="add-layer-dependencies" class="btn btn-info add-layer">Add layers</button>
- </div>
-
- <p><a href="{% url 'importlayer' %}">Import your layer</a> | <a href="{% url 'layers'%}">View all layers</a></p>
- </form>
-
- <h4 class="air">
- Added layers
- <span class="muted counter">{{project.projectlayer_set.count}}</span>
- <i data-original-title="Your added layers will be listed in this same order in your <code>bblayers.conf</code> file" class="icon-question-sign get-help heading-help" title=""></i>
- </h4>
- <ul class="unstyled configuration-list">
- {% for pl in project.projectlayer_set.all %}
- <li>
- <a href="#">{{pl.layercommit.layer.name}} (<span class="layer-version">{{pl.layercommit.layer.layer_index_url}}</span>)</a>
- {% if pl.optional %}
- <i title="" data-original-title="" class="icon-trash" id="del-layer-icon" x-data="{{pl.pk}}"></i>
- {% endif %}
- </li>
- {% endfor %}
- </ul>
- </div>
+ </div>
- <div id="target-container" class="well well-transparent span4">
- <h3>
- Add targets
- <i data-original-title="A target is what you want to build, usually an image recipe that produces a root file system" class="icon-question-sign get-help heading-help" title=""></i>
- </h3>
- <form style="margin-top:20px;">
- <div class="input-append">
- <input id="target" class="input-xlarge" autocomplete="off" placeholder="Type a target name" data-provide="typeahead" data-source="" data-minlength="1" data-autocomplete="off" type="text">
- <button id="add-target-button" class="btn" type="button">Add</button>
- </div>
-
- <p><a href="{% url 'targets' %}" class="link">View all targets</a></p>
- </form>
- <h4 class="air">
- Added targets
- <span id="target-count" class="muted counter">{{project.projecttarget_set.count}}</span>
- </h4>
- <ul class="unstyled configuration-list" id="target-list">
- {% for target in project.projecttarget_set.all %}
- {% if target %}
- <li>
- <a href="#">{{target.target}}{% if target.task%} (target.task){%endif%}</a>
- {% if target.notprovided %}
- <i title="" data-original-title="" id="msg1" class="icon-exclamation-sign get-help-yellow" data-title="<strong>Target may not be provided</strong>" data-content="From the layer information it currently has, Toaster thinks this target is not provided by any of your added layers. If a target is not provided by one of your added layers, the build will fail.<h5>What Toaster suggests</h5><p>The <a href='#'>meta-abc</a> and <a href='#'>meta-efg</a> layers provide core-image-notprovided. You could add one of them to your project.</p><button class='btn btn-block'>Add meta-abc</button><button class='btn btn-block'>Add meta-efg</button><button id='dismiss1' class='btn btn-block btn-info'>Stop showing this message</button>"></i>
- {% elif target.notknown %}
- <i title="" data-original-title="" id="msg2" class="icon-exclamation-sign get-help-yellow" data-title="<strong>Target may not be provided</strong>" data-content="From the layer information it currently has, Toaster thinks this target is not provided by any of your added layers. If a target is not provided by one of your added layers, the build will fail.<h5>What Toaster suggests</h5><p>Review your added layers to make sure one of them provides core-image-unknown. Clicking on a layer name will give you all the information Toaster has about the layer. </p> <button class='btn btn-block btn-info'>Stop showing this message</button>"></i>
- {% endif %}
- <i title="" data-original-title="" class="icon-trash" id="del-target-icon" x-data="{{target.pk}}"></i>
- </li>
- {% endif %}
- {% endfor %}
-
-
- </ul>
- </div>
- <div class="well well-transparent span4">
-
- <h3>
- Project machine
- <i class="icon-question-sign get-help heading-help" title="The machine is the hardware for which you want to build. You can only set one machine per project"></i>
- </h3>
- <p class="lead" id="selected-machine"> {{machine}}
- <i id="change-machine" class="icon-pencil"></i>
- </p>
- <form id="select-machine">
- <div class="alert alert-info">
- <strong>Machine changes have a big impact on build outcome.</strong>
- You cannot really compare the builds for the new machine with the previous ones.
- </div>
- <div class="input-append">
- <input type="text" id="machine" autocomplete="off" value="qemux86" data-provide="typeahead"
- data-minLength="1"
- data-autocomplete="off"
- data-source='[
- ]'>
- <button id="apply-change-machine" class="btn" type="button">Save</button>
- <a href="#" id="cancel-machine" class="btn btn-link">Cancel</a>
- </div>
- <p><a href="{% url 'machines' %}" class="link">View all machines</a></p>
- </form>
- <p class="link-action">
- <a href="{% url 'projectconf' project.id %}" class="link">Edit configuration variables</a>
- <i class="icon-question-sign get-help heading-help" title="You can set other project configuration options here. Each option, like everything else in the build system, is a variable - value pair"></i>
- </p>
+ <h2>Project details</h2>
- </div>
+ <!-- alerts section 3 -->
+ <div ng-repeat="a in zone3alerts">
+ <div class="alert alert-dismissible lead" role="alert" ng-class="a.type"><button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span></button>
+ <span ng-bind-html="a.text"></span>
+ </div>
+ </div>
+
+
+ <div id="project-details" class="well well-transparent">
+ <h3>Project name</h3>
+ <p class="lead" id="change-project-name-opposite">
+ <span >{[project.name]}</span>
+ <i class="icon-pencil" ng-click="toggle('#change-project-name')" ></i>
+ </p>
+ <div id="change-project-name" style="display:none;">
+ <form ng-submit="editProjectSettings('#change-project-name')" class="input-append">
+ <input type="text" class="input-xlarge" id="type-project-name" ng-model="projectName" value="{[project.name]}">
+ <input type="submit" class="btn" value="Save" ng-disabled="project.name == projectName"/>
+ <input type="reset" class="btn btn-link" value="Cancel" ng-click="toggle('#change-project-name')">
+ </form>
+ </div>
+ <h3 ng-if="releases.length > 1">
+ Release
+ <i class="icon-question-sign get-help heading-help" title="The version of the build system you want to use"></i>
+ </h3>
+ <p ng-if="releases.length > 1" class="lead" id="change-project-version-opposite">
+ <span id="project-version">{[project.release.desc]}</span>
+ <i id="change-version" class="icon-pencil" ng-click="toggle('#change-project-version')" ></i>
+ </p>
+ <div class="div-inline" id="change-project-version" style="display:none;">
+ <form ng-submit="testProjectSettingsChange('#change-project-version')" class="input-append">
+ <select id="select-version" ng-model="projectVersion">
+ <option ng-repeat="r in releases" value="{[r.id]}" ng-selected="r.id == project.release.id">{[r.description]}</option>
+ </select>
+ <input type="submit" class="btn" style="margin-left:5px;" value="Save" ng-disabled="project.release.id == projectVersion"/>
+ <input type="reset" class="btn btn-link" value="Cancel" ng-click="toggle('#change-project-version')"/>
+
+ </form>
+ </div>
+ </div>
- </div>
+<!-- end main -->
+</div>
- <h2>Project details</h2>
-
- <div class="well well-transparent">
- <h3>Project name</h3>
- <p class="lead">
- {{project.name}}
- <i title="" data-original-title="" class="icon-pencil"></i>
- </p>
- <h3>Project owner</h3>
- <p class="lead">
- {{puser.username}}
- <i title="" data-original-title="" class="icon-pencil"></i>
- </p>
- <h3>Owner's email</h3>
- <p class="lead">
- {{puser.email}}
- <i title="" data-original-title="" class="icon-pencil"></i>
- </p>
- <h3>Yocto Project version</h3>
- <p class="lead">
- {{project.release.name}} - {{project.release.description}}
- <i title="" data-original-title="" class="icon-pencil"></i>
- </p>
- </div>
+
+<!-- load application logic !-->
+<script src="{% static "js/projectapp.js" %}"></script>
+
+<!-- dump initial data for use in the angular app -->
+<script>
+angular.element(document).ready(function() {
+ scope = angular.element("#main").scope();
+ scope.urls = {};
+ scope.urls.xhr_build = "{% url 'xhr_projectbuild' project.id %}";
+ scope.urls.xhr_edit = "{% url 'xhr_projectedit' project.id %}";
+ scope.urls.xhr_datatypeahead = "{% url 'xhr_datatypeahead' %}";
+ scope.urls.layers = "{% url 'layers' %}";
+ scope.urls.targets = "{% url 'all-targets' %}";
+ scope.urls.importlayer = "{% url 'importlayer'%}";
+ scope.urls.layer = "{% url 'base_layerdetails' %}";
+ scope.project = {{prj|json}};
+ scope.builds = {{builds|json}};
+ scope.layers = {{layers|json}};
+ scope.targets = {{targets|json}};
+ scope.frequenttargets = {{freqtargets|json}};
+ scope.machine = {{machine|json}};
+ scope.releases = {{releases|json}};
+ scope.layerCount = scope.layers.length;
+ scope.mutedtargets = (scope.layerCount == 0 ? "muted" : "")
+ var now = (new Date()).getTime();
+ scope.todaydate = now - (now % 86400000);
+
+ scope.zone1alerts = [];
+ scope.zone2alerts = [];
+ scope.zone3alerts = [];
+
+ scope.mostBuiltTargets = {};
+
+ scope.updateDisplayWithCommands();
+ scope.validateData();
+
+ scope.init();
+ scope.$digest();
+
+ });
+</script>
+
+{% endif %} {# from lvs_nos check #}
{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/projectbuilds.html b/bitbake/lib/toaster/toastergui/templates/projectbuilds.html
index 8c5942c7cb..07595f2376 100644
--- a/bitbake/lib/toaster/toastergui/templates/projectbuilds.html
+++ b/bitbake/lib/toaster/toastergui/templates/projectbuilds.html
@@ -7,42 +7,81 @@
{% endblock %}
{% block projectinfomain %}
- <div class="page-header">
- <h1>
- All builds
- <i class="icon-question-sign get-help heading-help" title="This page lists all the layers compatible with Yocto Project 1.7 'Dxxxx' that Toaster knows about. They include community-created layers suitable for use on top of OpenEmbedded Core and any layers you have imported"></i>
- </h1>
- </div>
- <!--div class="alert">
- <div class="input-append" style="margin-bottom:0px;">
- <input class="input-xxlarge" type="text" placeholder="Search layers" value="browser" />
- <a class="add-on btn">
- <i class="icon-remove"></i>
- </a>
- <button class="btn" type="button">Search</button>
- <a class="btn btn-link" href="#">Show all layers</a>
- </div>
- </div-->
- <div id="layer-added" class="alert alert-info lead" style="display:none;"></div>
- <div id="layer-removed" class="alert alert-info lead" style="display:none;">
- <button type="button" class="close" data-dismiss="alert">&times;</button>
- <strong>1</strong> layer deleted from <a href="project-with-targets.html">your project</a>: <a href="#">meta-aarch64</a>
- </div>
-
-
-{% include "basetable_top.html" %}
- {% for build in objects %}
+
+ <div class="page-header">
+ <h1>
+ {% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
+ {{objects.paginator.count}} build{{objects.paginator.count|pluralize}} found
+ {%elif request.GET.filter and objects.paginator.count == 0 or request.GET.search and objects.paginator.count == 0 %}
+ No builds found
+ {%else%}
+ All builds
+ {%endif%}
+ <i class="icon-question-sign get-help heading-help" title="This page lists all the builds for the current project"></i>
+ </h1>
+ </div>
+
+
+ {% if objects.paginator.count == 0 %}
+ {% if request.GET.filter or request.GET.search %}
+ <div class="row-fluid">
+ <div class="alert">
+ <form class="no-results input-append" id="searchform">
+ <input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
+ <button class="btn" type="submit" value="Search">Search</button>
+ <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all builds</button>
+ </form>
+ </div>
+ </div>
+ {% else %}
+ <div class="alert alert-info">
+ <p class="lead">
+ This project has no builds.
+ </p>
+ </div>
+ {% endif %}
+
+ {% else %}
+
+ {% include "basetable_top.html" %}
+ <!-- Table data rows; the order needs to match the order of "tablecols" definitions; and the <td class value needs to match the tablecols clclass value for show/hide buttons to work -->
+ {% for br in objects %}{% if br.build %} {% with build=br.build %} {# if we have a build, just display it #}
<tr class="data">
- <td class="outcome"><a href="{% url "builddashboard" build.id %}">{%if build.outcome == build.SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif build.outcome == build.FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}</a></td>
+ <td class="outcome"><a href="{% url "builddashboard" build.id %}">{%if build.outcome == build.SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif build.outcome == build.FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}</a>
+ {% if build.project %}
+ &nbsp; <a href="{% url 'build_artifact' build.id "cookerlog" build.id %}">
+ <i class="icon-download-alt" title="" data-original-title="Download build log"></i>
+ </a>
+ {% endif %}
+ </td>
+
<td class="target">{% for t in build.target_set.all %} <a href="{% url "builddashboard" build.id %}"> {{t.target}} </a> <br />{% endfor %}</td>
<td class="machine"><a href="{% url "builddashboard" build.id %}">{{build.machine}}</a></td>
<td class="started_on"><a href="{% url "builddashboard" build.id %}">{{build.started_on|date:"d/m/y H:i"}}</a></td>
<td class="completed_on"><a href="{% url "builddashboard" build.id %}">{{build.completed_on|date:"d/m/y H:i"}}</a></td>
- <td class="failed_tasks error">{% query build.task_build outcome=4 order__gt=0 as exectask%}{% if exectask.count == 1 %}<a href="{% url "task" build.id exectask.0.id %}">{{exectask.0.recipe.name}}.{{exectask.0.task_name}}</a>{% elif exectask.count > 1%}<a href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}}</a>{%endif%}</td>
- <td class="errors_no">{% if build.errors_no %}<a class="errors_no error" href="{% url "builddashboard" build.id %}#errors">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>{%endif%}</td>
+ <td class="failed_tasks error">
+ {% query build.task_build outcome=4 order__gt=0 as exectask%}
+ {% if exectask.count == 1 %}
+ <a href="{% url "task" build.id exectask.0.id %}">{{exectask.0.recipe.name}}.{{exectask.0.task_name}}</a>
+ {% if MANAGED and build.project %}
+ <a href="{% url 'build_artifact' build.id "tasklogfile" exectask.0.id %}">
+ <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
+ </a>
+ {% endif %}
+ {% elif exectask.count > 1%}
+ <a href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}} task{{exectask.count|pluralize}}</a>
+ {%endif%}
+ </td>
+ <td class="errors_no">
+ {% if build.errors_no %}
+ <a class="errors_no error" href="{% url "builddashboard" build.id %}#errors">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>
+ {%endif%}
+ </td>
<td class="warnings_no">{% if build.warnings_no %}<a class="warnings_no warning" href="{% url "builddashboard" build.id %}#warnings">{{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a>{%endif%}</td>
<td class="time"><a href="{% url "buildtime" build.id %}">{{build.timespent|sectohms}}</a></td>
- <td class="log">{{build.cooker_log_path}}</td>
+ {% if not MANAGED or not build.project %}
+ <td class="log">{{build.cooker_log_path}}</td>
+ {% endif %}
<td class="output">
{% if build.outcome == build.SUCCEEDED %}
<a href="{%url "builddashboard" build.id%}#images">{{fstypes|get_dict_value:build.id}}</a>
@@ -50,10 +89,44 @@
</td>
</tr>
- {% endfor %}
-{% include "basetable_bottom.html" %}
- <!-- Modals -->
+ {%endwith%}
+ {% else %} {# we don't have a build for this build request, mask the data with build request data #}
+
+
+
+ <tr class="data">
+ <td class="outcome">{% if br.state == br.REQ_FAILED %}<i class="icon-minus-sign error"></i>{%else%}FIXME_build_request_state{%endif%}</td>
+ <td class="target">
+ <a href="{% url "buildrequestdetails" br.project.id br.id %}"><span data-toggle="tooltip" {%if br.brtarget_set.all.count > 1%}title="Targets: {%for target in br.brtarget_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{br.brtarget_set.all.0.target}} {%if br.brtarget_set.all.count > 1%}(+ {{br.brtarget_set.all.count|add:"-1"}}){%endif%} </span></a>
+ </td>
+ <td class="machine">
+ <a href="{% url "buildrequestdetails" br.project.id br.id %}">{{br.machine}}</a>
+ </td>
+ <td class="started_on">
+ <a href="{% url "buildrequestdetails" br.project.id br.id %}">{{br.created|date:"d/m/y H:i"}}</a>
+ </td>
+ <td class="completed_on">
+ <a href="{% url "buildrequestdetails" br.project.id br.id %}">{{br.updated|date:"d/m/y H:i"}}</a>
+ </td>
+ <td class="failed_tasks error">
+ </td>
+ <td class="errors_no">
+ <a class="errors_no error" href="{% url "buildrequestdetails" br.project.id br.id %}#errors">{{br.brerror_set.all.count}} error{{br.brerror_set.all.count|pluralize}}</a>
+ </td>
+ <td class="warnings_no">
+ </td>
+ <td class="time">
+ {{br.timespent.total_seconds|sectohms}}
+ </td>
+ <td class="output"> {# we have no output here #}
+ </td>
+ </tr>
+ {%endif%}
+ {% endfor %}
+
+ {% include "basetable_bottom.html" %}
+{% endif %}
{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/projectconf.html b/bitbake/lib/toaster/toastergui/templates/projectconf.html
index e8b0c39f25..01ece24511 100644
--- a/bitbake/lib/toaster/toastergui/templates/projectconf.html
+++ b/bitbake/lib/toaster/toastergui/templates/projectconf.html
@@ -3,60 +3,851 @@
{% load humanize %}
{% block localbreadcrumb %}
-<li>Project configuration</li>
+<li>Configuration variables</li>
{% endblock %}
{% block projectinfomain %}
<div class="page-header">
- <h1>Configuration Variables</h1>
+ <h1>Configuration variables</h1>
</div>
<div style="padding-left:19px;">
<dl class="dl-vertical">
- {% for c in configvars %}
+ {% if distro_defined %}
<dt>
- {{c.name}}
- <i class="icon-question-sign get-help" title="{{c.desc}}"></i>
+ <span class="js-config-var-name js-config-var-managed-name">DISTRO</span>
+ <i class="icon-question-sign get-help" title="The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used. <br /><a href='http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-DISTRO' target='_blank'>Read more in the manual</a>"></i>
</dt>
<dd class="lead">
- <span id="distro">{{c.value}}</span>
+ <span id="distro">{{distro}}</span>
<i class="icon-pencil" id="change-distro-icon"></i>
<form id="change-distro-form" style="display:none;">
<div class="input-append">
- <input type="text" id="new-distro" value="poky tiny">
- <button id="apply-change-distro" class="btn" type="button">Save</button>
- <button id="cancel-change-distro" type="button" class="btn btn-link">Cancel</button>
+ <span id="edit-distro-name-div" class="control-group">
+ <input type="text" id="new-distro" value="{{distro}}">
+ <button id="apply-change-distro" class="btn" type="button">Save</button>
+ <button id="cancel-change-distro" type="button" class="btn btn-link">Cancel</button>
+ </span>
+ <span class="help-block error" id="distro-error-message"></span>
</div>
</form>
</dd>
- {% endfor %}
+ {% endif %}
+ {% if fstypes_defined %}
+ <dt>
+ <span class="js-config-var-name js-config-var-managed-name">IMAGE_FSTYPES</span>
+ <i class="icon-question-sign get-help" title="Formats of root file system images that you want to have created <br /><a href='http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-IMAGE_FSTYPES' target='_blank'>Read more in the manual</a>"></i>
+ </dt>
+ <dd class="lead">
+ <span id="image_fstypes">{{fstypes}}</span>
+ <i class="icon-pencil" id="change-image_fstypes-icon"></i>
+ <form id="change-image_fstypes-form" style="display:none;">
+ <input id="filter-image_fstypes" type="text" placeholder="Search image types" class="span4">
+ <div id="all-image_fstypes" class="scrolling">
+ </div>
+ <button id="apply-change-image_fstypes" type="button" class="btn">Save</button>
+ <button id="cancel-change-image_fstypes" type="button" class="btn btn-link">Cancel</button>
+ </form>
+ </dd>
+ {% endif %}
+
+ {% if image_install_append_defined %}
+ <dt>
+ <span class="js-config-var-name js-config-var-managed-name">IMAGE_INSTALL_append</span>
+ <i class="icon-question-sign get-help" title="Specifies additional packages to install into an image. If your build creates more than one image, the packages will be installed in <strong>all of them</strong> <br /><a href='http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-IMAGE_INSTALL' target='_blank'>Read more in the manual</a>"></i>
+ </dt>
+ <dd class="lead">
+ <span id="image_install"{% if image_install_append %}{%else%} class="muted"{%endif%}>{% if image_install_append %}{{image_install_append}}{%else%}Not set{%endif%}</span>
+ <i class="icon-pencil" id="change-image_install-icon"></i>
+ <i class="icon-trash" id="delete-image_install-icon" {% if image_install_append %}{%else%}style="display:none;"{%endif%}></i>
+ <form id="change-image_install-form" style="display:none;">
+ <div class="row-fluid">
+ <span class="help-block span4">To set IMAGE_INSTALL_append to more than one package, type the package names separated by a space.</span>
+ </div>
+ <div class="input-append">
+ <input type="text" class="input-xlarge" id="new-image_install" placeholder="Type one or more package names">
+ <button id="apply-change-image_install" class="btn" type="button">Save</button>
+ <button id="cancel-change-image_install" type="button" class="btn btn-link">Cancel</button>
+ </div>
+ </form>
+ </dd>
+ {% endif %}
+ {% if package_classes_defined %}
+ <dt>
+ <span class="js-config-var-name js-config-var-managed-name">PACKAGE_CLASSES</span>
+ <i class="icon-question-sign get-help" title="Specifies the package manager to use when packaging data <br /><a href='http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-PACKAGE_CLASSES' target='_blank'>Read more in the manual</a>"></i>
+ </dt>
+ <dd class="lead">
+ <span id="package_classes">{{package_classes}}</span>
+ <i id="change-package_classes-icon" class="icon-pencil"></i>
+ <form id="change-package_classes-form" style="display:none;">
+ <label>
+ Root file system package format
+ <i class="icon-question-sign get-help" title="The package format used to generate the root file system. Options are <code>dev</code>, <code>ipk</code> and <code>rpm</code>"></i>
+ </label>
+ <select id="package_classes-select">
+ <option>package_deb</option>
+ <option>package_ipk</option>
+ <option>package_rpm</option>
+ </select>
+ <label>
+ Additional package formats
+ <i class="icon-question-sign get-help" title="Extra package formats to build"></i>
+ </label>
+ <label class="checkbox" id="package_class_1">
+ <input type="checkbox" id="package_class_1_input"> package_deb
+ </label>
+ <label class="checkbox" id="package_class_2">
+ <input type="checkbox" id="package_class_2_input"> package_ipk
+ </label>
+ <div style="padding-top:10px;">
+ <button id="apply-change-package_classes" type="button" class="btn">Save</button>
+ <button id="cancel-change-package_classes" type="button" class="btn btn-link">Cancel</button>
+ </div>
+ </form>
+ </dd>
+ {% endif %}
+
+ {% if sdk_machine_defined %}
+ <dt>
+ <span class="js-config-var-name js-config-var-managed-name">SDKMACHINE</span>
+ <i class="icon-question-sign get-help" title="Specifies the architecture (i.e. i686 or x86_64) for which to build SDK and ADT items <br /><a href='http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-SDKMACHINE' target='_blank'>Read more in the manual</a>"></i>
+ </dt>
+ <dd class="lead">
+ <span id="sdkmachine">{{sdk_machine}}</span>
+ <i id="change-sdkmachine-icon" class="icon-pencil"></i>
+ <form id="change-sdkmachine-form" style="display:none;">
+ <label class="radio">
+ <input type="radio" name="sdkmachine" value="i686">
+ i686
+ </label>
+ <label class="radio">
+ <input type="radio" name="sdkmachine" value="x86_64">
+ x86_64
+ </label>
+ <div style="padding-top:10px;">
+ <button id="apply-change-sdkmachine" type="button" class="btn">Save</button>
+ <button id="cancel-change-sdkmachine" type="button" class="btn btn-link">Cancel</button>
+ </div>
+ </form>
+ </dd>
+ {% endif %}
+
+ </dl>
+
+ <!-- <ul class="unstyled configuration-list" id="configvar-list"> -->
+ <dl id="configvar-list">
+ <!-- the added configuration variables are inserted here -->
</dl>
- <form id="variable-form">
+
+ <!-- pass the fstypes list, black list, and externally managed variables here -->
+ {% for fstype in vars_fstypes %}
+ <input type="hidden" class="js-checkbox-fstypes-list" value="{{fstype}}">
+ {% endfor %}
+ {% for b in vars_blacklist %}
+ <input type="hidden" class="js-config-blacklist-name" value="{{b}}">
+ {% endfor %}
+ {% for b in vars_managed %}
+ <input type="hidden" class="js-config-managed-name" value="{{b}}">
+ {% endfor %}
+
+ <div class="row-fluid">
+ <form id="variable-form">
<fieldset style="padding-left:0px;">
<legend>Add variable</legend>
- <label>
- Variable
- <i class="icon-question-sign get-help" title="Variable names are case sensitive, cannot have spaces, and can only include letters, numbers, underscores and dashes"></i>
- </label>
- <input id="variable" type="text" placeholder="Type variable name">
- <label>Value</label>
- <input id="value" type="text" placeholder="Type variable value">
- <div style="display:block;margin-top:10px;">
- <a href="#" class="btn save" disabled>
- Add variable
- </a>
+ <div class="span3" style="margin-left:0px;">
+ <span id="add-configvar-name-div" class="control-group">
+ <label>
+ Variable
+ <i title="" class="icon-question-sign get-help"
+ data-original-title="Variable names are case sensitive,
+ cannot have spaces, and can only include letters, numbers, underscores
+ and dashes"></i>
+ </label>
+ <input type="text" placeholder="Type variable name" id="variable">
+ <span class="help-block error" id="new-variable-error-message"></span>
+ </span>
+ <label>Value</label>
+ <input id="value" type="text" placeholder="Type variable value"><p>
+ <div>
+ <button id="add-configvar-button" class="btn save" type="button" disabled>Add variable</button>
+ </div>
+ </div>
+ <div class="span5 help-block">
+ <h5>Some variables are reserved from Toaster</h5>
+ <p>Toaster cannot set any variables that impact 1) the configuration of the build servers,
+ or 2) where artifacts produced by the build are stored. Such variables include: </p>
+ <p>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-BB_DISKMON_DIRS" target="_blank">BB_DISKMON_DIRS</a></code>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-BB_NUMBER_THREADS" target="_blank">BB_NUMBER_THREADS</a></code>
+ <code>CVS_PROXY_HOST</code>
+ <code>CVS_PROXY_PORT</code>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-DL_DIR" target="_blank">DL_DIR</a></code>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-PARALLEL_MAKE" target="_blank">PARALLEL_MAKE</a></code>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-SSTATE_DIR" target="_blank">SSTATE_DIR</a></code>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-SSTATE_MIRRORS" target="_blank">SSTATE_MIRRORS</a></code>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-TMPDIR" target="_blank">TMPDIR</a></code></p>
+ <p>Plus the following standard shell environment variables:</p>
+ <p><code>http_proxy</code> <code>ftp_proxy</code> <code>https_proxy</code> <code>all_proxy</code></p>
</div>
</fieldset>
- </form>
- <!--button id="add-variable" class="btn air">
- <i class="icon-plus"></i>
- Add variable
- </button-->
+ </form>
+ </div>
</div>
+ <script>
+
+ // global variables
+ var do_reload=false;
+
+ // validate new variable name
+ function validate_new_variable() {
+ var variable = $("input#variable").val();
+ var value = $("input#value").val();
+
+ // presumed innocence
+ $('#new-variable-error-message').text("");
+ var error_msg = "";
+
+ var existing_configvars = document.getElementsByClassName('js-config-var-name');
+ for (var i = 0, length = existing_configvars.length; i < length; i++) {
+ if (existing_configvars[i].innerHTML.toUpperCase() == variable.toUpperCase()) {
+ error_msg = "This variable is already set in this page, edit its value instead";
+ }
+ }
+
+ var blacklist_configvars = document.getElementsByClassName('js-config-blacklist-name');
+ for (var i = 0, length = blacklist_configvars.length; i < length; i++) {
+ if (blacklist_configvars[i].value.toUpperCase() == variable.toUpperCase()) {
+ error_msg = "You cannot edit this variable in Toaster because it is set by the build servers";
+ }
+ }
+
+ var managed_configvars = document.getElementsByClassName('js-config-managed-name');
+ for (var i = 0, length = managed_configvars.length; i < length; i++) {
+ if (managed_configvars[i].value.toUpperCase() == variable.toUpperCase()) {
+ error_msg = "You cannot set this variable here. Please set it in the <a href=\"{% url 'project' project.id %}\">project main page</a>";
+ }
+ }
+
+ var bad_chars = /[^a-zA-Z0-9\-_]/.test(variable);
+ var has_spaces = (0 <= variable.indexOf(" "));
+ var only_spaces = (0 < variable.length) && (0 == variable.trim().length);
+
+ if (only_spaces) {
+ error_msg = "A valid variable name cannot include spaces";
+ } else if (bad_chars && has_spaces) {
+ error_msg = "A valid variable name can only include letters, numbers, underscores, dashes, and cannot include spaces";
+ } else if (bad_chars) {
+ error_msg = "A valid variable name can only include letters, numbers, underscores, and dashes";
+ }
+
+ if ("" != error_msg) {
+ $('#new-variable-error-message').html(error_msg);
+ $(".save").attr("disabled","disabled");
+
+ // add one (and only one) error class append
+ var d = document.getElementById("add-configvar-name-div");
+ d.className = d.className.replace(" error","");
+ d.className = d.className + " error";
+
+ return false;
+ } else if (0 == variable.length) {
+ $(".save").attr("disabled","disabled");
+ return false;
+ }
+
+ var d = document.getElementById("add-configvar-name-div");
+ d.className = d.className.replace(" error","");
+
+ // now set the "Save" enablement if 'value' also passes
+ if (value.trim().length > 0) {
+ $(".save").removeAttr("disabled");
+ } else {
+ $(".save").attr("disabled","disabled");
+ }
+
+ return true;
+ }
+
+ // validate distro name
+ function validate_distro_name() {
+ var value = $("input#new-distro").val();
+
+ // presumed innocence
+ $('#distro-error-message').text("");
+ var error_msg = "";
+
+ var has_spaces = (0 <= value.indexOf(" "));
+
+ if (has_spaces) {
+ error_msg = "A valid distro name cannot include spaces";
+ } else if (0 == value.length) {
+ error_msg = " ";
+ }
+
+ if ("" != error_msg) {
+ $('#distro-error-message').text(error_msg);
+ $("#apply-change-distro").attr("disabled","disabled");
+
+ // add one (and only one) error class append
+ var d = document.getElementById("edit-distro-name-div");
+ d.className = d.className.replace(" error","");
+ d.className = d.className + " error";
+
+ return false;
+ }
+
+ var d = document.getElementById("edit-distro-name-div");
+ d.className = d.className.replace(" error","");
+ $("#apply-change-distro").removeAttr("disabled");
+ return true;
+ }
+
+ // Test to insure at least one FS Type is checked
+ function enableFsTypesSave() {
+ var any_checked = 0;
+ $(".fs-checkbox-fstypes:checked").each(function(){
+ any_checked = 1;
+ });
+ if ( 0 == any_checked ) {
+ $("#apply-change-image_fstypes").attr("disabled","disabled");
+ }
+ else {
+ $("#apply-change-image_fstypes").removeAttr("disabled");
+ }
+ }
+
+ // Preset or reset the Package Class checkbox labels
+ function updatePackageClassCheckboxes() {
+ $('#package_class_1, #package_class_2').hide();
+ if ($('select').val() == 'package_deb') {
+ $('#package_class_1').html('<input type="checkbox" id="package_class_1_input"> package_ipk');
+ $('#package_class_2').html('<input type="checkbox" id="package_class_2_input"> package_rpm');
+ }
+ if ($('select').val() == 'package_ipk') {
+ $('#package_class_1').html('<input type="checkbox" id="package_class_1_input"> package_deb');
+ $('#package_class_2').html('<input type="checkbox" id="package_class_2_input"> package_rpm');
+ }
+ if ($('select').val() == 'package_rpm') {
+ $('#package_class_1').html('<input type="checkbox" id="package_class_1_input"> package_deb');
+ $('#package_class_2').html('<input type="checkbox" id="package_class_2_input"> package_ipk');
+ }
+ $('#package_class_1, #package_class_2').fadeIn(1500);
+ }
+
+ // Re-assert handlers when the page is served and/or refreshed via Ajax
+ function setEventHandlersForDynamicElements() {
+
+ // change variable value
+ $('.js-icon-pencil-config_var').click(function (evt) {
+ var pk = evt.target.attributes["x-data"].value;
+ var current_val = $("span#config_var_value_"+pk).text();
+ $('.js-icon-pencil-config_var, .js-icon-trash-config_var, #config_var_value_'+pk).hide();
+ $("#change-config_var-form_"+pk).slideDown();
+ $("input#new-config_var_"+pk).val(current_val);
+ });
+
+ $('.js-cancel-change-config_var').click(function (evt) {
+ var pk = evt.target.attributes["x-data"].value;
+ $("#change-config_var-form_"+pk).slideUp(function() {
+ $('.js-icon-pencil-config_var, .js-icon-trash-config_var, #config_var_value_'+pk).show();
+ });
+ });
+
+ $(".js-new-config_var").on('input', function(){
+ if ($(this).val().length == 0) {
+ $(".js-apply-change-config_var").attr("disabled","disabled");
+ }
+ else {
+ $(".js-apply-change-config_var").removeAttr("disabled");
+ }
+ });
+
+ $('.js-apply-change-config_var').click(function (evt) {
+ var xdata = evt.target.attributes["x-data"].value.split(":");
+ var pk = xdata[0];
+ var variable = xdata[1];
+ var val = $('#new-config_var_'+pk).val();
+ postEditAjaxRequest({"configvarChange" : variable+':'+val});
+ $('#config_var_value_'+pk).parent().removeClass('muted');
+ $("#change-config_var-form_"+pk).slideUp(function() {
+ $('.js-icon-pencil-config_var, .js-icon-trash-config_var, #config_var_value_'+pk).show();
+ });
+ });
+
+ // delete variable
+ $(".js-icon-trash-config_var").click(function (evt) {
+ var xdata = evt.target.attributes["x-data"].value.split(":");
+ var pk = xdata[0];
+
+ // hide the dangling trash tooltip
+ $('#config_var_trash_'+pk).hide();
+
+ // fade out the variable+value div, then refresh the variable list
+ $('#config_var_entry_'+pk).parent().parent().fadeOut(1000, function(){
+ postEditAjaxRequest({"configvarDel": evt.target.attributes["x-data"].value});
+ });
+
+ });
+
+ }
+
+ function onEditPageUpdate(data) {
+ // update targets
+ var i; var orightml = "";
+
+ var configvars_sorted = data.configvars.sort(function(a, b){return a[0] > b[0]});
+
+ var managed_configvars = document.getElementsByClassName('js-config-var-managed-name');
+
+ for (i = 0; i < configvars_sorted.length; i++) {
+ // skip if the variable name has a special context (not user defined)
+ var var_context=undefined;
+ for (var j = 0, length = managed_configvars.length; j < length; j++) {
+ if ((managed_configvars[j].innerHTML == configvars_sorted[i][0]) ||
+ (managed_configvars[j].value == configvars_sorted[i][0]) ) {
+ var_context='m';
+ }
+ }
+ if (var_context == undefined) {
+ orightml += '<div> <dt><span id="config_var_entry_'+configvars_sorted[i][2]+'" class="js-config-var-name"></span><i class="icon-trash js-icon-trash-config_var" id="config_var_trash_'+configvars_sorted[i][2]+'" x-data="'+configvars_sorted[i][2]+'"></i> </dt>'
+ orightml += '<dd class="lead">'
+ orightml += ' <span id="config_var_value_'+configvars_sorted[i][2]+'"></span>'
+ orightml += ' <i class="icon-pencil js-icon-pencil-config_var" x-data="'+configvars_sorted[i][2]+'"></i>'
+ orightml += ' <form id="change-config_var-form_'+configvars_sorted[i][2]+'" style="display:none;">'
+ orightml += ' <div class="input-append">'
+ orightml += ' <input type="text" class="input-xlarge js-new-config_var" id="new-config_var_'+configvars_sorted[i][2]+'" value="">'
+ orightml += ' <button class="btn js-apply-change-config_var" type="button" x-data="'+configvars_sorted[i][2]+':'+configvars_sorted[i][0]+'" disabled>Save</button>'
+ orightml += ' <button type="button" class="btn btn-link js-cancel-change-config_var" x-data="'+configvars_sorted[i][2]+'">Cancel</button>'
+ orightml += ' </div>'
+ orightml += ' </form>'
+ orightml += '</dd> </div>'
+ }
+ }
+
+ // update configvars list HTML framework
+ $("dl#configvar-list").html(orightml);
+
+ // insert the name/value pairs safely as non-HTML
+ for (i = 0; i < configvars_sorted.length; i++) {
+ $('#config_var_entry_'+configvars_sorted[i][2]).text(configvars_sorted[i][0]);
+ $('#config_var_value_'+configvars_sorted[i][2]).text(configvars_sorted[i][1]);
+ }
+
+ // Add the tooltips
+ $(".js-icon-trash-config_var").each( function(){ setDeleteTooltip($(this)); });
+ $(".js-icon-pencil-config_var").each(function(){ setChangeTooltip($(this)); });
+
+ // re-assert these event handlers
+ setEventHandlersForDynamicElements();
+ }
+
+ function onEditAjaxSuccess(data, textstatus) {
+ // console.log("XHR returned:", data, "(" + textstatus + ")");
+ if (data.error != "ok") {
+ alert("error on request:\n" + data.error);
+ return;
+ }
+
+ // delayed page reload?
+ if (do_reload) {
+ do_reload=false;
+ location.reload(true);
+ } else {
+ onEditPageUpdate(data);
+ }
+ }
+
+ function onEditAjaxError(jqXHR, textstatus, error) {
+ alert("XHR errored:\n" + error + "\n(" + textstatus + ")");
+ // re-assert the event handlers
+ }
+
+ /* ensure cookie exists {% csrf_token %} */
+ function postEditAjaxRequest(reqdata) {
+ var ajax = $.ajax({
+ type:"POST",
+ data: $.param(reqdata),
+ url:"{% url 'xhr_configvaredit' project.id%}",
+ headers: { 'X-CSRFToken': $.cookie("csrftoken")},
+ success: onEditAjaxSuccess,
+ error: onEditAjaxError,
+ })
+ }
+
+ function setDeleteTooltip(object) {
+ object.tooltip({ container: 'body', html: true, delay: {show: 400}, title: "Delete" });
+ }
+ function setChangeTooltip(object) {
+ object.tooltip({ container: 'body', html: true, delay: {show: 400}, title: "Change" });
+ }
+
+ $(document).ready(function() {
+
+ //
+ // Register handlers for static elements
+ //
+
+ {% if distro_defined %}
+ // change distro variable
+ $('#change-distro-icon').click(function() {
+ $('#change-distro-icon, #distro').hide();
+ $("#change-distro-form").slideDown();
+ $("#new-distro").val( $('#distro').text() );
+ });
+
+ $('#cancel-change-distro').click(function(){
+ $("#change-distro-form").slideUp(function() {
+ $('#distro, #change-distro-icon').show();
+
+ // reset any dangling error state
+ $('#distro-error-message').text("");
+ var d = document.getElementById("edit-distro-name-div");
+ d.className = d.className.replace(" error","");
+ });
+ });
+
+ // validate new distro name
+ $("input#new-distro").on('input', function (evt) {
+ validate_distro_name();
+ });
+
+ $('#apply-change-distro').click(function(){
+ //$('#repo').parent().removeClass('highlight-go');
+ var name = $('#new-distro').val();
+ postEditAjaxRequest({"configvarChange" : 'DISTRO:'+name});
+ $('#distro').text(name);
+ $("#change-distro-form").slideUp(function () {
+ $('#distro, #change-distro-icon').show();
+ });
+ });
+ {% endif %}
+
+
+ {% if fstypes_defined %}
+ // change IMAGE_FSTYPES variable
+
+ $('#change-image_fstypes-icon').click(function() {
+ $('#change-image_fstypes-icon, #image_fstypes').hide();
+ $("#change-image_fstypes-form").slideDown();
+ // avoid false substring matches by including space separators
+ var html = "";
+ var fstypes = " " + document.getElementById("image_fstypes").innerHTML + " ";
+ var fstypes_list = document.getElementsByClassName('js-checkbox-fstypes-list');
+ // Add the checked boxes first
+ if (" " != fstypes) {
+ for (var i = 0, length = fstypes_list.length; i < length; i++) {
+ if (0 <= fstypes.indexOf(" "+fstypes_list[i].value+" ")) {
+ html += '<label class="checkbox"><input type="checkbox" class="fs-checkbox-fstypes" value="'+fstypes_list[i].value+'" checked="checked">'+fstypes_list[i].value+'</label>\n';
+ }
+ }
+ }
+ // Add the un-checked boxes second
+ for (var i = 0, length = fstypes_list.length; i < length; i++) {
+ if (0 > fstypes.indexOf(" "+fstypes_list[i].value+" ")) {
+ html += '<label class="checkbox"><input type="checkbox" class="fs-checkbox-fstypes" value="'+fstypes_list[i].value+'">'+fstypes_list[i].value+'</label>\n';
+ }
+ }
+ document.getElementById("all-image_fstypes").innerHTML = html;
+
+ // Watch elements to disable Save when none are checked
+ $(".fs-checkbox-fstypes").each(function(){
+ $(this).click(function() {
+ enableFsTypesSave();
+ });
+ });
+
+ // clear the previous filter values
+ $("input#filter-image_fstypes").val("");
+ });
+
+ $('#cancel-change-image_fstypes').click(function(){
+ $("#change-image_fstypes-form").slideUp(function() {
+ $('#image_fstypes, #change-image_fstypes-icon').show();
+ });
+ });
+
+ $('#filter-image_fstypes').on('input', function(){
+ var valThis = $(this).val().toLowerCase();
+ $('#all-image_fstypes label').each(function(){
+ var text = $(this).text().toLowerCase();
+ var match = text.indexOf(valThis);
+ if (match >= 0) {
+ $(this).show();
+ }
+ else {
+ $(this).hide();
+ }
+ });
+ });
+
+ $('#apply-change-image_fstypes').click(function(){
+ // extract the selected fstypes and sort them
+ var fstypes_array = [];
+ var checkboxes = document.getElementsByClassName('fs-checkbox-fstypes');
+ $(".fs-checkbox-fstypes:checked").each(function(){
+ fstypes_array.push($(this).val());
+ });
+ fstypes_array.sort();
+
+ // now make a string of them
+ var fstypes = '';
+ for (var i = 0, length = fstypes_array.length; i < length; i++) {
+ fstypes += fstypes_array[i] + ' ';
+ }
+ fstypes = fstypes.trim();
+
+ postEditAjaxRequest({"configvarChange" : 'IMAGE_FSTYPES:'+fstypes});
+ $('#image_fstypes').text(fstypes);
+ $('#image_fstypes').parent().removeClass('muted');
+
+ $("#change-image_fstypes-form").slideUp(function() {
+ $('#image_fstypes, #change-image_fstypes-icon').show();
+ });
+ });
+ {% endif %}
+
+
+ {% if image_install_append_defined %}
+
+ // init IMAGE_INSTALL_append trash icon
+ setDeleteTooltip($('#delete-image_install-icon'));
+
+ // change IMAGE_INSTALL_append variable
+ $('#change-image_install-icon').click(function() {
+ // preset the edit value
+ var current_val = $("span#image_install").text().trim();
+ if (current_val == "Not set") {
+ current_val="";
+ $("#apply-change-image_install").attr("disabled","disabled");
+ } else {
+ // insure these non-empty values have single space prefix
+ current_val=" " + current_val;
+ }
+ $("input#new-image_install").val(current_val);
+
+ $('#change-image_install-icon, #delete-image_install-icon, #image_install').hide();
+ $("#change-image_install-form").slideDown();
+ });
+
+ $('#cancel-change-image_install').click(function(){
+ $("#change-image_install-form").slideUp(function() {
+ $('#image_install, #change-image_install-icon').show();
+ if ($("span#image_install").text() != "Not set") {
+ $('#delete-image_install-icon').show();
+ setDeleteTooltip($('#delete-image_install-icon'));
+ }
+ });
+ });
+
+ $("#new-image_install").on('input', function(){
+ if ($(this).val().trim().length == 0) {
+ $("#apply-change-image_install").attr("disabled","disabled");
+ }
+ else {
+ $("#apply-change-image_install").removeAttr("disabled");
+ }
+ });
+
+ $('#apply-change-image_install').click(function(){
+ // insure these non-empty values have single space prefix
+ var value = " " + $('#new-image_install').val().trim();
+ postEditAjaxRequest({"configvarChange" : 'IMAGE_INSTALL_append:'+value});
+ $('#image_install').text(value);
+ $('#image_install').removeClass('muted');
+ $("#change-image_install-form").slideUp(function () {
+ $('#image_install, #change-image_install-icon').show();
+ if (value.length > -1) {
+ $('#delete-image_install-icon').show();
+ setDeleteTooltip($('#delete-image_install-icon'));
+ }
+ });
+ });
+
+ // delete IMAGE_INSTALL_append variable value
+ $('#delete-image_install-icon').click(function(){
+ $(this).tooltip('hide');
+ postEditAjaxRequest({"configvarChange" : 'IMAGE_INSTALL_append:'+''});
+ $('#image_install').parent().fadeOut(1000, function(){
+ $('#image_install').addClass('muted');
+ $('#image_install').text('Not set');
+ $('#delete-image_install-icon').hide();
+ $('#image_install').parent().fadeIn(1000);
+ });
+ });
+ {% endif %}
+
+
+ {% if package_classes_defined %}
+ // change PACKAGE_CLASSES variable
+ $('#change-package_classes-icon').click(function() {
+ $('#change-package_classes-icon, #package_classes').hide();
+ $("#change-package_classes-form").slideDown();
+
+ // initialize the pulldown and checkboxes
+ var value = $("#package_classes").text();
+ if ( value.indexOf("package_deb") == 0 ) {
+ $("#package_classes-select").prop('selectedIndex', 0);
+ updatePackageClassCheckboxes();
+ if ( value.indexOf("_ipk") > 0 ) {
+ $("#package_class_1_input").attr("checked",true);
+ }
+ if ( value.indexOf("_rpm") > 0 ) {
+ $("#package_class_2_input").attr("checked",true);
+ }
+ }
+
+ if ( value.indexOf("package_ipk") == 0 ) {
+ $("#package_classes-select").prop('selectedIndex', 1);
+ updatePackageClassCheckboxes();
+ if ( value.indexOf("_deb") > 0 ) {
+ $("#package_class_1_input").attr("checked",true);
+ }
+ if ( value.indexOf("_rpm") > 0 ) {
+ $("#package_class_2_input").attr("checked",true);
+ }
+ }
+
+ if ( value.indexOf("package_rpm") == 0 ) {
+ $("#package_classes-select").prop('selectedIndex', 2);
+ updatePackageClassCheckboxes();
+ if ( value.indexOf("_deb") > 0 ) {
+ $("#package_class_1_input").attr("checked",true);
+ }
+ if ( value.indexOf("_ipk") > 0 ) {
+ $("#package_class_2_input").attr("checked",true);
+ }
+ }
+ });
+
+ $('#cancel-change-package_classes').click(function(){
+ $("#change-package_classes-form").slideUp(function() {
+ $('#package_classes, #change-package_classes-icon').show();
+ });
+ });
+
+ $('select').change(function() {
+ updatePackageClassCheckboxes();
+ });
+
+ $('#apply-change-package_classes').click(function(){
+ var e = document.getElementById("package_classes-select");
+ var val = e.options[e.selectedIndex].text;
+
+ pc1_checked = document.getElementById("package_class_1_input").checked;
+ pc2_checked = document.getElementById("package_class_2_input").checked;
+ if (val == "package_deb") {
+ if (pc1_checked) val = val + " package_ipk";
+ if (pc2_checked) val = val + " package_rpm";
+ }
+ if (val == "package_ipk") {
+ if (pc1_checked) val = val + " package_deb";
+ if (pc2_checked) val = val + " package_rpm";
+ }
+ if (val == "package_rpm") {
+ if (pc1_checked) val = val + " package_deb";
+ if (pc2_checked) val = val + " package_ipk";
+ }
+
+ $('#package_classes').text(val);
+ //$('#package_classes').parent().removeClass('muted');
+ postEditAjaxRequest({"configvarChange" : 'PACKAGE_CLASSES:'+val});
+ $("#change-package_classes-form").slideUp(function() {
+ $('#package_classes, #change-package_classes-icon').show();
+ });
+ });
+ {% endif %}
+
+
+ {% if sdk_machine_defined %}
+ // change SDKMACHINE variable
+ $('#change-sdkmachine-icon').click(function() {
+ var current_value = document.getElementById("sdkmachine").innerHTML;
+ var radios = document.getElementsByName('sdkmachine');
+ for (var i = 0, length = radios.length; i < length; i++) {
+ radios[i].checked = false;
+ if (radios[i].value == current_value) {
+ radios[i].checked = true;
+ }
+ }
+ $('#change-sdkmachine-icon, #sdkmachine').hide();
+ $("#change-sdkmachine-form").slideDown();
+ });
+
+ $('#cancel-change-sdkmachine').click(function(){
+ $("#change-sdkmachine-form").slideUp(function() {
+ $('#sdkmachine, #change-sdkmachine-icon').show();
+ });
+ });
+
+ $('#apply-change-sdkmachine').click(function(){
+ var value="";
+ var radios = document.getElementsByName('sdkmachine');
+ for (var i = 0, length = radios.length; i < length; i++) {
+ if (radios[i].checked) {
+ // do whatever you want with the checked radio
+ value=radios[i].value;
+ break;
+ }
+ }
+ postEditAjaxRequest({"configvarChange" : 'SDKMACHINE:'+value});
+ $('#sdkmachine').text(value);
+ $("#change-sdkmachine-form").slideUp(function() {
+ $('#sdkmachine, #change-sdkmachine-icon').show();
+ });
+
+ });
+ {% endif %}
+
+
+ // add new variable
+ $("button#add-configvar-button").click( function (evt) {
+ var variable = $("input#variable").val();
+ var value = $("input#value").val();
+
+ postEditAjaxRequest({"configvarAdd" : variable+':'+value});
+
+ // clear the previous values
+ $("input#variable").val("");
+ $("input#value").val("");
+ // Disable add button
+ $(".save").attr("disabled","disabled");
+
+ // Reload page if admin-removed core managed value is manually added back in
+ if (0 <= " DISTRO IMAGE_FSTYPES IMAGE_INSTALL_append PACKAGE_CLASSES SDKMACHINE ".indexOf( " "+variable+" " )) {
+ // delayed reload to avoid race condition with postEditAjaxRequest
+ do_reload=true;
+ }
+ });
+
+ // validate new variable name and value
+ $("#variable, #value").on('input', function() {
+ validate_new_variable();
+ });
+
+ //
+ // draw and register the dynamic configuration variables and handlers
+ //
+
+ var data = {
+ configvars : []
+ };
+ {% for c in configvars %}
+ data.configvars.push([ "{{c.name}}","{{c.value}}","{{c.pk}}" ]);
+ {% if '' != vars_context|get_dict_value:c.name %}
+ data.vars_context[ "{{c.name}}" ] = "{{vars_context|get_dict_value:c.name }}";
+ {% endif %}
+ {% endfor %}
+
+ // draw these elements and assert their event handlers
+ onEditPageUpdate(data);
+ });
+
+ </script>
{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/projects.html b/bitbake/lib/toaster/toastergui/templates/projects.html
new file mode 100644
index 0000000000..23340083ca
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/projects.html
@@ -0,0 +1,71 @@
+{% extends "base.html" %}
+
+{% load static %}
+{% load projecttags %}
+{% load humanize %}
+
+{% block pagecontent %}
+
+
+ {% include "managed_mrb_section.html" %}
+
+
+ <div class="page-header top-air">
+ <h1>
+ {% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
+ {{objects.paginator.count}} project{{objects.paginator.count|pluralize}} found
+ {%elif request.GET.filter and objects.paginator.count == 0 or request.GET.search and objects.paginator.count == 0 %}
+ No projects found
+ {%else%}
+ All projects
+ {%endif%}
+ </h1>
+ </div>
+
+ {% if objects.paginator.count == 0 %}
+ <div class="row-fluid">
+ <div class="alert">
+ <form class="no-results input-append" id="searchform">
+ <input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
+ <button class="btn" type="submit" value="Search">Search</button>
+ <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all projects</button>
+ </form>
+ </div>
+ </div>
+
+ {% else %} {# We have builds to display #}
+ {% include "basetable_top_projectbuilds.html" %}
+ {% for o in objects %}
+ <tr class="data">
+ <td><a href="{% url 'project' o.id %}">{{o.name}}</a></td>
+ <td class="updated"><a href="{% url 'project' o.id %}">{{o.updated|date:"d/m/y H:i"}}</a></td>
+ <td><a href="{% url 'project' o.id %}#project-details">{{o.release.name}}</a></td>
+ <td><a href="{% url 'project' o.id %}#machine-distro">{{o.get_current_machine_name}}</a></td>
+ {% if o.get_number_of_builds == 0 %}
+ <td class="muted">{{o.get_number_of_builds}}</td>
+ <td class="loutcome"></td>
+ <td class="ltarget"></td>
+ <td class="lerrors"></td>
+ <td class="lwarnings"></td>
+ <td class="limagefiles"></td>
+ {% else %}
+ <td><a href="{% url 'projectbuilds' o.id %}">{{o.get_number_of_builds}}</a></td>
+ <td class="loutcome"><a href="{% url "builddashboard" o.get_last_build_id %}">{%if o.get_last_outcome == build_SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif o.get_last_outcome == build_FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}</a></td>
+ <td class="ltarget"><a href="{% url "builddashboard" o.get_last_build_id %}">{{o.get_last_target}} </a></td>
+ <td class="lerrors">{% if o.get_last_errors %}<a class="errors_no error" href="{% url "builddashboard" o.get_last_build_id %}#errors">{{o.get_last_errors}} error{{o.get_last_errors|pluralize}}</a>{%endif%}</td>
+ <td class="lwarnings">{% if o.get_last_warnings %}<a class="warnings_no warning" href="{% url "builddashboard" o.get_last_build_id %}#warnings">{{o.get_last_warnings}} warning{{o.get_last_warnings|pluralize}}</a>{%endif%}</td>
+ <td class="limagefiles">
+ {% if o.get_last_outcome == build_SUCCEEDED %}
+ <a href="{%url "builddashboard" o.get_last_build_id %}#images">{{fstypes|get_dict_value:o.id}}</a>
+ {% endif %}
+ </td>
+
+ {% endif %}
+ </tr>
+ {% endfor %}
+ {% include "basetable_bottom.html" %}
+ {% endif %} {# empty #}
+
+{% endblock %}
+
+
diff --git a/bitbake/lib/toaster/toastergui/templates/recipe.html b/bitbake/lib/toaster/toastergui/templates/recipe.html
index a830ba9fb8..6eba9b6f0b 100644
--- a/bitbake/lib/toaster/toastergui/templates/recipe.html
+++ b/bitbake/lib/toaster/toastergui/templates/recipe.html
@@ -19,25 +19,25 @@
<div class="row span7 tabbable">
<ul class="nav nav-pills">
- <li class="active">
+ <li class="{{tab_states.1}}">
<a href="#information" data-toggle="tab">
<i class="icon-question-sign get-help" title="Build-related information about the recipe"></i>
Recipe details
</a>
</li>
<li>
- <a href="#packages-built" data-toggle="tab">
+ <a href="{% url "recipe_packages" build.pk object.id %}">
<i class="icon-question-sign get-help" title="The packaged output resulting from building the recipe"></i>
- Packages ({{packages.count}})
+ Packages ({{package_count}})
</a>
</li>
- <li>
+ <li class="{{tab_states.3}}">
<a href="#dependencies" data-toggle="tab">
<i class="icon-question-sign get-help" title="The recipe build-time dependencies (i.e. other recipes)"></i>
Build dependencies ({{object.r_dependencies_recipe.all.count}})
</a>
</li>
- <li>
+ <li class="{{tab_states.4}}">
<a href="#brought-in-by" data-toggle="tab">
<i class="icon-question-sign get-help" title="The recipe build-time reverse dependencies (i.e. the recipes that depend on this recipe)"></i>
Reverse build dependencies ({{object.r_dependencies_depends.all.count}})
@@ -45,23 +45,26 @@
</li>
</ul>
<div class="tab-content">
- <div class="tab-pane active" id="information" name="information">
+ <div class="tab-pane {{tab_states.1}}" id="information" name="information">
<dl class="dl-horizontal">
<dt>
<i class="icon-question-sign get-help" title="The name of the layer providing the recipe"></i>
Layer
</dt>
<dd>{{layer.name}}</dd>
+
+ {% if not MANAGED or not build.project %}
<dt>
<i class="icon-question-sign get-help" title="Path to the layer providing the recipe"></i>
Layer directory
</dt>
<dd><code>{{layer.local_path}}</code></dd>
+ {% endif %}
<dt>
<i class="icon-question-sign get-help" title="Path to the recipe .bb file"></i>
Recipe file
</dt>
- <dd><code>{{object.file_path}}</code></dd>
+ <dd><code>{{object.get_local_path}}</code></dd>
{% if layer_version.branch %}
<dt>
<i class="icon-question-sign get-help" title="The Git branch of the layer providing the recipe"></i>
@@ -121,6 +124,11 @@
<td>
<a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.get_outcome_display}} </a>
+ {% if MANAGED and build.project and task.outcome = task.OUTCOME_FAILED %}
+ <a href="{% url 'build_artifact' build.pk "tasklogfile" task.pk %}">
+ <i class="icon-download-alt" title="Download task log file"></i>
+ </a>
+ {% endif %}
<i class="icon-question-sign get-help hover-help" title="{{task.get_outcome_help}}"></i>
</td>
<td>
@@ -136,43 +144,7 @@
</table>
{% endif %}
</div>
- <div class="tab-pane" id="packages-built" name="packages-built">
- {% if not packages %}
- <div class="alert alert-info">
- <strong>{{object.name}}_{{object.version}}</strong> does not build any packages.
- </div>
- {% else %}
- <table class="table table-bordered table-hover" style="margin-top:10px;">
- <thead>
- <tr>
- <th>
- Package
- </th>
- <th>
- Version
- </th>
- <th class="sizecol span2">
- Size
- </th>
- </tr>
- </thead>
- <tbody>
-
- {% for package in packages|dictsort:"name" %}
-
- <tr>
- <td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.name}}</a></td>
- <td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.version}}_{{package.revision}}</a></td>
- <td class="sizecol"><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.size|filtered_filesizeformat}}</a></td>
- </tr>
-
- {% endfor %}
-
- </tbody>
- </table>
- {% endif %}
- </div>
- <div class="tab-pane" id="dependencies" name="dependencies">
+ <div class="tab-pane {{tab_states.3}}" id="dependencies" name="dependencies">
{% if not object.r_dependencies_recipe.all %}
<div class="alert alert-info">
@@ -204,7 +176,7 @@
{% endif %}
</div>
- <div class="tab-pane" id="brought-in-by" name="brought-in-by">
+ <div class="tab-pane {{tab_states.4}}" id="brought-in-by" name="brought-in-by">
{% if not object.r_dependencies_depends.all %}
<div class="alert alert-info">
@@ -241,14 +213,14 @@
<div class="row span4 well">
<h2>About {{object.name}}</h2>
- <dl>
+ <dl class="item-info">
{% if object.summary %}
<dt>Summary</dt>
- <dd><p>{{object.summary}}</p></dd>
+ <dd>{{object.summary}}</dd>
{% endif %}
{% if object.description %}
<dt>Description</dt>
- <dd><p>{{object.description}}</dd>
+ <dd>{{object.description}}</dd>
{% endif %}
{% if object.homepage %}
<dt>Homepage</dt>
diff --git a/bitbake/lib/toaster/toastergui/templates/recipe_packages.html b/bitbake/lib/toaster/toastergui/templates/recipe_packages.html
new file mode 100644
index 0000000000..d25847bc0d
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/recipe_packages.html
@@ -0,0 +1,123 @@
+{% extends "basebuilddetailpage.html" %}
+
+{% load projecttags %}
+{% load humanize %}
+{% block localbreadcrumb %}
+<li><a href="{% url 'recipes' build.pk %}">Recipes</a></li>
+<li>{{recipe.name}}_{{recipe.version}} </li>
+{% endblock %}
+
+{% block pagedetailinfomain %}
+
+<!-- Begin container -->
+
+<div class="row-fluid span11">
+ <div class="page-header">
+ <h1>{{recipe.name}}_{{recipe.version}}</h1>
+ </div>
+</div>
+
+<div class="row-fluid span7 tabbable">
+ <ul class="nav nav-pills">
+ <li>
+ <a href="{% url "recipe" build.pk recipe.id "1" %}">
+ <i class="icon-question-sign get-help" title="Build-related information about the recipe"></i>
+ Recipe details
+ </a>
+ </li>
+ <li class="active">
+ <a href="#packages-built" data-toggle="tab">
+ <i class="icon-question-sign get-help" title="The packaged output resulting from building the recipe"></i>
+ Packages ({{object_count}})
+ </a>
+ </li>
+ <li>
+ <a href="{% url "recipe" build.pk recipe.id "3" %}">
+ <i class="icon-question-sign get-help" title="The recipe build-time dependencies (i.e. other recipes)"></i>
+ Build dependencies ({{recipe.r_dependencies_recipe.all.count}})
+ </a>
+ </li>
+ <li>
+ <a href="{% url "recipe" build.pk recipe.id "4" %}">
+ <i class="icon-question-sign get-help" title="The recipe build-time reverse dependencies (i.e. the recipes that depend on this recipe)"></i>
+ Reverse build dependencies ({{recipe.r_dependencies_depends.all.count}})
+ </a>
+ </li>
+ </ul>
+ <div class="tab-content">
+{# <div class="tab-pane active" id="packages-built" name="packages-built">#}
+ <div class="tab-pane active" id="packages-built">
+ {% if not objects and not request.GET.search %}
+ <div class="alert alert-info">
+ <strong>{{recipe.name}}_{{recipe.version}}</strong> does not build any packages.
+ </div>
+
+ {% elif not objects %}
+ {# have empty search results, no table nor pagination #}
+ {% with "packages" as search_what %}
+ {% include "detail_search_header.html" %}
+ {% endwith %}
+
+ {% else %}
+
+
+ {% with "packages" as search_what %}
+ {% include "detail_search_header.html" %}
+ {% endwith %}
+ <table class="table table-bordered table-hover tablesorter" id="otable">
+ {% include "detail_sorted_header.html" %}
+
+ <tbody>
+ {% for package in objects %}
+
+ <tr>
+ <td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.name}}</a></td>
+ <td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.version}}_{{package.revision}}</a></td>
+ <td class="sizecol"><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.size|filtered_filesizeformat}}</a></td>
+ </tr>
+
+ {% endfor %}
+
+ {% endif %}
+ {% if objects %}
+ </tbody>
+ </table>
+ {% include "detail_pagination_bottom.html" %}
+ {% endif %}
+ </div> {# tab-pane #}
+ </div> {# tab-content #}
+</div> {# span7 #}
+
+<div class="row span4 well">
+ <h2>About {{recipe.name}}</h2>
+ <dl class="item-info">
+ {% if recipe.summary %}
+ <dt>Summary</dt>
+ <dd>{{recipe.summary}}</dd>
+ {% endif %}
+ {% if recipe.description %}
+ <dt>Description</dt>
+ <dd>{{recipe.description}}</dd>
+ {% endif %}
+ {% if recipe.homepage %}
+ <dt>Homepage</dt>
+ <dd><a href="{{recipe.homepage}}">{{recipe.homepage}}</a></dd>
+ {% endif %}
+ {% if recipe.bugtracker %}
+ <dt>Bugtracker</dt>
+ <dd><a href="{{recipe.bugtracker}}">{{recipe.bugtracker}}</a></dd>
+ {% endif %}
+ {% if recipe.section %}
+ <dt>
+ Section
+ <i class="icon-question-sign get-help" title="The section in which recipes should be categorized"></i>
+ </dt>
+ <dd>{{recipe.section}}</dd>
+ {% endif %}
+ {% if recipe.license %}
+ <dt>License</dt>
+ <dd>{{recipe.license}}</dd>
+ {% endif %}
+ </dl>
+</div>
+{% endblock pagedetailinfomain %}
diff --git a/bitbake/lib/toaster/toastergui/templates/recipes.html b/bitbake/lib/toaster/toastergui/templates/recipes.html
index 791a487a81..889e676b45 100644
--- a/bitbake/lib/toaster/toastergui/templates/recipes.html
+++ b/bitbake/lib/toaster/toastergui/templates/recipes.html
@@ -98,8 +98,11 @@
{{recipe.layer_version.commit|truncatechars:13}}
</a>
</td>
- <!-- Layer directory -->
- <td class="layer_version__layer__local_path">{{recipe.layer_version.layer.local_path}}</td>
+
+ {% if not MANAGED or not build.project %}
+ <!-- Layer directory -->
+ <td class="layer_version__layer__local_path">{{recipe.layer_version.layer.local_path}}</td>
+ {% endif %}
</tr>
{% endfor %}
diff --git a/bitbake/lib/toaster/toastergui/templates/target.html b/bitbake/lib/toaster/toastergui/templates/target.html
index 564fd27162..1309b52dad 100644
--- a/bitbake/lib/toaster/toastergui/templates/target.html
+++ b/bitbake/lib/toaster/toastergui/templates/target.html
@@ -65,6 +65,7 @@
{% include "basetable_top.html" %}
{% for package in objects %}
<tr>
+ {# order of the table data must match the columns defined in template's context tablecols #}
<td class="package_name">
<a href="{% url 'package_included_detail' build.id target.id package.id %}">
{{package.name}}
@@ -79,16 +80,17 @@
{{package.version|filtered_packageversion:package.revision}}
</a>
</td>
+ <td class="license">
+ {{package.license}}
+ </td>
<td class="size sizecol">
{{package.size|filtered_installedsize:package.installed_size|filtered_filesizeformat}}
</td>
+
<td class="size_over_total sizecol">
{{package|filter_sizeovertotal:packages_sum}}
</td>
- <td class="license">
- {{package.license}}
- </td>
- <td class="depends">
+ <td class="depends">
{% with deps=package.runtime_dependencies %}
{% with deps_count=deps|length %}
{% if deps_count > 0 %}
@@ -150,9 +152,11 @@
{{package.recipe.layer_version.commit|truncatechars:13}}
</a>
</td>
- <td class="layer_directory">
- {{ package.recipe.layer_version.layer.local_path }}
- </td>
+ {% if not MANAGED or not build.project %}
+ <td class="layer_directory">
+ {{ package.recipe.layer_version.layer.local_path }}
+ </td>
+ {% endif %}
</tr>
{% endfor %}
diff --git a/bitbake/lib/toaster/toastergui/templates/targets.html b/bitbake/lib/toaster/toastergui/templates/targets.html
index 3afdf0a5e9..c27292095d 100644
--- a/bitbake/lib/toaster/toastergui/templates/targets.html
+++ b/bitbake/lib/toaster/toastergui/templates/targets.html
@@ -3,61 +3,89 @@
{% load humanize %}
{% block localbreadcrumb %}
-<li>Targets</li>
+<li>All compatible recipes</li>
{% endblock %}
{% block projectinfomain %}
<div class="page-header">
<h1>
- All targets
- <i class="icon-question-sign get-help heading-help" title="This page lists all the targets compatible with Yocto Project 1.7 'Dxxxx' that Toaster knows about. They include community-created targets suitable for use on top of OpenEmbedded Core and any targets you have imported"></i>
+ {% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
+ {{objects.paginator.count}} recipe{{objects.paginator.count|pluralize}} found
+ {% elif request.GET.filter and objects.paginator.count == 0 or request.GET.search and objects.paginator.count == 0 %}
+ No recipes found
+ {%else%}
+ All compatible recipes
+ {%endif%}
+ <i class="icon-question-sign get-help heading-help" title="This page lists all the recipes compatible with the release selected for this project, which is {{project.release.description}}"></i>
</h1>
</div>
- <!--div class="alert">
- <div class="input-append" style="margin-bottom:0px;">
- <input class="input-xxlarge" type="text" placeholder="Search targets" value="browser" />
- <a class="add-on btn">
- <i class="icon-remove"></i>
- </a>
- <button class="btn" type="button">Search</button>
- <a class="btn btn-link" href="#">Show all targets</a>
- </div>
- </div-->
- <div id="target-added" class="alert alert-info lead" style="display:none;"></div>
- <div id="target-removed" class="alert alert-info lead" style="display:none;">
- <button type="button" class="close" data-dismiss="alert">&times;</button>
- <strong>1</strong> target deleted from <a href="project-with-targets.html">your project</a>: <a href="#">meta-aarch64</a>
- </div>
+ <div id="zone1alerts">
+
+ </div>
+
+{% if objects.paginator.count == 0 %}
+ {% if request.GET.filter or request.GET.search %}
+ <div class="row-fluid">
+ <div class="alert">
+ <form class="no-results input-append" id="searchform">
+ <input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
+ <button class="btn" type="submit" value="Search">Search</button>
+ <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all recipes</button>
+ </form>
+ </div>
+ </div>
+ {% else %}
+ <div class="alert alert-info lead">
+ <p>Toaster has no recipe information. To generate recipe information you can:</p>
+ <ul>
+ <li><a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#layer-source">Configure a layer source</a></li>
+ <li><a href="{% url 'importlayer' %}">Import a layer</a>, then run a build</li>
+ </ul>
+ </div>
+ {% endif %}
+
+{% else %}
{% include "basetable_top.html" %}
{% for o in objects %}
<tr class="data">
- <td class="target">
- {{o.name}} ({{o.id}}, {{o.up_id}})
- <a target="_blank" href="{{o.get_layersource_view_url}}"><i class="icon-share get-info"></i></a>
- </td>
- <td class="version">{{o.version}}</td>
- <td class="description">{{o.description}}</td>
- <td class="recipe-file">
- <code>{{o.file_path}}</code>
- <a href="{{o.get_vcs_link_url}}" target="_blank"><i class="icon-share get-info"></i></a>
- </td>
- <td class="target-section">{{o.section}}</td>
- <td class="license">{{o.license}}</td>
- <td class="layer"><a href="#">{{o.layer_version.layer.name}}</a></td>
- <td class="source">{{o.layer_source.name}}</td>
- <td class="branch">{{o.layer_version.commit}}</td>
- <td class="build">
- <a id="build-target" href="project-with-targets.html?target=3g-router-image" class="btn btn-block" style="display:none;">
- Build target
- </a>
- <a id="add-layer" href="#" class="btn btn-block nopop" title="1 layer added">
- <i class="icon-plus"></i>
- Add layer
- <i class="icon-question-sign get-help" title="To build this target, you must first add the meta-embeddedgeeks layer to your project"></i>
- </a>
- </td>
+ <td class="target">
+ {{o.name}}
+ <a target="_blank" href="{{o.get_layersource_view_url}}"><i class="icon-share get-info"></i></a>
+ </td>
+ <td class="version">{{o.version}}</td>
+ <td class="description">{% if o.description %}{{o.description}}{% else %}{{o.summary}}{%endif%}</td>
+ <td class="recipe-file">
+ <code>{{o.file_path}}</code>
+ <a href="{{o.vcs_link_url}}" target="_blank"><i class="icon-share get-info"></i></a>
+ </td>
+ <td class="target-section">{{o.section}}</td>
+ <td class="license">{{o.license}}</td>
+ <td class="layer"><a href="{% url 'layerdetails' o.preffered_layerversion.id%}">{{o.preffered_layerversion.layer.name}}</a></td>
+ <td class="branch">
+ {% if o.preffered_layerversion.up_branch %}
+ {{o.preffered_layerversion.up_branch.name}}
+ {% else %}
+ <a class="btn"
+ data-content="<ul class='unstyled'>
+ <li>{{o.layer_version.commit}}</li>
+ </ul>">
+ {{o.layer_version.commit|truncatechars:13}}
+ </a>
+ {% endif %}
+ </td>
+ <td class="add-layer" value="{{o.pk}}" layerversion_id="{{o.preffered_layerversion.pk}}">
+ <div id="layer-tooltip-{{o.pk}}" style="display: none; font-size: 11px; line-height: 1.3;" class="tooltip-inner">layer was modified</div>
+ <a href="{% url 'project' project.id %}#/targetbuild={{o.name}}" id="target-build-{{o.pk}}" class="btn btn-block remove-layer" style="display:none;" >
+ Build recipe
+ </a>
+ <a id="layer-add-{{o.pk}}" class="btn btn-block" style="display:none;" href="javascript:layerAdd({{o.preffered_layerversion.pk}}, '{{o.preffered_layerversion.layer.name}}', '{%url 'layerdetails' o.preffered_layerversion.pk%}', {{o.pk}})" >
+ <i class="icon-plus"></i>
+ Add layer
+ <i title="" class="icon-question-sign get-help" data-original-title="To build this target, you must first add the {{o.preffered_layerversion.layer.name}} layer to your project"></i>
+ </a>
+ </td>
</tr>
{% endfor %}
{% include "basetable_bottom.html" %}
@@ -65,122 +93,188 @@
<!-- Modals -->
<!-- 'Layer dependencies modal' -->
- <div id="dependencies-message" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true">
+ <div id="dependencies_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true">
+ <form id="dependencies_modal_form">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
- <h3>meta-acer dependencies</h3>
+ <h3><span class="layer-name"></span> dependencies</h3>
</div>
<div class="modal-body">
- <p><strong>meta-acer</strong> depends on some targets that are not added to your project. Select the ones you want to add:</p>
- <ul class="unstyled">
- <li>
- <label class="checkbox">
- <input type="checkbox" checked="checked">
- meta-android
- </label>
- </li>
- <li>
- <label class="checkbox">
- <input type="checkbox" checked="checked">
- meta-oe
- </label>
- </li>
+ <p><strong class="layer-name"></strong> depends on some layers that are not added to your project. Select the ones you want to add:</p>
+ <ul class="unstyled" id="dependencies_list">
</ul>
</div>
<div class="modal-footer">
- <button id="add-target-dependencies" type="submit" class="btn btn-primary" data-dismiss="modal" >Add targets</button>
- <button class="btn" data-dismiss="modal">Cancel</button>
+ <button class="btn btn-primary" type="submit">Add layers</button>
+ <button class="btn" type="reset" data-dismiss="modal">Cancel</button>
</div>
+ </form>
</div>
- <script src="assets/js/jquery-1.9.1.min.js" type='text/javascript'></script>
- <script src="assets/js/jquery.tablesorter.min.js" type='text/javascript'></script>
- <script src="assets/js/jquery-ui-1.10.3.custom.min.js"></script>
- <script src="assets/js/bootstrap.min.js" type='text/javascript'></script>
- <script src="assets/js/prettify.js" type='text/javascript'></script>
- <script src="assets/js/jit.js" type='text/javascript'></script>
- <script src="assets/js/main.js" type='text/javascript'></script>
-
- <script>
- $(document).ready(function() {
-
- //show or hide selected columns on load
- $("input:checkbox").each(function(){
- var selectedType = $(this).val();
- if($(this).is(":checked")){
- $("."+selectedType).show();
+{% endif %}
+
+{% if project %}
+<script>
+
+var tooltipUpdateText;
+
+/* ensure csrf cookie exists {% csrf_token %} */
+function _makeXHREditCall(data, onsuccess, onfail) {
+ $.ajax( {
+ type: "POST",
+ url: "{% url 'xhr_projectedit' project.id %}",
+ data: data,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (_data) {
+ if (_data.error != "ok") {
+ console.warn(_data.error);
+ } else {
+ updateButtons(_data.layers.map(function (e) {return e.id}));
+ if (onsuccess != undefined) onsuccess(_data);
}
- else{
- $("."+selectedType).hide();
+ },
+ error: function (_data) {
+ console.warn("Call failed");
+ console.warn(_data);
+ }
+ });
+}
+
+function show_alert(text, cls) {
+ $("#zone1alerts").html("<div class=\"alert alert-info lead\"><button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>" + text + "</div>");
+}
+
+
+function show_dependencies_modal(layerId, layerName, layerURL, dependencies) {
+ // update layer name
+ $('.layer-name').text(layerName);
+ var deplistHtml = "";
+ for (var i = 0; i < dependencies.length; i++) {
+ deplistHtml += "<li><label class=\"checkbox\"><input name=\"dependencies\" value=\""
+ deplistHtml += dependencies[i].id;
+ deplistHtml +="\" type=\"checkbox\" checked=\"checked\"/>";
+ deplistHtml += dependencies[i].name;
+ deplistHtml += "</label></li>";
+ }
+ $('#dependencies_list').html(deplistHtml);
+
+ var selected = [layerId];
+ var layer_link_list = undefined;
+
+ $("#dependencies_modal_form").submit(function (e) {
+ e.preventDefault();
+ $("input[name='dependencies']:checked").map(function () { selected.push(parseInt($(this).val()))});
+ layer_link_list = "<a href='"+layerURL+"'>"+layerName+"</a>";
+ if (selected.length > 1) {
+ tooltipUpdateText = "" + selected.length + " layers added";
+ } else {
+ tooltipUpdateText = "1 layer added";
+ }
+
+ for (var i = 0; i < selected.length; i++) {
+ for (var j = 0; j < dependencies.length; j++) {
+ if (dependencies[j].id == selected[i]) {
+ layer_link_list+= ", <a href='"+dependencies[j].layerdetailurl+"'>"+dependencies[j].name+"</a>"
+ break;
+ }
}
+ }
+
+ $('#dependencies_modal').modal('hide');
+
+ {% if project %}
+ _makeXHREditCall({ 'layerAdd': selected.join(",") }, function onXHRSuccess() {
+ show_alert("You have added <strong>"+selected.length+"</strong> layer(s) to <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>: " + layer_link_list);
});
+ {% endif %}
- // enable add target button
- $('#add-target-with-deps').removeAttr('disabled');
+ });
+ $('#dependencies_modal').modal('show');
+}
- //edit columns functionality (show / hide table columns)
- $("input:checkbox").change();
- $("input:checkbox").change(function(){
- var selectedType = $(this).val();
- if($(this).is(":checked")){
- $("."+selectedType).show();
- }
- else{
- $("."+selectedType).hide();
- }
- });
+function updateLayerCountLabels (amount) {
+ /* Update the filter labels */
+ var countLabel = $("#layer_version__projectlayer__project\\:{{project.id}}_count");
+ countLabel.text(Number(countLabel.text())+amount);
- //turn edit columns dropdown into a multi-select menu
- $('.dropdown-menu input, .dropdown-menu label').click(function(e) {
- e.stopPropagation();
- });
+ var countLabelRemaining = $("#layer_version__projectlayer__project\\:NOT{{project.id}}_count");
+ countLabelRemaining.text(Number(countLabelRemaining.text())-amount);
+}
- //show tooltip with applied filter
- $('#filtered').tooltip({container:'table', placement:'bottom', delay:{hide:1500}, html:true});
+var pressedButton = undefined;
- $('#filtered').click(function() {
- $(this).tooltip('hide');
- });
+function layerAdd(layerId, layerName, layerURL, pressedButtonId) {
+ pressedButton = pressedButtonId;
+ $.ajax({
+ url: '{% url "xhr_datatypeahead" %}',
+ data: {'type': 'layerdeps','value':layerId},
+ success: function(_data) {
+ if (_data.error != "ok") {
+ console.warn(_data.error);
+ } else {
+ updateLayerCountLabels(_data.list.length+1);
- //show target added tooltip
- $("#remove-target, #add-target, #add-target-with-deps2").tooltip({ trigger: 'manual' });
-
- // add target without dependencies
- $("#add-target").click(function(){
- $('#target-removed').hide();
- $('#target-added').html('<button type="button" class="close" data-dismiss="alert">&times;</button><strong>1</strong> target added to <a href="project-with-targets.html">your project</a>: <a href="#">meta-aarch64</a>').fadeIn();
- $('#add-target').tooltip('show');
- $("#add-target").hide();
- $(".add-targets .tooltip").delay(2000).fadeOut(function(){
- $("#remove-target").delay(300).fadeIn();
- });
- });
+ if (_data.list.length > 0) {
+ show_dependencies_modal(layerId, layerName, layerURL, _data.list);
+ }
+ else {
+ tooltipUpdateText = "1 layer added";
+ _makeXHREditCall({ 'layerAdd': layerId }, function () {
+ show_alert("You have added <strong>1</strong> layer to <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>: <a href=\""+layerURL+"\">" + layerName +"</a>");
+ });
+ }
+ }
+ }
+ })
+}
- // add target with dependencies
- $(document).on("click", "#add-target-dependencies", function() {
- $('#target-removed').hide();
- $('#target-added').html('<button type="button" class="close" data-dismiss="alert">&times;</button><strong>3</strong> targets added to <a href="project-with-targets.html">your project</a>: <a href="#">meta-acer</a> and its dependencies <a href="#">meta-android</a> and <a href="#">meta-oe</a>').delay(400).fadeIn(function(){
- $('#add-target-with-deps').tooltip('show');
- $("#add-target-with-deps, #add-target-with-deps").hide();
- $(".add-targets .tooltip").delay(2000).fadeOut(function(){
- $("#remove-target-with-deps").delay(300).fadeIn();
- });
- });
- });
+function buttonSet(id, state) {
+ var tohide, toshow;
+ if (state == "add")
+ {
+ toshow = "#layer-add-";
+ tohide = "#target-build-";
+ }
+ else if (state == "build")
+ {
+ tohide = "#layer-add-";
+ toshow = "#target-build-";
+ }
- // delete target
- $("#remove-target").click(function(){
- $('#target-added').hide();
- $('#target-removed').show();
- $('#remove-target').tooltip('show');
- $("#remove-target").hide();
- $(".add-targets .tooltip").delay(2000).fadeOut(function(){
- $("#add-target").delay(300).fadeIn();
+ var previouslyvisible = $(tohide + id).is(":visible");
+ if (previouslyvisible && id == pressedButton) {
+ $(tohide + id).fadeOut( function() {
+ $("#layer-tooltip-" + id).text(tooltipUpdateText);
+ $("#layer-tooltip-" + id).fadeIn().delay(2000).fadeOut(function(){
+ $(toshow + id).delay(300).fadeIn();
});
});
+ } else {
+ $(tohide + id).hide();
+ $("#layer-tooltip-" + id).hide();
+ $(toshow + id).show();
+ }
+};
+
+
+function updateButtons(projectLayers) {
+ var displayedLayers = [];
+ $(".add-layer").map(function () { displayedLayers.push( { "l": parseInt($(this).attr('layerversion_id')), "i": parseInt($(this).attr('value'))})});
+ for (var i=0; i < displayedLayers.length; i++) {
+ if (projectLayers.indexOf(displayedLayers[i].l) > -1) {
+ buttonSet(displayedLayers[i].i, "build");
+ }
+ else {
+ buttonSet(displayedLayers[i].i, "add");
+ }
+ }
+}
- });
+$(document).ready(function (){
+ updateButtons({{projectlayerset}});
+});
</script>
+{%endif%}
{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/task.html b/bitbake/lib/toaster/toastergui/templates/task.html
index 3c4a3d4893..907c621834 100644
--- a/bitbake/lib/toaster/toastergui/templates/task.html
+++ b/bitbake/lib/toaster/toastergui/templates/task.html
@@ -24,13 +24,17 @@
{# executed tasks outcome #}
<dl class="dl-horizontal">
{% if task.logfile %}
+ {% if MANAGED and build.project %}
+ <a class="btn btn-large" href="{% url 'build_artifact' build.id "tasklogfile" task.pk %}" style="margin:15px;">Download task log</a>
+ {% else %}
<dt>
<i class="icon-question-sign get-help" title="Path the task log file"></i> Log file
</dt>
<dd>
- <code>{{task.logfile}}</code>
+ <code>{{task.logfile}}</code>
</dd>
{% endif %}
+ {% endif %}
{# show stack trace for failed task #}
{% if task.outcome == task.OUTCOME_FAILED and log_head %}
<h3>Python stack trace</h3>
@@ -82,6 +86,9 @@
</td>
<td>
<a href="{%url "task" match.build.pk match.pk%}">{{match.task_name}}</a>
+ {% if task.get_description %}
+ <i class="icon-question-sign get-help hover-help" title="{{task.get_description}}"></i>
+ {% endif %}
</td>
<td>
<a href="{%url "task" match.build.pk match.pk%}">{{match.get_executed_display}}</a>
@@ -105,7 +112,7 @@
{% elif task.outcome == task.OUTCOME_COVERED %}
<dl class="dl-horizontal">
<dt>
- <i class="icon-question-sign get-help" title="The task providing the outcome of this task"></i> Task covered by
+ <i class="icon-question-sign get-help" title="The task(s) providing the outcome of this task"></i> Task covered by
</dt>
<dd>
<ul>
@@ -123,6 +130,13 @@
</dd>
</dl>
{%elif task.outcome == task.OUTCOME_CACHED%}
+ {% if MANAGED and build.project %}
+ {% for t in task.get_related_setscene %}
+ {% if forloop.last %}
+ <a class="btn btn-large" href="{% url 'build_artifact' build.id "tasklogfile" t.pk %}" style="margin:15px;">Download task log</a>
+ {% endif %}
+ {% endfor %}
+ {% else %}
<dl class="dl-horizontal">
<dt>
<i class="icon-question-sign get-help" title="Path the task log file"></i> Log file
@@ -131,6 +145,7 @@
<code>{% for t in task.get_related_setscene %} {{t.logfile}} {% endfor %}</code>
</dd>
</dl>
+ {% endif %}
{%elif task.outcome == task.OUTCOME_EMPTY%}
<div class="alert alert-info details">
This task is empty because it has the <code>noexec</code> flag set to <code>1</code>, or the task function is empty
@@ -184,6 +199,9 @@
<strong>Failed</strong> to restore output from sstate cache. The file was found but could not be unpacked.
</div>
<dl class="dl-horizontal">
+ {% if MANAGED and build.project %}
+ <a href="{% url 'build_artifact' build.id "tasklogfile" task.pk %}" style="margin:15px;">Download log</a>
+ {% else %}
<dt>
<i class="icon-question-sign get-help" title="Path to the cache attempt log file"></i>
Log file
@@ -194,6 +212,7 @@
Time (secs)
</dt>
<dd>{{task.elapsed_time|format_none_and_zero}}</dd>
+ {% endif %}
</dl>
<div class="alert alert-info">
Running the real task instead.
@@ -261,8 +280,8 @@
Time (secs)
</dt>
<dd>{{task.elapsed_time|format_none_and_zero|floatformat:2}}</dd>
- {% endif %}
- {% if task.cpu_usage > 0 %}
+ {% endif %}
+ {% if task.cpu_usage > 0 %}
<dt>
<i class="icon-question-sign get-help" title="The percentage of task CPU utilization"></i>
CPU usage
diff --git a/bitbake/lib/toaster/toastergui/templates/tasks.html b/bitbake/lib/toaster/toastergui/templates/tasks.html
index d0c6f4e326..5c1c476bad 100644
--- a/bitbake/lib/toaster/toastergui/templates/tasks.html
+++ b/bitbake/lib/toaster/toastergui/templates/tasks.html
@@ -93,6 +93,11 @@
</td>
<td class="outcome">
<a href="{%url "task" build.pk task.pk%} ">{{task.get_outcome_display}} </a>
+ {% if MANAGED and build.project and task.outcome = task.OUTCOME_FAILED %}
+ <a href="{% url 'build_artifact' build.pk "tasklogfile" task.pk %}">
+ <i class="icon-download-alt" title="Download task log file"></i>
+ </a>
+ {% endif %}
<i class="icon-question-sign get-help hover-help" title="{{task.get_outcome_help}}"></i>
</td>
<td class="cache_attempt">
@@ -107,9 +112,12 @@
<td class="disk_io">
{{task.disk_io|format_none_and_zero}}
</td>
+
+ {% if not MANAGED or not build.project %}
<td class="task_log">
{{task.logfile}}
</td>
+ {% endif %}
</tr>
{% endfor %}
@@ -124,10 +132,10 @@
// enable blue hightlight animation for the order link
if (location.href.search('#') > -1) {
var task_order = location.href.split('#')[1];
- $("#" + task_order).addClass("highlight");
+ $("#" + task_order).addClass("highlight");
}
});
-
+
</script>
{% endblock %}
diff --git a/bitbake/lib/toaster/toastergui/templates/unavailable_artifact.html b/bitbake/lib/toaster/toastergui/templates/unavailable_artifact.html
new file mode 100644
index 0000000000..b9f8fee037
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/unavailable_artifact.html
@@ -0,0 +1,15 @@
+{% extends "base.html" %}
+{% load projecttags %}
+{% load humanize %}
+{% load static %}
+
+{% block pagecontent %}
+
+<div class="row-fluid air">
+ <div class="alert alert-info span8 lead">
+ <p"> The build artifact you are trying to download no longer exists.</p>
+ <p><a href="javascript:window.history.back()">Back to previous page</a></p>
+ </div>
+</div>
+{% endblock %}
+
diff --git a/bitbake/lib/toaster/toastergui/templatetags/projecttags.py b/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
index b953aa1580..54700e3842 100644
--- a/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
+++ b/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
@@ -24,6 +24,8 @@ import re
from django import template
from django.utils import timezone
from django.template.defaultfilters import filesizeformat
+import json as JsonLib
+from django.utils.safestring import mark_safe
register = template.Library()
@@ -40,6 +42,19 @@ def sectohms(time):
hours = int(tdsec / 3600)
return "%02d:%02d:%02d" % (hours, int((tdsec - (hours * 3600))/ 60), int(tdsec) % 60)
+
+@register.filter(name = 'mapselect')
+def mapselect(value, argument):
+ return map(lambda x: vars(x)[argument], value)
+
+
+@register.filter(name = "json")
+def json(value):
+ # JSON spec says that "\/" is functionally identical to "/" to allow for HTML-tag embedding in JSON strings
+ # unfortunately, I can't find any option in the json module to turn on forward-slash escaping, so we do
+ # it manually here
+ return mark_safe(JsonLib.dumps(value, ensure_ascii=False).replace('</', '<\\/'))
+
@register.assignment_tag
def query(qs, **kwargs):
""" template tag which allows queryset filtering. Usage:
@@ -50,6 +65,25 @@ def query(qs, **kwargs):
"""
return qs.filter(**kwargs)
+
+@register.filter("whitespace_slice")
+def whitespace_space_filter(value, arg):
+ try:
+ bits = []
+ for x in arg.split(":"):
+ if len(x) == 0:
+ bits.append(None)
+ else:
+ # convert numeric value to the first whitespace after
+ first_whitespace = value.find(" ", int(x))
+ if first_whitespace == -1:
+ bits.append(int(x))
+ else:
+ bits.append(first_whitespace)
+ return value[slice(*bits)]
+ except (ValueError, TypeError):
+ raise
+
@register.filter
def divide(value, arg):
if int(arg) == 0:
@@ -91,6 +125,8 @@ def filtered_icon(options, filter):
for option in options:
if filter == option[1]:
return "btn-primary"
+ if ('daterange' == option[1]) and filter.startswith(option[4]):
+ return "btn-primary"
return ""
@register.filter
@@ -100,6 +136,8 @@ def filtered_tooltip(options, filter):
for option in options:
if filter == option[1]:
return "Showing only %s"%option[0]
+ if ('daterange' == option[1]) and filter.startswith(option[4]):
+ return "Showing only %s"%option[0]
return ""
@register.filter
@@ -253,3 +291,38 @@ def get_dict_value(dictionary, key):
return dictionary[key]
except (KeyError, IndexError):
return ''
+
+@register.filter
+def format_build_date(completed_on):
+ now = timezone.now()
+ delta = now - completed_on
+
+ if delta.days >= 1:
+ return True
+
+@register.filter
+def is_shaid(text):
+ """ return True if text length is 40 characters and all hex-digits
+ """
+ try:
+ int(text, 16)
+ if len(text) == 40:
+ return True
+ return False
+ except ValueError:
+ return False
+
+@register.filter
+def cut_layer_path_prefix(fullpath,layer_names):
+ ### if some part of the full local path to a layer matches
+ ### an entry in layer_names (sorted desc), return the layer
+ ### name relative path.
+ for lname in layer_names:
+ # import rpdb; rpdb.set_trace()
+ # only try layer names that are non-trivial to avoid false matches
+ if len(lname) >= 4:
+ # match layer name with as a subdir / or for remote layers /_
+ if re.search('/' + lname, fullpath) or re.search('/_' + lname, fullpath):
+ parts = re.split(lname, fullpath, 1)
+ return lname + parts[1]
+ return fullpath
diff --git a/bitbake/lib/toaster/toastergui/urls.py b/bitbake/lib/toaster/toastergui/urls.py
index a9c05922c2..76357e3b80 100644
--- a/bitbake/lib/toaster/toastergui/urls.py
+++ b/bitbake/lib/toaster/toastergui/urls.py
@@ -19,8 +19,12 @@
from django.conf.urls import patterns, include, url
from django.views.generic import RedirectView
+from django.http import HttpResponseBadRequest
+
urlpatterns = patterns('toastergui.views',
# landing page
+ url(r'^landing/$', 'landing', name='landing'),
+
url(r'^builds/$', 'builds', name='all-builds'),
# build info navigation
url(r'^build/(?P<build_id>\d+)$', 'builddashboard', name="builddashboard"),
@@ -30,7 +34,9 @@ urlpatterns = patterns('toastergui.views',
url(r'^build/(?P<build_id>\d+)/task/(?P<task_id>\d+)$', 'task', name='task'),
url(r'^build/(?P<build_id>\d+)/recipes/$', 'recipes', name='recipes'),
+ url(r'^build/(?P<build_id>\d+)/recipe/(?P<recipe_id>\d+)/active_tab/(?P<active_tab>\d{1})$', 'recipe', name='recipe'),
url(r'^build/(?P<build_id>\d+)/recipe/(?P<recipe_id>\d+)$', 'recipe', name='recipe'),
+ url(r'^build/(?P<build_id>\d+)/recipe_packages/(?P<recipe_id>\d+)$', 'recipe_packages', name='recipe_packages'),
url(r'^build/(?P<build_id>\d+)/packages/$', 'bpackage', name='packages'),
url(r'^build/(?P<build_id>\d+)/package/(?P<package_id>\d+)$', 'package_built_detail',
@@ -49,7 +55,7 @@ urlpatterns = patterns('toastergui.views',
url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/targetpkg$', 'targetpkg', name='targetpkg'),
url(r'^dentries/build/(?P<build_id>\d+)/target/(?P<target_id>\d+)$', 'dirinfo_ajax', name='dirinfo_ajax'),
url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo$', 'dirinfo', name='dirinfo'),
- url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo_filepath/(?P<file_path>(?:/[^/\n]+)*)$', 'dirinfo', name='dirinfo_filepath'),
+ url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo_filepath/_(?P<file_path>(?:/[^/\n]+)*)$', 'dirinfo', name='dirinfo_filepath'),
url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/packages$', 'tpackage', name='targetpackages'),
url(r'^build/(?P<build_id>\d+)/configuration$', 'configuration', name='configuration'),
url(r'^build/(?P<build_id>\d+)/configvars$', 'configvars', name='configvars'),
@@ -57,11 +63,14 @@ urlpatterns = patterns('toastergui.views',
url(r'^build/(?P<build_id>\d+)/cpuusage$', 'cpuusage', name='cpuusage'),
url(r'^build/(?P<build_id>\d+)/diskio$', 'diskio', name='diskio'),
- # image information dir - not yet implemented
+ # image information dir
url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/packagefile/(?P<packagefile_id>\d+)$',
'image_information_dir', name='image_information_dir'),
+ # build download artifact
+ url(r'^build/(?P<build_id>\d+)/artifact/(?P<artifact_type>\w+)/id/(?P<artifact_id>\w+)', 'build_artifact', name="build_artifact"),
+
# urls not linked from the dashboard
url(r'^layerversions/(?P<layerversion_id>\d+)/recipes/.*$', 'layer_versions_recipes', name='layer_versions_recipes'),
@@ -71,17 +80,30 @@ urlpatterns = patterns('toastergui.views',
url(r'^layers/$', 'layers', name='layers'),
url(r'^layer/(?P<layerid>\d+)/$', 'layerdetails', name='layerdetails'),
- url(r'^targets/$', 'targets', name='targets'),
+ url(r'^layer/$', lambda x: HttpResponseBadRequest(), name='base_layerdetails'),
+ url(r'^targets/$', 'targets', name='all-targets'),
url(r'^machines/$', 'machines', name='machines'),
+ url(r'^projects/$', 'projects', name='all-projects'),
+
+ url(r'^project/$', lambda x: HttpResponseBadRequest(), name='base_project'),
url(r'^project/(?P<pid>\d+)/$', 'project', name='project'),
url(r'^project/(?P<pid>\d+)/configuration$', 'projectconf', name='projectconf'),
url(r'^project/(?P<pid>\d+)/builds$', 'projectbuilds', name='projectbuilds'),
+ url(r'^xhr_build/$', 'xhr_build', name='xhr_build'),
url(r'^xhr_projectbuild/(?P<pid>\d+)/$', 'xhr_projectbuild', name='xhr_projectbuild'),
+ url(r'^xhr_projectinfo/$', 'xhr_projectinfo', name='xhr_projectinfo'),
url(r'^xhr_projectedit/(?P<pid>\d+)/$', 'xhr_projectedit', name='xhr_projectedit'),
+ url(r'^xhr_configvaredit/(?P<pid>\d+)/$', 'xhr_configvaredit', name='xhr_configvaredit'),
+
+ url(r'^xhr_datatypeahead/$', 'xhr_datatypeahead', name='xhr_datatypeahead'),
+ url(r'^xhr_importlayer/$', 'xhr_importlayer', name='xhr_importlayer'),
+ url(r'^xhr_updatelayer/$', 'xhr_updatelayer', name='xhr_updatelayer'),
+ # dashboard for failed build requests
+ url(r'^project/(?P<pid>\d+)/buildrequest/(?P<brid>\d+)$', 'buildrequestdetails', name='buildrequestdetails'),
# default redirection
- url(r'^$', RedirectView.as_view( url= 'builds/')),
+ url(r'^$', RedirectView.as_view( url= 'landing')),
)
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
index ea81423d51..be59c83651 100755
--- a/bitbake/lib/toaster/toastergui/views.py
+++ b/bitbake/lib/toaster/toastergui/views.py
@@ -22,22 +22,69 @@
import operator,re
import HTMLParser
-from django.db.models import Q, Sum
+from django.db.models import Q, Sum, Count, Max
from django.db import IntegrityError
from django.shortcuts import render, redirect
from orm.models import Build, Target, Task, Layer, Layer_Version, Recipe, LogMessage, Variable
from orm.models import Task_Dependency, Recipe_Dependency, Package, Package_File, Package_Dependency
-from orm.models import Target_Installed_Package, Target_File, Target_Image_File
+from orm.models import Target_Installed_Package, Target_File, Target_Image_File, BuildArtifact
from django.views.decorators.cache import cache_control
from django.core.urlresolvers import reverse
+from django.core.exceptions import MultipleObjectsReturned
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.http import HttpResponseBadRequest, HttpResponseNotFound
from django.utils import timezone
from django.utils.html import escape
-from datetime import timedelta
+from datetime import timedelta, datetime, date
from django.utils import formats
+from toastergui.templatetags.projecttags import json as jsonfilter
import json
+# all new sessions should come through the landing page;
+# determine in which mode we are running in, and redirect appropriately
+def landing(request):
+ if toastermain.settings.MANAGED:
+ from bldcontrol.models import BuildRequest
+ if BuildRequest.objects.count() == 0 and Project.objects.count() > 0:
+ return redirect(reverse('all-projects'), permanent = False)
+
+ if BuildRequest.objects.all().count() > 0:
+ return redirect(reverse('all-builds'), permanent = False)
+ else:
+ if Build.objects.all().count() > 0:
+ return redirect(reverse('all-builds'), permanent = False)
+
+ context = {}
+ if toastermain.settings.MANAGED:
+ context['lvs_nos'] = Layer_Version.objects.all().count()
+
+ return render(request, 'landing.html', context)
+
+# returns a list for most recent builds; for use in the Project page, xhr_ updates, and other places, as needed
+def _project_recent_build_list(prj):
+ return map(lambda x: {
+ "id": x.pk,
+ "targets" : map(lambda y: {"target": y.target, "task": y.task }, x.brtarget_set.all()),
+ "status": x.get_state_display(),
+ "errors": map(lambda y: {"type": y.errtype, "msg": y.errmsg, "tb": y.traceback}, x.brerror_set.all()),
+ "updated": x.updated.strftime('%s')+"000",
+ "command_time": (x.updated - x.created).total_seconds(),
+ "br_page_url": reverse('buildrequestdetails', args=(x.project.id, x.pk) ),
+ "build" : map( lambda y: {"id": y.pk,
+ "status": y.get_outcome_display(),
+ "completed_on" : y.completed_on.strftime('%s')+"000",
+ "build_time" : (y.completed_on - y.started_on).total_seconds(),
+ "build_page_url" : reverse('builddashboard', args=(y.pk,)),
+ 'build_time_page_url': reverse('buildtime', args=(y.pk,)),
+ "errors": y.errors_no,
+ "warnings": y.warnings_no,
+ "completeper": y.completeper() if y.outcome == Build.IN_PROGRESS else "0",
+ "eta": y.eta().strftime('%s')+"000" if y.outcome == Build.IN_PROGRESS else "0",
+ }, Build.objects.filter(buildrequest = x)),
+ }, list(prj.buildrequest_set.filter(Q(state__lt=BuildRequest.REQ_COMPLETED) or Q(state=BuildRequest.REQ_DELETED)).order_by("-pk")) +
+ list(prj.buildrequest_set.filter(state__in=[BuildRequest.REQ_COMPLETED, BuildRequest.REQ_FAILED]).order_by("-pk")[:3]))
+
+
def _build_page_range(paginator, index = 1):
try:
page = paginator.page(index)
@@ -78,12 +125,13 @@ def _redirect_parameters(view, g, mandatory_parameters, *args, **kwargs):
params[i] = g[i]
for i in mandatory_parameters:
if not i in params:
- params[i] = mandatory_parameters[i]
+ params[i] = urllib.unquote(str(mandatory_parameters[i]))
return redirect(url + "?%s" % urllib.urlencode(params), *args, **kwargs)
FIELD_SEPARATOR = ":"
-VALUE_SEPARATOR = "!"
+AND_VALUE_SEPARATOR = "!"
+OR_VALUE_SEPARATOR = "|"
DESCENDING = "-"
def __get_q_for_val(name, value):
@@ -92,20 +140,31 @@ def __get_q_for_val(name, value):
if "AND" in value:
return reduce(operator.and_, map(lambda x: __get_q_for_val(name, x), [ x for x in value.split("AND") ]))
if value.startswith("NOT"):
- kwargs = { name : value.strip("NOT") }
+ value = value[3:]
+ if value == 'None':
+ value = None
+ kwargs = { name : value }
return ~Q(**kwargs)
else:
+ if value == 'None':
+ value = None
kwargs = { name : value }
return Q(**kwargs)
def _get_filtering_query(filter_string):
search_terms = filter_string.split(FIELD_SEPARATOR)
- keys = search_terms[0].split(VALUE_SEPARATOR)
- values = search_terms[1].split(VALUE_SEPARATOR)
+ and_keys = search_terms[0].split(AND_VALUE_SEPARATOR)
+ and_values = search_terms[1].split(AND_VALUE_SEPARATOR)
- querydict = dict(zip(keys, values))
- return reduce(operator.and_, map(lambda x: __get_q_for_val(x, querydict[x]), [k for k in querydict]))
+ and_query = []
+ for kv in zip(and_keys, and_values):
+ or_keys = kv[0].split(OR_VALUE_SEPARATOR)
+ or_values = kv[1].split(OR_VALUE_SEPARATOR)
+ querydict = dict(zip(or_keys, or_values))
+ and_query.append(reduce(operator.or_, map(lambda x: __get_q_for_val(x, querydict[x]), [k for k in querydict])))
+
+ return reduce(operator.and_, [k for k in and_query])
def _get_toggle_order(request, orderkey, reverse = False):
if reverse:
@@ -135,13 +194,13 @@ def _validate_input(input, model):
return None, invalid
# Check we have an equal number of terms both sides of the colon
- if len(input_list[0].split(VALUE_SEPARATOR)) != len(input_list[1].split(VALUE_SEPARATOR)):
+ if len(input_list[0].split(AND_VALUE_SEPARATOR)) != len(input_list[1].split(AND_VALUE_SEPARATOR)):
invalid = "Not all arg names got values"
return None, invalid + str(input_list)
# Check we are looking for a valid field
valid_fields = model._meta.get_all_field_names()
- for field in input_list[0].split(VALUE_SEPARATOR):
+ for field in input_list[0].split(AND_VALUE_SEPARATOR):
if not reduce(lambda x, y: x or y, map(lambda x: field.startswith(x), [ x for x in valid_fields ])):
return None, (field, [ x for x in valid_fields ])
@@ -181,6 +240,7 @@ def _search_tuple(request, model):
def _get_queryset(model, queryset, filter_string, search_term, ordering_string, ordering_secondary=''):
if filter_string:
filter_query = _get_filtering_query(filter_string)
+# raise Exception(filter_query)
queryset = queryset.filter(filter_query)
else:
queryset = queryset.all()
@@ -188,7 +248,7 @@ def _get_queryset(model, queryset, filter_string, search_term, ordering_string,
if search_term:
queryset = _get_search_results(search_term, queryset, model)
- if ordering_string and queryset:
+ if ordering_string:
column, order = ordering_string.split(':')
if column == re.sub('-','',ordering_secondary):
ordering_secondary=''
@@ -219,177 +279,70 @@ def _save_parameters_cookies(response, pagesize, orderby, request):
response.set_cookie(key='orderby', value=html_parser.unescape(orderby), path=request.path)
return response
-# shows the "all builds" page
-def builds(request):
- template = 'build.html'
- # define here what parameters the view needs in the GET portion in order to
- # be able to display something. 'count' and 'page' are mandatory for all views
- # that use paginators.
- (pagesize, orderby) = _get_parameters_values(request, 10, 'completed_on:-')
- mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby' : orderby }
- retval = _verify_parameters( request.GET, mandatory_parameters )
- if retval:
- return _redirect_parameters( 'all-builds', request.GET, mandatory_parameters)
-
- # boilerplate code that takes a request for an object type and returns a queryset
- # for that object type. copypasta for all needed table searches
- (filter_string, search_term, ordering_string) = _search_tuple(request, Build)
- queryset_all = Build.objects.exclude(outcome = Build.IN_PROGRESS)
- queryset_with_search = _get_queryset(Build, queryset_all, None, search_term, ordering_string, '-completed_on')
- queryset = _get_queryset(Build, queryset_all, filter_string, search_term, ordering_string, '-completed_on')
-
- # retrieve the objects that will be displayed in the table; builds a paginator and gets a page range to display
- build_info = _build_page_range(Paginator(queryset, pagesize), request.GET.get('page', 1))
-
- # build view-specific information; this is rendered specifically in the builds page, at the top of the page (i.e. Recent builds)
- build_mru = Build.objects.filter(completed_on__gte=(timezone.now()-timedelta(hours=24))).order_by("-started_on")[:3]
-
- # set up list of fstypes for each build
- fstypes_map = {};
- for build in build_info:
- targets = Target.objects.filter( build_id = build.id )
- comma = "";
- extensions = "";
- for t in targets:
- if ( not t.is_image ):
- continue
- tif = Target_Image_File.objects.filter( target_id = t.id )
- for i in tif:
- s=re.sub('.*tar.bz2', 'tar.bz2', i.file_name)
- if s == i.file_name:
- s=re.sub('.*\.', '', i.file_name)
- if None == re.search(s,extensions):
- extensions += comma + s
- comma = ", "
- fstypes_map[build.id]=extensions
-
- # send the data to the template
- context = {
- # specific info for
- 'mru' : build_mru,
- # TODO: common objects for all table views, adapt as needed
- 'objects' : build_info,
- 'objectname' : "builds",
- 'default_orderby' : 'completed_on:-',
- 'fstypes' : fstypes_map,
- 'search_term' : search_term,
- 'total_count' : queryset_with_search.count(),
- # Specifies the display of columns for the table, appearance in "Edit columns" box, toggling default show/hide, and specifying filters for columns
- 'tablecols' : [
- {'name': 'Outcome', # column with a single filter
- 'qhelp' : "The outcome tells you if a build successfully completed or failed", # the help button content
- 'dclass' : "span2", # indication about column width; comes from the design
- 'orderfield': _get_toggle_order(request, "outcome"), # adds ordering by the field value; default ascending unless clicked from ascending into descending
- 'ordericon':_get_toggle_order_icon(request, "outcome"),
- # filter field will set a filter on that column with the specs in the filter description
- # the class field in the filter has no relation with clclass; the control different aspects of the UI
- # still, it is recommended for the values to be identical for easy tracking in the generated HTML
- 'filter' : {'class' : 'outcome',
- 'label': 'Show:',
- 'options' : [
- ('Successful builds', 'outcome:' + str(Build.SUCCEEDED), queryset_with_search.filter(outcome=str(Build.SUCCEEDED)).count()), # this is the field search expression
- ('Failed builds', 'outcome:'+ str(Build.FAILED), queryset_with_search.filter(outcome=str(Build.FAILED)).count()),
- ]
- }
- },
- {'name': 'Target', # default column, disabled box, with just the name in the list
- 'qhelp': "This is the build target or build targets (i.e. one or more recipes or image recipes)",
- 'orderfield': _get_toggle_order(request, "target__target"),
- 'ordericon':_get_toggle_order_icon(request, "target__target"),
- },
- {'name': 'Machine',
- 'qhelp': "The machine is the hardware for which you are building a recipe or image recipe",
- 'orderfield': _get_toggle_order(request, "machine"),
- 'ordericon':_get_toggle_order_icon(request, "machine"),
- 'dclass': 'span3'
- }, # a slightly wider column
- {'name': 'Started on', 'clclass': 'started_on', 'hidden' : 1, # this is an unchecked box, which hides the column
- 'qhelp': "The date and time you started the build",
- 'orderfield': _get_toggle_order(request, "started_on", True),
- 'ordericon':_get_toggle_order_icon(request, "started_on"),
- 'filter' : {'class' : 'started_on',
- 'label': 'Show:',
- 'options' : [
- ("Today's builds" , 'started_on__gte:'+timezone.now().strftime("%Y-%m-%d"), queryset_with_search.filter(started_on__gte=timezone.now()).count()),
- ("Yesterday's builds", 'started_on__gte:'+(timezone.now()-timedelta(hours=24)).strftime("%Y-%m-%d"), queryset_with_search.filter(started_on__gte=(timezone.now()-timedelta(hours=24))).count()),
- ("This week's builds", 'started_on__gte:'+(timezone.now()-timedelta(days=7)).strftime("%Y-%m-%d"), queryset_with_search.filter(started_on__gte=(timezone.now()-timedelta(days=7))).count()),
- ]
- }
- },
- {'name': 'Completed on',
- 'qhelp': "The date and time the build finished",
- 'orderfield': _get_toggle_order(request, "completed_on", True),
- 'ordericon':_get_toggle_order_icon(request, "completed_on"),
- 'orderkey' : 'completed_on',
- 'filter' : {'class' : 'completed_on',
- 'label': 'Show:',
- 'options' : [
- ("Today's builds", 'completed_on__gte:'+timezone.now().strftime("%Y-%m-%d"), queryset_with_search.filter(completed_on__gte=timezone.now()).count()),
- ("Yesterday's builds", 'completed_on__gte:'+(timezone.now()-timedelta(hours=24)).strftime("%Y-%m-%d"), queryset_with_search.filter(completed_on__gte=(timezone.now()-timedelta(hours=24))).count()),
- ("This week's builds", 'completed_on__gte:'+(timezone.now()-timedelta(days=7)).strftime("%Y-%m-%d"), queryset_with_search.filter(completed_on__gte=(timezone.now()-timedelta(days=7))).count()),
- ]
- }
- },
- {'name': 'Failed tasks', 'clclass': 'failed_tasks', # specifing a clclass will enable the checkbox
- 'qhelp': "How many tasks failed during the build",
- 'filter' : {'class' : 'failed_tasks',
- 'label': 'Show:',
- 'options' : [
- ('Builds with failed tasks', 'task_build__outcome:4', queryset_with_search.filter(task_build__outcome=4).count()),
- ('Builds without failed tasks', 'task_build__outcome:NOT4', queryset_with_search.filter(~Q(task_build__outcome=4)).count()),
- ]
- }
- },
- {'name': 'Errors', 'clclass': 'errors_no',
- 'qhelp': "How many errors were encountered during the build (if any)",
- 'orderfield': _get_toggle_order(request, "errors_no", True),
- 'ordericon':_get_toggle_order_icon(request, "errors_no"),
- 'orderkey' : 'errors_no',
- 'filter' : {'class' : 'errors_no',
- 'label': 'Show:',
- 'options' : [
- ('Builds with errors', 'errors_no__gte:1', queryset_with_search.filter(errors_no__gte=1).count()),
- ('Builds without errors', 'errors_no:0', queryset_with_search.filter(errors_no=0).count()),
- ]
- }
- },
- {'name': 'Warnings', 'clclass': 'warnings_no',
- 'qhelp': "How many warnings were encountered during the build (if any)",
- 'orderfield': _get_toggle_order(request, "warnings_no", True),
- 'ordericon':_get_toggle_order_icon(request, "warnings_no"),
- 'orderkey' : 'warnings_no',
- 'filter' : {'class' : 'warnings_no',
- 'label': 'Show:',
- 'options' : [
- ('Builds with warnings','warnings_no__gte:1', queryset_with_search.filter(warnings_no__gte=1).count()),
- ('Builds without warnings','warnings_no:0', queryset_with_search.filter(warnings_no=0).count()),
- ]
- }
- },
- {'name': 'Time', 'clclass': 'time', 'hidden' : 1,
- 'qhelp': "How long it took the build to finish",
- 'orderfield': _get_toggle_order(request, "timespent", True),
- 'ordericon':_get_toggle_order_icon(request, "timespent"),
- 'orderkey' : 'timespent',
- },
- {'name': 'Log',
- 'dclass': "span4",
- 'qhelp': "Path to the build main log file",
- 'clclass': 'log', 'hidden': 1,
- 'orderfield': _get_toggle_order(request, "cooker_log_path"),
- 'ordericon':_get_toggle_order_icon(request, "cooker_log_path"),
- 'orderkey' : 'cooker_log_path',
- },
- {'name': 'Output', 'clclass': 'output',
- 'qhelp': "The root file system types produced by the build. You can find them in your <code>/build/tmp/deploy/images/</code> directory",
- # TODO: compute image fstypes from Target_Image_File
- },
- ]
- }
-
- response = render(request, template, context)
- _save_parameters_cookies(response, pagesize, orderby, request)
- return response
+# date range: normalize GUI's dd/mm/yyyy to date object
+def _normalize_input_date(date_str,default):
+ date_str=re.sub('/', '-', date_str)
+ # accept dd/mm/yyyy to d/m/yy
+ try:
+ date_in = datetime.strptime(date_str, "%d-%m-%Y")
+ except ValueError:
+ # courtesy try with two digit year
+ try:
+ date_in = datetime.strptime(date_str, "%d-%m-%y")
+ except ValueError:
+ return default
+ date_in = date_in.replace(tzinfo=default.tzinfo)
+ return date_in
+
+# convert and normalize any received date range filter, for example:
+# "completed_on__gte!completed_on__lt:01/03/2015!02/03/2015_daterange" to
+# "completed_on__gte!completed_on__lt:2015-03-01!2015-03-02"
+def _modify_date_range_filter(filter_string):
+ # was the date range radio button selected?
+ if 0 > filter_string.find('_daterange'):
+ return filter_string,''
+ # normalize GUI dates to database format
+ filter_string = filter_string.replace('_daterange','').replace(':','!');
+ filter_list = filter_string.split('!');
+ if 4 != len(filter_list):
+ return filter_string
+ today = timezone.localtime(timezone.now())
+ date_id = filter_list[1]
+ date_from = _normalize_input_date(filter_list[2],today)
+ date_to = _normalize_input_date(filter_list[3],today)
+ # swap dates if manually set dates are out of order
+ if date_to < date_from:
+ date_to,date_from = date_from,date_to
+ # convert to strings, make 'date_to' inclusive by moving to begining of next day
+ date_from_str = date_from.strftime("%Y-%m-%d")
+ date_to_str = (date_to+timedelta(days=1)).strftime("%Y-%m-%d")
+ filter_string=filter_list[0]+'!'+filter_list[1]+':'+date_from_str+'!'+date_to_str
+ daterange_selected = re.sub('__.*','', date_id)
+ return filter_string,daterange_selected
+
+def _add_daterange_context(queryset_all, request, daterange_list):
+ # calculate the exact begining of local today and yesterday
+ today_begin = timezone.localtime(timezone.now())
+ today_begin = date(today_begin.year,today_begin.month,today_begin.day)
+ yesterday_begin = today_begin-timedelta(days=1)
+ # add daterange persistent
+ context_date = {}
+ context_date['last_date_from'] = request.GET.get('last_date_from',timezone.localtime(timezone.now()).strftime("%d/%m/%Y"))
+ context_date['last_date_to' ] = request.GET.get('last_date_to' ,context_date['last_date_from'])
+ # calculate the date ranges, avoid second sort for 'created'
+ # fetch the respective max range from the database
+ context_date['daterange_filter']=''
+ for key in daterange_list:
+ queryset_key = queryset_all.order_by(key)
+ try:
+ context_date['dateMin_'+key]=timezone.localtime(getattr(queryset_key.first(),key)).strftime("%d/%m/%Y")
+ except AttributeError:
+ context_date['dateMin_'+key]=timezone.localtime(timezone.now())
+ try:
+ context_date['dateMax_'+key]=timezone.localtime(getattr(queryset_key.last(),key)).strftime("%d/%m/%Y")
+ except AttributeError:
+ context_date['dateMax_'+key]=timezone.localtime(timezone.now())
+ return context_date,today_begin,yesterday_begin
##
@@ -401,7 +354,7 @@ def builddashboard( request, build_id ):
template = "builddashboard.html"
if Build.objects.filter( pk=build_id ).count( ) == 0 :
return redirect( builds )
- build = Build.objects.filter( pk = build_id )[ 0 ];
+ build = Build.objects.get( pk = build_id );
layerVersionId = Layer_Version.objects.filter( build = build_id );
recipeCount = Recipe.objects.filter( layer_version__id__in = layerVersionId ).count( );
tgts = Target.objects.filter( build_id = build_id ).order_by( 'target' );
@@ -421,12 +374,8 @@ def builddashboard( request, build_id ):
hasImages = True
npkg = 0
pkgsz = 0
- pid= 0
- tp = Target_Installed_Package.objects.filter( target_id = t.id )
package = None
- for p in tp:
- pid = p.package_id
- package = Package.objects.get( pk = p.package_id )
+ for package in Package.objects.filter(id__in = [x.package_id for x in t.target_installed_package_set.all()]):
pkgsz = pkgsz + package.size
if ( package.installed_name ):
npkg = npkg + 1
@@ -439,7 +388,7 @@ def builddashboard( request, build_id ):
if ( ndx < 0 ):
ndx = 0;
f = i.file_name[ ndx + 1: ]
- imageFiles.append({ 'path': f, 'size' : i.file_size })
+ imageFiles.append({ 'id': i.id, 'path': f, 'size' : i.file_size })
if ( t.is_image and
(( len( imageFiles ) <= 0 ) or ( len( t.license_manifest_path ) <= 0 ))):
targetHasNoImages = True
@@ -457,6 +406,8 @@ def builddashboard( request, build_id ):
if ( p.installed_name ):
packageCount = packageCount + 1
+ logmessages = list(LogMessage.objects.filter( build = build_id ))
+
context = {
'build' : build,
'hasImages' : hasImages,
@@ -464,20 +415,24 @@ def builddashboard( request, build_id ):
'targets' : targets,
'recipecount' : recipeCount,
'packagecount' : packageCount,
- 'logmessages' : LogMessage.objects.filter( build = build_id ),
+ 'logmessages' : logmessages,
}
return render( request, template, context )
-def generateCoveredList( task ):
- revList = _find_task_revdep( task );
- list = { };
- for t in revList:
- if ( t.outcome == Task.OUTCOME_COVERED ):
- list.update( generateCoveredList( t ));
- else:
- list[ t.task_name ] = t;
- return( list );
+
+def generateCoveredList2( revlist = [] ):
+ covered_list = [ x for x in revlist if x.outcome == Task.OUTCOME_COVERED ]
+ while len(covered_list):
+ revlist = [ x for x in revlist if x.outcome != Task.OUTCOME_COVERED ]
+ if len(revlist) > 0:
+ return revlist
+
+ newlist = _find_task_revdep_list(covered_list)
+
+ revlist = list(set(revlist + newlist))
+ covered_list = [ x for x in revlist if x.outcome == Task.OUTCOME_COVERED ]
+ return revlist
def task( request, build_id, task_id ):
template = "task.html"
@@ -493,10 +448,8 @@ def task( request, build_id, task_id ):
key=lambda t:'%s_%s %s'%( t.recipe.name, t.recipe.version, t.task_name ))
coveredBy = '';
if ( task.outcome == Task.OUTCOME_COVERED ):
- dict = generateCoveredList( task )
- coveredBy = [ ]
- for name, t in dict.items( ):
- coveredBy.append( t )
+# _list = generateCoveredList( task )
+ coveredBy = sorted(generateCoveredList2( _find_task_revdep( task ) ), key = lambda x: x.recipe.name)
log_head = ''
log_body = ''
if task.outcome == task.OUTCOME_FAILED:
@@ -534,28 +487,80 @@ def task( request, build_id, task_id ):
return render( request, template, context )
-
-def recipe(request, build_id, recipe_id):
+def recipe(request, build_id, recipe_id, active_tab="1"):
template = "recipe.html"
if Recipe.objects.filter(pk=recipe_id).count() == 0 :
return redirect(builds)
- object = Recipe.objects.filter(pk=recipe_id)[0]
- layer_version = Layer_Version.objects.filter(pk=object.layer_version_id)[0]
- layer = Layer.objects.filter(pk=layer_version.layer_id)[0]
+ object = Recipe.objects.get(pk=recipe_id)
+ layer_version = Layer_Version.objects.get(pk=object.layer_version_id)
+ layer = Layer.objects.get(pk=layer_version.layer_id)
tasks = Task.objects.filter(recipe_id = recipe_id, build_id = build_id).exclude(order__isnull=True).exclude(task_name__endswith='_setscene').exclude(outcome=Task.OUTCOME_NA)
- packages = Package.objects.filter(recipe_id = recipe_id).filter(build_id = build_id).filter(size__gte=0)
+ package_count = Package.objects.filter(recipe_id = recipe_id).filter(build_id = build_id).filter(size__gte=0).count()
+
+ if active_tab != '1' and active_tab != '3' and active_tab != '4' :
+ active_tab = '1'
+ tab_states = {'1': '', '3': '', '4': ''}
+ tab_states[active_tab] = 'active'
context = {
- 'build' : Build.objects.filter(pk=build_id)[0],
+ 'build' : Build.objects.get(pk=build_id),
'object' : object,
'layer_version' : layer_version,
'layer' : layer,
'tasks' : tasks,
- 'packages': packages,
+ 'package_count' : package_count,
+ 'tab_states' : tab_states,
}
return render(request, template, context)
+def recipe_packages(request, build_id, recipe_id):
+ template = "recipe_packages.html"
+ if Recipe.objects.filter(pk=recipe_id).count() == 0 :
+ return redirect(builds)
+
+ (pagesize, orderby) = _get_parameters_values(request, 10, 'name:+')
+ mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby': orderby }
+ retval = _verify_parameters( request.GET, mandatory_parameters )
+ if retval:
+ return _redirect_parameters( 'recipe_packages', request.GET, mandatory_parameters, build_id = build_id, recipe_id = recipe_id)
+ (filter_string, search_term, ordering_string) = _search_tuple(request, Package)
+
+ recipe = Recipe.objects.get(pk=recipe_id)
+ queryset = Package.objects.filter(recipe_id = recipe_id).filter(build_id = build_id).filter(size__gte=0)
+ package_count = queryset.count()
+ queryset = _get_queryset(Package, queryset, filter_string, search_term, ordering_string, 'name')
+
+ packages = _build_page_range(Paginator(queryset, pagesize),request.GET.get('page', 1))
+
+ context = {
+ 'build' : Build.objects.get(pk=build_id),
+ 'recipe' : recipe,
+ 'objects' : packages,
+ 'object_count' : package_count,
+ 'tablecols':[
+ {
+ 'name':'Package',
+ 'orderfield': _get_toggle_order(request,"name"),
+ 'ordericon': _get_toggle_order_icon(request,"name"),
+ 'orderkey': "name",
+ },
+ {
+ 'name':'Version',
+ },
+ {
+ 'name':'Size',
+ 'orderfield': _get_toggle_order(request,"size", True),
+ 'ordericon': _get_toggle_order_icon(request,"size"),
+ 'orderkey': 'size',
+ 'dclass': 'sizecol span2',
+ },
+ ]
+ }
+ response = render(request, template, context)
+ _save_parameters_cookies(response, pagesize, orderby, request)
+ return response
+
def target_common( request, build_id, target_id, variant ):
template = "target.html"
(pagesize, orderby) = _get_parameters_values(request, 25, 'name:+')
@@ -575,14 +580,19 @@ def target_common( request, build_id, target_id, variant ):
packages_sum = queryset.aggregate( Sum( 'installed_size' ))
queryset = _get_queryset(
Package, queryset, filter_string, search_term, ordering_string, 'name' )
+ queryset = queryset.select_related("recipe", "recipe__layer_version", "recipe__layer_version__layer")
packages = _build_page_range( Paginator(queryset, pagesize), request.GET.get( 'page', 1 ))
+
+
+ build = Build.objects.get( pk = build_id )
+
# bring in package dependencies
for p in packages.object_list:
p.runtime_dependencies = p.package_dependencies_source.filter(
- target_id = target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS )
+ target_id = target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS ).select_related("depends_on")
p.reverse_runtime_dependencies = p.package_dependencies_target.filter(
- target_id = target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS )
+ target_id = target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS ).select_related("package")
tc_package = {
'name' : 'Package',
'qhelp' : 'Packaged output resulting from building a recipe included in this image',
@@ -609,8 +619,6 @@ def target_common( request, build_id, target_id, variant ):
tc_sizePercentage = {
'name' : 'Size over total (%)',
'qhelp' : 'Proportion of the overall size represented by this package',
- 'orderfield' : _get_toggle_order( request, "size" ),
- 'ordericon' : _get_toggle_order_icon( request, "size" ),
'clclass' : 'size_over_total',
'hidden' : 1,
}
@@ -639,8 +647,7 @@ eans multiple licenses exist that cover different parts of the source',
tc_dependencies[ "hidden" ] = 1
tc_rdependencies = {
'name' : 'Reverse dependencies',
- 'qhelp' : 'Package run-time reverse dependencies (i.e. which other packages depend on t\
-his package',
+ 'qhelp' : 'Package run-time reverse dependencies (i.e. which other packages depend on this package',
'clclass' : 'brought_in_by',
}
if ( variant == 'target' ):
@@ -652,6 +659,7 @@ his package',
'qhelp' : 'The name of the recipe building the package',
'orderfield' : _get_toggle_order( request, "recipe__name" ),
'ordericon' : _get_toggle_order_icon( request, "recipe__name" ),
+ 'orderkey' : "recipe__name",
'clclass' : 'recipe_name',
'hidden' : 0,
}
@@ -666,6 +674,7 @@ his package',
'qhelp' : 'The name of the layer providing the recipe that builds the package',
'orderfield' : _get_toggle_order( request, "recipe__layer_version__layer__name" ),
'ordericon' : _get_toggle_order_icon( request, "recipe__layer_version__layer__name" ),
+ 'orderkey' : "recipe__layer_version__layer__name",
'clclass' : 'layer_name',
'hidden' : 1,
}
@@ -674,6 +683,7 @@ his package',
'qhelp' : 'The Git branch of the layer providing the recipe that builds the package',
'orderfield' : _get_toggle_order( request, "recipe__layer_version__branch" ),
'ordericon' : _get_toggle_order_icon( request, "recipe__layer_version__branch" ),
+ 'orderkey' : "recipe__layer_version__branch",
'clclass' : 'layer_branch',
'hidden' : 1,
}
@@ -683,18 +693,10 @@ his package',
'clclass' : 'layer_commit',
'hidden' : 1,
}
- tc_layerDir = {
- 'name':'Layer directory',
- 'qhelp':'Location in disk of the layer providing the recipe that builds the package',
- 'orderfield' : _get_toggle_order( request, "recipe__layer_version__layer__local_path" ),
- 'ordericon' : _get_toggle_order_icon( request, "recipe__layer_version__layer__local_path" )\
-,
- 'clclass' : 'layer_directory',
- 'hidden' : 1,
- }
+
context = {
'objectname': variant,
- 'build' : Build.objects.filter( pk = build_id )[ 0 ],
+ 'build' : build,
'target' : Target.objects.filter( pk = target_id )[ 0 ],
'objects' : packages,
'packages_sum' : packages_sum[ 'installed_size__sum' ],
@@ -713,10 +715,22 @@ his package',
tc_layer,
tc_layerBranch,
tc_layerCommit,
- tc_layerDir,
]
}
+ if not toastermain.settings.MANAGED or build.project is None:
+
+ tc_layerDir = {
+ 'name':'Layer directory',
+ 'qhelp':'Location in disk of the layer providing the recipe that builds the package',
+ 'orderfield' : _get_toggle_order( request, "recipe__layer_version__layer__local_path" ),
+ 'ordericon' : _get_toggle_order_icon( request, "recipe__layer_version__layer__local_path" ),
+ 'orderkey' : "recipe__layer_version__layer__local_path",
+ 'clclass' : 'layer_directory',
+ 'hidden' : 1,
+ }
+ context['tablecols'].append(tc_layerDir)
+
response = render(request, template, context)
_save_parameters_cookies(response, pagesize, orderby, request)
return response
@@ -814,7 +828,7 @@ def _get_dir_entries(build_id, target_id, start):
# sort by directories first, then by name
rsorted = sorted(response, key=lambda entry : entry['name'])
rsorted = sorted(rsorted, key=lambda entry : entry['isdir'], reverse=True)
- return json.dumps(rsorted, cls=LazyEncoder)
+ return json.dumps(rsorted, cls=LazyEncoder).replace('</', '<\\/')
def dirinfo(request, build_id, target_id, file_path=None):
template = "dirinfo.html"
@@ -837,8 +851,8 @@ def dirinfo(request, build_id, target_id, file_path=None):
if head != sep:
dir_list.insert(0, head)
- context = { 'build': Build.objects.filter(pk=build_id)[0],
- 'target': Target.objects.filter(pk=target_id)[0],
+ context = { 'build': Build.objects.get(pk=build_id),
+ 'target': Target.objects.get(pk=target_id),
'packages_sum': packages_sum['installed_size__sum'],
'objects': objects,
'dir_list': dir_list,
@@ -847,18 +861,17 @@ def dirinfo(request, build_id, target_id, file_path=None):
return render(request, template, context)
def _find_task_dep(task):
- tp = []
- for p in Task_Dependency.objects.filter(task=task):
- if (p.depends_on.order > 0) and (p.depends_on.outcome != Task.OUTCOME_NA):
- tp.append(p.depends_on);
- return tp
+ return map(lambda x: x.depends_on, Task_Dependency.objects.filter(task=task).filter(depends_on__order__gt = 0).exclude(depends_on__outcome = Task.OUTCOME_NA).select_related("depends_on"))
def _find_task_revdep(task):
tp = []
- for p in Task_Dependency.objects.filter(depends_on=task):
- if (p.task.order > 0) and (p.task.outcome != Task.OUTCOME_NA):
- tp.append(p.task);
+ tp = map(lambda t: t.task, Task_Dependency.objects.filter(depends_on=task).filter(task__order__gt=0).exclude(task__outcome = Task.OUTCOME_NA).select_related("task", "task__recipe", "task__build"))
+ return tp
+
+def _find_task_revdep_list(tasklist):
+ tp = []
+ tp = map(lambda t: t.task, Task_Dependency.objects.filter(depends_on__in=tasklist).filter(task__order__gt=0).exclude(task__outcome = Task.OUTCOME_NA).select_related("task", "task__recipe", "task__build"))
return tp
def _find_task_provider(task):
@@ -929,7 +942,10 @@ def tasks_common(request, build_id, variant, task_anchor):
return _redirect_parameters( variant, request.GET, mandatory_parameters, build_id = build_id)
(filter_string, search_term, ordering_string) = _search_tuple(request, Task)
queryset_all = Task.objects.filter(build=build_id).exclude(order__isnull=True).exclude(outcome=Task.OUTCOME_NA)
+ queryset_all = queryset_all.select_related("recipe", "build")
+
queryset_with_search = _get_queryset(Task, queryset_all, None , search_term, ordering_string, 'order')
+
if ordering_string.startswith('outcome'):
queryset = _get_queryset(Task, queryset_all, filter_string, search_term, 'order:+', 'order')
queryset = sorted(queryset, key=lambda ur: (ur.outcome_text), reverse=ordering_string.endswith('-'))
@@ -939,6 +955,7 @@ def tasks_common(request, build_id, variant, task_anchor):
else:
queryset = _get_queryset(Task, queryset_all, filter_string, search_term, ordering_string, 'order')
+
# compute the anchor's page
if anchor:
request.GET = request.GET.copy()
@@ -1078,12 +1095,13 @@ def tasks_common(request, build_id, variant, task_anchor):
}
if 'diskio' == variant: tc_diskio['hidden']='0'; del tc_diskio['clclass']; tc_cache['hidden']='1';
+ build = Build.objects.get(pk=build_id)
context = { 'objectname': variant,
'object_search_display': object_search_display,
'filter_search_display': filter_search_display,
'title': title_variant,
- 'build': Build.objects.filter(pk=build_id)[0],
+ 'build': build,
'objects': tasks,
'default_orderby' : orderby,
'search_term': search_term,
@@ -1099,9 +1117,12 @@ def tasks_common(request, build_id, variant, task_anchor):
tc_time,
tc_cpu,
tc_diskio,
- tc_log,
]}
+
+ if not toastermain.settings.MANAGED or build.project is None:
+ context['tablecols'].append(tc_log)
+
response = render(request, template, context)
_save_parameters_cookies(response, pagesize, orderby, request)
return response
@@ -1130,14 +1151,14 @@ def recipes(request, build_id):
if retval:
return _redirect_parameters( 'recipes', request.GET, mandatory_parameters, build_id = build_id)
(filter_string, search_term, ordering_string) = _search_tuple(request, Recipe)
- queryset = Recipe.objects.filter(layer_version__id__in=Layer_Version.objects.filter(build=build_id))
+ queryset = Recipe.objects.filter(layer_version__id__in=Layer_Version.objects.filter(build=build_id)).select_related("layer_version", "layer_version__layer")
queryset = _get_queryset(Recipe, queryset, filter_string, search_term, ordering_string, 'name')
recipes = _build_page_range(Paginator(queryset, pagesize),request.GET.get('page', 1))
# prefetch the forward and reverse recipe dependencies
deps = { }; revs = { }
- queryset_dependency=Recipe_Dependency.objects.filter(recipe__layer_version__build_id = build_id)
+ queryset_dependency=Recipe_Dependency.objects.filter(recipe__layer_version__build_id = build_id).select_related("depends_on", "recipe")
for recipe in recipes:
deplist = [ ]
for recipe_dep in [x for x in queryset_dependency if x.recipe_id == recipe.id]:
@@ -1148,9 +1169,11 @@ def recipes(request, build_id):
revlist.append(recipe_dep)
revs[recipe.id] = revlist
+ build = Build.objects.get(pk=build_id)
+
context = {
'objectname': 'recipes',
- 'build': Build.objects.filter(pk=build_id)[0],
+ 'build': build,
'objects': recipes,
'default_orderby' : 'name:+',
'recipe_deps' : deps,
@@ -1221,6 +1244,11 @@ def recipes(request, build_id):
'qhelp':'The Git commit of the layer providing the recipe',
'clclass': 'layer_version__layer__commit', 'hidden': 1,
},
+ ]
+ }
+
+ if not toastermain.settings.MANAGED or build.project is None:
+ context['tablecols'].append(
{
'name':'Layer directory',
'qhelp':'Path to the layer prodiving the recipe',
@@ -1228,9 +1256,8 @@ def recipes(request, build_id):
'ordericon':_get_toggle_order_icon(request, "layer_version__layer__local_path"),
'orderkey' : 'layer_version__layer__local_path',
'clclass': 'layer_version__layer__local_path', 'hidden': 1,
- },
- ]
- }
+ })
+
response = render(request, template, context)
_save_parameters_cookies(response, pagesize, orderby, request)
@@ -1240,15 +1267,23 @@ def configuration(request, build_id):
template = 'configuration.html'
variables = Variable.objects.filter(build=build_id)
- BB_VERSION=variables.filter(variable_name='BB_VERSION')[0].variable_value
- BUILD_SYS=variables.filter(variable_name='BUILD_SYS')[0].variable_value
- NATIVELSBSTRING=variables.filter(variable_name='NATIVELSBSTRING')[0].variable_value
- TARGET_SYS=variables.filter(variable_name='TARGET_SYS')[0].variable_value
- MACHINE=variables.filter(variable_name='MACHINE')[0].variable_value
- DISTRO=variables.filter(variable_name='DISTRO')[0].variable_value
- DISTRO_VERSION=variables.filter(variable_name='DISTRO_VERSION')[0].variable_value
- TUNE_FEATURES=variables.filter(variable_name='TUNE_FEATURES')[0].variable_value
- TARGET_FPU=variables.filter(variable_name='TARGET_FPU')[0].variable_value
+
+ def _get_variable_or_empty(variable_name):
+ from django.core.exceptions import ObjectDoesNotExist
+ try:
+ return variables.get(variable_name=variable_name).variable_value
+ except ObjectDoesNotExist:
+ return ''
+
+ BB_VERSION=_get_variable_or_empty(variable_name='BB_VERSION')
+ BUILD_SYS=_get_variable_or_empty(variable_name='BUILD_SYS')
+ NATIVELSBSTRING=_get_variable_or_empty(variable_name='NATIVELSBSTRING')
+ TARGET_SYS=_get_variable_or_empty(variable_name='TARGET_SYS')
+ MACHINE=_get_variable_or_empty(variable_name='MACHINE')
+ DISTRO=_get_variable_or_empty(variable_name='DISTRO')
+ DISTRO_VERSION=_get_variable_or_empty(variable_name='DISTRO_VERSION')
+ TUNE_FEATURES=_get_variable_or_empty(variable_name='TUNE_FEATURES')
+ TARGET_FPU=_get_variable_or_empty(variable_name='TARGET_FPU')
targets = Target.objects.filter(build=build_id)
@@ -1256,7 +1291,7 @@ def configuration(request, build_id):
'objectname': 'configuration',
'object_search_display':'variables',
'filter_search_display':'variables',
- 'build': Build.objects.filter(pk=build_id)[0],
+ 'build': Build.objects.get(pk=build_id),
'BB_VERSION':BB_VERSION,
'BUILD_SYS':BUILD_SYS,
'NATIVELSBSTRING':NATIVELSBSTRING,
@@ -1291,6 +1326,11 @@ def configvars(request, build_id):
variables = _build_page_range(Paginator(queryset, pagesize), request.GET.get('page', 1))
+ layers = Layer.objects.filter(layer_version_layer__projectlayer__project__build=build_id).order_by("-name")
+ layer_names = map(lambda layer : layer.name, layers)
+ # special case for meta built-in layer
+ layer_names.append('meta')
+
# show all matching files (not just the last one)
file_filter= search_term + ":"
if filter_string.find('/conf/') > 0:
@@ -1301,18 +1341,19 @@ def configvars(request, build_id):
file_filter += 'conf/distro/'
if filter_string.find('/bitbake.conf') > 0:
file_filter += '/bitbake.conf'
- build_dir=re.sub("/tmp/log/.*","",Build.objects.filter(pk=build_id)[0].cooker_log_path)
+ build_dir=re.sub("/tmp/log/.*","",Build.objects.get(pk=build_id).cooker_log_path)
context = {
'objectname': 'configvars',
'object_search_display':'BitBake variables',
'filter_search_display':'variables',
'file_filter': file_filter,
- 'build': Build.objects.filter(pk=build_id)[0],
+ 'build': Build.objects.get(pk=build_id),
'objects' : variables,
'total_count':queryset_with_search.count(),
'default_orderby' : 'variable_name:+',
'search_term':search_term,
+ 'layer_names' : layer_names,
# Specifies the display of columns for the table, appearance in "Edit columns" box, toggling default show/hide, and specifying filters for columns
'tablecols' : [
{'name': 'Variable',
@@ -1372,9 +1413,11 @@ def bpackage(request, build_id):
packages = _build_page_range(Paginator(queryset, pagesize),request.GET.get('page', 1))
+ build = Build.objects.get( pk = build_id )
+
context = {
'objectname': 'packages built',
- 'build': Build.objects.filter(pk=build_id)[0],
+ 'build': build,
'objects' : packages,
'default_orderby' : 'name:+',
'tablecols':[
@@ -1431,7 +1474,7 @@ def bpackage(request, build_id):
'qhelp':'The Git branch of the layer providing the recipe that builds the package',
'orderfield': _get_toggle_order(request, "recipe__layer_version__branch"),
'ordericon':_get_toggle_order_icon(request, "recipe__layer_version__branch"),
- 'orderkey' : 'recipe__layer_version__layer__branch',
+ 'orderkey' : 'recipe__layer_version__branch',
'clclass': 'recipe__layer_version__branch', 'hidden': 1,
},
{
@@ -1439,16 +1482,20 @@ def bpackage(request, build_id):
'qhelp':'The Git commit of the layer providing the recipe that builds the package',
'clclass': 'recipe__layer_version__layer__commit', 'hidden': 1,
},
- {
+ ]
+ }
+
+ if not toastermain.settings.MANAGED or build.project is None:
+
+ tc_layerDir = {
'name':'Layer directory',
'qhelp':'Path to the layer providing the recipe that builds the package',
'orderfield': _get_toggle_order(request, "recipe__layer_version__layer__local_path"),
'ordericon':_get_toggle_order_icon(request, "recipe__layer_version__layer__local_path"),
'orderkey' : 'recipe__layer_version__layer__local_path',
'clclass': 'recipe__layer_version__layer__local_path', 'hidden': 1,
- },
- ]
}
+ context['tablecols'].append(tc_layerDir)
response = render(request, template, context)
_save_parameters_cookies(response, pagesize, orderby, request)
@@ -1457,13 +1504,13 @@ def bpackage(request, build_id):
def bfile(request, build_id, package_id):
template = 'bfile.html'
files = Package_File.objects.filter(package = package_id)
- context = {'build': Build.objects.filter(pk=build_id)[0], 'objects' : files}
+ context = {'build': Build.objects.get(pk=build_id), 'objects' : files}
return render(request, template, context)
def tpackage(request, build_id, target_id):
template = 'package.html'
packages = map(lambda x: x.package, list(Target_Installed_Package.objects.filter(target=target_id)))
- context = {'build': Build.objects.filter(pk=build_id)[0], 'objects' : packages}
+ context = {'build': Build.objects.get(pk=build_id), 'objects' : packages}
return render(request, template, context)
def layer(request):
@@ -1485,7 +1532,7 @@ def layer_versions_recipes(request, layerversion_id):
recipes = Recipe.objects.filter(layer_version__id = layerversion_id)
context = {'objects': recipes,
- 'layer_version' : Layer_Version.objects.filter( id = layerversion_id )[0]
+ 'layer_version' : Layer_Version.objects.get( id = layerversion_id )
}
return render(request, template, context)
@@ -1616,10 +1663,10 @@ def package_built_detail(request, build_id, package_id):
(filter_string, search_term, ordering_string) = _search_tuple(request, Package_File)
paths = _get_queryset(Package_File, queryset, filter_string, search_term, ordering_string, 'path')
- package = Package.objects.filter(pk=package_id)[0]
+ package = Package.objects.get(pk=package_id)
package.fullpackagespec = _get_fullpackagespec(package)
context = {
- 'build' : Build.objects.filter(pk=build_id)[0],
+ 'build' : Build.objects.get(pk=build_id),
'package' : package,
'dependency_count' : _get_package_dependency_count(package, -1, False),
'objects' : paths,
@@ -1649,11 +1696,11 @@ def package_built_dependencies(request, build_id, package_id):
if Build.objects.filter(pk=build_id).count() == 0 :
return redirect(builds)
- package = Package.objects.filter(pk=package_id)[0]
+ package = Package.objects.get(pk=package_id)
package.fullpackagespec = _get_fullpackagespec(package)
dependencies = _get_package_dependencies(package_id)
context = {
- 'build' : Build.objects.filter(pk=build_id)[0],
+ 'build' : Build.objects.get(pk=build_id),
'package' : package,
'runtime_deps' : dependencies['runtime_deps'],
'other_deps' : dependencies['other_deps'],
@@ -1678,12 +1725,12 @@ def package_included_detail(request, build_id, target_id, package_id):
queryset = Package_File.objects.filter(package_id__exact=package_id)
paths = _get_queryset(Package_File, queryset, filter_string, search_term, ordering_string, 'path')
- package = Package.objects.filter(pk=package_id)[0]
+ package = Package.objects.get(pk=package_id)
package.fullpackagespec = _get_fullpackagespec(package)
package.alias = _get_package_alias(package)
- target = Target.objects.filter(pk=target_id)[0]
+ target = Target.objects.get(pk=target_id)
context = {
- 'build' : Build.objects.filter(pk=build_id)[0],
+ 'build' : Build.objects.get(pk=build_id),
'target' : target,
'package' : package,
'reverse_count' : _get_package_reverse_dep_count(package, target_id),
@@ -1714,14 +1761,14 @@ def package_included_dependencies(request, build_id, target_id, package_id):
if Build.objects.filter(pk=build_id).count() == 0 :
return redirect(builds)
- package = Package.objects.filter(pk=package_id)[0]
+ package = Package.objects.get(pk=package_id)
package.fullpackagespec = _get_fullpackagespec(package)
package.alias = _get_package_alias(package)
- target = Target.objects.filter(pk=target_id)[0]
+ target = Target.objects.get(pk=target_id)
dependencies = _get_package_dependencies(package_id, target_id)
context = {
- 'build' : Build.objects.filter(pk=build_id)[0],
+ 'build' : Build.objects.get(pk=build_id),
'package' : package,
'target' : target,
'runtime_deps' : dependencies['runtime_deps'],
@@ -1746,16 +1793,16 @@ def package_included_reverse_dependencies(request, build_id, target_id, package_
queryset = Package_Dependency.objects.select_related('depends_on__name', 'depends_on__size').filter(depends_on=package_id, target_id=target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS)
objects = _get_queryset(Package_Dependency, queryset, filter_string, search_term, ordering_string, 'package__name')
- package = Package.objects.filter(pk=package_id)[0]
+ package = Package.objects.get(pk=package_id)
package.fullpackagespec = _get_fullpackagespec(package)
package.alias = _get_package_alias(package)
- target = Target.objects.filter(pk=target_id)[0]
+ target = Target.objects.get(pk=target_id)
for o in objects:
if o.package.version != '':
o.package.version += '-' + o.package.revision
o.alias = _get_package_alias(o.package)
context = {
- 'build' : Build.objects.filter(pk=build_id)[0],
+ 'build' : Build.objects.get(pk=build_id),
'package' : package,
'target' : target,
'objects' : objects,
@@ -1801,7 +1848,7 @@ if toastermain.settings.MANAGED:
from django.contrib.auth.decorators import login_required
from orm.models import Project, ProjectLayer, ProjectTarget, ProjectVariable
- from orm.models import Branch, LayerSource, ToasterSetting, Release, Machine
+ from orm.models import Branch, LayerSource, ToasterSetting, Release, Machine, LayerVersionDependency
from bldcontrol.models import BuildRequest
import traceback
@@ -1810,30 +1857,305 @@ if toastermain.settings.MANAGED:
# the context processor that supplies data used across all the pages
def managedcontextprocessor(request):
+ import subprocess
ret = {
"projects": Project.objects.all(),
- "MANAGED" : toastermain.settings.MANAGED
+ "MANAGED" : toastermain.settings.MANAGED,
+ "DEBUG" : toastermain.settings.DEBUG,
+ "TOASTER_BRANCH": toastermain.settings.TOASTER_BRANCH,
+ "TOASTER_REVISION" : toastermain.settings.TOASTER_REVISION,
}
if 'project_id' in request.session:
- ret['project'] = Project.objects.get(pk = request.session['project_id'])
+ try:
+ ret['project'] = Project.objects.get(pk = request.session['project_id'])
+ except Project.DoesNotExist:
+ del request.session['project_id']
return ret
+
+ class InvalidRequestException(Exception):
+ def __init__(self, response):
+ self.response = response
+
+
+ # shows the "all builds" page for managed mode; it displays build requests (at least started!) instead of actual builds
+ def builds(request):
+ template = 'managed_builds.html'
+ # define here what parameters the view needs in the GET portion in order to
+ # be able to display something. 'count' and 'page' are mandatory for all views
+ # that use paginators.
+
+ buildrequests = BuildRequest.objects.exclude(state__lte = BuildRequest.REQ_INPROGRESS).exclude(state=BuildRequest.REQ_DELETED)
+
+ try:
+ context, pagesize, orderby = _build_list_helper(request, buildrequests, True)
+ except InvalidRequestException as e:
+ return _redirect_parameters( builds, request.GET, e.response)
+
+ response = render(request, template, context)
+ _save_parameters_cookies(response, pagesize, orderby, request)
+ return response
+
+
+
+ # helper function, to be used on "all builds" and "project builds" pages
+ def _build_list_helper(request, buildrequests, insert_projects):
+ # ATTN: we use here the ordering parameters for interactive mode; the translation for BuildRequest fields will happen below
+ default_orderby = 'completed_on:-'
+ (pagesize, orderby) = _get_parameters_values(request, 10, default_orderby)
+ mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby' : orderby }
+ retval = _verify_parameters( request.GET, mandatory_parameters )
+ if retval:
+ raise InvalidRequestException(mandatory_parameters)
+
+ orig_orderby = orderby
+ # translate interactive mode ordering to managed mode ordering
+ ordering_params = orderby.split(":")
+ if ordering_params[0] == "completed_on":
+ ordering_params[0] = "updated"
+ if ordering_params[0] == "started_on":
+ ordering_params[0] = "created"
+ if ordering_params[0] == "errors_no":
+ ordering_params[0] = "build__errors_no"
+ if ordering_params[0] == "warnings_no":
+ ordering_params[0] = "build__warnings_no"
+ if ordering_params[0] == "machine":
+ ordering_params[0] = "build__machine"
+ if ordering_params[0] == "target__target":
+ ordering_params[0] = "brtarget__target"
+ if ordering_params[0] == "timespent":
+ ordering_params[0] = "id"
+ orderby = default_orderby
+
+ request.GET = request.GET.copy() # get a mutable copy of the GET QueryDict
+ request.GET['orderby'] = ":".join(ordering_params)
+
+ # boilerplate code that takes a request for an object type and returns a queryset
+ # for that object type. copypasta for all needed table searches
+ (filter_string, search_term, ordering_string) = _search_tuple(request, BuildRequest)
+ # post-process any date range filters
+ filter_string,daterange_selected = _modify_date_range_filter(filter_string)
+
+ # we don't display in-progress or deleted builds
+ queryset_all = buildrequests.exclude(state = BuildRequest.REQ_DELETED)
+ queryset_all = queryset_all.select_related("build", "build__project").annotate(Count('brerror'))
+ queryset_with_search = _get_queryset(BuildRequest, queryset_all, filter_string, search_term, ordering_string, '-updated')
+
+
+ # retrieve the objects that will be displayed in the table; builds a paginator and gets a page range to display
+ build_info = _build_page_range(Paginator(queryset_with_search, pagesize), request.GET.get('page', 1))
+
+ # build view-specific information; this is rendered specifically in the builds page, at the top of the page (i.e. Recent builds)
+ # most recent build is like projects' most recent builds, but across all projects
+ build_mru = _managed_get_latest_builds()
+
+ fstypes_map = {};
+ for build_request in build_info:
+ # set display variables for build request
+ build_request.machine = build_request.brvariable_set.get(name="MACHINE").value
+ build_request.timespent = build_request.updated - build_request.created
+
+ # set up list of fstypes for each build
+ if build_request.build is None:
+ continue
+ targets = Target.objects.filter( build_id = build_request.build.id )
+ comma = "";
+ extensions = "";
+ for t in targets:
+ if ( not t.is_image ):
+ continue
+ tif = Target_Image_File.objects.filter( target_id = t.id )
+ for i in tif:
+ s=re.sub('.*tar.bz2', 'tar.bz2', i.file_name)
+ if s == i.file_name:
+ s=re.sub('.*\.', '', i.file_name)
+ if None == re.search(s,extensions):
+ extensions += comma + s
+ comma = ", "
+ fstypes_map[build_request.build.id]=extensions
+
+
+ # send the data to the template
+ context = {
+ # specific info for
+ 'mru' : build_mru,
+ # TODO: common objects for all table views, adapt as needed
+ 'objects' : build_info,
+ 'objectname' : "builds",
+ 'default_orderby' : 'updated:-',
+ 'fstypes' : fstypes_map,
+ 'search_term' : search_term,
+ 'total_count' : queryset_with_search.count(),
+ 'daterange_selected' : daterange_selected,
+ # Specifies the display of columns for the table, appearance in "Edit columns" box, toggling default show/hide, and specifying filters for columns
+ 'tablecols' : [
+ {'name': 'Outcome', # column with a single filter
+ 'qhelp' : "The outcome tells you if a build successfully completed or failed", # the help button content
+ 'dclass' : "span2", # indication about column width; comes from the design
+ 'orderfield': _get_toggle_order(request, "state"), # adds ordering by the field value; default ascending unless clicked from ascending into descending
+ 'ordericon':_get_toggle_order_icon(request, "state"),
+ # filter field will set a filter on that column with the specs in the filter description
+ # the class field in the filter has no relation with clclass; the control different aspects of the UI
+ # still, it is recommended for the values to be identical for easy tracking in the generated HTML
+ 'filter' : {'class' : 'outcome',
+ 'label': 'Show:',
+ 'options' : [
+ ('Successful builds', 'build__outcome:' + str(Build.SUCCEEDED), queryset_all.filter(build__outcome = Build.SUCCEEDED).count()), # this is the field search expression
+ ('Failed builds', 'build__outcome:NOT'+ str(Build.SUCCEEDED), queryset_all.exclude(build__outcome = Build.SUCCEEDED).count()),
+ ]
+ }
+ },
+ {'name': 'Recipe', # default column, disabled box, with just the name in the list
+ 'qhelp': "What you built (i.e. one or more recipes or image recipes)",
+ 'orderfield': _get_toggle_order(request, "brtarget__target"),
+ 'ordericon':_get_toggle_order_icon(request, "brtarget__target"),
+ },
+ {'name': 'Machine',
+ 'qhelp': "The machine is the hardware for which you are building a recipe or image recipe",
+ 'orderfield': _get_toggle_order(request, "build__machine"),
+ 'ordericon':_get_toggle_order_icon(request, "build__machine"),
+ 'dclass': 'span3'
+ }, # a slightly wider column
+ ]
+ }
+
+ if (insert_projects):
+ context['tablecols'].append(
+ {'name': 'Project', 'clclass': 'project',
+ }
+ )
+
+ # calculate the exact begining of local today and yesterday
+ context_date,today_begin,yesterday_begin = _add_daterange_context(queryset_all, request, {'created','updated'})
+ context.update(context_date)
+
+ context['tablecols'].append(
+ {'name': 'Started on', 'clclass': 'started_on', 'hidden' : 1, # this is an unchecked box, which hides the column
+ 'qhelp': "The date and time you started the build",
+ 'orderfield': _get_toggle_order(request, "created", True),
+ 'ordericon':_get_toggle_order_icon(request, "created"),
+ 'filter' : {'class' : 'created',
+ 'label': 'Show:',
+ 'options' : [
+ ("Today's builds" , 'created__gte:'+today_begin.strftime("%Y-%m-%d"), queryset_all.filter(created__gte=today_begin).count()),
+ ("Yesterday's builds",
+ 'created__gte!created__lt:'
+ +yesterday_begin.strftime("%Y-%m-%d")+'!'
+ +today_begin.strftime("%Y-%m-%d"),
+ queryset_all.filter(
+ created__gte=yesterday_begin,
+ created__lt=today_begin
+ ).count()),
+ ("Build date range", 'daterange', 1, '', 'created'),
+ ]
+ }
+ }
+ )
+ context['tablecols'].append(
+ {'name': 'Completed on',
+ 'qhelp': "The date and time the build finished",
+ 'orderfield': _get_toggle_order(request, "updated", True),
+ 'ordericon':_get_toggle_order_icon(request, "updated"),
+ 'orderkey' : 'updated',
+ 'filter' : {'class' : 'updated',
+ 'label': 'Show:',
+ 'options' : [
+ ("Today's builds" , 'updated__gte:'+today_begin.strftime("%Y-%m-%d"), queryset_all.filter(updated__gte=today_begin).count()),
+ ("Yesterday's builds",
+ 'updated__gte!updated__lt:'
+ +yesterday_begin.strftime("%Y-%m-%d")+'!'
+ +today_begin.strftime("%Y-%m-%d"),
+ queryset_all.filter(
+ updated__gte=yesterday_begin,
+ updated__lt=today_begin
+ ).count()),
+ ("Build date range", 'daterange', 1, '', 'updated'),
+ ]
+ }
+ }
+ )
+ context['tablecols'].append(
+ {'name': 'Failed tasks', 'clclass': 'failed_tasks', # specifing a clclass will enable the checkbox
+ 'qhelp': "How many tasks failed during the build",
+ 'filter' : {'class' : 'failed_tasks',
+ 'label': 'Show:',
+ 'options' : [
+ ('Builds with failed tasks', 'build__task_build__outcome:%d' % Task.OUTCOME_FAILED,
+ queryset_all.filter(build__task_build__outcome=Task.OUTCOME_FAILED).count()),
+ ('Builds without failed tasks', 'build__task_build__outcome:%d' % Task.OUTCOME_FAILED,
+ queryset_all.filter(~Q(build__task_build__outcome=Task.OUTCOME_FAILED)).count()),
+ ]
+ }
+ }
+ )
+ context['tablecols'].append(
+ {'name': 'Errors', 'clclass': 'errors_no',
+ 'qhelp': "How many errors were encountered during the build (if any)",
+ 'orderfield': _get_toggle_order(request, "build__errors_no", True),
+ 'ordericon':_get_toggle_order_icon(request, "build__errors_no"),
+ 'orderkey' : 'errors_no',
+ 'filter' : {'class' : 'errors_no',
+ 'label': 'Show:',
+ 'options' : [
+ ('Builds with errors', 'build|build__errors_no__gt:None|0',
+ queryset_all.filter(Q(build=None) | Q(build__errors_no__gt=0)).count()),
+ ('Builds without errors', 'build__errors_no:0',
+ queryset_all.filter(build__errors_no=0).count()),
+ ]
+ }
+ }
+ )
+ context['tablecols'].append(
+ {'name': 'Warnings', 'clclass': 'warnings_no',
+ 'qhelp': "How many warnings were encountered during the build (if any)",
+ 'orderfield': _get_toggle_order(request, "build__warnings_no", True),
+ 'ordericon':_get_toggle_order_icon(request, "build__warnings_no"),
+ 'orderkey' : 'build__warnings_no',
+ 'filter' : {'class' : 'build__warnings_no',
+ 'label': 'Show:',
+ 'options' : [
+ ('Builds with warnings','build__warnings_no__gte:1', queryset_all.filter(build__warnings_no__gte=1).count()),
+ ('Builds without warnings','build__warnings_no:0', queryset_all.filter(build__warnings_no=0).count()),
+ ]
+ }
+ }
+ )
+ context['tablecols'].append(
+ {'name': 'Time', 'clclass': 'time', 'hidden' : 1,
+ 'qhelp': "How long it took the build to finish",
+# 'orderfield': _get_toggle_order(request, "timespent", True),
+# 'ordericon':_get_toggle_order_icon(request, "timespent"),
+ 'orderkey' : 'timespent',
+ }
+ )
+ context['tablecols'].append(
+ {'name': 'Image files', 'clclass': 'output',
+ 'qhelp': "The root file system types produced by the build. You can find them in your <code>/build/tmp/deploy/images/</code> directory",
+ # TODO: compute image fstypes from Target_Image_File
+ }
+ )
+
+ return context, pagesize, orderby
+
# new project
def newproject(request):
template = "newproject.html"
context = {
'email': request.user.email if request.user.is_authenticated() else '',
'username': request.user.username if request.user.is_authenticated() else '',
- 'releases': Release.objects.order_by("id"),
- 'defaultbranch': ToasterSetting.objects.get(name = "DEFAULT_RELEASE").value,
+ 'releases': Release.objects.order_by("description"),
}
+ try:
+ context['defaultbranch'] = ToasterSetting.objects.get(name = "DEFAULT_RELEASE").value
+ except ToasterSetting.DoesNotExist:
+ pass
if request.method == "GET":
# render new project page
return render(request, template, context)
elif request.method == "POST":
- mandatory_fields = ['projectname', 'email', 'username', 'projectversion']
+ mandatory_fields = ['projectname', 'projectversion']
try:
# make sure we have values for all mandatory_fields
if reduce( lambda x, y: x or y, map(lambda x: len(request.POST.get(x, '')) == 0, mandatory_fields)):
@@ -1842,19 +2164,18 @@ if toastermain.settings.MANAGED:
", ".join([x for x in mandatory_fields if len(request.POST.get(x, '')) == 0 ]))
if not request.user.is_authenticated():
- user = authenticate(username = request.POST['username'], password = 'nopass')
+ user = authenticate(username = request.POST.get('username', '_anonuser'), password = 'nopass')
if user is None:
- user = User.objects.create_user(username = request.POST['username'], email = request.POST['email'], password = "nopass")
+ user = User.objects.create_user(username = request.POST.get('username', '_anonuser'), email = request.POST.get('email', ''), password = "nopass")
user = authenticate(username = user.username, password = 'nopass')
login(request, user)
# save the project
- prj = Project.objects.create_project(name = request.POST['projectname'],
- release = Release.objects.get(pk = request.POST['projectversion']))
+ prj = Project.objects.create_project(name = request.POST['projectname'], release = Release.objects.get(pk = request.POST['projectversion']))
prj.user_id = request.user.pk
prj.save()
- return redirect(reverse(project, args = (prj.pk,)))
+ return redirect(reverse(project, args=(prj.pk,)) + "#/newproject")
except (IntegrityError, BadParameterException) as e:
# fill in page with previously submitted values
@@ -1867,6 +2188,8 @@ if toastermain.settings.MANAGED:
raise Exception("Invalid HTTP method for this page")
+
+
# Shows the edit project page
def project(request, pid):
template = "project.html"
@@ -1883,91 +2206,534 @@ if toastermain.settings.MANAGED:
# we use implicit knowledge of the current user's project to filter layer information, e.g.
request.session['project_id'] = prj.id
+ from collections import Counter
+ freqtargets = []
+ try:
+ freqtargets += map(lambda x: x.target, reduce(lambda x, y: x + y, map(lambda x: list(x.target_set.all()), Build.objects.filter(project = prj, outcome__lt = Build.IN_PROGRESS))))
+ freqtargets += map(lambda x: x.target, reduce(lambda x, y: x + y, map(lambda x: list(x.brtarget_set.all()), BuildRequest.objects.filter(project = prj, state = BuildRequest.REQ_FAILED))))
+ except TypeError:
+ pass
+ freqtargets = Counter(freqtargets)
+ freqtargets = sorted(freqtargets, key = lambda x: freqtargets[x], reverse=True)
+
context = {
"project" : prj,
+ "lvs_nos" : Layer_Version.objects.all().count(),
+ "completedbuilds": BuildRequest.objects.filter(project_id = pid).exclude(state__lte = BuildRequest.REQ_INPROGRESS).exclude(state=BuildRequest.REQ_DELETED),
+ "prj" : {"name": prj.name, "release": { "id": prj.release.pk, "name": prj.release.name, "desc": prj.release.description}},
#"buildrequests" : prj.buildrequest_set.filter(state=BuildRequest.REQ_QUEUED),
- "buildrequests" : map(lambda x: (x, {"machine" : x.brvariable_set.filter(name="MACHINE")[0]}), prj.buildrequest_set.filter(state__lt = BuildRequest.REQ_INPROGRESS).order_by("-pk")),
- "builds" : prj.build_set.all(),
- "puser": puser,
+ "builds" : _project_recent_build_list(prj),
+ "layers" : map(lambda x: {
+ "id": x.layercommit.pk,
+ "orderid": x.pk,
+ "name" : x.layercommit.layer.name,
+ "giturl": x.layercommit.layer.vcs_url,
+ "url": x.layercommit.layer.layer_index_url,
+ "layerdetailurl": reverse("layerdetails", args=(x.layercommit.pk,)),
+ # This branch name is actually the release
+ "branch" : { "name" : x.layercommit.get_vcs_reference(), "layersource" : x.layercommit.up_branch.layer_source.name if x.layercommit.up_branch != None else None}},
+ prj.projectlayer_set.all().order_by("id")),
+ "targets" : map(lambda x: {"target" : x.target, "task" : x.task, "pk": x.pk}, prj.projecttarget_set.all()),
+ "freqtargets": freqtargets[:5],
+ "releases": map(lambda x: {"id": x.pk, "name": x.name, "description":x.description}, Release.objects.all()),
+ "project_html": 1,
}
try:
- context["machine"] = prj.projectvariable_set.get(name="MACHINE").value
+ context["machine"] = {"name": prj.projectvariable_set.get(name="MACHINE").value}
except ProjectVariable.DoesNotExist:
- context["machine"] = "-- not set yet"
-
+ context["machine"] = None
try:
context["distro"] = prj.projectvariable_set.get(name="DISTRO").value
except ProjectVariable.DoesNotExist:
context["distro"] = "-- not set yet"
-
- return render(request, template, context)
-
- import json
+ response = render(request, template, context)
+ response['Cache-Control'] = "no-cache, must-revalidate, no-store"
+ response['Pragma'] = "no-cache"
+ return response
+
+ # This is a wrapper for xhr_projectbuild which allows for a project id
+ # which only becomes known client side.
+ def xhr_build(request):
+ if request.POST.has_key("project_id"):
+ pid = request.POST['project_id']
+ return xhr_projectbuild(request, pid)
+ else:
+ raise BadParameterException("invalid project id")
def xhr_projectbuild(request, pid):
try:
if request.method != "POST":
raise BadParameterException("invalid method")
+ request.session['project_id'] = pid
prj = Project.objects.get(id = pid)
- if prj.projecttarget_set.count() == 0:
- raise BadParameterException("no targets selected")
-
- br = prj.schedule_build()
- return HttpResponse(json.dumps({"error":"ok",
- "brtarget" : map(lambda x: x.target, br.brtarget_set.all()),
- "machine" : br.brvariable_set.get(name="MACHINE").value,
-
- }), content_type = "application/json")
- except Exception as e:
- return HttpResponse(json.dumps({"error":str(e) + "\n" + traceback.format_exc()}), content_type = "application/json")
- def xhr_projectedit(request, pid):
- try:
- prj = Project.objects.get(id = pid)
- # add targets
- if 'targetAdd' in request.POST:
- for t in request.POST['targetAdd'].strip().split(" "):
+ if 'buildCancel' in request.POST:
+ for i in request.POST['buildCancel'].strip().split(" "):
+ try:
+ br = BuildRequest.objects.select_for_update().get(project = prj, pk = i, state__lte = BuildRequest.REQ_QUEUED)
+ br.state = BuildRequest.REQ_DELETED
+ br.save()
+ except BuildRequest.DoesNotExist:
+ pass
+
+ if 'buildDelete' in request.POST:
+ for i in request.POST['buildDelete'].strip().split(" "):
+ try:
+ br = BuildRequest.objects.select_for_update().get(project = prj, pk = i, state__lte = BuildRequest.REQ_DELETED).delete()
+ except BuildRequest.DoesNotExist:
+ pass
+
+ if 'targets' in request.POST:
+ ProjectTarget.objects.filter(project = prj).delete()
+ s = str(request.POST['targets'])
+ for t in s.translate(None, ";%|\"").split(" "):
if ":" in t:
target, task = t.split(":")
else:
target = t
task = ""
+ ProjectTarget.objects.create(project = prj, target = target, task = task)
- pt, created = ProjectTarget.objects.get_or_create(project = prj, target = target, task = task)
- # remove targets
- if 'targetDel' in request.POST:
- for t in request.POST['targetDel'].strip().split(" "):
- pt = ProjectTarget.objects.get(pk = int(t)).delete()
+ br = prj.schedule_build()
+ return HttpResponse(jsonfilter({"error":"ok",
+ "builds" : _project_recent_build_list(prj),
+ }), content_type = "application/json")
+ except Exception as e:
+ return HttpResponse(jsonfilter({"error":str(e) + "\n" + traceback.format_exc()}), content_type = "application/json")
+
+ # This is a wraper for xhr_projectedit which allows for a project id
+ # which only becomes known client side
+ def xhr_projectinfo(request):
+ if request.POST.has_key("project_id") == False:
+ raise BadParameterException("invalid project id")
+
+ return xhr_projectedit(request, request.POST['project_id'])
+
+ def xhr_projectedit(request, pid):
+ try:
+ prj = Project.objects.get(id = pid)
# add layers
+ if 'layerAdd' in request.POST:
+ for lc in Layer_Version.objects.filter(pk__in=request.POST['layerAdd'].split(",")):
+ ProjectLayer.objects.get_or_create(project = prj, layercommit = lc)
# remove layers
+ if 'layerDel' in request.POST:
+ for t in request.POST['layerDel'].strip().split(" "):
+ pt = ProjectLayer.objects.filter(project = prj, layercommit_id = int(t)).delete()
+
+ if 'projectName' in request.POST:
+ prj.name = request.POST['projectName']
+ prj.save();
+
+ if 'projectVersion' in request.POST:
+ prj.release = Release.objects.get(pk = request.POST['projectVersion'])
+ # we need to change the bitbake version
+ prj.bitbake_version = prj.release.bitbake_version
+ prj.save()
+ # we need to change the layers
+ for i in prj.projectlayer_set.all():
+ # find and add a similarly-named layer on the new branch
+ try:
+ lv = prj.compatible_layerversions(layer_name = i.layercommit.layer.name)[0]
+ ProjectLayer.objects.get_or_create(project = prj, layercommit = lv)
+ except IndexError:
+ pass
+ finally:
+ # get rid of the old entry
+ i.delete()
+
+ if 'machineName' in request.POST:
+ machinevar = prj.projectvariable_set.get(name="MACHINE")
+ machinevar.value=request.POST['machineName']
+ machinevar.save()
# return all project settings
- return HttpResponse(json.dumps( {
+ return HttpResponse(jsonfilter( {
"error": "ok",
- "layers": map(lambda x: (x.layercommit.layer.name, x.layercommit.layer.layer_index_url), prj.projectlayer_set.all()),
- "targets" : map(lambda x: {"target" : x.target, "task" : x.task, "pk": x.pk}, prj.projecttarget_set.all()),
+ "layers" : map(lambda x: {"id": x.layercommit.pk, "orderid" : x.pk, "name" : x.layercommit.layer.name, "giturl" : x.layercommit.layer.vcs_url, "url": x.layercommit.layer.layer_index_url, "layerdetailurl": reverse("layerdetails", args=(x.layercommit.pk,)), "branch" : { "name" : x.layercommit.get_vcs_reference(), "layersource" : x.layercommit.up_branch.layer_source.name}}, prj.projectlayer_set.all().select_related("layer").order_by("id")),
+ "builds" : _project_recent_build_list(prj),
"variables": map(lambda x: (x.name, x.value), prj.projectvariable_set.all()),
+ "machine": {"name": prj.projectvariable_set.get(name="MACHINE").value},
+ "prj": {"name": prj.name, "release": { "id": prj.release.pk, "name": prj.release.name, "desc": prj.release.description}},
}), content_type = "application/json")
except Exception as e:
+ return HttpResponse(jsonfilter({"error":str(e) + "\n" + traceback.format_exc()}), content_type = "application/json")
+
+
+ from django.views.decorators.csrf import csrf_exempt
+ @csrf_exempt
+ def xhr_datatypeahead(request):
+ try:
+ prj = None
+ if request.GET.has_key('project_id'):
+ prj = Project.objects.get(pk = request.GET['project_id'])
+ elif 'project_id' in request.session:
+ prj = Project.objects.get(pk = request.session['project_id'])
+ else:
+ raise Exception("No valid project selected")
+
+
+ def _lv_to_dict(x):
+ return {"id": x.pk,
+ "name": x.layer.name,
+ "tooltip": x.layer.vcs_url+" | "+x.get_vcs_reference(),
+ "detail": "(" + x.layer.vcs_url + (")" if x.up_branch == None else " | "+x.get_vcs_reference()+")"),
+ "giturl": x.layer.vcs_url,
+ "layerdetailurl" : reverse('layerdetails', args=(x.pk,)),
+ "revision" : x.get_vcs_reference(),
+ }
+
+
+ # returns layers for current project release that are not in the project set, matching the name
+ if request.GET['type'] == "layers":
+ # all layers for the current project
+ queryset_all = prj.compatible_layerversions().filter(layer__name__icontains=request.GET.get('value',''))
+
+ # but not layers with equivalent layers already in project
+ if not request.GET.has_key('include_added'):
+ queryset_all = queryset_all.exclude(pk__in = [x.id for x in prj.projectlayer_equivalent_set()])[:8]
+
+ # and show only the selected layers for this project
+ final_list = set([x.get_equivalents_wpriority(prj)[0] for x in queryset_all])
+
+ return HttpResponse(jsonfilter( { "error":"ok", "list" : map( _lv_to_dict, sorted(final_list, key = lambda x: x.layer.name)) }), content_type = "application/json")
+
+
+ # returns layer dependencies for a layer, excluding current project layers
+ if request.GET['type'] == "layerdeps":
+ queryset = prj.compatible_layerversions().exclude(pk__in = [x.id for x in prj.projectlayer_equivalent_set()]).filter(
+ layer__name__in = [ x.depends_on.layer.name for x in LayerVersionDependency.objects.filter(layer_version_id = request.GET['value'])])
+
+ final_list = set([x.get_equivalents_wpriority(prj)[0] for x in queryset])
+
+ return HttpResponse(jsonfilter( { "error":"ok", "list" : map( _lv_to_dict, sorted(final_list, key = lambda x: x.layer.name)) }), content_type = "application/json")
+
+
+
+ # returns layer versions that would be deleted on the new release__pk
+ if request.GET['type'] == "versionlayers":
+ if not 'project_id' in request.session:
+ raise Exception("This call cannot makes no sense outside a project context")
+
+ retval = []
+ for i in prj.projectlayer_set.all():
+ lv = prj.compatible_layerversions(release = Release.objects.get(pk=request.GET['value'])).filter(layer__name = i.layercommit.layer.name)
+ # there is no layer_version with the new release id, and the same name
+ if lv.count() < 1:
+ retval.append(i)
+
+ return HttpResponse(jsonfilter( {"error":"ok",
+ "list" : map( _lv_to_dict, map(lambda x: x.layercommit, retval ))
+ }), content_type = "application/json")
+
+
+ # returns layer versions that provide the named targets
+ if request.GET['type'] == "layers4target":
+ # we return data only if the recipe can't be provided by the current project layer set
+ if reduce(lambda x, y: x + y, [x.recipe_layer_version.filter(name=request.GET['value']).count() for x in prj.projectlayer_equivalent_set()], 0):
+ final_list = []
+ else:
+ queryset_all = prj.compatible_layerversions().filter(recipe_layer_version__name = request.GET['value'])
+
+ # exclude layers in the project
+ queryset_all = queryset_all.exclude(pk__in = [x.id for x in prj.projectlayer_equivalent_set()])
+
+ # and show only the selected layers for this project
+ final_list = set([x.get_equivalents_wpriority(prj)[0] for x in queryset_all])
+
+ return HttpResponse(jsonfilter( { "error":"ok", "list" : map( _lv_to_dict, final_list) }), content_type = "application/json")
+
+ # returns targets provided by current project layers
+ if request.GET['type'] == "targets":
+ search_token = request.GET.get('value','')
+ queryset_all = Recipe.objects.filter(layer_version__layer__name__in = [x.layercommit.layer.name for x in prj.projectlayer_set.all().select_related("layercommit__layer")]).filter(Q(name__icontains=search_token) | Q(layer_version__layer__name__icontains=search_token))
+
+# layer_equivalent_set = []
+# for i in prj.projectlayer_set.all().select_related("layercommit__up_branch", "layercommit__layer"):
+# layer_equivalent_set += i.layercommit.get_equivalents_wpriority(prj)
+
+# queryset_all = queryset_all.filter(layer_version__in = layer_equivalent_set)
+
+ # if we have more than one hit here (for distinct name and version), max the id it out
+ queryset_all_maxids = queryset_all.values('name').distinct().annotate(max_id=Max('id')).values_list('max_id')
+ queryset_all = queryset_all.filter(id__in = queryset_all_maxids).order_by("name").select_related("layer_version__layer")
+
+
+ return HttpResponse(jsonfilter({ "error":"ok",
+ "list" :
+ # 7152 - sort by token position
+ sorted (
+ map ( lambda x: {"id": x.pk, "name": x.name, "detail":"[" + x.layer_version.layer.name +"]"},
+ queryset_all[:8]),
+ key = lambda i: i["name"].find(search_token) if i["name"].find(search_token) > -1 else 9999,
+ )
+
+ }), content_type = "application/json")
+
+ # returns machines provided by the current project layers
+ if request.GET['type'] == "machines":
+ queryset_all = Machine.objects.all()
+ if 'project_id' in request.session:
+ queryset_all = queryset_all.filter(layer_version__in = prj.projectlayer_equivalent_set()).order_by("name")
+
+ search_token = request.GET.get('value','')
+ queryset_all = queryset_all.filter(Q(name__icontains=search_token) | Q(description__icontains=search_token))
+
+ return HttpResponse(jsonfilter({ "error":"ok",
+ "list" :
+ # 7152 - sort by the token position
+ sorted (
+ map ( lambda x: {"id": x.pk, "name": x.name, "detail":"[" + x.layer_version.layer.name+ "]"}, queryset_all[:8]),
+ key = lambda i: i["name"].find(search_token) if i["name"].find(search_token) > -1 else 9999,
+ )
+ }), content_type = "application/json")
+
+ # returns all projects
+ if request.GET['type'] == "projects":
+ queryset_all = Project.objects.all()
+ ret = { "error": "ok",
+ "list": map (lambda x: {"id":x.pk, "name": x.name},
+ queryset_all.filter(name__icontains=request.GET.get('value',''))[:8])}
+
+ return HttpResponse(jsonfilter(ret), content_type = "application/json")
+
+ raise Exception("Unknown request! " + request.GET.get('type', "No parameter supplied"))
+ except Exception as e:
+ return HttpResponse(jsonfilter({"error":str(e) + "\n" + traceback.format_exc()}), content_type = "application/json")
+
+
+ def xhr_configvaredit(request, pid):
+ try:
+ prj = Project.objects.get(id = pid)
+ # add conf variables
+ if 'configvarAdd' in request.POST:
+ t=request.POST['configvarAdd'].strip()
+ if ":" in t:
+ variable, value = t.split(":")
+ else:
+ variable = t
+ value = ""
+
+ pt, created = ProjectVariable.objects.get_or_create(project = prj, name = variable, value = value)
+ # change conf variables
+ if 'configvarChange' in request.POST:
+ t=request.POST['configvarChange'].strip()
+ if ":" in t:
+ variable, value = t.split(":")
+ else:
+ variable = t
+ value = ""
+
+ pt, created = ProjectVariable.objects.get_or_create(project = prj, name = variable)
+ pt.value=value
+ pt.save()
+ # remove conf variables
+ if 'configvarDel' in request.POST:
+ t=request.POST['configvarDel'].strip()
+ pt = ProjectVariable.objects.get(pk = int(t)).delete()
+
+ # return all project settings, filter out blacklist and elsewhere-managed variables
+ vars_managed,vars_fstypes,vars_blacklist = get_project_configvars_context()
+ configvars_query = ProjectVariable.objects.filter(project_id = pid).all()
+ for var in vars_managed:
+ configvars_query = configvars_query.exclude(name = var)
+ for var in vars_blacklist:
+ configvars_query = configvars_query.exclude(name = var)
+
+ return_data = {
+ "error": "ok",
+ 'configvars' : map(lambda x: (x.name, x.value, x.pk), configvars_query),
+ }
+ try:
+ return_data['distro'] = ProjectVariable.objects.get(project = prj, name = "DISTRO").value,
+ except ProjectVariable.DoesNotExist:
+ pass
+ try:
+ return_data['fstypes'] = ProjectVariable.objects.get(project = prj, name = "IMAGE_FSTYPES").value,
+ except ProjectVariable.DoesNotExist:
+ pass
+ try:
+ return_data['image_install_append'] = ProjectVariable.objects.get(project = prj, name = "IMAGE_INSTALL_append").value,
+ except ProjectVariable.DoesNotExist:
+ pass
+ try:
+ return_data['package_classes'] = ProjectVariable.objects.get(project = prj, name = "PACKAGE_CLASSES").value,
+ except ProjectVariable.DoesNotExist:
+ pass
+ try:
+ return_data['sdk_machine'] = ProjectVariable.objects.get(project = prj, name = "SDKMACHINE").value,
+ except ProjectVariable.DoesNotExist:
+ pass
+
+ return HttpResponse(json.dumps( return_data ), content_type = "application/json")
+
+ except Exception as e:
return HttpResponse(json.dumps({"error":str(e) + "\n" + traceback.format_exc()}), content_type = "application/json")
+
+ def xhr_importlayer(request):
+ if (not request.POST.has_key('vcs_url') or
+ not request.POST.has_key('name') or
+ not request.POST.has_key('git_ref') or
+ not request.POST.has_key('project_id')):
+ return HttpResponse(jsonfilter({"error": "Missing parameters; requires vcs_url, name, git_ref and project_id"}), content_type = "application/json")
+
+ layers_added = [];
+
+ # Rudimentary check for any possible html tags
+ if "<" in request.POST:
+ return HttpResponse(jsonfilter({"error": "Invalid character <"}), content_type = "application/json")
+
+ prj = Project.objects.get(pk=request.POST['project_id'])
+
+ # Strip trailing/leading whitespace from all values
+ # put into a new dict because POST one is immutable
+ post_data = dict()
+ for key,val in request.POST.iteritems():
+ post_data[key] = val.strip()
+
+
+ # We need to know what release the current project is so that we
+ # can set the imported layer's up_branch_id
+ prj_branch_name = Release.objects.get(pk=prj.release_id).branch_name
+ up_branch, branch_created = Branch.objects.get_or_create(name=prj_branch_name, layer_source_id=LayerSource.TYPE_IMPORTED)
+
+ layer_source = LayerSource.objects.get(sourcetype=LayerSource.TYPE_IMPORTED)
+ try:
+ layer, layer_created = Layer.objects.get_or_create(name=post_data['name'])
+ except MultipleObjectsReturned:
+ return HttpResponse(jsonfilter({"error": "hint-layer-exists"}), content_type = "application/json")
+
+ if layer:
+ if layer_created:
+ layer.layer_source = layer_source
+ layer.vcs_url = post_data['vcs_url']
+ layer.up_date = timezone.now()
+ layer.save()
+ else:
+ # We have an existing layer by this name, let's see if the git
+ # url is the same, if it is then we can just create a new layer
+ # version for this layer. Otherwise we need to bail out.
+ if layer.vcs_url != post_data['vcs_url']:
+ return HttpResponse(jsonfilter({"error": "hint-layer-exists-with-different-url" , "current_url" : layer.vcs_url, "current_id": layer.id }), content_type = "application/json")
+
+
+ layer_version, version_created = Layer_Version.objects.get_or_create(layer_source=layer_source, layer=layer, project=prj, up_branch_id=up_branch.id,branch=post_data['git_ref'], commit=post_data['git_ref'], dirpath=post_data['dir_path'])
+
+ if layer_version:
+ if not version_created:
+ return HttpResponse(jsonfilter({"error": "hint-layer-version-exists", "existing_layer_version": layer_version.id }), content_type = "application/json")
+
+ layer_version.up_date = timezone.now()
+ layer_version.save()
+
+ # Add the dependencies specified for this new layer
+ if (post_data.has_key("layer_deps") and
+ version_created and
+ len(post_data["layer_deps"]) > 0):
+ for layer_dep_id in post_data["layer_deps"].split(","):
+
+ layer_dep_obj = Layer_Version.objects.get(pk=layer_dep_id)
+ LayerVersionDependency.objects.get_or_create(layer_version=layer_version, depends_on=layer_dep_obj)
+ # Now add them to the project, we could get an execption
+ # if the project now contains the exact
+ # dependency already (like modified on another page)
+ try:
+ prj_layer, prj_layer_created = ProjectLayer.objects.get_or_create(layercommit=layer_dep_obj, project=prj)
+ except:
+ continue
+
+ if prj_layer_created:
+ layers_added.append({'id': layer_dep_obj.id, 'name': Layer.objects.get(id=layer_dep_obj.layer_id).name})
+
+
+ # If an old layer version exists in our project then remove it
+ for prj_layers in ProjectLayer.objects.filter(project=prj):
+ dup_layer_v = Layer_Version.objects.filter(id=prj_layers.layercommit_id, layer_id=layer.id)
+ if len(dup_layer_v) >0 :
+ prj_layers.delete()
+
+ # finally add the imported layer (version id) to the project
+ ProjectLayer.objects.create(layercommit=layer_version, project=prj,optional=1)
+
+ else:
+ # We didn't create a layer version so back out now and clean up.
+ if layer_created:
+ layer.delete()
+
+ return HttpResponse(jsonfilter({"error": "Uncaught error: Could not create layer version"}), content_type = "application/json")
+
+
+ return HttpResponse(jsonfilter({"error": "ok", "imported_layer" : { "name" : layer.name, "id": layer_version.id }, "deps_added": layers_added }), content_type = "application/json")
+
+ def xhr_updatelayer(request):
+
+ def error_response(error):
+ return HttpResponse(jsonfilter({"error": error}), content_type = "application/json")
+
+ if not request.POST.has_key("layer_version_id"):
+ return error_response("Please specify a layer version id")
+ try:
+ layer_version_id = request.POST["layer_version_id"]
+ layer_version = Layer_Version.objects.get(id=layer_version_id)
+ except:
+ return error_response("Cannot find layer to update")
+
+
+ if request.POST.has_key("vcs_url"):
+ layer_version.layer.vcs_url = request.POST["vcs_url"]
+ if request.POST.has_key("dirpath"):
+ layer_version.dirpath = request.POST["dirpath"]
+ if request.POST.has_key("commit"):
+ layer_version.commit = request.POST["commit"]
+ if request.POST.has_key("up_branch"):
+ layer_version.up_branch_id = int(request.POST["up_branch"])
+
+ if request.POST.has_key("add_dep"):
+ lvd = LayerVersionDependency(layer_version=layer_version, depends_on_id=request.POST["add_dep"])
+ lvd.save()
+
+ if request.POST.has_key("rm_dep"):
+ rm_dep = LayerVersionDependency.objects.get(layer_version=layer_version, depends_on_id=request.POST["rm_dep"])
+ rm_dep.delete()
+
+ if request.POST.has_key("summary"):
+ layer_version.layer.summary = request.POST["summary"]
+ if request.POST.has_key("description"):
+ layer_version.layer.description = request.POST["description"]
+
+ try:
+ layer_version.layer.save()
+ layer_version.save()
+ except:
+ return error_response("Could not update layer version entry")
+
+ return HttpResponse(jsonfilter({"error": "ok",}), content_type = "application/json")
+
+
+
def importlayer(request):
template = "importlayer.html"
context = {
}
return render(request, template, context)
+
def layers(request):
+ if not 'project_id' in request.session:
+ raise Exception("invalid page: cannot show page without a project")
+
template = "layers.html"
# define here what parameters the view needs in the GET portion in order to
# be able to display something. 'count' and 'page' are mandatory for all views
# that use paginators.
- mandatory_parameters = { 'count': 10, 'page' : 1, 'orderby' : 'layer__name:+' };
+ (pagesize, orderby) = _get_parameters_values(request, 100, 'layer__name:+')
+ mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby' : orderby };
retval = _verify_parameters( request.GET, mandatory_parameters )
if retval:
return _redirect_parameters( 'layers', request.GET, mandatory_parameters)
@@ -1976,22 +2742,25 @@ if toastermain.settings.MANAGED:
# for that object type. copypasta for all needed table searches
(filter_string, search_term, ordering_string) = _search_tuple(request, Layer_Version)
- queryset_all = Layer_Version.objects.all()
- if 'project_id' in request.session:
- queryset_all = queryset_all.filter(up_branch__in = Branch.objects.filter(name = Project.objects.get(pk = request.session['project_id']).release.name))
+ prj = Project.objects.get(pk = request.session['project_id'])
+
+ queryset_all = prj.compatible_layerversions()
+
+ queryset_all = _get_queryset(Layer_Version, queryset_all, filter_string, search_term, ordering_string, '-layer__name')
+
+ object_list = set([x.get_equivalents_wpriority(prj)[0] for x in queryset_all])
+ object_list = list(object_list)
- queryset_with_search = _get_queryset(Layer_Version, queryset_all, None, search_term, ordering_string, '-layer__name')
- queryset = _get_queryset(Layer_Version, queryset_all, filter_string, search_term, ordering_string, '-layer__name')
# retrieve the objects that will be displayed in the table; layers a paginator and gets a page range to display
- layer_info = _build_page_range(Paginator(queryset, request.GET.get('count', 10)),request.GET.get('page', 1))
+ layer_info = _build_page_range(Paginator(object_list, request.GET.get('count', 10)),request.GET.get('page', 1))
context = {
+ 'projectlayerset' : jsonfilter(map(lambda x: x.layercommit.id, prj.projectlayer_set.all())),
'objects' : layer_info,
'objectname' : "layers",
'default_orderby' : 'layer__name:+',
- 'total_count': queryset_with_search.count(),
'tablecols' : [
{ 'name': 'Layer',
@@ -2002,17 +2771,6 @@ if toastermain.settings.MANAGED:
'dclass': 'span4',
'clclass': 'description',
},
- { 'name': 'Layer source',
- 'clclass': 'source',
- 'qhelp': "Where the layer is coming from, for example, if it's part of the OpenEmbedded collection of layers or if it's a layer you have imported",
- 'orderfield': _get_toggle_order(request, "layer_source__name"),
- 'ordericon': _get_toggle_order_icon(request, "layer_source__name"),
- 'filter': {
- 'class': 'layer',
- 'label': 'Show:',
- 'options': map(lambda x: (x.name, 'layer_source__pk:' + str(x.id), queryset_with_search.filter(layer_source__pk = x.id).count() ), LayerSource.objects.all()),
- }
- },
{ 'name': 'Git repository URL',
'dclass': 'span6',
'clclass': 'git-repo', 'hidden': 1,
@@ -2023,9 +2781,9 @@ if toastermain.settings.MANAGED:
'hidden': 1,
'qhelp': "The layer directory within the Git repository",
},
- { 'name': 'Branch, tag o commit',
+ { 'name': 'Revision',
'clclass': 'branch',
- 'qhelp': "The Git branch of the layer. For the layers from the OpenEmbedded source, the branch matches the Yocto Project version you selected for this project",
+ 'qhelp': "The Git branch, tag or commit. For the layers from the OpenEmbedded layer source, the revision is always the branch compatible with the Yocto Project version you selected for this project",
},
{ 'name': 'Dependencies',
'clclass': 'dependencies',
@@ -2035,56 +2793,106 @@ if toastermain.settings.MANAGED:
'dclass': 'span2',
'qhelp': "Add or delete layers to / from your project ",
},
-
]
}
- return render(request, template, context)
+ response = render(request, template, context)
+ _save_parameters_cookies(response, pagesize, orderby, request)
+
+ return response
def layerdetails(request, layerid):
template = "layerdetails.html"
+ limit = 10
+
+ if request.GET.has_key("limit"):
+ request.session['limit'] = request.GET['limit']
+
+ if request.session.has_key('limit'):
+ limit = request.session['limit']
+
+ layer_version = Layer_Version.objects.get(pk = layerid)
+
+ targets_query = Recipe.objects.filter(layer_version=layer_version)
+
+ # Targets tab query functionality
+ if request.GET.has_key('targets_search'):
+ targets_query = targets_query.filter(
+ Q(name__icontains=request.GET['targets_search']) |
+ Q(summary__icontains=request.GET['targets_search']))
+
+ targets = _build_page_range(Paginator(targets_query.order_by("name"), limit), request.GET.get('tpage', 1))
+
+ machines_query = Machine.objects.filter(layer_version=layer_version)
+
+ # Machines tab query functionality
+ if request.GET.has_key('machines_search'):
+ machines_query = machines_query.filter(
+ Q(name__icontains=request.GET['machines_search']) |
+ Q(description__icontains=request.GET['machines_search']))
+
+ machines = _build_page_range(Paginator(machines_query.order_by("name"), limit), request.GET.get('mpage', 1))
+
context = {
- 'layerversion': Layer_Version.objects.get(pk = layerid),
+ 'layerversion': layer_version,
+ 'layer_in_project' : ProjectLayer.objects.filter(project_id=request.session['project_id'],layercommit=layerid).count(),
+ 'machines': machines,
+ 'targets': targets,
+ 'total_targets': Recipe.objects.filter(layer_version=layer_version).count(),
+
+ 'total_machines': Machine.objects.filter(layer_version=layer_version).count(),
}
return render(request, template, context)
def targets(request):
- template = "targets.html"
- # define here what parameters the view needs in the GET portion in order to
- # be able to display something. 'count' and 'page' are mandatory for all views
- # that use paginators.
- mandatory_parameters = { 'count': 10, 'page' : 1, 'orderby' : 'name:+' };
+ if not 'project_id' in request.session:
+ raise Exception("invalid page: cannot show page without a project")
+
+ template = 'targets.html'
+ (pagesize, orderby) = _get_parameters_values(request, 100, 'name:+')
+ mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby' : orderby }
retval = _verify_parameters( request.GET, mandatory_parameters )
if retval:
- return _redirect_parameters( 'targets', request.GET, mandatory_parameters)
-
- # boilerplate code that takes a request for an object type and returns a queryset
- # for that object type. copypasta for all needed table searches
+ return _redirect_parameters( 'all-targets', request.GET, mandatory_parameters)
(filter_string, search_term, ordering_string) = _search_tuple(request, Recipe)
- queryset_all = Recipe.objects.all()
- if 'project_id' in request.session:
- queryset_all = queryset_all.filter(Q(layer_version__up_branch__in = Branch.objects.filter(name = Project.objects.get(pk=request.session['project_id']).release.name)) | Q(layer_version__build__in = Project.objects.get(pk = request.session['project_id']).build_set.all()))
+ prj = Project.objects.get(pk = request.session['project_id'])
+ queryset_all = Recipe.objects.filter(Q(layer_version__up_branch__name= prj.release.name) | Q(layer_version__build__in = prj.build_set.all())).filter(name__regex=r'.{1,}.*')
queryset_with_search = _get_queryset(Recipe, queryset_all, None, search_term, ordering_string, '-name')
- queryset = _get_queryset(Recipe, queryset_all, filter_string, search_term, ordering_string, '-name')
+
+ # get unique values for 'name', and select the maximum ID for each entry (the max id is the newest one)
+
+ # force evaluation of the query here; to process the MAX/GROUP BY, a temporary table is used, on which indexing is very slow
+ # by forcing the evaluation here we also prime the caches
+ queryset_with_search_maxids = map(lambda i: i[0], list(queryset_with_search.values('name').distinct().annotate(max_id=Max('id')).values_list('max_id')))
+
+ queryset_with_search = queryset_with_search.filter(id__in=queryset_with_search_maxids).select_related('layer_version', 'layer_version__layer', 'layer_version__up_branch', 'layer_source')
+
# retrieve the objects that will be displayed in the table; targets a paginator and gets a page range to display
- target_info = _build_page_range(Paginator(queryset, request.GET.get('count', 10)),request.GET.get('page', 1))
+ target_info = _build_page_range(Paginator(queryset_with_search, request.GET.get('count', 10)),request.GET.get('page', 1))
+ for e in target_info.object_list:
+ e.preffered_layerversion = e.layer_version.get_equivalents_wpriority(prj)[0]
+ e.vcs_link_url = Layer.objects.filter(name = e.preffered_layerversion.layer.name).exclude(vcs_web_file_base_url__isnull=True)[0].vcs_web_file_base_url
+ if e.vcs_link_url != None:
+ fp = e.preffered_layerversion.dirpath + "/" + e.file_path
+ e.vcs_link_url = e.vcs_link_url.replace('%path%', fp)
+ e.vcs_link_url = e.vcs_link_url.replace('%branch%', e.preffered_layerversion.up_branch.name)
context = {
+ 'projectlayerset' : jsonfilter(map(lambda x: x.layercommit.id, prj.projectlayer_set.all().select_related("layercommit"))),
'objects' : target_info,
- 'objectname' : "targets",
+ 'objectname' : "recipes",
'default_orderby' : 'name:+',
- 'total_count': queryset_with_search.count(),
'tablecols' : [
- { 'name': 'Target',
+ { 'name': 'Recipe',
'orderfield': _get_toggle_order(request, "name"),
'ordericon' : _get_toggle_order_icon(request, "name"),
},
- { 'name': 'Target version',
+ { 'name': 'Recipe version',
'dclass': 'span2',
},
{ 'name': 'Description',
@@ -2099,45 +2907,53 @@ if toastermain.settings.MANAGED:
{ 'name': 'Section',
'clclass': 'target-section',
'hidden': 1,
+ 'orderfield': _get_toggle_order(request, "section"),
+ 'ordericon': _get_toggle_order_icon(request, "section"),
+ 'orderkey': "section",
},
{ 'name': 'License',
'clclass': 'license',
'hidden': 1,
+ 'orderfield': _get_toggle_order(request, "license"),
+ 'ordericon': _get_toggle_order_icon(request, "license"),
+ 'orderkey': "license",
},
{ 'name': 'Layer',
'clclass': 'layer',
+ 'orderfield': _get_toggle_order(request, "layer_version__layer__name"),
+ 'ordericon': _get_toggle_order_icon(request, "layer_version__layer__name"),
+ 'orderkey': "layer_version__layer__name",
},
- { 'name': 'Layer source',
- 'clclass': 'source',
- 'qhelp': "Where the target is coming from, for example, if it's part of the OpenEmbedded collection of targets or if it's a target you have imported",
- 'orderfield': _get_toggle_order(request, "layer_source__name"),
- 'ordericon': _get_toggle_order_icon(request, "layer_source__name"),
- 'filter': {
- 'class': 'target',
- 'label': 'Show:',
- 'options': map(lambda x: (x.name, 'layer_source__pk:' + str(x.id), queryset_with_search.filter(layer_source__pk = x.id).count() ), LayerSource.objects.all()),
- }
- },
- { 'name': 'Branch, tag or commit',
+ { 'name': 'Revision',
'clclass': 'branch',
+ 'qhelp': "The Git branch, tag or commit. For the layers from the OpenEmbedded layer source, the revision is always the branch compatible with the Yocto Project version you selected for this project.",
'hidden': 1,
},
+ ]
+ }
+
+ if 'project_id' in request.session:
+ context['tablecols'] += [
{ 'name': 'Build',
'dclass': 'span2',
'qhelp': "Add or delete targets to / from your project ",
- },
+ }, ]
- ]
- }
+ response = render(request, template, context)
+ _save_parameters_cookies(response, pagesize, orderby, request)
- return render(request, template, context)
+ return response
def machines(request):
+ if not 'project_id' in request.session:
+ raise Exception("invalid page: cannot show page without a project")
+
template = "machines.html"
# define here what parameters the view needs in the GET portion in order to
# be able to display something. 'count' and 'page' are mandatory for all views
# that use paginators.
- mandatory_parameters = { 'count': 10, 'page' : 1, 'orderby' : 'name:+' };
+ (pagesize, orderby) = _get_parameters_values(request, 100, 'name:+')
+ mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby' : orderby };
retval = _verify_parameters( request.GET, mandatory_parameters )
if retval:
return _redirect_parameters( 'machines', request.GET, mandatory_parameters)
@@ -2146,89 +2962,425 @@ if toastermain.settings.MANAGED:
# for that object type. copypasta for all needed table searches
(filter_string, search_term, ordering_string) = _search_tuple(request, Machine)
- queryset_all = Machine.objects.all()
-# if 'project_id' in request.session:
-# queryset_all = queryset_all.filter(Q(layer_version__up_branch__in = Branch.objects.filter(name = Project.objects.get(request.session['project_id']).release.name)) | Q(layer_version__build__in = Project.objects.get(request.session['project_id']).build_set.all()))
+ prj = Project.objects.get(pk = request.session['project_id'])
+ compatible_layers = prj.compatible_layerversions()
+
+ queryset_all = Machine.objects.filter(layer_version__in=compatible_layers)
+ queryset_all = _get_queryset(Machine, queryset_all, None, search_term, ordering_string, 'name')
+
+ queryset_all = queryset_all.prefetch_related('layer_version')
- queryset_with_search = _get_queryset(Machine, queryset_all, None, search_term, ordering_string, '-name')
- queryset = _get_queryset(Machine, queryset_all, filter_string, search_term, ordering_string, '-name')
- # retrieve the objects that will be displayed in the table; machines a paginator and gets a page range to display
- machine_info = _build_page_range(Paginator(queryset, request.GET.get('count', 10)),request.GET.get('page', 1))
+ # Make sure we only show machines / layers which are compatible
+ # with the current project
+ project_layers = ProjectLayer.objects.filter(project_id=request.session['project_id']).values_list('layercommit',flat=True)
+
+ # Now we need to weed out the layers which will appear as duplicated
+ # because they're from a layer source which doesn't need to be used
+ for machine in queryset_all:
+ to_rm = machine.layer_version.get_equivalents_wpriority(prj)[1:]
+ if len(to_rm) > 0:
+ queryset_all = queryset_all.exclude(layer_version__in=to_rm)
+
+ machine_info = _build_page_range(Paginator(queryset_all, request.GET.get('count', 100)),request.GET.get('page', 1))
context = {
'objects' : machine_info,
+ 'project_layers' : project_layers,
'objectname' : "machines",
'default_orderby' : 'name:+',
- 'total_count': queryset_with_search.count(),
'tablecols' : [
{ 'name': 'Machine',
'orderfield': _get_toggle_order(request, "name"),
'ordericon' : _get_toggle_order_icon(request, "name"),
+ 'orderkey' : "name",
},
{ 'name': 'Description',
'dclass': 'span5',
'clclass': 'description',
},
- { 'name': 'Machine file',
- 'clclass': 'machine-file',
- 'hidden': 1,
- },
{ 'name': 'Layer',
'clclass': 'layer',
+ 'orderfield': _get_toggle_order(request, "layer_version__layer__name"),
+ 'ordericon' : _get_toggle_order_icon(request, "layer_version__layer__name"),
+ 'orderkey' : "layer_version__layer__name",
},
- { 'name': 'Layer source',
- 'clclass': 'source',
- 'qhelp': "Where the machine is coming from, for example, if it's part of the OpenEmbedded collection of machines or if it's a machine you have imported",
- 'orderfield': _get_toggle_order(request, "layer_source__name"),
- 'ordericon': _get_toggle_order_icon(request, "layer_source__name"),
- 'filter': {
- 'class': 'machine',
- 'label': 'Show:',
- 'options': map(lambda x: (x.name, 'layer_source__pk:' + str(x.id), queryset_with_search.filter(layer_source__pk = x.id).count() ), LayerSource.objects.all()),
- }
- },
- { 'name': 'Branch, tag or commit',
+ { 'name': 'Revision',
'clclass': 'branch',
+ 'qhelp' : "The Git branch, tag or commit. For the layers from the OpenEmbedded layer source, the revision is always the branch compatible with the Yocto Project version you selected for this project",
'hidden': 1,
},
+ { 'name' : 'Machine file',
+ 'clclass' : 'machinefile',
+ 'hidden' : 1,
+ },
{ 'name': 'Select',
- 'dclass': 'span2',
- 'qhelp': "Add or delete machines to / from your project ",
+ 'dclass': 'select span2',
+ 'qhelp': "Sets the selected machine as the project machine. You can only have one machine per project",
},
]
}
- return render(request, template, context)
+ response = render(request, template, context)
+ _save_parameters_cookies(response, pagesize, orderby, request)
+
+ return response
+
+
+ def get_project_configvars_context():
+ # Vars managed outside of this view
+ vars_managed = {
+ 'MACHINE', 'BBLAYERS'
+ }
+
+ vars_blacklist = {
+ 'DL_DR','PARALLEL_MAKE','BB_NUMBER_THREADS','SSTATE_DIR',
+ 'BB_DISKMON_DIRS','BB_NUMBER_THREADS','CVS_PROXY_HOST','CVS_PROXY_PORT',
+ 'DL_DIR','PARALLEL_MAKE','SSTATE_DIR','SSTATE_DIR','SSTATE_MIRRORS','TMPDIR',
+ 'all_proxy','ftp_proxy','http_proxy ','https_proxy'
+ }
+
+ vars_fstypes = {
+ 'btrfs','cpio','cpio.gz','cpio.lz4','cpio.lzma','cpio.xz','cramfs',
+ 'elf','ext2','ext2.bz2','ext2.gz','ext2.lzma', 'ext4', 'ext4.gz', 'ext3','ext3.gz','hddimg',
+ 'iso','jffs2','jffs2.sum','squashfs','squashfs-lzo','squashfs-xz','tar.bz2',
+ 'tar.lz4','tar.xz','tartar.gz','ubi','ubifs','vmdk'
+ }
+
+ return(vars_managed,sorted(vars_fstypes),vars_blacklist)
def projectconf(request, pid):
template = "projectconf.html"
+
+ try:
+ prj = Project.objects.get(id = pid)
+ except Project.DoesNotExist:
+ return HttpResponseNotFound("<h1>Project id " + pid + " is unavailable</h1>")
+
+ # remove blacklist and externally managed varaibles from this list
+ vars_managed,vars_fstypes,vars_blacklist = get_project_configvars_context()
+ configvars = ProjectVariable.objects.filter(project_id = pid).all()
+ for var in vars_managed:
+ configvars = configvars.exclude(name = var)
+ for var in vars_blacklist:
+ configvars = configvars.exclude(name = var)
+
context = {
- 'configvars': ProjectVariable.objects.filter(project_id = pid),
+ 'configvars': configvars,
+ 'vars_managed': vars_managed,
+ 'vars_fstypes': vars_fstypes,
+ 'vars_blacklist': vars_blacklist,
}
+
+ try:
+ context['distro'] = ProjectVariable.objects.get(project = prj, name = "DISTRO").value
+ context['distro_defined'] = "1"
+ except ProjectVariable.DoesNotExist:
+ pass
+ try:
+ context['fstypes'] = ProjectVariable.objects.get(project = prj, name = "IMAGE_FSTYPES").value
+ context['fstypes_defined'] = "1"
+ except ProjectVariable.DoesNotExist:
+ pass
+ try:
+ context['image_install_append'] = ProjectVariable.objects.get(project = prj, name = "IMAGE_INSTALL_append").value
+ context['image_install_append_defined'] = "1"
+ except ProjectVariable.DoesNotExist:
+ pass
+ try:
+ context['package_classes'] = ProjectVariable.objects.get(project = prj, name = "PACKAGE_CLASSES").value
+ context['package_classes_defined'] = "1"
+ except ProjectVariable.DoesNotExist:
+ pass
+ try:
+ context['sdk_machine'] = ProjectVariable.objects.get(project = prj, name = "SDKMACHINE").value
+ context['sdk_machine_defined'] = "1"
+ except ProjectVariable.DoesNotExist:
+ pass
+
return render(request, template, context)
def projectbuilds(request, pid):
template = 'projectbuilds.html'
+ buildrequests = BuildRequest.objects.filter(project_id = pid).exclude(state__lte = BuildRequest.REQ_INPROGRESS).exclude(state=BuildRequest.REQ_DELETED)
+
+ try:
+ context, pagesize, orderby = _build_list_helper(request, buildrequests, False)
+ except InvalidRequestException as e:
+ return _redirect_parameters(projectbuilds, request.GET, e.response, pid = pid)
+
+ response = render(request, template, context)
+ _save_parameters_cookies(response, pagesize, orderby, request)
+
+ return response
+
+
+ def _file_name_for_artifact(b, artifact_type, artifact_id):
+ file_name = None
+ # Target_Image_File file_name
+ if artifact_type == "imagefile":
+ file_name = Target_Image_File.objects.get(target__build = b, pk = artifact_id).file_name
+
+ elif artifact_type == "buildartifact":
+ file_name = BuildArtifact.objects.get(build = b, pk = artifact_id).file_name
+
+ elif artifact_type == "licensemanifest":
+ file_name = Target.objects.get(build = b, pk = artifact_id).license_manifest_path
+
+ elif artifact_type == "tasklogfile":
+ file_name = Task.objects.get(build = b, pk = artifact_id).logfile
+
+ elif artifact_type == "logmessagefile":
+ file_name = LogMessage.objects.get(build = b, pk = artifact_id).pathname
+ else:
+ raise Exception("FIXME: artifact type %s not implemented" % (artifact_type))
+
+ return file_name
+
+
+ def build_artifact(request, build_id, artifact_type, artifact_id):
+ if artifact_type in ["cookerlog"]:
+ # these artifacts are saved after building, so they are on the server itself
+ def _mimetype_for_artifact(path):
+ try:
+ import magic
+
+ # fair warning: this is a mess; there are multiple competing and incompatible
+ # magic modules floating around, so we try some of the most common combinations
+
+ try: # we try ubuntu's python-magic 5.4
+ m = magic.open(magic.MAGIC_MIME_TYPE)
+ m.load()
+ return m.file(path)
+ except AttributeError:
+ pass
+
+ try: # we try python-magic 0.4.6
+ m = magic.Magic(magic.MAGIC_MIME)
+ return m.from_file(path)
+ except AttributeError:
+ pass
+
+ try: # we try pip filemagic 1.6
+ m = magic.Magic(flags=magic.MAGIC_MIME_TYPE)
+ return m.id_filename(path)
+ except AttributeError:
+ pass
+
+ return "binary/octet-stream"
+ except ImportError:
+ return "binary/octet-stream"
+ try:
+ # match code with runbuilds.Command.archive()
+ build_artifact_storage_dir = os.path.join(ToasterSetting.objects.get(name="ARTIFACTS_STORAGE_DIR").value, "%d" % int(build_id))
+ file_name = os.path.join(build_artifact_storage_dir, "cooker_log.txt")
+
+ fsock = open(file_name, "r")
+ content_type=_mimetype_for_artifact(file_name)
+
+ response = HttpResponse(fsock, content_type = content_type)
+
+ response['Content-Disposition'] = 'attachment; filename=' + os.path.basename(file_name)
+ return response
+ except IOError:
+ context = {
+ 'build' : Build.objects.get(pk = build_id),
+ }
+ return render(request, "unavailable_artifact.html", context)
+
+ else:
+ # retrieve the artifact directly from the build environment
+ return _get_be_artifact(request, build_id, artifact_type, artifact_id)
+
+
+ def _get_be_artifact(request, build_id, artifact_type, artifact_id):
+ try:
+ b = Build.objects.get(pk=build_id)
+ if b.buildrequest is None or b.buildrequest.environment is None:
+ raise Exception("Artifact not available for download (missing build request or build environment)")
+
+ file_name = _file_name_for_artifact(b, artifact_type, artifact_id)
+ fsock = None
+ content_type='application/force-download'
+
+ if file_name is None:
+ raise Exception("Could not handle artifact %s id %s" % (artifact_type, artifact_id))
+ else:
+ content_type = b.buildrequest.environment.get_artifact_type(file_name)
+ fsock = b.buildrequest.environment.get_artifact(file_name)
+ file_name = os.path.basename(file_name) # we assume that the build environment system has the same path conventions as host
+
+ response = HttpResponse(fsock, content_type = content_type)
+
+ # returns a file from the environment
+ response['Content-Disposition'] = 'attachment; filename=' + file_name
+ return response
+ except IOError:
+ context = {
+ 'build' : Build.objects.get(pk = build_id),
+ }
+ return render(request, "unavailable_artifact.html", context)
+
+ # This returns the mru object that is needed for the
+ # managed_mrb_section.html template
+ def _managed_get_latest_builds():
+ build_mru = BuildRequest.objects.all()
+ build_mru = list(build_mru.filter(Q(state__lt=BuildRequest.REQ_COMPLETED) or Q(state=BuildRequest.REQ_DELETED)).order_by("-pk")) + list(build_mru.filter(state__in=[BuildRequest.REQ_COMPLETED, BuildRequest.REQ_FAILED]).order_by("-pk")[:3])
+ return build_mru
+
+
+ def projects(request):
+ template="projects.html"
+
+ (pagesize, orderby) = _get_parameters_values(request, 10, 'updated:-')
+ mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby' : orderby }
+ retval = _verify_parameters( request.GET, mandatory_parameters )
+ if retval:
+ return _redirect_parameters( 'all-projects', request.GET, mandatory_parameters)
+
+ queryset_all = Project.objects.all()
+
+ # boilerplate code that takes a request for an object type and returns a queryset
+ # for that object type. copypasta for all needed table searches
+ (filter_string, search_term, ordering_string) = _search_tuple(request, Project)
+ queryset_with_search = _get_queryset(Project, queryset_all, None, search_term, ordering_string, '-updated')
+ queryset = _get_queryset(Project, queryset_all, filter_string, search_term, ordering_string, '-updated')
+
+ # retrieve the objects that will be displayed in the table; projects a paginator and gets a page range to display
+ project_info = _build_page_range(Paginator(queryset, pagesize), request.GET.get('page', 1))
+
+ # build view-specific information; this is rendered specifically in the builds page, at the top of the page (i.e. Recent builds)
+ build_mru = _managed_get_latest_builds()
+
+ # translate the project's build target strings
+ fstypes_map = {};
+ for project in project_info:
+ try:
+ targets = Target.objects.filter( build_id = project.get_last_build_id() )
+ comma = "";
+ extensions = "";
+ for t in targets:
+ if ( not t.is_image ):
+ continue
+ tif = Target_Image_File.objects.filter( target_id = t.id )
+ for i in tif:
+ s=re.sub('.*tar.bz2', 'tar.bz2', i.file_name)
+ if s == i.file_name:
+ s=re.sub('.*\.', '', i.file_name)
+ if None == re.search(s,extensions):
+ extensions += comma + s
+ comma = ", "
+ fstypes_map[project.id]=extensions
+ except (Target.DoesNotExist,IndexError):
+ fstypes_map[project.id]=project.get_last_imgfiles
+
+ context = {
+ 'mru' : build_mru,
+
+ 'objects' : project_info,
+ 'objectname' : "projects",
+ 'default_orderby' : 'id:-',
+ 'search_term' : search_term,
+ 'total_count' : queryset_with_search.count(),
+ 'fstypes' : fstypes_map,
+ 'build_FAILED' : Build.FAILED,
+ 'build_SUCCEEDED' : Build.SUCCEEDED,
+ 'tablecols': [
+ {'name': 'Project',
+ 'orderfield': _get_toggle_order(request, "name"),
+ 'ordericon':_get_toggle_order_icon(request, "name"),
+ 'orderkey' : 'name',
+ },
+ {'name': 'Last activity on',
+ 'clclass': 'updated',
+ 'qhelp': "Shows the starting date and time of the last project build. If the project has no builds, it shows the date the project was created",
+ 'orderfield': _get_toggle_order(request, "updated", True),
+ 'ordericon':_get_toggle_order_icon(request, "updated"),
+ 'orderkey' : 'updated',
+ },
+ {'name': 'Release',
+ 'qhelp' : "The version of the build system used by the project",
+ 'orderfield': _get_toggle_order(request, "release__name"),
+ 'ordericon':_get_toggle_order_icon(request, "release__name"),
+ 'orderkey' : 'release__name',
+ },
+ {'name': 'Machine',
+ 'qhelp': "The hardware currently selected for the project",
+ },
+ {'name': 'Number of builds',
+ 'qhelp': "How many builds have been run for the project",
+ },
+ {'name': 'Last build outcome', 'clclass': 'loutcome',
+ 'qhelp': "Tells you if the last project build completed successfully or failed",
+ },
+ {'name': 'Recipe', 'clclass': 'ltarget',
+ 'qhelp': "The last recipe that was built in this project",
+ },
+ {'name': 'Errors', 'clclass': 'lerrors',
+ 'qhelp': "How many errors were encountered during the last project build (if any)",
+ },
+ {'name': 'Warnings', 'clclass': 'lwarnings',
+ 'qhelp': "How many warnigns were encountered during the last project build (if any)",
+ },
+ {'name': 'Image files', 'clclass': 'limagefiles', 'hidden': 1,
+ 'qhelp': "The root file system types produced by the last project build",
+ },
+ ]
+ }
+ return render(request, template, context)
+
+ def buildrequestdetails(request, pid, brid):
+ template = "buildrequestdetails.html"
+ context = {
+ 'buildrequest' : BuildRequest.objects.get(pk = brid, project_id = pid)
+ }
+ return render(request, template, context)
+
+
+else:
+ # these are pages that are NOT available in interactive mode
+ def managedcontextprocessor(request):
+ return {
+ "projects": [],
+ "MANAGED" : toastermain.settings.MANAGED,
+ "DEBUG" : toastermain.settings.DEBUG,
+ "TOASTER_BRANCH": toastermain.settings.TOASTER_BRANCH,
+ "TOASTER_REVISION" : toastermain.settings.TOASTER_REVISION,
+ }
+
+
+ # shows the "all builds" page for interactive mode; this is the old code, simply moved
+ def builds(request):
+ template = 'build.html'
# define here what parameters the view needs in the GET portion in order to
# be able to display something. 'count' and 'page' are mandatory for all views
# that use paginators.
- mandatory_parameters = { 'count': 10, 'page' : 1, 'orderby' : 'completed_on:-' };
+ (pagesize, orderby) = _get_parameters_values(request, 10, 'completed_on:-')
+ mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby' : orderby }
retval = _verify_parameters( request.GET, mandatory_parameters )
+ if retval:
+ return _redirect_parameters( 'all-builds', request.GET, mandatory_parameters)
# boilerplate code that takes a request for an object type and returns a queryset
# for that object type. copypasta for all needed table searches
(filter_string, search_term, ordering_string) = _search_tuple(request, Build)
- queryset_all = Build.objects.all.exclude(outcome = Build.IN_PROGRESS)
+ # post-process any date range filters
+ filter_string,daterange_selected = _modify_date_range_filter(filter_string)
+ queryset_all = Build.objects.exclude(outcome = Build.IN_PROGRESS)
queryset_with_search = _get_queryset(Build, queryset_all, None, search_term, ordering_string, '-completed_on')
queryset = _get_queryset(Build, queryset_all, filter_string, search_term, ordering_string, '-completed_on')
# retrieve the objects that will be displayed in the table; builds a paginator and gets a page range to display
- build_info = _build_page_range(Paginator(queryset, request.GET.get('count', 10)),request.GET.get('page', 1))
+ build_info = _build_page_range(Paginator(queryset, pagesize), request.GET.get('page', 1))
+
+ # build view-specific information; this is rendered specifically in the builds page, at the top of the page (i.e. Recent builds)
+ build_mru = Build.objects.order_by("-started_on")[:3]
+ # calculate the exact begining of local today and yesterday, append context
+ context_date,today_begin,yesterday_begin = _add_daterange_context(queryset_all, request, {'started_on','completed_on'})
# set up list of fstypes for each build
fstypes_map = {};
@@ -2251,12 +3403,16 @@ if toastermain.settings.MANAGED:
# send the data to the template
context = {
+ # specific info for
+ 'mru' : build_mru,
+ # TODO: common objects for all table views, adapt as needed
'objects' : build_info,
'objectname' : "builds",
'default_orderby' : 'completed_on:-',
'fstypes' : fstypes_map,
'search_term' : search_term,
'total_count' : queryset_with_search.count(),
+ 'daterange_selected' : daterange_selected,
# Specifies the display of columns for the table, appearance in "Edit columns" box, toggling default show/hide, and specifying filters for columns
'tablecols' : [
{'name': 'Outcome', # column with a single filter
@@ -2275,8 +3431,8 @@ if toastermain.settings.MANAGED:
]
}
},
- {'name': 'Target', # default column, disabled box, with just the name in the list
- 'qhelp': "This is the build target or build targets (i.e. one or more recipes or image recipes)",
+ {'name': 'Recipe', # default column, disabled box, with just the name in the list
+ 'qhelp': "What you built (i.e. one or more recipes or image recipes)",
'orderfield': _get_toggle_order(request, "target__target"),
'ordericon':_get_toggle_order_icon(request, "target__target"),
},
@@ -2293,12 +3449,19 @@ if toastermain.settings.MANAGED:
'filter' : {'class' : 'started_on',
'label': 'Show:',
'options' : [
- ("Today's builds" , 'started_on__gte:'+timezone.now().strftime("%Y-%m-%d"), queryset_with_search.filter(started_on__gte=timezone.now()).count()),
- ("Yesterday's builds", 'started_on__gte:'+(timezone.now()-timedelta(hours=24)).strftime("%Y-%m-%d"), queryset_with_search.filter(started_on__gte=(timezone.now()-timedelta(hours=24))).count()),
- ("This week's builds", 'started_on__gte:'+(timezone.now()-timedelta(days=7)).strftime("%Y-%m-%d"), queryset_with_search.filter(started_on__gte=(timezone.now()-timedelta(days=7))).count()),
+ ("Today's builds" , 'started_on__gte:'+today_begin.strftime("%Y-%m-%d"), queryset_all.filter(started_on__gte=today_begin).count()),
+ ("Yesterday's builds",
+ 'started_on__gte!started_on__lt:'
+ +yesterday_begin.strftime("%Y-%m-%d")+'!'
+ +today_begin.strftime("%Y-%m-%d"),
+ queryset_all.filter(
+ started_on__gte=yesterday_begin,
+ started_on__lt=today_begin
+ ).count()),
+ ("Build date range", 'daterange', 1, '', 'started_on'),
]
}
- },
+ },
{'name': 'Completed on',
'qhelp': "The date and time the build finished",
'orderfield': _get_toggle_order(request, "completed_on", True),
@@ -2307,9 +3470,16 @@ if toastermain.settings.MANAGED:
'filter' : {'class' : 'completed_on',
'label': 'Show:',
'options' : [
- ("Today's builds", 'completed_on__gte:'+timezone.now().strftime("%Y-%m-%d"), queryset_with_search.filter(completed_on__gte=timezone.now()).count()),
- ("Yesterday's builds", 'completed_on__gte:'+(timezone.now()-timedelta(hours=24)).strftime("%Y-%m-%d"), queryset_with_search.filter(completed_on__gte=(timezone.now()-timedelta(hours=24))).count()),
- ("This week's builds", 'completed_on__gte:'+(timezone.now()-timedelta(days=7)).strftime("%Y-%m-%d"), queryset_with_search.filter(completed_on__gte=(timezone.now()-timedelta(days=7))).count()),
+ ("Today's builds" , 'completed_on__gte:'+today_begin.strftime("%Y-%m-%d"), queryset_all.filter(completed_on__gte=today_begin).count()),
+ ("Yesterday's builds",
+ 'completed_on__gte!completed_on__lt:'
+ +yesterday_begin.strftime("%Y-%m-%d")+'!'
+ +today_begin.strftime("%Y-%m-%d"),
+ queryset_all.filter(
+ completed_on__gte=yesterday_begin,
+ completed_on__lt=today_begin
+ ).count()),
+ ("Build date range", 'daterange', 1, '', 'completed_on'),
]
}
},
@@ -2349,12 +3519,6 @@ if toastermain.settings.MANAGED:
]
}
},
- {'name': 'Time', 'clclass': 'time', 'hidden' : 1,
- 'qhelp': "How long it took the build to finish",
- 'orderfield': _get_toggle_order(request, "timespent", True),
- 'ordericon':_get_toggle_order_icon(request, "timespent"),
- 'orderkey' : 'timespent',
- },
{'name': 'Log',
'dclass': "span4",
'qhelp': "Path to the build main log file",
@@ -2363,53 +3527,85 @@ if toastermain.settings.MANAGED:
'ordericon':_get_toggle_order_icon(request, "cooker_log_path"),
'orderkey' : 'cooker_log_path',
},
- {'name': 'Output', 'clclass': 'output',
+ {'name': 'Time', 'clclass': 'time', 'hidden' : 1,
+ 'qhelp': "How long it took the build to finish",
+ 'orderfield': _get_toggle_order(request, "timespent", True),
+ 'ordericon':_get_toggle_order_icon(request, "timespent"),
+ 'orderkey' : 'timespent',
+ },
+ {'name': 'Image files', 'clclass': 'output',
'qhelp': "The root file system types produced by the build. You can find them in your <code>/build/tmp/deploy/images/</code> directory",
+ # TODO: compute image fstypes from Target_Image_File
},
]
}
- return render(request, template, context)
-else:
- # these are pages that are NOT available in interactive mode
- def managedcontextprocessor(request):
- return {
- "projects": [],
- "MANAGED" : toastermain.settings.MANAGED
- }
+ # merge daterange values
+ context.update(context_date)
+
+ response = render(request, template, context)
+ _save_parameters_cookies(response, pagesize, orderby, request)
+ return response
+
+
+
def newproject(request):
- raise Exception("page not available in interactive mode")
+ return render(request, 'landing_not_managed.html')
def project(request, pid):
- raise Exception("page not available in interactive mode")
+ return render(request, 'landing_not_managed.html')
def xhr_projectbuild(request, pid):
- raise Exception("page not available in interactive mode")
+ return render(request, 'landing_not_managed.html')
+
+ def xhr_build(request):
+ return render(request, 'landing_not_managed.html')
+
+ def xhr_projectinfo(request):
+ return render(request, 'landing_not_managed.html')
def xhr_projectedit(request, pid):
- raise Exception("page not available in interactive mode")
+ return render(request, 'landing_not_managed.html')
+
+ def xhr_datatypeahead(request):
+ return render(request, 'landing_not_managed.html')
+
+ def xhr_configvaredit(request, pid):
+ return render(request, 'landing_not_managed.html')
def importlayer(request):
- raise Exception("page not available in interactive mode")
+ return render(request, 'landing_not_managed.html')
def layers(request):
- raise Exception("page not available in interactive mode")
+ return render(request, 'landing_not_managed.html')
- def layerdetails(request):
- raise Exception("page not available in interactive mode")
+ def layerdetails(request, layerid):
+ return render(request, 'landing_not_managed.html')
def targets(request):
- raise Exception("page not available in interactive mode")
-
- def targetdetails(request):
- raise Exception("page not available in interactive mode")
+ return render(request, 'landing_not_managed.html')
def machines(request):
- raise Exception("page not available in interactive mode")
+ return render(request, 'landing_not_managed.html')
+
+ def projectconf(request, pid):
+ return render(request, 'landing_not_managed.html')
+
+ def projectbuilds(request, pid):
+ return render(request, 'landing_not_managed.html')
+
+ def build_artifact(request, build_id, artifact_type, artifact_id):
+ return render(request, 'landing_not_managed.html')
+
+ def projects(request):
+ return render(request, 'landing_not_managed.html')
+
+ def xhr_importlayer(request):
+ return render(request, 'landing_not_managed.html')
- def projectconf(request):
- raise Exception("page not available in interactive mode")
+ def xhr_updatelayer(request):
+ return render(request, 'landing_not_managed.html')
- def projectbuilds(request):
- raise Exception("page not available in interactive mode")
+ def buildrequestdetails(request, pid, brid):
+ return render(request, 'landing_not_managed.html')
diff --git a/bitbake/lib/toaster/toastermain/settings.py b/bitbake/lib/toaster/toastermain/settings.py
index 42581f2df4..80f26e0ce6 100644
--- a/bitbake/lib/toaster/toastermain/settings.py
+++ b/bitbake/lib/toaster/toastermain/settings.py
@@ -21,9 +21,17 @@
# Django settings for Toaster project.
+import os, re
+
DEBUG = True
TEMPLATE_DEBUG = DEBUG
+# Set to True to see the SQL queries in console
+SQL_DEBUG = False
+if os.environ.get("TOASTER_SQLDEBUG", None) is not None:
+ SQL_DEBUG = True
+
+
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
@@ -42,7 +50,6 @@ DATABASES = {
}
# Reinterpret database settings if we have DATABASE_URL environment variable defined
-import os, re
if 'DATABASE_URL' in os.environ:
dburl = os.environ['DATABASE_URL']
@@ -208,6 +215,26 @@ MIDDLEWARE_CLASSES = (
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
+CACHES = {
+ # 'default': {
+ # 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
+ # 'LOCATION': '127.0.0.1:11211',
+ # },
+ 'default': {
+ 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
+ 'LOCATION': '/tmp/django-default-cache',
+ 'TIMEOUT': 5,
+ }
+ }
+
+
+from os.path import dirname as DN
+SITE_ROOT=DN(DN(os.path.abspath(__file__)))
+
+import subprocess
+TOASTER_BRANCH = subprocess.Popen('git branch | grep "^* " | tr -d "* "', cwd = SITE_ROOT, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
+TOASTER_REVISION = subprocess.Popen('git rev-parse HEAD ', cwd = SITE_ROOT, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
+
ROOT_URLCONF = 'toastermain.urls'
# Python dotted path to the WSGI application used by Django's runserver.
@@ -241,6 +268,43 @@ INSTALLED_APPS = (
'south',
)
+
+INTERNAL_IPS = ['127.0.0.1', '192.168.2.28']
+
+# Load django-fresh is TOASTER_DEVEL is set, and the module is available
+FRESH_ENABLED = False
+if os.environ.get('TOASTER_DEVEL', None) is not None:
+ try:
+ import fresh
+ MIDDLEWARE_CLASSES = ("fresh.middleware.FreshMiddleware",) + MIDDLEWARE_CLASSES
+ INSTALLED_APPS = INSTALLED_APPS + ('fresh',)
+ FRESH_ENABLED = True
+ except:
+ pass
+
+DEBUG_PANEL_ENABLED = False
+if os.environ.get('TOASTER_DEVEL', None) is not None:
+ try:
+ import debug_toolbar, debug_panel
+ MIDDLEWARE_CLASSES = ('debug_panel.middleware.DebugPanelMiddleware',) + MIDDLEWARE_CLASSES
+ #MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + ('debug_toolbar.middleware.DebugToolbarMiddleware',)
+ INSTALLED_APPS = INSTALLED_APPS + ('debug_toolbar','debug_panel',)
+ DEBUG_PANEL_ENABLED = True
+
+ # this cache backend will be used by django-debug-panel
+ CACHES['debug-panel'] = {
+ 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
+ 'LOCATION': '/var/tmp/debug-panel-cache',
+ 'TIMEOUT': 300,
+ 'OPTIONS': {
+ 'MAX_ENTRIES': 200
+ }
+ }
+
+ except:
+ pass
+
+
SOUTH_TESTS_MIGRATE = False
# if we run in managed mode, we need user support
@@ -260,6 +324,10 @@ import os
currentdir = os.path.dirname(__file__)
for t in os.walk(os.path.dirname(currentdir)):
modulename = os.path.basename(t[0])
+ #if we have a virtualenv skip it to avoid incorrect imports
+ if os.environ.has_key('VIRTUAL_ENV') and os.environ['VIRTUAL_ENV'] in t[0]:
+ continue
+
if ("views.py" in t[2] or "models.py" in t[2]) and not modulename in INSTALLED_APPS:
INSTALLED_APPS = INSTALLED_APPS + (modulename,)
@@ -276,22 +344,43 @@ LOGGING = {
'()': 'django.utils.log.RequireDebugFalse'
}
},
+ 'formatters': {
+ 'datetime': {
+ 'format': '%(asctime)s %(levelname)s %(message)s'
+ }
+ },
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
+ },
+ 'console': {
+ 'level': 'DEBUG',
+ 'class': 'logging.StreamHandler',
+ 'formatter': 'datetime',
}
},
'loggers': {
+ 'toaster' : {
+ 'handlers': ['console'],
+ 'level': 'DEBUG',
+ },
'django.request': {
- 'handlers': ['mail_admins'],
- 'level': 'ERROR',
+ 'handlers': ['console'],
+ 'level': 'WARN',
'propagate': True,
},
}
}
+if DEBUG and SQL_DEBUG:
+ LOGGING['loggers']['django.db.backends'] = {
+ 'level': 'DEBUG',
+ 'handlers': ['console'],
+ }
+
+
# If we're using sqlite, we need to tweak the performance a bit
from django.db.backends.signals import connection_created
def activate_synchronous_off(sender, connection, **kwargs):
diff --git a/bitbake/lib/toaster/toastermain/urls.py b/bitbake/lib/toaster/toastermain/urls.py
index 1ae6245cc3..395c4e8c34 100644
--- a/bitbake/lib/toaster/toastermain/urls.py
+++ b/bitbake/lib/toaster/toastermain/urls.py
@@ -23,6 +23,9 @@ from django.conf.urls import patterns, include, url
from django.views.generic import RedirectView
from django.views.decorators.cache import never_cache
+import logging
+
+logger = logging.getLogger("toaster")
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
@@ -44,17 +47,43 @@ urlpatterns = patterns('',
)
import toastermain.settings
+
+if toastermain.settings.FRESH_ENABLED:
+ urlpatterns.insert(1, url(r'', include('fresh.urls')))
+ #logger.info("Enabled django-fresh extension")
+
+if toastermain.settings.DEBUG_PANEL_ENABLED:
+ import debug_toolbar
+ urlpatterns.insert(1, url(r'', include(debug_toolbar.urls)))
+ #logger.info("Enabled django_toolbar extension")
+
+
if toastermain.settings.MANAGED:
- urlpatterns = urlpatterns + [
+ urlpatterns = [
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
- ]
+ ] + urlpatterns
# Automatically discover urls.py in various apps, beside our own
# and map module directories to the patterns
import os
currentdir = os.path.dirname(__file__)
for t in os.walk(os.path.dirname(currentdir)):
+ #if we have a virtualenv skip it to avoid incorrect imports
+ if os.environ.has_key('VIRTUAL_ENV') and os.environ['VIRTUAL_ENV'] in t[0]:
+ continue
+
if "urls.py" in t[2] and t[0] != currentdir:
modulename = os.path.basename(t[0])
- urlpatterns.append( url(r'^' + modulename + '/', include ( modulename + '.urls')))
+ # make sure we don't have this module name in
+ conflict = False
+ for p in urlpatterns:
+ if p.regex.pattern == '^' + modulename + '/':
+ conflict = True
+ if not conflict:
+ urlpatterns.insert(0, url(r'^' + modulename + '/', include ( modulename + '.urls')))
+ else:
+ logger.warn("Module \'%s\' has a regexp conflict, was not added to the urlpatterns" % modulename)
+
+from pprint import pformat
+#logger.debug("urlpatterns list %s", pformat(urlpatterns))