# Copyright (C) 2009 Chris Larson # Released under the MIT license (see COPYING.MIT for the terms) # # srctree.bbclass enables operation inside of an existing source tree for a # project, rather than using the fetch/unpack/patch idiom. # # By default, it expects that you're keeping the recipe(s) inside the # aforementioned source tree, but you could override S to point at an external # directory and place the recipes in a normal collection/overlay, if you so # chose. # # It also provides some convenience python functions for assembling your # do_clean, if you want to leverage things like 'git clean' to simplify the # operation. # Grab convenience methods & sane default for do_clean inherit clean # Build here S = "${FILE_DIRNAME}" SRC_URI = "" def merge_tasks(d): """ merge_tasks performs two operations: 1) removes do_patch and its deps from the build entirely. 2) merges all of the operations that occur prior to do_populate_sysroot into do_populate_sysroot. This is necessary, because of recipe variants (normal, native, cross, sdk). If a bitbake run happens to want to build more than one of these variants in a single run, it's possible for them to step on one another's toes, due to the shared ${S}. Interleaved configure/compile/install amongst variants will break things badly. """ from itertools import chain from bb import note def __gather_taskdeps(task, seen): for dep in d.getVarFlag(task, "deps"): if not dep in seen: __gather_taskdeps(dep, seen) if not task in seen: seen.append(task) def gather_taskdeps(task): items = [] __gather_taskdeps(task, items) return items newtask = "do_populate_sysroot" mergedtasks = gather_taskdeps(newtask) mergedtasks.pop() deltasks = gather_taskdeps("do_patch") for task in (key for key in d.keys() if d.getVarFlag(key, "task") and not key in mergedtasks): deps = d.getVarFlag(task, "deps") for mergetask in mergedtasks: if mergetask in (d.getVarFlag(task, "recrdeptask"), d.getVarFlag(task, "recdeptask"), d.getVarFlag(task, "deptask")): continue if mergetask in deps: deps.remove(mergetask) #note("removing dep on %s from %s" % (mergetask, task)) if not mergetask in deltasks and \ not newtask in deps: #note("adding dep on %s to %s" % (newtask, task)) deps.append(newtask) d.setVarFlag(task, "deps", deps) for task in mergedtasks[:-1]: deps = d.getVarFlag(task, "deps") for deltask in deltasks: if deltask in deps: deps.remove(deltask) d.setVarFlag(task, "deps", deps) # Pull cross recipe task deps over depends = (d.getVarFlag(task, "depends") or "" for task in mergedtasks[:-1] if not task in deltasks) d.setVarFlag("do_populate_sysroot", "depends", " ".join(depends)) python () { merge_tasks(d) } # Manually run do_install & all of its deps, then do_stage python do_populate_sysroot () { from os.path import exists from bb.build import exec_task, exec_func from bb import note stamp = d.getVar("STAMP", True) def rec_exec_task(task, seen): for dep in d.getVarFlag(task, "deps"): if not dep in seen: rec_exec_task(dep, seen) seen.add(task) #if not exists("%s.%s" % (stamp, task)): note("%s: executing task %s" % (d.getVar("PF", True), task)) exec_task(task, d) rec_exec_task("do_install", set()) exec_func("do_stage", d) } do_populate_sysroot[lockfiles] += "${S}/.lock" ted'>includemode:
Diffstat
-rw-r--r--.gitignore17
-rw-r--r--.templateconf2
-rw-r--r--LICENSE14
-rw-r--r--README79
-rw-r--r--README.commands101
-rw-r--r--README.host.sdk51
-rw-r--r--README.structure214
-rw-r--r--bitbake/AUTHORS10
-rw-r--r--bitbake/ChangeLog151
-rw-r--r--bitbake/HEADER19
-rw-r--r--bitbake/MANIFEST49
-rwxr-xr-xbitbake/bin/bbimage155
-rwxr-xr-xbitbake/bin/bitbake117
-rwxr-xr-xbitbake/bin/bitdoc532
-rw-r--r--bitbake/contrib/README1
-rw-r--r--bitbake/contrib/bbdev.sh31
-rw-r--r--bitbake/contrib/vim/ftdetect/bitbake.vim4
-rw-r--r--bitbake/contrib/vim/syntax/bitbake.vim120
-rw-r--r--bitbake/doc/bitbake.1117
-rw-r--r--bitbake/doc/manual/Makefile56
-rw-r--r--bitbake/doc/manual/html.css281
-rw-r--r--bitbake/doc/manual/usermanual.xml466
-rw-r--r--bitbake/lib/bb/COW.py320
-rw-r--r--bitbake/lib/bb/__init__.py1229
-rw-r--r--bitbake/lib/bb/build.py454
-rw-r--r--bitbake/lib/bb/cache.py433
-rw-r--r--bitbake/lib/bb/cooker.py653
-rw-r--r--bitbake/lib/bb/data.py556
-rw-r--r--bitbake/lib/bb/data_smart.py270
-rw-r--r--bitbake/lib/bb/event.py264
-rw-r--r--bitbake/lib/bb/fetch/__init__.py288
-rw-r--r--bitbake/lib/bb/fetch/cvs.py156
-rw-r--r--bitbake/lib/bb/fetch/git.py127
-rw-r--r--bitbake/lib/bb/fetch/local.py59
-rw-r--r--bitbake/lib/bb/fetch/perforce.py213
-rw-r--r--bitbake/lib/bb/fetch/ssh.py120
-rw-r--r--bitbake/lib/bb/fetch/svk.py109
-rw-r--r--bitbake/lib/bb/fetch/svn.py144
-rw-r--r--bitbake/lib/bb/fetch/wget.py99
-rw-r--r--bitbake/lib/bb/manifest.py144
-rw-r--r--bitbake/lib/bb/methodpool.py84
-rw-r--r--bitbake/lib/bb/msg.py136
-rw-r--r--bitbake/lib/bb/parse/__init__.py80
-rw-r--r--bitbake/lib/bb/parse/parse_c/BBHandler.py188
-rw-r--r--bitbake/lib/bb/parse/parse_c/Makefile36
-rw-r--r--bitbake/lib/bb/parse/parse_c/README.build12
-rw-r--r--bitbake/lib/bb/parse/parse_c/__init__.py28
-rw-r--r--bitbake/lib/bb/parse/parse_c/bitbakec.pyx253
-rw-r--r--bitbake/lib/bb/parse/parse_c/bitbakeparser.cc1157
-rw-r--r--bitbake/lib/bb/parse/parse_c/bitbakeparser.h29
-rw-r--r--bitbake/lib/bb/parse/parse_c/bitbakeparser.y179
-rw-r--r--bitbake/lib/bb/parse/parse_c/bitbakescanner.cc3209
-rw-r--r--bitbake/lib/bb/parse/parse_c/bitbakescanner.l319
-rw-r--r--bitbake/lib/bb/parse/parse_c/lexer.h48
-rw-r--r--bitbake/lib/bb/parse/parse_c/lexerc.h19
-rw-r--r--bitbake/lib/bb/parse/parse_c/python_output.h56
-rw-r--r--bitbake/lib/bb/parse/parse_c/token.h96
-rw-r--r--bitbake/lib/bb/parse/parse_py/BBHandler.py417
-rw-r--r--bitbake/lib/bb/parse/parse_py/ConfHandler.py217
-rw-r--r--bitbake/lib/bb/parse/parse_py/__init__.py33
-rw-r--r--bitbake/lib/bb/providers.py213
-rw-r--r--bitbake/lib/bb/runqueue.py589
-rw-r--r--bitbake/lib/bb/shell.py838
-rw-r--r--bitbake/lib/bb/taskdata.py578
-rw-r--r--bitbake/lib/bb/utils.py204
-rw-r--r--build/conf/local.conf.sample98
-rw-r--r--meta-extras/packages/bash/bash-3.2/001-005.patch312
-rw-r--r--meta-extras/packages/bash/bash_3.2.bb28
-rw-r--r--meta-extras/packages/dhcdbd/dhcdbd_2.0.bb25
-rw-r--r--meta-extras/packages/dhcdbd/files/dbus-api-fix.patch20
-rw-r--r--meta-extras/packages/dhcdbd/files/dhcdbd28
-rw-r--r--meta-extras/packages/dhcdbd/files/dhcdbd-1.14-pkgconfig_dbus.patch26
-rw-r--r--meta-extras/packages/dhcdbd/files/no-ext-options.patch13
-rw-r--r--meta-extras/packages/dhcp/dhcp_3.0.2.bb51
-rw-r--r--meta-extras/packages/dhcp/files/default-relay12
-rw-r--r--meta-extras/packages/dhcp/files/dhcp-3.0.3-dhclient-dbus.patch84
-rw-r--r--meta-extras/packages/dhcp/files/fixincludes.patch10
-rw-r--r--meta-extras/packages/dhcp/files/init-server44
-rw-r--r--meta-extras/packages/dhcp/files/noattrmode.patch20
-rw-r--r--meta-extras/packages/evince/evince_0.9.0.bb11
-rw-r--r--meta-extras/packages/evince/evince_svn.bb15
-rw-r--r--meta-extras/packages/evince/files/no-icon-theme.diff13
-rw-r--r--meta-extras/packages/images/oh-image-extras.bb28
-rw-r--r--meta-extras/packages/iproute2/iproute2-2.6.18/iproute2-2.6.15_no_strip.diff25
-rw-r--r--meta-extras/packages/iproute2/iproute2-2.6.18/new-flex-fix.patch83
-rw-r--r--meta-extras/packages/iproute2/iproute2.inc18
-rw-r--r--meta-extras/packages/iproute2/iproute2_2.6.18.bb8
-rw-r--r--meta-extras/packages/libid3tag/libid3tag_0.15.0b.bb19
-rw-r--r--meta-extras/packages/libmad/libmad_0.15.0b.bb26
-rw-r--r--meta-extras/packages/libnl/files/local-includes.patch11
-rw-r--r--meta-extras/packages/libnl/libnl_1.0-pre6.bb18
-rw-r--r--meta-extras/packages/libol/libol_0.3.18.bb14
-rw-r--r--meta-extras/packages/madplay/madplay_0.15.2b.bb13
-rw-r--r--meta-extras/packages/maemo-mapper/files/fix_segfault.patch31
-rw-r--r--meta-extras/packages/maemo-mapper/maemo-mapper-nohildon_svn.bb22
-rw-r--r--meta-extras/packages/mc/mc_4.6.0.bb32
-rw-r--r--meta-extras/packages/networkmanager/files/99_networkmanager1
-rw-r--r--meta-extras/packages/networkmanager/files/NetworkManager28
-rw-r--r--meta-extras/packages/networkmanager/networkmanager_svn.bb64
-rw-r--r--meta-extras/packages/poppler/poppler-data_0.1.bb16
-rw-r--r--meta-extras/packages/poppler/poppler-fpu.inc6
-rw-r--r--meta-extras/packages/poppler/poppler.inc23
-rw-r--r--meta-extras/packages/poppler/poppler_0.5.4.bb2
-rw-r--r--meta-extras/packages/python/python-2.4.4-manifest.inc275
-rw-r--r--meta-extras/packages/python/python-2.4.4/autohell.patch1209
-rw-r--r--meta-extras/packages/python/python-2.4.4/bindir-libdir.patch18
-rw-r--r--meta-extras/packages/python/python-2.4.4/crosscompile.patch108
-rw-r--r--meta-extras/packages/python/python-2.4.4/fix-tkinter-detection.patch39
-rw-r--r--meta-extras/packages/python/python-2.4.4/sitebranding.patch19
-rw-r--r--meta-extras/packages/python/python-gst/python-path.patch24
-rw-r--r--meta-extras/packages/python/python-gst_0.10.7.bb22
-rw-r--r--meta-extras/packages/python/python-native-2.4.0/bindir-libdir.patch18
-rw-r--r--meta-extras/packages/python/python-native-2.4.0/cross-distutils.patch38
-rw-r--r--meta-extras/packages/python/python-native_2.4.0.bb31
-rw-r--r--meta-extras/packages/python/python-pygobject-native_2.12.3.bb7
-rw-r--r--meta-extras/packages/python/python-pygobject/python-path.patch23
-rw-r--r--meta-extras/packages/python/python-pygobject_2.12.3.bb22
-rw-r--r--meta-extras/packages/python/python-pygtk2/acinclude.m490
-rw-r--r--meta-extras/packages/python/python-pygtk2_2.8.6.bb25
-rw-r--r--meta-extras/packages/python/python_2.4.4.bb70
-rw-r--r--meta-extras/packages/sqlite/sqlite3-3.3.7/cross-compile.patch92
-rw-r--r--meta-extras/packages/sqlite/sqlite3-3.3.7/ldflags.patch67
-rw-r--r--meta-extras/packages/sqlite/sqlite3-3.3.7/libtool.patch25
-rw-r--r--meta-extras/packages/sqlite/sqlite3.inc44
-rw-r--r--meta-extras/packages/sqlite/sqlite3_3.3.7.bb2
-rw-r--r--meta-extras/packages/syslog-ng/files/initscript45
-rw-r--r--meta-extras/packages/syslog-ng/files/syslog-ng.conf89
-rw-r--r--meta-extras/packages/syslog-ng/syslog-ng_1.6.8.bb30
-rw-r--r--meta-extras/packages/tasks/task-oh-extras.bb11
-rw-r--r--meta-extras/packages/vincent/vincent_svn.bb22
-rw-r--r--meta-selftest/COPYING.MIT17
-rw-r--r--meta-selftest/README3
-rw-r--r--meta-selftest/classes/test_events.bbclass16<