Compare commits
290 Commits
1.5_M5.rc3
...
dora-10.0.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
102bf5e0f6 | ||
|
|
bc37596e8f | ||
|
|
c5a2104c82 | ||
|
|
c042b16d2b | ||
|
|
ac7522bd17 | ||
|
|
c65ae4383d | ||
|
|
82846e69d8 | ||
|
|
5948aaa534 | ||
|
|
28bab2eb20 | ||
|
|
ceb56b7331 | ||
|
|
f52b7f2315 | ||
|
|
75ac719f3e | ||
|
|
4570c2e937 | ||
|
|
5dfb1de6ff | ||
|
|
8229b470b0 | ||
|
|
4404c69019 | ||
|
|
b5ad5ba24b | ||
|
|
7754bd215b | ||
|
|
5445f71fc8 | ||
|
|
5416b958be | ||
|
|
81e678bc0a | ||
|
|
3c5b6af991 | ||
|
|
e57bd62e17 | ||
|
|
e0e30c6239 | ||
|
|
7c72144419 | ||
|
|
f18194c088 | ||
|
|
06afe1fafe | ||
|
|
266a7d8c97 | ||
|
|
22d5782ef5 | ||
|
|
a333693c7f | ||
|
|
ee7e64f116 | ||
|
|
45392cc67a | ||
|
|
95915910df | ||
|
|
0b9c3393c1 | ||
|
|
abeea1be5f | ||
|
|
816b6be64d | ||
|
|
b77cb9b719 | ||
|
|
5f59b3c070 | ||
|
|
7f88c9bf53 | ||
|
|
280045cc66 | ||
|
|
854fa8ef7b | ||
|
|
69a9c18b33 | ||
|
|
105a709bc7 | ||
|
|
869d732517 | ||
|
|
adf8a6364e | ||
|
|
a72f4a9bfc | ||
|
|
0c7b734f96 | ||
|
|
28eedee1d4 | ||
|
|
a59aa9eebb | ||
|
|
acf547084a | ||
|
|
540c27906a | ||
|
|
113398d258 | ||
|
|
479fcbfd30 | ||
|
|
47129f300f | ||
|
|
0d8cbc38ab | ||
|
|
17b5f2f162 | ||
|
|
56ea7aca3e | ||
|
|
9d64f3de4a | ||
|
|
9def5c9542 | ||
|
|
2a013e290d | ||
|
|
20a86e16bc | ||
|
|
4e537df727 | ||
|
|
f81f4c5f21 | ||
|
|
6dff1bc80f | ||
|
|
d299444adc | ||
|
|
104166c804 | ||
|
|
bdfd716b7b | ||
|
|
e7a20238dc | ||
|
|
42b115bb53 | ||
|
|
35a74ee360 | ||
|
|
56f39bcf22 | ||
|
|
a02280f99f | ||
|
|
85a8645347 | ||
|
|
20979ec523 | ||
|
|
30f85cede8 | ||
|
|
43a960abf4 | ||
|
|
b618f74d6e | ||
|
|
d80472c4e3 | ||
|
|
75c143a7ae | ||
|
|
9fc88f96d4 | ||
|
|
53a1d9a788 | ||
|
|
e5d09762c2 | ||
|
|
62e0a4a425 | ||
|
|
0f066bbddb | ||
|
|
218d251fbd | ||
|
|
aa8edc08b0 | ||
|
|
5b973c4924 | ||
|
|
bdede3b8fc | ||
|
|
1cd0b1ea1c | ||
|
|
a81bfcb91f | ||
|
|
6b9cff42a8 | ||
|
|
320f90d917 | ||
|
|
22909d0a47 | ||
|
|
a8a2404053 | ||
|
|
0d194a8c62 | ||
|
|
df2e70a3af | ||
|
|
28144187da | ||
|
|
d8d5841188 | ||
|
|
ec84110a74 | ||
|
|
e2dd4ee7cf | ||
|
|
63bc84cdf5 | ||
|
|
ec51951f96 | ||
|
|
7bd3a81ef5 | ||
|
|
155961db71 | ||
|
|
89d3e75087 | ||
|
|
eb36aaa07f | ||
|
|
b8bdd92ae6 | ||
|
|
7fa2c8f6f7 | ||
|
|
18d6adb73e | ||
|
|
aca7aeadcb | ||
|
|
fcc3b98c5f | ||
|
|
a8d5d06964 | ||
|
|
0f902628fa | ||
|
|
45ace75bbf | ||
|
|
46b76d4b40 | ||
|
|
5cb0828129 | ||
|
|
e44538f4e4 | ||
|
|
56c4de93b9 | ||
|
|
a1d9b6df86 | ||
|
|
b43c8126de | ||
|
|
0fe5d9d657 | ||
|
|
331159d90d | ||
|
|
58825b9b20 | ||
|
|
df18dc084e | ||
|
|
cf2ebed2ff | ||
|
|
072c4e123f | ||
|
|
d2736102f3 | ||
|
|
7509c0f647 | ||
|
|
d4b0a4bee3 | ||
|
|
2471296e25 | ||
|
|
2e1cb79170 | ||
|
|
08d902ac8f | ||
|
|
db51dd22fa | ||
|
|
f9c26fbefb | ||
|
|
4312f5a534 | ||
|
|
66bf6562d2 | ||
|
|
9f3706fcb4 | ||
|
|
1abb7e7829 | ||
|
|
636cbfd8a8 | ||
|
|
e8e3b62d6b | ||
|
|
0ac89346de | ||
|
|
ec9f4c3c25 | ||
|
|
fde2911983 | ||
|
|
4a0ff9c74d | ||
|
|
5a2d11e845 | ||
|
|
24ffda4701 | ||
|
|
197f1fe1cc | ||
|
|
bb8e360657 | ||
|
|
b049d532f6 | ||
|
|
724a466f4c | ||
|
|
b88d1fb377 | ||
|
|
2f64fae60b | ||
|
|
1bff3fc86f | ||
|
|
e5fcc7e1ca | ||
|
|
601e1a740b | ||
|
|
68ec3d4925 | ||
|
|
32edeb391f | ||
|
|
b8819b02dc | ||
|
|
5454f92e57 | ||
|
|
41875facc9 | ||
|
|
d7e22e5f20 | ||
|
|
1ffa203dd5 | ||
|
|
2f8ce2c784 | ||
|
|
41f88ee1db | ||
|
|
141d4f3179 | ||
|
|
d43d7b1893 | ||
|
|
5b5e1b9008 | ||
|
|
c54076ed8a | ||
|
|
e58266dd3b | ||
|
|
4d8ab87d25 | ||
|
|
8bf8fe09f9 | ||
|
|
3059b09223 | ||
|
|
28af70d975 | ||
|
|
68db43e279 | ||
|
|
495d05ce7d | ||
|
|
bd5c5f012c | ||
|
|
a2a544d62c | ||
|
|
02af823c00 | ||
|
|
f79b21a57b | ||
|
|
ebdc88aafd | ||
|
|
e0a351b913 | ||
|
|
5f9ee672a0 | ||
|
|
139e887c9a | ||
|
|
9bed1a3e52 | ||
|
|
1146eeb5b7 | ||
|
|
1917544d2f | ||
|
|
e42fefe717 | ||
|
|
cbc12aac86 | ||
|
|
729033237b | ||
|
|
a60c6b3bdc | ||
|
|
ad311a1931 | ||
|
|
49e754aca3 | ||
|
|
dd4b362193 | ||
|
|
44d74f6ca4 | ||
|
|
f9c1ac34b6 | ||
|
|
c68888f762 | ||
|
|
a897186059 | ||
|
|
95455bc3e2 | ||
|
|
80203494aa | ||
|
|
8c5f345497 | ||
|
|
0fc8317c63 | ||
|
|
bf6b0d95db | ||
|
|
954e34917d | ||
|
|
bd46e2a0fc | ||
|
|
b9bb27800f | ||
|
|
06cddebe6d | ||
|
|
35ec4d2a93 | ||
|
|
395486f638 | ||
|
|
66e5feb315 | ||
|
|
f3455db084 | ||
|
|
9fbaa9b9ec | ||
|
|
d3bf6bd677 | ||
|
|
6084246825 | ||
|
|
3fa6a307c3 | ||
|
|
d7f340a0e9 | ||
|
|
2effece91b | ||
|
|
26354c2715 | ||
|
|
33ed042d4f | ||
|
|
9cef06f693 | ||
|
|
5cdf8a6363 | ||
|
|
35bd82a78f | ||
|
|
43c10b90ad | ||
|
|
f5686c9f42 | ||
|
|
110e8039c7 | ||
|
|
34c46b33a0 | ||
|
|
80c66fd7ce | ||
|
|
070ab36053 | ||
|
|
fde7349e25 | ||
|
|
44cc19d2ed | ||
|
|
597aceb920 | ||
|
|
7b0c340926 | ||
|
|
25bea918aa | ||
|
|
72c73e67ca | ||
|
|
b577e74096 | ||
|
|
da7a072aa0 | ||
|
|
673b28f6db | ||
|
|
caa29e693c | ||
|
|
b1d7cfa5ee | ||
|
|
718fac69ed | ||
|
|
dc09cfecf2 | ||
|
|
aef132662e | ||
|
|
599209eca2 | ||
|
|
053ee260a8 | ||
|
|
6294f174d9 | ||
|
|
6bf4106edd | ||
|
|
e3ed36e882 | ||
|
|
dcefb7cccf | ||
|
|
b1b9f43ca4 | ||
|
|
4e7dde77de | ||
|
|
bead255721 | ||
|
|
19ad80c0a6 | ||
|
|
d4b9713ec6 | ||
|
|
d9955a14fa | ||
|
|
3c41bea907 | ||
|
|
d28b1816e9 | ||
|
|
35a1d37ac8 | ||
|
|
ace48c2866 | ||
|
|
24ae636fde | ||
|
|
a05d474e5a | ||
|
|
0c51d610e1 | ||
|
|
5ee82d4048 | ||
|
|
f7621f47d8 | ||
|
|
ba83eb315d | ||
|
|
87e86d4fd3 | ||
|
|
c2d5fa9289 | ||
|
|
f427614108 | ||
|
|
5262ea16a6 | ||
|
|
14c6a82c84 | ||
|
|
19174b0796 | ||
|
|
8f650f2e2c | ||
|
|
fc91e068cc | ||
|
|
42095866ec | ||
|
|
139b44be7a | ||
|
|
405be52d26 | ||
|
|
d652987612 | ||
|
|
595321a626 | ||
|
|
a3558bfb99 | ||
|
|
eba2428060 | ||
|
|
ed81641386 | ||
|
|
10c85f54e5 | ||
|
|
8ce33c4bcc | ||
|
|
ad77d10386 | ||
|
|
f3ab2fc731 | ||
|
|
cb2496c607 | ||
|
|
77ae0d905a | ||
|
|
06965e88e6 | ||
|
|
fa0fd37f8e | ||
|
|
7a3d2fbcdf | ||
|
|
b3c750e29c | ||
|
|
853bc53cd5 |
@@ -75,14 +75,32 @@ Intel x86 based PCs and devices (genericx86)
|
||||
|
||||
The genericx86 MACHINE is tested on the following platforms:
|
||||
|
||||
o Asus EeePC 901
|
||||
o Acer Aspire One
|
||||
o Toshiba NB305
|
||||
o Intel Embedded Development Board 1-N450 (Black Sand)
|
||||
Intel Xeon/Core i-Series:
|
||||
+ Intel Romley Server: Sandy Bridge Xeon processor, C600 PCH (Patsburg), (Canoe Pass CRB)
|
||||
+ Intel Romley Server: Ivy Bridge Xeon processor, C600 PCH (Patsburg), (Intel SDP S2R3)
|
||||
+ Intel Crystal Forest Server: Sandy Bridge Xeon processor, DH89xx PCH (Cave Creek), (Stargo CRB)
|
||||
+ Intel Chief River Mobile: Ivy Bridge Mobile processor, QM77 PCH (Panther Point-M), (Emerald Lake II CRB, Sabino Canyon CRB)
|
||||
+ Intel Huron River Mobile: Sandy Bridge processor, QM67 PCH (Cougar Point), (Emerald Lake CRB, EVOC EC7-1817LNAR board)
|
||||
+ Intel Calpella Platform: Core i7 processor, QM57 PCH (Ibex Peak-M), (Red Fort CRB, Emerson MATXM CORE-411-B)
|
||||
+ Intel Nehalem/Westmere-EP Server: Xeon 56xx/55xx processors, 5520 chipset, ICH10R IOH (82801), (Hanlan Creek CRB)
|
||||
+ Intel Nehalem Workstation: Xeon 56xx/55xx processors, System SC5650SCWS (Greencity CRB)
|
||||
+ Intel Picket Post Server: Xeon 56xx/55xx processors (Jasper Forest), 3420 chipset (Ibex Peak), (Osage CRB)
|
||||
+ Intel Storage Platform: Sandy Bridge Xeon processor, C600 PCH (Patsburg), (Oak Creek Canyon CRB)
|
||||
+ Intel Shark Bay Client Platform: Haswell processor, LynxPoint PCH, (Walnut Canyon CRB, Lava Canyon CRB, Basking Ridge CRB, Flathead Creek CRB)
|
||||
+ Intel Shark Bay Ultrabook Platform: Haswell ULT processor, Lynx Point-LP PCH, (WhiteTip Mountain 1 CRB)
|
||||
|
||||
and is likely to work on many unlisted Atom based devices. The MACHINE type
|
||||
supports ethernet, wifi, sound, and i915 graphics by default in addition to
|
||||
common PC input devices, busses, and so on.
|
||||
Intel Atom platforms:
|
||||
+ Intel embedded Menlow: Intel Atom Z510/530 CPU, System Controller Hub US15W (Portwell NANO-8044)
|
||||
+ Intel Luna Pier: Intel Atom N4xx/D5xx series CPU (aka: Pineview-D & -M), 82801HM I/O Hub (ICH8M), (Advantech AIMB-212, Moon Creek CRB)
|
||||
+ Intel Queens Bay platform: Intel Atom E6xx CPU (aka: Tunnel Creek), Topcliff EG20T I/O Hub (Emerson NITX-315, Crown Bay CRB, Minnow Board)
|
||||
+ Intel Fish River Island platform: Intel Atom E6xx CPU (aka: Tunnel Creek), Topcliff EG20T I/O Hub (Kontron KM2M806)
|
||||
+ Intel Cedar Trail platform: Intel Atom N2000 & D2000 series CPU (aka: Cedarview), NM10 Express Chipset (Norco kit BIS-6630, Cedar Rock CRB)
|
||||
|
||||
and is likely to work on many unlisted Atom/Core/Xeon based devices. The MACHINE
|
||||
type supports ethernet, wifi, sound, and Intel/vesa graphics by default in
|
||||
addition to common PC input devices, busses, and so on. Note that it does not
|
||||
included the binary-only graphic drivers used on some Atom platforms, for
|
||||
accelerated graphics on these machines please refer to meta-intel.
|
||||
|
||||
Depending on the device, it can boot from a traditional hard-disk, a USB device,
|
||||
or over the network. Writing generated images to physical media is
|
||||
|
||||
@@ -41,7 +41,7 @@ from bb import ui
|
||||
from bb import server
|
||||
from bb import cookerdata
|
||||
|
||||
__version__ = "1.19.1"
|
||||
__version__ = "1.20.0"
|
||||
logger = logging.getLogger("BitBake")
|
||||
|
||||
# Python multiprocessing requires /dev/shm
|
||||
@@ -75,18 +75,6 @@ def get_ui(config):
|
||||
sys.exit("FATAL: Invalid user interface '%s' specified.\n"
|
||||
"Valid interfaces: depexp, goggle, ncurses, hob, knotty [default]." % interface)
|
||||
|
||||
def gather_extra_cache_data():
|
||||
extra = []
|
||||
interfaces = ['depexp', 'goggle', 'ncurses', 'hob', 'knotty']
|
||||
for i in interfaces:
|
||||
try:
|
||||
ui = __import__("bb.ui." + i, fromlist = [i])
|
||||
if hasattr(ui, "extraCaches"):
|
||||
extra = extra + ui.extraCaches
|
||||
del ui
|
||||
except:
|
||||
pass
|
||||
return extra
|
||||
|
||||
# Display bitbake/OE warnings via the BitBake.Warnings logger, ignoring others"""
|
||||
warnlog = logging.getLogger("BitBake.Warnings")
|
||||
@@ -112,59 +100,58 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
|
||||
def parseCommandLine(self):
|
||||
parser = optparse.OptionParser(
|
||||
version = "BitBake Build Tool Core version %s, %%prog version %s" % (bb.__version__, __version__),
|
||||
usage = """%prog [options] [package ...]
|
||||
usage = """%prog [options] [recipename/target ...]
|
||||
|
||||
Executes the specified task (default is 'build') for a given set of BitBake files.
|
||||
It expects that BBFILES is defined, which is a space separated list of files to
|
||||
be executed. BBFILES does support wildcards.
|
||||
Default BBFILES are the .bb files in the current directory.""")
|
||||
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 the task against this .bb file, rather than a package from BBFILES. Does not handle any dependencies.",
|
||||
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 those that depend on it, cannot be remade, the other dependencies of these targets can be processed all the same.",
|
||||
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.",
|
||||
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 run of specified cmd, regardless of stamp status",
|
||||
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 task to execute. Note that this only executes the specified task for the providee and the packages it depends on, i.e. 'compile' does not implicitly call stage for the dependencies (IOW: use only if you know what you are doing). Depending on the base.bbclass a listtasks tasks is defined and will show available tasks",
|
||||
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 cmd such as 'compile' and run the default task for the specified target(s)",
|
||||
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",
|
||||
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",
|
||||
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 chit-chat to the terminal",
|
||||
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",
|
||||
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 = "don't execute, just dump out the signature construction information",
|
||||
parser.add_option("-S", "--dump-signatures", help = "Don't execute, just dump out the signature construction information.",
|
||||
action = "store_true", dest = "dump_signatures", default = False)
|
||||
|
||||
parser.add_option("-p", "--parse-only", help = "quit after parsing the BB files (developers only)",
|
||||
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",
|
||||
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-package environment (this is what used to be bbread)",
|
||||
parser.add_option("-e", "--environment", help = "Show the global or per-package environment complete with information about where variables were set/changed.",
|
||||
action = "store_true", dest = "show_environment", default = False)
|
||||
|
||||
parser.add_option("-g", "--graphviz", help = "emit the dependency trees of the specified packages in the dot syntax, and the pn-buildlist to show the build list",
|
||||
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""",
|
||||
@@ -173,34 +160,34 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
|
||||
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 print a report",
|
||||
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 = "userinterface to use",
|
||||
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",
|
||||
parser.add_option("-t", "--servertype", help = "Choose which server to use, process or xmlrpc.",
|
||||
action = "store", dest = "servertype")
|
||||
|
||||
parser.add_option("", "--revisions-changed", help = "Set the exit code depending on whether upstream floating revisions have changed or not",
|
||||
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 UI, the frontend can connect with bitbake server itself",
|
||||
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",
|
||||
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, forces builds",
|
||||
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",
|
||||
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",
|
||||
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",
|
||||
parser.add_option("", "--observe-only", help = "Connect to a server as an observing-only client.",
|
||||
action = "store_true", dest = "observe_only", default = False)
|
||||
|
||||
options, targets = parser.parse_args(sys.argv)
|
||||
@@ -275,8 +262,8 @@ def main():
|
||||
if not configParams.bind:
|
||||
sys.exit("FATAL: The '--server-only' option requires a name/address to bind to with the -B option.\n")
|
||||
if configParams.remote_server:
|
||||
sys.exit("FATAL: The '--server-only' option conflicts with the '--remote-server' option. %s\n" %
|
||||
("Please check your BBSERVER environment" if "BBSERVER" in os.environ else "" ))
|
||||
sys.exit("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":
|
||||
sys.exit("FATAL: If '-B' or '--bind' is defined, we must set the servertype as 'xmlrpc'.\n")
|
||||
@@ -302,30 +289,28 @@ def main():
|
||||
# Clear away any spurious environment variables while we stoke up the cooker
|
||||
cleanedvars = bb.utils.clean_environment()
|
||||
|
||||
# Collect all the caches we need
|
||||
if configParams.server_only:
|
||||
configuration.extra_caches = gather_extra_cache_data()
|
||||
else:
|
||||
configuration.extra_caches = getattr(ui_module, "extraCaches", [])
|
||||
|
||||
if not configParams.remote_server:
|
||||
# we start a server with a given configuration
|
||||
server = start_server(servermodule, configParams, configuration)
|
||||
bb.event.ui_queue = []
|
||||
else:
|
||||
# we start a stub server that is actually a XMLRPClient to
|
||||
# we start a stub server that is actually a XMLRPClient that connects to a real server
|
||||
server = servermodule.BitBakeXMLRPCClient(configParams.observe_only)
|
||||
server.saveConnectionDetails(configParams.remote_server)
|
||||
|
||||
logger.removeHandler(handler)
|
||||
|
||||
if not configParams.server_only:
|
||||
# Collect the feature set for the UI
|
||||
featureset = getattr(ui_module, "featureSet", [])
|
||||
|
||||
# Setup a connection to the server (cooker)
|
||||
server_connection = server.establishConnection()
|
||||
server_connection = server.establishConnection(featureset)
|
||||
|
||||
# Restore the environment in case the UI needs it
|
||||
for k in cleanedvars:
|
||||
os.environ[k] = cleanedvars[k]
|
||||
|
||||
logger.removeHandler(handler)
|
||||
|
||||
try:
|
||||
return ui_module.main(server_connection.connection, server_connection.events, configParams)
|
||||
finally:
|
||||
@@ -339,6 +324,8 @@ def main():
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
ret = main()
|
||||
except bb.BBHandledException:
|
||||
ret = 1
|
||||
except Exception:
|
||||
ret = 1
|
||||
import traceback
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# bitbake-diffsigs
|
||||
# BitBake task signature data comparison utility
|
||||
#
|
||||
# Copyright (C) 2012 Intel Corporation
|
||||
# Copyright (C) 2012-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
|
||||
@@ -30,7 +30,18 @@ sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), '
|
||||
import bb.tinfoil
|
||||
import bb.siggen
|
||||
|
||||
logger = logging.getLogger('BitBake')
|
||||
def logger_create(name, output=sys.stderr):
|
||||
logger = logging.getLogger(name)
|
||||
console = logging.StreamHandler(output)
|
||||
format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
|
||||
if output.isatty():
|
||||
format.enable_color()
|
||||
console.setFormatter(format)
|
||||
logger.addHandler(console)
|
||||
logger.setLevel(logging.INFO)
|
||||
return logger
|
||||
|
||||
logger = logger_create('bitbake-diffsigs')
|
||||
|
||||
def find_compare_task(bbhandler, pn, taskname):
|
||||
""" Find the most recent signature files for the specified PN/task and compare them """
|
||||
@@ -39,6 +50,9 @@ def find_compare_task(bbhandler, pn, taskname):
|
||||
logger.error('Metadata does not support finding signature data files')
|
||||
sys.exit(1)
|
||||
|
||||
if not taskname.startswith('do_'):
|
||||
taskname = 'do_%s' % taskname
|
||||
|
||||
filedates = bb.siggen.find_siginfo(pn, taskname, None, bbhandler.config_data)
|
||||
latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-2:]
|
||||
if not latestfiles:
|
||||
@@ -71,6 +85,7 @@ def find_compare_task(bbhandler, pn, taskname):
|
||||
|
||||
|
||||
parser = optparse.OptionParser(
|
||||
description = "Compares siginfo/sigdata files written out by BitBake",
|
||||
usage = """
|
||||
%prog -t recipename taskname
|
||||
%prog sigdatafile1 sigdatafile2
|
||||
@@ -78,25 +93,30 @@ parser = optparse.OptionParser(
|
||||
|
||||
parser.add_option("-t", "--task",
|
||||
help = "find the signature data files for last two runs of the specified task and compare them",
|
||||
action="store_true", dest="taskmode")
|
||||
action="store", dest="taskargs", nargs=2, metavar='recipename taskname')
|
||||
|
||||
options, args = parser.parse_args(sys.argv)
|
||||
|
||||
if len(args) == 1:
|
||||
parser.print_help()
|
||||
if options.taskargs:
|
||||
tinfoil = bb.tinfoil.Tinfoil()
|
||||
tinfoil.prepare(config_only = True)
|
||||
find_compare_task(tinfoil, options.taskargs[0], options.taskargs[1])
|
||||
else:
|
||||
if options.taskmode:
|
||||
tinfoil = bb.tinfoil.Tinfoil()
|
||||
if len(args) < 3:
|
||||
logger.error("Please specify a recipe and task name")
|
||||
sys.exit(1)
|
||||
tinfoil.prepare(config_only = True)
|
||||
find_compare_task(tinfoil, args[1], args[2])
|
||||
if len(args) == 1:
|
||||
parser.print_help()
|
||||
else:
|
||||
if len(args) == 2:
|
||||
output = bb.siggen.dump_sigfile(sys.argv[1])
|
||||
else:
|
||||
output = bb.siggen.compare_sigfiles(sys.argv[1], sys.argv[2])
|
||||
import cPickle
|
||||
try:
|
||||
if len(args) == 2:
|
||||
output = bb.siggen.dump_sigfile(sys.argv[1])
|
||||
else:
|
||||
output = bb.siggen.compare_sigfiles(sys.argv[1], sys.argv[2])
|
||||
except IOError as e:
|
||||
logger.error(str(e))
|
||||
sys.exit(1)
|
||||
except cPickle.UnpicklingError, EOFError:
|
||||
logger.error('Invalid signature data - ensure you are specifying sigdata/siginfo files')
|
||||
sys.exit(1)
|
||||
|
||||
if output:
|
||||
print '\n'.join(output)
|
||||
if output:
|
||||
print '\n'.join(output)
|
||||
|
||||
@@ -1,11 +1,65 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# bitbake-dumpsig
|
||||
# BitBake task signature dump utility
|
||||
#
|
||||
# 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.
|
||||
|
||||
import os
|
||||
import sys
|
||||
import warnings
|
||||
import optparse
|
||||
import logging
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
|
||||
|
||||
import bb.siggen
|
||||
|
||||
output = bb.siggen.dump_sigfile(sys.argv[1])
|
||||
if output:
|
||||
print '\n'.join(output)
|
||||
def logger_create(name, output=sys.stderr):
|
||||
logger = logging.getLogger(name)
|
||||
console = logging.StreamHandler(output)
|
||||
format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
|
||||
if output.isatty():
|
||||
format.enable_color()
|
||||
console.setFormatter(format)
|
||||
logger.addHandler(console)
|
||||
logger.setLevel(logging.INFO)
|
||||
return logger
|
||||
|
||||
logger = logger_create('bitbake-dumpsig')
|
||||
|
||||
parser = optparse.OptionParser(
|
||||
description = "Dumps siginfo/sigdata files written out by BitBake",
|
||||
usage = """
|
||||
%prog sigdatafile""")
|
||||
|
||||
options, args = parser.parse_args(sys.argv)
|
||||
|
||||
if len(args) == 1:
|
||||
parser.print_help()
|
||||
else:
|
||||
import cPickle
|
||||
try:
|
||||
output = bb.siggen.dump_sigfile(args[1])
|
||||
except IOError as e:
|
||||
logger.error(str(e))
|
||||
sys.exit(1)
|
||||
except cPickle.UnpicklingError, EOFError:
|
||||
logger.error('Invalid signature data - ensure you are specifying a sigdata/siginfo file')
|
||||
sys.exit(1)
|
||||
|
||||
if output:
|
||||
print '\n'.join(output)
|
||||
|
||||
@@ -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.19.1"
|
||||
__version__ = "1.20.0"
|
||||
|
||||
import sys
|
||||
if sys.version_info < (2, 7, 3):
|
||||
|
||||
@@ -72,6 +72,8 @@ class TaskBase(event.Event):
|
||||
def __init__(self, t, logfile, d):
|
||||
self._task = t
|
||||
self._package = d.getVar("PF", True)
|
||||
self.taskfile = d.getVar("FILE", True)
|
||||
self.taskname = self._task
|
||||
self.logfile = logfile
|
||||
event.Event.__init__(self)
|
||||
self._message = "recipe %s: task %s: %s" % (d.getVar("PF", True), t, self.getDisplayName())
|
||||
@@ -344,6 +346,14 @@ def _exec_task(fn, task, d, quieterr):
|
||||
if not tempdir:
|
||||
bb.fatal("T variable not set, unable to build")
|
||||
|
||||
# Change nice level if we're asked to
|
||||
nice = localdata.getVar("BB_TASK_NICE_LEVEL", True)
|
||||
if nice:
|
||||
curnice = os.nice(0)
|
||||
nice = int(nice) - curnice
|
||||
newnice = os.nice(nice)
|
||||
logger.debug(1, "Renice to %s " % newnice)
|
||||
|
||||
bb.utils.mkdirhier(tempdir)
|
||||
|
||||
# Determine the logfile to generate
|
||||
|
||||
@@ -35,6 +35,12 @@ class HobRecipeInfo(RecipeInfoCommon):
|
||||
# such as (bb_cache.dat, bb_extracache_hob.dat)
|
||||
cachefile = "bb_extracache_" + classname +".dat"
|
||||
|
||||
# override this member with the list of extra cache fields
|
||||
# that this class will provide
|
||||
cachefields = ['summary', 'license', 'section',
|
||||
'description', 'homepage', 'bugtracker',
|
||||
'prevision', 'files_info']
|
||||
|
||||
def __init__(self, filename, metadata):
|
||||
|
||||
self.summary = self.getvar('SUMMARY', metadata)
|
||||
|
||||
@@ -145,6 +145,15 @@ class CommandsSync:
|
||||
"""
|
||||
command.cooker.shutdown(True)
|
||||
|
||||
def getAllKeysWithFlags(self, command, params):
|
||||
"""
|
||||
Returns a dump of the global state. Call with
|
||||
variable flags to be retrieved as params.
|
||||
"""
|
||||
flaglist = params[0]
|
||||
return command.cooker.getAllKeysWithFlags(flaglist)
|
||||
getAllKeysWithFlags.readonly = True
|
||||
|
||||
def getVariable(self, command, params):
|
||||
"""
|
||||
Read the value of a variable from data
|
||||
@@ -232,6 +241,13 @@ class CommandsSync:
|
||||
op = params[3]
|
||||
command.cooker.modifyConfigurationVar(var, val, default_file, op)
|
||||
|
||||
def removeVarFile(self, command, params):
|
||||
"""
|
||||
Remove a variable declaration from a file
|
||||
"""
|
||||
var = params[0]
|
||||
command.cooker.removeConfigurationVar(var)
|
||||
|
||||
def createConfigFile(self, command, params):
|
||||
"""
|
||||
Create an extra configuration file
|
||||
|
||||
@@ -79,6 +79,29 @@ class SkippedPackage:
|
||||
elif reason:
|
||||
self.skipreason = reason
|
||||
|
||||
|
||||
class CookerFeatures(object):
|
||||
_feature_list = [HOB_EXTRA_CACHES, SEND_DEPENDS_TREE] = range(2)
|
||||
|
||||
def __init__(self):
|
||||
self._features=set()
|
||||
|
||||
def setFeature(self, f):
|
||||
# validate we got a request for a feature we support
|
||||
if f not in CookerFeatures._feature_list:
|
||||
return
|
||||
self._features.add(f)
|
||||
|
||||
def __contains__(self, f):
|
||||
return f in self._features
|
||||
|
||||
def __iter__(self):
|
||||
return self._features.__iter__()
|
||||
|
||||
def next(self):
|
||||
return self._features.next()
|
||||
|
||||
|
||||
#============================================================================#
|
||||
# BBCooker
|
||||
#============================================================================#
|
||||
@@ -90,6 +113,7 @@ class BBCooker:
|
||||
def __init__(self, configuration):
|
||||
self.recipecache = None
|
||||
self.skiplist = {}
|
||||
self.featureset = CookerFeatures()
|
||||
|
||||
self.configuration = configuration
|
||||
|
||||
@@ -122,7 +146,13 @@ class BBCooker:
|
||||
self.state = state.initial
|
||||
|
||||
self.caches_array = []
|
||||
caches_name_array = ['bb.cache:CoreRecipeInfo'] + self.configuration.extra_caches
|
||||
|
||||
all_extra_cache_names = []
|
||||
# We hardcode all known cache types in a single place, here.
|
||||
if CookerFeatures.HOB_EXTRA_CACHES in self.featureset:
|
||||
all_extra_cache_names.append("bb.cache_extra:HobRecipeInfo")
|
||||
|
||||
caches_name_array = ['bb.cache:CoreRecipeInfo'] + all_extra_cache_names
|
||||
|
||||
# At least CoreRecipeInfo will be loaded, so caches_array will never be empty!
|
||||
# This is the entry point, no further check needed!
|
||||
@@ -130,7 +160,7 @@ class BBCooker:
|
||||
try:
|
||||
module_name, cache_name = var.split(':')
|
||||
module = __import__(module_name, fromlist=(cache_name,))
|
||||
self.caches_array.append(getattr(module, cache_name))
|
||||
self.caches_array.append(getattr(module, cache_name))
|
||||
except ImportError as exc:
|
||||
logger.critical("Unable to import extra RecipeInfo '%s' from '%s': %s" % (cache_name, module_name, exc))
|
||||
sys.exit("FATAL: Failed to import extra cache class '%s'." % cache_name)
|
||||
@@ -163,7 +193,10 @@ class BBCooker:
|
||||
if op == "append":
|
||||
self.appendConfigurationVar(var, val, default_file)
|
||||
elif op == "set":
|
||||
self.saveConfigurationVar(var, val, default_file)
|
||||
self.saveConfigurationVar(var, val, default_file, "=")
|
||||
elif op == "earlyAssign":
|
||||
self.saveConfigurationVar(var, val, default_file, "?=")
|
||||
|
||||
|
||||
def appendConfigurationVar(self, var, val, default_file):
|
||||
#add append var operation to the end of default_file
|
||||
@@ -177,7 +210,7 @@ class BBCooker:
|
||||
for c in contents:
|
||||
total += c
|
||||
|
||||
total += "#added by bitbake"
|
||||
total += "#added by hob"
|
||||
total += "\n%s += \"%s\"\n" % (var, val)
|
||||
|
||||
with open(default_file, 'w') as f:
|
||||
@@ -188,7 +221,7 @@ class BBCooker:
|
||||
loginfo = {"op":append, "file":default_file, "line":total.count("\n")}
|
||||
self.data.appendVar(var, val, **loginfo)
|
||||
|
||||
def saveConfigurationVar(self, var, val, default_file):
|
||||
def saveConfigurationVar(self, var, val, default_file, op):
|
||||
|
||||
replaced = False
|
||||
#do not save if nothing changed
|
||||
@@ -230,8 +263,8 @@ class BBCooker:
|
||||
#check if the variable was saved before in the same way
|
||||
#if true it replace the place where the variable was declared
|
||||
#else it comments it
|
||||
if contents[begin_line-1]== "#added by bitbake\n":
|
||||
contents[begin_line] = "%s = \"%s\"\n" % (var, val)
|
||||
if contents[begin_line-1]== "#added by hob\n":
|
||||
contents[begin_line] = "%s %s \"%s\"\n" % (var, op, val)
|
||||
replaced = True
|
||||
else:
|
||||
for ii in range(begin_line, end_line):
|
||||
@@ -260,8 +293,8 @@ class BBCooker:
|
||||
total += c
|
||||
|
||||
#add the variable on a single line, to be easy to replace the second time
|
||||
total += "\n#added by bitbake"
|
||||
total += "\n%s = \"%s\"\n" % (var, val)
|
||||
total += "\n#added by hob"
|
||||
total += "\n%s %s \"%s\"\n" % (var, op, val)
|
||||
|
||||
with open(default_file, 'w') as f:
|
||||
f.write(total)
|
||||
@@ -271,6 +304,44 @@ class BBCooker:
|
||||
loginfo = {"op":set, "file":default_file, "line":total.count("\n")}
|
||||
self.data.setVar(var, val, **loginfo)
|
||||
|
||||
def removeConfigurationVar(self, var):
|
||||
conf_files = self.data.varhistory.get_variable_files(var)
|
||||
topdir = self.data.getVar("TOPDIR")
|
||||
|
||||
for conf_file in conf_files:
|
||||
if topdir in conf_file:
|
||||
with open(conf_file, 'r') as f:
|
||||
contents = f.readlines()
|
||||
f.close()
|
||||
|
||||
lines = self.data.varhistory.get_variable_lines(var, conf_file)
|
||||
for line in lines:
|
||||
total = ""
|
||||
i = 0
|
||||
for c in contents:
|
||||
total += c
|
||||
i = i + 1
|
||||
if i==int(line):
|
||||
end_index = len(total)
|
||||
index = total.rfind(var, 0, end_index)
|
||||
|
||||
begin_line = total.count("\n",0,index)
|
||||
|
||||
#check if the variable was saved before in the same way
|
||||
if contents[begin_line-1]== "#added by hob\n":
|
||||
contents[begin_line-1] = contents[begin_line] = "\n"
|
||||
else:
|
||||
contents[begin_line] = "\n"
|
||||
#remove var from history
|
||||
self.data.varhistory.del_var_history(var, conf_file, line)
|
||||
|
||||
total = ""
|
||||
for c in contents:
|
||||
total += c
|
||||
with open(conf_file, 'w') as f:
|
||||
f.write(total)
|
||||
f.close()
|
||||
|
||||
def createConfigFile(self, name):
|
||||
path = os.getcwd()
|
||||
confpath = os.path.join(path, "conf", name)
|
||||
@@ -427,7 +498,10 @@ class BBCooker:
|
||||
runlist, taskdata = self.prepareTreeData(pkgs_to_build, task)
|
||||
rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist)
|
||||
rq.rqdata.prepare()
|
||||
return self.buildDependTree(rq, taskdata)
|
||||
|
||||
|
||||
def buildDependTree(self, rq, taskdata):
|
||||
seen_fnids = []
|
||||
depend_tree = {}
|
||||
depend_tree["depends"] = {}
|
||||
@@ -448,6 +522,19 @@ class BBCooker:
|
||||
depend_tree["pn"][pn] = {}
|
||||
depend_tree["pn"][pn]["filename"] = fn
|
||||
depend_tree["pn"][pn]["version"] = version
|
||||
|
||||
# if we have extra caches, list all attributes they bring in
|
||||
extra_info = []
|
||||
for cache_class in self.caches_array:
|
||||
if type(cache_class) is type and issubclass(cache_class, bb.cache.RecipeInfoCommon) and hasattr(cache_class, 'cachefields'):
|
||||
cachefields = getattr(cache_class, 'cachefields', [])
|
||||
extra_info = extra_info + cachefields
|
||||
|
||||
# for all attributes stored, add them to the dependency tree
|
||||
for ei in extra_info:
|
||||
depend_tree["pn"][pn][ei] = vars(self.recipecache)[ei][fn]
|
||||
|
||||
|
||||
for dep in rq.rqdata.runq_depends[task]:
|
||||
depfn = taskdata.fn_index[rq.rqdata.runq_fnid[dep]]
|
||||
deppn = self.recipecache.pkg_fn[depfn]
|
||||
@@ -510,35 +597,30 @@ class BBCooker:
|
||||
depend_tree["rdepends-pkg"] = {}
|
||||
depend_tree["rrecs-pkg"] = {}
|
||||
|
||||
# if we have extra caches, list all attributes they bring in
|
||||
extra_info = []
|
||||
for cache_class in self.caches_array:
|
||||
if type(cache_class) is type and issubclass(cache_class, bb.cache.RecipeInfoCommon) and hasattr(cache_class, 'cachefields'):
|
||||
cachefields = getattr(cache_class, 'cachefields', [])
|
||||
extra_info = extra_info + cachefields
|
||||
|
||||
for task in xrange(len(tasks_fnid)):
|
||||
fnid = tasks_fnid[task]
|
||||
fn = taskdata.fn_index[fnid]
|
||||
pn = self.recipecache.pkg_fn[fn]
|
||||
version = "%s:%s-%s" % self.recipecache.pkg_pepvpr[fn]
|
||||
summary = self.recipecache.summary[fn]
|
||||
lic = self.recipecache.license[fn]
|
||||
section = self.recipecache.section[fn]
|
||||
description = self.recipecache.description[fn]
|
||||
homepage = self.recipecache.homepage[fn]
|
||||
bugtracker = self.recipecache.bugtracker[fn]
|
||||
files_info = self.recipecache.files_info[fn]
|
||||
rdepends = self.recipecache.rundeps[fn]
|
||||
rrecs = self.recipecache.runrecs[fn]
|
||||
prevision = self.recipecache.prevision[fn]
|
||||
inherits = self.recipecache.inherits.get(fn, None)
|
||||
|
||||
if pn not in depend_tree["pn"]:
|
||||
depend_tree["pn"][pn] = {}
|
||||
depend_tree["pn"][pn]["filename"] = fn
|
||||
version = "%s:%s-%s" % self.recipecache.pkg_pepvpr[fn]
|
||||
depend_tree["pn"][pn]["version"] = version
|
||||
depend_tree["pn"][pn]["summary"] = summary
|
||||
depend_tree["pn"][pn]["license"] = lic
|
||||
depend_tree["pn"][pn]["section"] = section
|
||||
depend_tree["pn"][pn]["description"] = description
|
||||
depend_tree["pn"][pn]["inherits"] = inherits
|
||||
depend_tree["pn"][pn]["homepage"] = homepage
|
||||
depend_tree["pn"][pn]["bugtracker"] = bugtracker
|
||||
depend_tree["pn"][pn]["files_info"] = files_info
|
||||
depend_tree["pn"][pn]["revision"] = prevision
|
||||
rdepends = self.recipecache.rundeps[fn]
|
||||
rrecs = self.recipecache.runrecs[fn]
|
||||
depend_tree["pn"][pn]["inherits"] = self.recipecache.inherits.get(fn, None)
|
||||
|
||||
# for all extra attributes stored, add them to the dependency tree
|
||||
for ei in extra_info:
|
||||
depend_tree["pn"][pn][ei] = vars(self.recipecache)[ei][fn]
|
||||
|
||||
if fnid not in seen_fnids:
|
||||
seen_fnids.append(fnid)
|
||||
@@ -1113,6 +1195,21 @@ class BBCooker:
|
||||
|
||||
self.configuration.server_register_idlecallback(buildTargetsIdle, rq)
|
||||
|
||||
|
||||
def getAllKeysWithFlags(self, flaglist):
|
||||
dump = {}
|
||||
for k in self.data.keys():
|
||||
try:
|
||||
v = self.data.getVar(k, True)
|
||||
if not k.startswith("__") and not isinstance(v, bb.data_smart.DataSmart):
|
||||
dump[k] = { 'v' : v }
|
||||
for d in flaglist:
|
||||
dump[k][d] = self.data.getVarFlag(k, d)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return dump
|
||||
|
||||
|
||||
def generateNewImage(self, image, base_image, package_queue, timestamp, description):
|
||||
'''
|
||||
Create a new image with a "require"/"inherit" base_image statement
|
||||
|
||||
@@ -127,7 +127,6 @@ class CookerConfiguration(object):
|
||||
self.dump_signatures = False
|
||||
self.dry_run = False
|
||||
self.tracking = False
|
||||
self.extra_caches = []
|
||||
|
||||
self.env = {}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ logger = logging.getLogger("BitBake.Data")
|
||||
|
||||
__setvar_keyword__ = ["_append", "_prepend", "_remove"]
|
||||
__setvar_regexp__ = re.compile('(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>.*))?$')
|
||||
__expand_var_regexp__ = re.compile(r"\${[^{}@]+}")
|
||||
__expand_var_regexp__ = re.compile(r"\${[^{}@\n\t ]+}")
|
||||
__expand_python_regexp__ = re.compile(r"\${@.+?}")
|
||||
|
||||
def infer_caller_details(loginfo, parent = False, varval = True):
|
||||
@@ -281,9 +281,13 @@ class VariableHistory(object):
|
||||
lines.append(line)
|
||||
return lines
|
||||
|
||||
def del_var_history(self, var):
|
||||
def del_var_history(self, var, f=None, line=None):
|
||||
"""If file f and line are not given, the entire history of var is deleted"""
|
||||
if var in self.variables:
|
||||
self.variables[var] = []
|
||||
if f and line:
|
||||
self.variables[var] = [ x for x in self.variables[var] if x['file']!=f and x['line']!=line]
|
||||
else:
|
||||
self.variables[var] = []
|
||||
|
||||
class DataSmart(MutableMapping):
|
||||
def __init__(self, special = COWDictBase.copy(), seen = COWDictBase.copy() ):
|
||||
|
||||
@@ -589,6 +589,16 @@ class PackageInfo(Event):
|
||||
Event.__init__(self)
|
||||
self._pkginfolist = pkginfolist
|
||||
|
||||
class MetadataEvent(Event):
|
||||
"""
|
||||
Generic event that target for OE-Core classes
|
||||
to report information during asynchrous execution
|
||||
"""
|
||||
def __init__(self, eventtype, eventdata):
|
||||
Event.__init__(self)
|
||||
self.type = eventtype
|
||||
self.data = eventdata
|
||||
|
||||
class SanityCheck(Event):
|
||||
"""
|
||||
Event to issue sanity check
|
||||
|
||||
@@ -225,7 +225,7 @@ class diskMonitor:
|
||||
self.preFreeS[k] = freeSpace
|
||||
|
||||
if action == "STOPTASKS" and not self.checked[k]:
|
||||
logger.error("No new tasks can be excuted since the disk space monitor action is \"STOPTASKS\"!")
|
||||
logger.error("No new tasks can be executed since the disk space monitor action is \"STOPTASKS\"!")
|
||||
self.checked[k] = True
|
||||
rq.finish_runqueue(False)
|
||||
bb.event.fire(bb.event.DiskFull(dev, 'disk', freeSpace, path), self.configuration)
|
||||
@@ -253,7 +253,7 @@ class diskMonitor:
|
||||
self.preFreeI[k] = freeInode
|
||||
|
||||
if action == "STOPTASKS" and not self.checked[k]:
|
||||
logger.error("No new tasks can be excuted since the disk space monitor action is \"STOPTASKS\"!")
|
||||
logger.error("No new tasks can be executed since the disk space monitor action is \"STOPTASKS\"!")
|
||||
self.checked[k] = True
|
||||
rq.finish_runqueue(False)
|
||||
bb.event.fire(bb.event.DiskFull(dev, 'inode', freeInode, path), self.configuration)
|
||||
|
||||
@@ -217,6 +217,15 @@ class RunQueueData:
|
||||
ret.extend([nam])
|
||||
return ret
|
||||
|
||||
def get_task_name(self, task):
|
||||
return self.runq_task[task]
|
||||
|
||||
def get_task_file(self, task):
|
||||
return self.taskData.fn_index[self.runq_fnid[task]]
|
||||
|
||||
def get_task_hash(self, task):
|
||||
return self.runq_hash[task]
|
||||
|
||||
def get_user_idstring(self, task, task_name_suffix = ""):
|
||||
fn = self.taskData.fn_index[self.runq_fnid[task]]
|
||||
taskname = self.runq_task[task] + task_name_suffix
|
||||
@@ -999,6 +1008,11 @@ class RunQueue:
|
||||
else:
|
||||
self.state = runQueueSceneInit
|
||||
|
||||
# we are ready to run, see if any UI client needs the dependency info
|
||||
if bb.cooker.CookerFeatures.SEND_DEPENDS_TREE in self.cooker.featureset:
|
||||
depgraph = self.cooker.buildDependTree(self, self.rqdata.taskData)
|
||||
bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.cooker.data)
|
||||
|
||||
if self.state is runQueueSceneInit:
|
||||
if self.cooker.configuration.dump_signatures:
|
||||
self.dump_signatures()
|
||||
@@ -1781,6 +1795,9 @@ class runQueueEvent(bb.event.Event):
|
||||
def __init__(self, task, stats, rq):
|
||||
self.taskid = task
|
||||
self.taskstring = rq.rqdata.get_user_idstring(task)
|
||||
self.taskname = rq.rqdata.get_task_name(task)
|
||||
self.taskfile = rq.rqdata.get_task_file(task)
|
||||
self.taskhash = rq.rqdata.get_task_hash(task)
|
||||
self.stats = stats.copy()
|
||||
bb.event.Event.__init__(self)
|
||||
|
||||
@@ -1792,6 +1809,9 @@ class sceneQueueEvent(runQueueEvent):
|
||||
runQueueEvent.__init__(self, task, stats, rq)
|
||||
realtask = rq.rqdata.runq_setscene[task]
|
||||
self.taskstring = rq.rqdata.get_user_idstring(realtask, "_setscene")
|
||||
self.taskname = rq.rqdata.get_task_name(realtask) + "_setscene"
|
||||
self.taskfile = rq.rqdata.get_task_file(realtask)
|
||||
self.taskhash = rq.rqdata.get_task_hash(task)
|
||||
|
||||
class runQueueTaskStarted(runQueueEvent):
|
||||
"""
|
||||
|
||||
@@ -89,7 +89,7 @@ class BitBakeBaseServer(object):
|
||||
def detach(self):
|
||||
return
|
||||
|
||||
def establishConnection(self):
|
||||
def establishConnection(self, featureset):
|
||||
raise "Must redefine the %s.establishConnection()" % self.__class__.__name__
|
||||
|
||||
def endSession(self):
|
||||
|
||||
@@ -31,7 +31,7 @@ import sys
|
||||
import time
|
||||
import select
|
||||
from Queue import Empty
|
||||
from multiprocessing import Event, Process, util, Queue, Pipe, queues
|
||||
from multiprocessing import Event, Process, util, Queue, Pipe, queues, Manager
|
||||
|
||||
from . import BitBakeBaseServer, BitBakeBaseServerConnection, BaseImplServer
|
||||
|
||||
@@ -78,12 +78,13 @@ class ProcessServer(Process, BaseImplServer):
|
||||
profile_filename = "profile.log"
|
||||
profile_processed_filename = "profile.log.processed"
|
||||
|
||||
def __init__(self, command_channel, event_queue):
|
||||
def __init__(self, command_channel, event_queue, featurelist):
|
||||
BaseImplServer.__init__(self)
|
||||
Process.__init__(self)
|
||||
Process.__init__(self, args=(featurelist))
|
||||
self.command_channel = command_channel
|
||||
self.event_queue = event_queue
|
||||
self.event = EventAdapter(event_queue)
|
||||
self.featurelist = featurelist
|
||||
self.quit = False
|
||||
|
||||
self.keep_running = Event()
|
||||
@@ -94,6 +95,14 @@ class ProcessServer(Process, BaseImplServer):
|
||||
for event in bb.event.ui_queue:
|
||||
self.event_queue.put(event)
|
||||
self.event_handle.value = bb.event.register_UIHhandler(self)
|
||||
|
||||
# process any feature changes based on what UI requested
|
||||
original_featureset = list(self.cooker.featureset)
|
||||
while len(self.featurelist)> 0:
|
||||
self.cooker.featureset.setFeature(self.featurelist.pop())
|
||||
if (original_featureset != list(self.cooker.featureset)):
|
||||
self.cooker.reset()
|
||||
|
||||
bb.cooker.server_main(self.cooker, self.main)
|
||||
|
||||
def main(self):
|
||||
@@ -198,13 +207,17 @@ class BitBakeServer(BitBakeBaseServer):
|
||||
#
|
||||
self.ui_channel, self.server_channel = Pipe()
|
||||
self.event_queue = ProcessEventQueue(0)
|
||||
self.serverImpl = ProcessServer(self.server_channel, self.event_queue)
|
||||
manager = Manager()
|
||||
self.featurelist = manager.list()
|
||||
self.serverImpl = ProcessServer(self.server_channel, self.event_queue, self.featurelist)
|
||||
|
||||
def detach(self):
|
||||
self.serverImpl.start()
|
||||
return
|
||||
|
||||
def establishConnection(self):
|
||||
def establishConnection(self, featureset):
|
||||
for f in featureset:
|
||||
self.featurelist.append(f)
|
||||
self.connection = BitBakeProcessServerConnection(self.serverImpl, self.ui_channel, self.event_queue)
|
||||
signal.signal(signal.SIGTERM, lambda i, s: self.connection.terminate())
|
||||
return self.connection
|
||||
|
||||
@@ -89,12 +89,23 @@ class BitBakeServerCommands():
|
||||
self.server = server
|
||||
self.has_client = False
|
||||
|
||||
def registerEventHandler(self, host, port):
|
||||
def registerEventHandler(self, host, port, featureset = []):
|
||||
"""
|
||||
Register a remote UI Event Handler
|
||||
"""
|
||||
s, t = _create_server(host, port)
|
||||
|
||||
# we don't allow connections if the cooker is running
|
||||
if (self.cooker.state in [bb.cooker.state.parsing, bb.cooker.state.running]):
|
||||
return None
|
||||
|
||||
original_featureset = list(self.cooker.featureset)
|
||||
for f in featureset:
|
||||
self.cooker.featureset.setFeature(f)
|
||||
|
||||
if (original_featureset != list(self.cooker.featureset)):
|
||||
self.cooker.reset()
|
||||
|
||||
self.event_handle = bb.event.register_UIHhandler(s)
|
||||
return self.event_handle
|
||||
|
||||
@@ -263,11 +274,12 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
|
||||
self.connection_token = token
|
||||
|
||||
class BitBakeXMLRPCServerConnection(BitBakeBaseServerConnection):
|
||||
def __init__(self, serverImpl, clientinfo=("localhost", 0), observer_only = False):
|
||||
def __init__(self, serverImpl, clientinfo=("localhost", 0), observer_only = False, featureset = []):
|
||||
self.connection, self.transport = _create_server(serverImpl.host, serverImpl.port)
|
||||
self.clientinfo = clientinfo
|
||||
self.serverImpl = serverImpl
|
||||
self.observer_only = observer_only
|
||||
self.featureset = featureset
|
||||
|
||||
def connect(self):
|
||||
if not self.observer_only:
|
||||
@@ -277,7 +289,8 @@ class BitBakeXMLRPCServerConnection(BitBakeBaseServerConnection):
|
||||
if token is None:
|
||||
return None
|
||||
self.transport.set_connection_token(token)
|
||||
self.events = uievent.BBUIEventQueue(self.connection, self.clientinfo)
|
||||
|
||||
self.events = uievent.BBUIEventQueue(self.connection, self.clientinfo, self.featureset)
|
||||
for event in bb.event.ui_queue:
|
||||
self.events.queue_event(event)
|
||||
return self
|
||||
@@ -301,14 +314,15 @@ class BitBakeXMLRPCServerConnection(BitBakeBaseServerConnection):
|
||||
|
||||
class BitBakeServer(BitBakeBaseServer):
|
||||
def initServer(self, interface = ("localhost", 0)):
|
||||
self.interface = interface
|
||||
self.serverImpl = XMLRPCServer(interface)
|
||||
|
||||
def detach(self):
|
||||
daemonize.createDaemon(self.serverImpl.serve_forever, "bitbake-cookerdaemon.log")
|
||||
del self.cooker
|
||||
|
||||
def establishConnection(self):
|
||||
self.connection = BitBakeXMLRPCServerConnection(self.serverImpl)
|
||||
def establishConnection(self, featureset):
|
||||
self.connection = BitBakeXMLRPCServerConnection(self.serverImpl, self.interface, False, featureset)
|
||||
return self.connection.connect()
|
||||
|
||||
def set_connection_token(self, token):
|
||||
@@ -318,12 +332,13 @@ class BitBakeXMLRPCClient(BitBakeBaseServer):
|
||||
|
||||
def __init__(self, observer_only = False):
|
||||
self.observer_only = observer_only
|
||||
# if we need extra caches, just tell the server to load them all
|
||||
pass
|
||||
|
||||
def saveConnectionDetails(self, remote):
|
||||
self.remote = remote
|
||||
|
||||
def establishConnection(self):
|
||||
def establishConnection(self, featureset):
|
||||
# The format of "remote" must be "server:port"
|
||||
try:
|
||||
[host, port] = self.remote.split(":")
|
||||
@@ -339,9 +354,12 @@ class BitBakeXMLRPCClient(BitBakeBaseServer):
|
||||
s.close()
|
||||
except:
|
||||
return None
|
||||
self.serverImpl = XMLRPCProxyServer(host, port)
|
||||
self.connection = BitBakeXMLRPCServerConnection(self.serverImpl, (ip, 0), self.observer_only)
|
||||
return self.connection.connect()
|
||||
try:
|
||||
self.serverImpl = XMLRPCProxyServer(host, port)
|
||||
self.connection = BitBakeXMLRPCServerConnection(self.serverImpl, (ip, 0), self.observer_only, featureset)
|
||||
return self.connection.connect()
|
||||
except Exception as e:
|
||||
bb.fatal("Could not connect to server at %s:%s (%s)" % (host, port, str(e)))
|
||||
|
||||
def endSession(self):
|
||||
self.connection.removeClient()
|
||||
|
||||
@@ -27,21 +27,21 @@ import bb.data
|
||||
class DataExpansions(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.d = bb.data.init()
|
||||
self.d["foo"] = "value of foo"
|
||||
self.d["bar"] = "value of bar"
|
||||
self.d["value of foo"] = "value of 'value of foo'"
|
||||
self.d["foo"] = "value_of_foo"
|
||||
self.d["bar"] = "value_of_bar"
|
||||
self.d["value_of_foo"] = "value_of_'value_of_foo'"
|
||||
|
||||
def test_one_var(self):
|
||||
val = self.d.expand("${foo}")
|
||||
self.assertEqual(str(val), "value of foo")
|
||||
self.assertEqual(str(val), "value_of_foo")
|
||||
|
||||
def test_indirect_one_var(self):
|
||||
val = self.d.expand("${${foo}}")
|
||||
self.assertEqual(str(val), "value of 'value of foo'")
|
||||
self.assertEqual(str(val), "value_of_'value_of_foo'")
|
||||
|
||||
def test_indirect_and_another(self):
|
||||
val = self.d.expand("${${foo}} ${bar}")
|
||||
self.assertEqual(str(val), "value of 'value of foo' value of bar")
|
||||
self.assertEqual(str(val), "value_of_'value_of_foo' value_of_bar")
|
||||
|
||||
def test_python_snippet(self):
|
||||
val = self.d.expand("${@5*12}")
|
||||
@@ -49,11 +49,11 @@ class DataExpansions(unittest.TestCase):
|
||||
|
||||
def test_expand_in_python_snippet(self):
|
||||
val = self.d.expand("${@'boo ' + '${foo}'}")
|
||||
self.assertEqual(str(val), "boo value of foo")
|
||||
self.assertEqual(str(val), "boo value_of_foo")
|
||||
|
||||
def test_python_snippet_getvar(self):
|
||||
val = self.d.expand("${@d.getVar('foo', True) + ' ${bar}'}")
|
||||
self.assertEqual(str(val), "value of foo value of bar")
|
||||
self.assertEqual(str(val), "value_of_foo value_of_bar")
|
||||
|
||||
def test_python_snippet_syntax_error(self):
|
||||
self.d.setVar("FOO", "${@foo = 5}")
|
||||
@@ -70,7 +70,7 @@ class DataExpansions(unittest.TestCase):
|
||||
|
||||
def test_value_containing_value(self):
|
||||
val = self.d.expand("${@d.getVar('foo', True) + ' ${bar}'}")
|
||||
self.assertEqual(str(val), "value of foo value of bar")
|
||||
self.assertEqual(str(val), "value_of_foo value_of_bar")
|
||||
|
||||
def test_reference_undefined_var(self):
|
||||
val = self.d.expand("${undefinedvar} meh")
|
||||
@@ -109,7 +109,7 @@ class DataExpansions(unittest.TestCase):
|
||||
|
||||
def test_rename(self):
|
||||
self.d.renameVar("foo", "newfoo")
|
||||
self.assertEqual(self.d.getVar("newfoo"), "value of foo")
|
||||
self.assertEqual(self.d.getVar("newfoo"), "value_of_foo")
|
||||
self.assertEqual(self.d.getVar("foo"), None)
|
||||
|
||||
def test_deletion(self):
|
||||
@@ -118,17 +118,17 @@ class DataExpansions(unittest.TestCase):
|
||||
|
||||
def test_keys(self):
|
||||
keys = self.d.keys()
|
||||
self.assertEqual(keys, ['value of foo', 'foo', 'bar'])
|
||||
self.assertEqual(keys, ['value_of_foo', 'foo', 'bar'])
|
||||
|
||||
class TestNestedExpansions(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.d = bb.data.init()
|
||||
self.d["foo"] = "foo"
|
||||
self.d["bar"] = "bar"
|
||||
self.d["value of foobar"] = "187"
|
||||
self.d["value_of_foobar"] = "187"
|
||||
|
||||
def test_refs(self):
|
||||
val = self.d.expand("${value of ${foo}${bar}}")
|
||||
val = self.d.expand("${value_of_${foo}${bar}}")
|
||||
self.assertEqual(str(val), "187")
|
||||
|
||||
#def test_python_refs(self):
|
||||
@@ -154,11 +154,11 @@ class TestNestedExpansions(unittest.TestCase):
|
||||
# self.assertEqual(str(val), str(depth + 1))
|
||||
|
||||
def test_mixed(self):
|
||||
val = self.d.expand("${value of ${@('${foo}'+'bar')[0:3]}${${@'BAR'.lower()}}}")
|
||||
val = self.d.expand("${value_of_${@('${foo}'+'bar')[0:3]}${${@'BAR'.lower()}}}")
|
||||
self.assertEqual(str(val), "187")
|
||||
|
||||
def test_runtime(self):
|
||||
val = self.d.expand("${${@'value of' + ' f'+'o'+'o'+'b'+'a'+'r'}}")
|
||||
val = self.d.expand("${${@'value_of' + '_f'+'o'+'o'+'b'+'a'+'r'}}")
|
||||
self.assertEqual(str(val), "187")
|
||||
|
||||
class TestMemoize(unittest.TestCase):
|
||||
|
||||
@@ -31,6 +31,7 @@ import re
|
||||
import logging
|
||||
import sys
|
||||
import signal
|
||||
import time
|
||||
from bb.ui.crumbs.imageconfigurationpage import ImageConfigurationPage
|
||||
from bb.ui.crumbs.recipeselectionpage import RecipeSelectionPage
|
||||
from bb.ui.crumbs.packageselectionpage import PackageSelectionPage
|
||||
@@ -197,7 +198,7 @@ class Configuration:
|
||||
handler.set_var_in_file("BBLAYERS", self.layers, "bblayers.conf")
|
||||
# local.conf
|
||||
if not defaults:
|
||||
handler.set_var_in_file("MACHINE", self.curr_mach, "local.conf")
|
||||
handler.early_assign_var_in_file("MACHINE", self.curr_mach, "local.conf")
|
||||
handler.set_var_in_file("DISTRO", self.curr_distro, "local.conf")
|
||||
handler.set_var_in_file("DL_DIR", self.dldir, "local.conf")
|
||||
handler.set_var_in_file("SSTATE_DIR", self.sstatedir, "local.conf")
|
||||
@@ -217,7 +218,7 @@ class Configuration:
|
||||
handler.set_var_in_file("SDKMACHINE", self.curr_sdk_machine, "local.conf")
|
||||
handler.set_var_in_file("CONF_VERSION", self.conf_version, "local.conf")
|
||||
handler.set_var_in_file("LCONF_VERSION", self.lconf_version, "bblayers.conf")
|
||||
handler.set_var_in_file("EXTRA_SETTING", self.extra_setting, "local.conf")
|
||||
handler.set_extra_config(self.extra_setting)
|
||||
handler.set_var_in_file("TOOLCHAIN_BUILD", self.toolchain_build, "local.conf")
|
||||
handler.set_var_in_file("IMAGE_FSTYPES", self.image_fstypes, "local.conf")
|
||||
if not defaults:
|
||||
@@ -1466,3 +1467,10 @@ class Builder(gtk.Window):
|
||||
|
||||
def get_topdir(self):
|
||||
return self.handler.get_topdir()
|
||||
|
||||
def wait(self, delay):
|
||||
time_start = time.time()
|
||||
time_end = time_start + delay
|
||||
while time_end > time.time():
|
||||
while gtk.events_pending():
|
||||
gtk.main_iteration()
|
||||
|
||||
@@ -234,7 +234,10 @@ class AdvancedSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
article = ""
|
||||
if image_type.startswith(("a", "e", "i", "o", "u")):
|
||||
article = "n"
|
||||
self.image_types_checkbuttons[image_type].set_tooltip_text("Build a%s %s image" % (article, image_type))
|
||||
if image_type == "live":
|
||||
self.image_types_checkbuttons[image_type].set_tooltip_text("Build iso and hddimg images")
|
||||
else:
|
||||
self.image_types_checkbuttons[image_type].set_tooltip_text("Build a%s %s image" % (article, image_type))
|
||||
table.attach(self.image_types_checkbuttons[image_type], j - 1, j + 3, i, i + 1)
|
||||
if image_type in self.configuration.image_fstypes.split():
|
||||
self.image_types_checkbuttons[image_type].set_active(True)
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
import gobject
|
||||
import logging
|
||||
import ast
|
||||
from bb.ui.crumbs.runningbuild import RunningBuild
|
||||
|
||||
class HobHandler(gobject.GObject):
|
||||
@@ -315,7 +316,7 @@ class HobHandler(gobject.GObject):
|
||||
|
||||
def set_machine(self, machine):
|
||||
if machine:
|
||||
self.set_var_in_file("MACHINE", machine, "local.conf")
|
||||
self.early_assign_var_in_file("MACHINE", machine, "local.conf")
|
||||
|
||||
def set_sdk_machine(self, sdk_machine):
|
||||
self.set_var_in_file("SDKMACHINE", sdk_machine, "local.conf")
|
||||
@@ -357,7 +358,20 @@ class HobHandler(gobject.GObject):
|
||||
def set_incompatible_license(self, incompat_license):
|
||||
self.set_var_in_file("INCOMPATIBLE_LICENSE", incompat_license, "local.conf")
|
||||
|
||||
def set_extra_setting(self, extra_setting):
|
||||
self.set_var_in_file("EXTRA_SETTING", extra_setting, "local.conf")
|
||||
|
||||
def set_extra_config(self, extra_setting):
|
||||
old_extra_setting = ast.literal_eval(self.runCommand(["getVariable", "EXTRA_SETTING"]) or "{}")
|
||||
if extra_setting:
|
||||
self.set_var_in_file("EXTRA_SETTING", extra_setting, "local.conf")
|
||||
else:
|
||||
self.remove_var_from_file("EXTRA_SETTING")
|
||||
|
||||
#remove not needed settings from conf
|
||||
for key in old_extra_setting:
|
||||
if key not in extra_setting:
|
||||
self.remove_var_from_file(key)
|
||||
for key in extra_setting.keys():
|
||||
value = extra_setting[key]
|
||||
self.set_var_in_file(key, value, "local.conf")
|
||||
@@ -472,6 +486,14 @@ class HobHandler(gobject.GObject):
|
||||
self.server.runCommand(["setVarFile", var, val, default_file, "set"])
|
||||
self.runCommand(["disableDataTracking"])
|
||||
|
||||
def early_assign_var_in_file(self, var, val, default_file=None):
|
||||
self.runCommand(["enableDataTracking"])
|
||||
self.server.runCommand(["setVarFile", var, val, default_file, "earlyAssign"])
|
||||
self.runCommand(["disableDataTracking"])
|
||||
|
||||
def remove_var_from_file(self, var):
|
||||
self.server.runCommand(["removeVarFile", var])
|
||||
|
||||
def append_var_in_file(self, var, val, default_file=None):
|
||||
self.server.runCommand(["setVarFile", var, val, default_file, "append"])
|
||||
|
||||
|
||||
@@ -690,7 +690,7 @@ class RecipeListModel(gtk.ListStore):
|
||||
inherits = event_model["pn"][item]["inherits"]
|
||||
summary = event_model["pn"][item]["summary"]
|
||||
version = event_model["pn"][item]["version"]
|
||||
revision = event_model["pn"][item]["revision"]
|
||||
revision = event_model["pn"][item]["prevision"]
|
||||
homepage = event_model["pn"][item]["homepage"]
|
||||
bugtracker = event_model["pn"][item]["bugtracker"]
|
||||
filename = event_model["pn"][item]["filename"]
|
||||
|
||||
@@ -300,7 +300,12 @@ class ImageConfigurationPage (HobPage):
|
||||
def view_warnings_button_clicked_cb(self, button):
|
||||
self.builder.show_warning_dialog()
|
||||
|
||||
def machine_combo_changed_idle_cb(self):
|
||||
self.builder.window.set_cursor(None)
|
||||
|
||||
def machine_combo_changed_cb(self, machine_combo):
|
||||
self.builder.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
|
||||
self.builder.wait(0.1) #wait for combo and cursor to update
|
||||
self.stopping = False
|
||||
self.builder.parsing_warnings = []
|
||||
combo_item = machine_combo.get_active_text()
|
||||
@@ -324,6 +329,8 @@ class ImageConfigurationPage (HobPage):
|
||||
# Do reparse recipes
|
||||
self.builder.populate_recipe_package_info_async()
|
||||
|
||||
glib.idle_add(self.machine_combo_changed_idle_cb)
|
||||
|
||||
def update_machine_combo(self):
|
||||
self.disable_warnings_bar()
|
||||
all_machines = [self.__dummy_machine__] + self.builder.parameters.all_machines
|
||||
@@ -527,7 +534,10 @@ class ImageConfigurationPage (HobPage):
|
||||
if not response:
|
||||
return
|
||||
if settings_changed:
|
||||
self.builder.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
|
||||
self.builder.wait(0.1) #wait for adv_settings_dialog to terminate
|
||||
self.builder.reparse_post_adv_settings()
|
||||
self.builder.window.set_cursor(None)
|
||||
|
||||
def just_bake_button_clicked_cb(self, button):
|
||||
self.builder.parsing_warnings = []
|
||||
|
||||
@@ -635,6 +635,14 @@ class ImageDetailsPage (HobPage):
|
||||
images_dir = topdir + "/recipes/images/"
|
||||
self.builder.ensure_dir(images_dir)
|
||||
|
||||
self.name_field_template = self.builder.image_configuration_page.custom_image_selected
|
||||
if self.name_field_template:
|
||||
image_path = self.builder.recipe_model.pn_path[self.name_field_template]
|
||||
image_iter = self.builder.recipe_model.get_iter(image_path)
|
||||
self.description_field_template = self.builder.recipe_model.get_value(image_iter, self.builder.recipe_model.COL_DESC)
|
||||
else:
|
||||
self.name_field_template = ""
|
||||
|
||||
dialog = SaveImageDialog(images_dir, self.name_field_template, self.description_field_template,
|
||||
"Save image recipe", self.builder, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)
|
||||
response = dialog.run()
|
||||
|
||||
@@ -46,7 +46,7 @@ from bb.ui.crumbs.hoblistmodel import RecipeListModel, PackageListModel
|
||||
from bb.ui.crumbs.hobeventhandler import HobHandler
|
||||
from bb.ui.crumbs.builder import Builder
|
||||
|
||||
extraCaches = ['bb.cache_extra:HobRecipeInfo']
|
||||
featureSet = [bb.cooker.CookerFeatures.HOB_EXTRA_CACHES]
|
||||
|
||||
def event_handle_idle_func(eventHandler, hobHandler):
|
||||
# Consume as many messages as we can in the time available to us
|
||||
|
||||
@@ -472,8 +472,12 @@ def main(server, eventHandler, params, tf = TerminalFilter):
|
||||
event.taskid, event.taskstring, event.exitcode)
|
||||
continue
|
||||
|
||||
if isinstance(event, bb.event.DepTreeGenerated):
|
||||
continue
|
||||
|
||||
# ignore
|
||||
if isinstance(event, (bb.event.BuildBase,
|
||||
bb.event.MetadataEvent,
|
||||
bb.event.StampUpdate,
|
||||
bb.event.ConfigParsed,
|
||||
bb.event.RecipeParsed,
|
||||
|
||||
@@ -28,7 +28,7 @@ import socket, threading, pickle
|
||||
from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
|
||||
|
||||
class BBUIEventQueue:
|
||||
def __init__(self, BBServer, clientinfo=("localhost, 0")):
|
||||
def __init__(self, BBServer, clientinfo=("localhost, 0"), featureset=[]):
|
||||
|
||||
self.eventQueue = []
|
||||
self.eventQueueLock = threading.Lock()
|
||||
@@ -44,7 +44,10 @@ class BBUIEventQueue:
|
||||
server.register_function( self.send_event, "event.sendpickle" )
|
||||
server.socket.settimeout(1)
|
||||
|
||||
self.EventHandle = self.BBServer.registerEventHandler(self.host, self.port)
|
||||
self.EventHandle = self.BBServer.registerEventHandler(self.host, self.port, featureset)
|
||||
|
||||
if (self.EventHandle == None):
|
||||
bb.fatal("Could not register UI event handler")
|
||||
|
||||
self.server = server
|
||||
|
||||
|
||||
@@ -724,7 +724,7 @@ def copyfile(src, dest, newmtime = None, sstat = None):
|
||||
if not sstat:
|
||||
sstat = os.lstat(src)
|
||||
except Exception as e:
|
||||
print("copyfile: Stating source file failed...", e)
|
||||
logger.warn("copyfile: stat of %s failed (%s)" % (src, e))
|
||||
return False
|
||||
|
||||
destexists = 1
|
||||
@@ -751,7 +751,7 @@ def copyfile(src, dest, newmtime = None, sstat = None):
|
||||
#os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
|
||||
return os.lstat(dest)
|
||||
except Exception as e:
|
||||
print("copyfile: failed to properly create symlink:", dest, "->", target, e)
|
||||
logger.warn("copyfile: failed to create symlink %s to %s (%s)" % (dest, target, e))
|
||||
return False
|
||||
|
||||
if stat.S_ISREG(sstat[stat.ST_MODE]):
|
||||
@@ -766,7 +766,7 @@ def copyfile(src, dest, newmtime = None, sstat = None):
|
||||
shutil.copyfile(src, dest + "#new")
|
||||
os.rename(dest + "#new", dest)
|
||||
except Exception as e:
|
||||
print('copyfile: copy', src, '->', dest, 'failed.', e)
|
||||
logger.warn("copyfile: copy %s to %s failed (%s)" % (src, dest, e))
|
||||
return False
|
||||
finally:
|
||||
if srcchown:
|
||||
@@ -777,13 +777,13 @@ def copyfile(src, dest, newmtime = None, sstat = None):
|
||||
#we don't yet handle special, so we need to fall back to /bin/mv
|
||||
a = getstatusoutput("/bin/cp -f " + "'" + src + "' '" + dest + "'")
|
||||
if a[0] != 0:
|
||||
print("copyfile: Failed to copy special file:" + src + "' to '" + dest + "'", a)
|
||||
logger.warn("copyfile: failed to copy special file %s to %s (%s)" % (src, dest, a))
|
||||
return False # failure
|
||||
try:
|
||||
os.lchown(dest, sstat[stat.ST_UID], sstat[stat.ST_GID])
|
||||
os.chmod(dest, stat.S_IMODE(sstat[stat.ST_MODE])) # Sticky is reset on chown
|
||||
except Exception as e:
|
||||
print("copyfile: Failed to chown/chmod/unlink", dest, e)
|
||||
logger.warn("copyfile: failed to chown/chmod %s (%s)" % (dest, e))
|
||||
return False
|
||||
|
||||
if newmtime:
|
||||
|
||||
@@ -200,7 +200,8 @@ TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png figures
|
||||
figures/yocto-environment-ref.png figures/user-configuration.png figures/source-input.png \
|
||||
figures/package-feeds.png figures/layer-input.png figures/images.png figures/sdk.png \
|
||||
figures/source-fetching.png figures/patching.png figures/configuration-compile-autoreconf.png \
|
||||
figures/analysis-for-package-splitting.png
|
||||
figures/analysis-for-package-splitting.png figures/image-generation.png \
|
||||
figures/sdk-generation.png
|
||||
endif
|
||||
|
||||
MANUALS = $(DOC)/$(DOC).html
|
||||
@@ -219,7 +220,8 @@ TARFILES = ref-manual.html ref-style.css figures/poky-title.png \
|
||||
figures/user-configuration.png figures/yocto-environment-ref.png \
|
||||
figures/images.png figures/sdk.png figures/source-fetching.png \
|
||||
figures/patching.png figures/configuration-compile-autoreconf.png \
|
||||
figures/analysis-for-package-splitting.png
|
||||
figures/analysis-for-package-splitting.png figures/image-generation.png \
|
||||
figures/sdk-generation.png
|
||||
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse
|
||||
FIGURES = figures
|
||||
STYLESHEET = $(DOC)/*.css
|
||||
@@ -381,8 +383,8 @@ publish:
|
||||
echo " "; \
|
||||
echo "******** Publishing "$(DOC)".html"; \
|
||||
echo " "; \
|
||||
scp -r $(MANUALS) $(STYLESHEET) www.yoctoproject.org:/srv/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
|
||||
cd $(DOC); scp -r $(FIGURES) www.yoctoproject.org:/srv/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
|
||||
scp -r $(MANUALS) $(STYLESHEET) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
|
||||
cd $(DOC); scp -r $(FIGURES) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
|
||||
else \
|
||||
echo " "; \
|
||||
echo $(DOC)".html missing. Generate the file first then try again."; \
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
</revision>
|
||||
<revision>
|
||||
<revnumber>1.5</revnumber>
|
||||
<date>Sometime in 2013</date>
|
||||
<date>October 2013</date>
|
||||
<revremark>Released with the Yocto Project 1.5 Release.</revremark>
|
||||
</revision>
|
||||
</revhistory>
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
If you use BitBake to generate the ADT Installer tarball, you must
|
||||
<filename>source</filename> the environment setup script
|
||||
(<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
|
||||
or
|
||||
or
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>)
|
||||
located in the Source Directory before running the
|
||||
BitBake command that creates the tarball.
|
||||
@@ -268,7 +268,7 @@
|
||||
target, go into the <filename>x86_64</filename>
|
||||
folder and download the following installer:
|
||||
<literallayout class='monospaced'>
|
||||
poky-eglibc-x86_64-core-image-sato-i586.sh
|
||||
poky-eglibc-x86_64-core-image-sato-i586-&DISTRO;.sh
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para>Build your own toolchain installer.
|
||||
For cases where you cannot use an installer
|
||||
@@ -287,7 +287,7 @@
|
||||
The example assumes the toolchain installer is located
|
||||
in <filename>~/Downloads/</filename>.
|
||||
<literallayout class='monospaced'>
|
||||
$ ~/Downloads/poky-eglibc-x86_64-core-image-sato-i586.sh
|
||||
$ ~/Downloads/poky-eglibc-x86_64-core-image-sato-i586-&DISTRO;.sh
|
||||
</literallayout>
|
||||
<note>
|
||||
If you do not have write permissions for the directory
|
||||
@@ -376,10 +376,11 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Be sure to run the environment setup script that matches the architecture for
|
||||
which you are developing.
|
||||
Environment setup scripts begin with the string "<filename>environment-setup</filename>"
|
||||
and include as part of their name the architecture.
|
||||
Be sure to run the environment setup script that matches the
|
||||
architecture for which you are developing.
|
||||
Environment setup scripts begin with the string
|
||||
"<filename>environment-setup</filename>" and include as part of their
|
||||
name the architecture.
|
||||
For example, the toolchain environment setup script for a 64-bit
|
||||
IA-based architecture installed in the default installation directory
|
||||
would be the following:
|
||||
@@ -542,7 +543,7 @@
|
||||
|
||||
<para>
|
||||
A final method of building the toolchain installer exists that has
|
||||
significant advantages over the previous two methods.
|
||||
significant advantages over the previous method.
|
||||
This method results in a toolchain installer that contains the sysroot
|
||||
that matches your target root filesystem.
|
||||
To build this installer, use the
|
||||
@@ -551,7 +552,7 @@
|
||||
|
||||
<para>
|
||||
Remember, before using any <filename>bitbake</filename> command, you
|
||||
must source the build environment setup script
|
||||
must source the build environment setup script
|
||||
(i.e.
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
|
||||
or
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
</revision>
|
||||
<revision>
|
||||
<revnumber>1.5</revnumber>
|
||||
<date>Sometime in 2013</date>
|
||||
<date>October 2013</date>
|
||||
<revremark>Released with the Yocto Project 1.5 Release.</revremark>
|
||||
</revision>
|
||||
</revhistory>
|
||||
|
||||
@@ -183,17 +183,15 @@
|
||||
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/
|
||||
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay/
|
||||
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay/xorg.conf
|
||||
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd/
|
||||
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd/xorg.conf
|
||||
meta-crownbay/recipes-kernel/
|
||||
meta-crownbay/recipes-kernel/linux/
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto_3.2.bbappend
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto_3.4.bbappend
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto_3.8.bbappend
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto_3.10.bbappend
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto-dev.bbappend
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto-rt_3.2.bbappend
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto-rt_3.4.bbappend
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto-rt_3.8.bbappend
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto-rt_3.10.bbappend
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
@@ -376,15 +374,6 @@
|
||||
<para>
|
||||
Each BSP Layer requires at least one machine file.
|
||||
However, you can supply more than one file.
|
||||
For example, in the Crown Bay BSP shown earlier in this section, the
|
||||
<filename>conf/machine</filename> directory contains two configuration files:
|
||||
<filename>crownbay.conf</filename> and <filename>crownbay-noemgd.conf</filename>.
|
||||
The <filename>crownbay.conf</filename> file is used for the Crown Bay BSP
|
||||
that supports the <trademark class='registered'>Intel</trademark> Embedded
|
||||
Media and Graphics Driver (<trademark class='registered'>Intel</trademark>
|
||||
EMGD), while the <filename>crownbay-noemgd</filename> file is used for the
|
||||
Crown Bay BSP that supports Video Electronics Standards Association (VESA)
|
||||
graphics only.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -428,15 +417,13 @@
|
||||
This optional directory contains miscellaneous recipe files for the BSP.
|
||||
Most notably would be the formfactor files.
|
||||
For example, in the Crown Bay BSP there is the
|
||||
<filename>formfactor_0.0.bbappend</filename> file, which is an append file used
|
||||
to augment the recipe that starts the build.
|
||||
Furthermore, there are machine-specific settings used during the build that are
|
||||
defined by the <filename>machconfig</filename> files.
|
||||
In the Crown Bay example, two <filename>machconfig</filename> files exist:
|
||||
one that supports the
|
||||
<trademark class='registered'>Intel</trademark> Embedded
|
||||
Media and Graphics Driver (<trademark class='registered'>Intel</trademark>
|
||||
EMGD) and one that does not:
|
||||
<filename>formfactor_0.0.bbappend</filename> file, which is an
|
||||
append file used to augment the recipe that starts the build.
|
||||
Furthermore, there are machine-specific settings used during the
|
||||
build that are defined by the <filename>machconfig</filename>.
|
||||
In the Crown Bay example, two <filename>machconfig</filename> files
|
||||
exist: one that supports the Intel® Embedded Media and Graphics
|
||||
Driver (Intel® EMGD) and one that does not:
|
||||
<literallayout class='monospaced'>
|
||||
meta-crownbay/recipes-bsp/formfactor/formfactor/crownbay/machconfig
|
||||
meta-crownbay/recipes-bsp/formfactor/formfactor/crownbay-noemgd/machconfig
|
||||
@@ -467,15 +454,12 @@
|
||||
This optional directory contains recipes for the BSP if it has
|
||||
special requirements for graphics support.
|
||||
All files that are needed for the BSP to support a display are kept here.
|
||||
For example, the Crown Bay BSP contains two versions of the
|
||||
<filename>xorg.conf</filename> file.
|
||||
The version in <filename>crownbay</filename> builds a BSP that supports the
|
||||
<trademark class='registered'>Intel</trademark> Embedded Media Graphics Driver (EMGD),
|
||||
while the version in <filename>crownbay-noemgd</filename> builds
|
||||
a BSP that supports Video Electronics Standards Association (VESA) graphics only:
|
||||
For example, the Crown Bay BSP's <filename>xorg.conf</filename> file
|
||||
detects the graphics support needed (i.e. the Intel® Embedded Media
|
||||
Graphics Driver (EMGD) or the Video Electronics Standards Association
|
||||
(VESA) graphics):
|
||||
<literallayout class='monospaced'>
|
||||
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend
|
||||
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay/xorg.conf
|
||||
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd/xorg.conf
|
||||
</literallayout>
|
||||
</para>
|
||||
@@ -502,28 +486,28 @@
|
||||
the <filename>meta-<bsp_name>/recipes-kernel/linux</filename> directory).
|
||||
</para>
|
||||
<para>
|
||||
Suppose you are using the <filename>linux-yocto_3.8.bb</filename> recipe to build
|
||||
Suppose you are using the <filename>linux-yocto_3.10.bb</filename> recipe to build
|
||||
the kernel.
|
||||
In other words, you have selected the kernel in your
|
||||
<filename><bsp_name>.conf</filename> file by adding these types
|
||||
of statements:
|
||||
<literallayout class='monospaced'>
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
|
||||
PREFERRED_VERSION_linux-yocto ?= "3.8%"
|
||||
PREFERRED_VERSION_linux-yocto ?= "3.10%"
|
||||
</literallayout>
|
||||
<note>
|
||||
When the preferred provider is assumed by default, the
|
||||
<filename>PREFERRED_PROVIDER</filename> statement does not appear in the
|
||||
<filename><bsp_name>.conf</filename> file.
|
||||
</note>
|
||||
You would use the <filename>linux-yocto_3.8.bbappend</filename> file to append
|
||||
You would use the <filename>linux-yocto_3.10.bbappend</filename> file to append
|
||||
specific BSP settings to the kernel, thus configuring the kernel for your particular BSP.
|
||||
</para>
|
||||
<para>
|
||||
As an example, look at the existing Crown Bay BSP.
|
||||
The append file used is:
|
||||
<literallayout class='monospaced'>
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto_3.8.bbappend
|
||||
meta-crownbay/recipes-kernel/linux/linux-yocto_3.10.bbappend
|
||||
</literallayout>
|
||||
The following listing shows the file.
|
||||
Be aware that the actual commit ID strings in this example listing might be different
|
||||
@@ -532,46 +516,18 @@
|
||||
<literallayout class='monospaced'>
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
COMPATIBLE_MACHINE_crownbay = "crownbay"
|
||||
KMACHINE_crownbay = "crownbay"
|
||||
KBRANCH_crownbay = "standard/crownbay"
|
||||
KERNEL_FEATURES_crownbay_append = " features/drm-emgd/drm-emgd-1.16 cfg/vesafb"
|
||||
|
||||
COMPATIBLE_MACHINE_crownbay-noemgd = "crownbay-noemgd"
|
||||
KMACHINE_crownbay-noemgd = "crownbay"
|
||||
KBRANCH_crownbay-noemgd = "standard/crownbay"
|
||||
KERNEL_FEATURES_crownbay-noemgd_append = " cfg/vesafb"
|
||||
KERNEL_FEATURES_append_crownbay-noemgd = " cfg/vesafb"
|
||||
|
||||
LINUX_VERSION = "3.8.4"
|
||||
LINUX_VERSION = "3.10.11"
|
||||
|
||||
SRCREV_meta_crownbay = "2a6d36e75ca0a121570a389d7bab76ec240cbfda"
|
||||
SRCREV_machine_crownbay = "47aed0c17c1c55988198ad39f86ae88894c8e0a4"
|
||||
SRCREV_emgd_crownbay = "c780732f175ff0ec866fac2130175876b519b576"
|
||||
|
||||
SRCREV_meta_crownbay-noemgd = "2a6d36e75ca0a121570a389d7bab76ec240cbfda"
|
||||
SRCREV_machine_crownbay-noemgd = "47aed0c17c1c55988198ad39f86ae88894c8e0a4"
|
||||
|
||||
SRC_URI_crownbay = "git://git.yoctoproject.org/linux-yocto-3.8.git;protocol=git;nocheckout=1;branch=${KBRANCH},${KMETA},emgd-1.16;name=machine,meta,emgd"
|
||||
SRCREV_meta_crownbay-noemgd = "285f93bf942e8f6fa678ffc6cc53696ed5400718"
|
||||
SRCREV_machine_crownbay-noemgd = "702040ac7c7ec66a29b4d147665ccdd0ff015577"
|
||||
</literallayout>
|
||||
This append file contains statements used to support the Crown Bay BSP for both
|
||||
<trademark class='registered'>Intel</trademark> EMGD and the VESA graphics.
|
||||
The build process, in this case, recognizes and uses only the statements that
|
||||
apply to the defined machine name - <filename>crownbay</filename> in this case.
|
||||
So, the applicable statements in the <filename>linux-yocto_3.8.bbappend</filename>
|
||||
file are follows:
|
||||
<literallayout class='monospaced'>
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
COMPATIBLE_MACHINE_crownbay = "crownbay"
|
||||
KMACHINE_crownbay = "crownbay"
|
||||
KBRANCH_crownbay = "standard/crownbay"
|
||||
KERNEL_FEATURES_crownbay_append = " features/drm-emgd/drm-emgd-1.16 cfg/vesafb"
|
||||
|
||||
SRCREV_meta_crownbay = "2a6d36e75ca0a121570a389d7bab76ec240cbfda"
|
||||
SRCREV_machine_crownbay = "47aed0c17c1c55988198ad39f86ae88894c8e0a4"
|
||||
SRCREV_emgd_crownbay = "c780732f175ff0ec866fac2130175876b519b576"
|
||||
</literallayout>
|
||||
The append file defines <filename>crownbay</filename> as the
|
||||
This append file contains statements used to support the Crown Bay BSP.
|
||||
The file defines <filename>crownbay</filename> as the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></ulink>
|
||||
and uses the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-KMACHINE'><filename>KMACHINE</filename></ulink> variable to
|
||||
@@ -588,12 +544,6 @@
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> Git
|
||||
repository and the <filename>meta</filename> Git repository branches to identify the
|
||||
exact kernel needed to build the Crown Bay BSP.
|
||||
<note>
|
||||
For <filename>crownbay</filename>, a specific commit is also needed to point
|
||||
to the branch that supports EMGD graphics.
|
||||
At a minimum, every BSP points to the
|
||||
<filename>machine</filename> and <filename>meta</filename> commits.
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -1281,31 +1231,35 @@
|
||||
Following is the complete example:
|
||||
<literallayout class='monospaced'>
|
||||
$ yocto-bsp create myarm qemu
|
||||
Checking basic git connectivity...
|
||||
Done.
|
||||
|
||||
Which qemu architecture would you like to use? [default: i386]
|
||||
1) i386 (32-bit)
|
||||
1) i386 (32-bit)
|
||||
2) x86_64 (64-bit)
|
||||
3) ARM (32-bit)
|
||||
4) PowerPC (32-bit)
|
||||
5) MIPS (32-bit)
|
||||
3
|
||||
Would you like to use the default (3.8) kernel? (y/n) [default: y]
|
||||
Would you like to use the default (3.10) kernel? (y/n) [default: y] y
|
||||
Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n] [default: y]
|
||||
Getting branches from remote repo git://git.yoctoproject.org/linux-yocto-3.8.git...
|
||||
Getting branches from remote repo git://git.yoctoproject.org/linux-yocto-3.10.git...
|
||||
Please choose a machine branch to base your new BSP branch on: [default: standard/base]
|
||||
1) standard/arm-versatile-926ejs
|
||||
2) standard/base
|
||||
3) standard/beagleboard
|
||||
4) standard/ck
|
||||
5) standard/crownbay
|
||||
6) standard/edf
|
||||
7) standard/emenlow
|
||||
8) standard/fri2
|
||||
9) standard/fsl-mpc8315e-rdb
|
||||
10) standard/mti-malta32
|
||||
11) standard/mti-malta64
|
||||
12) standard/qemuppc
|
||||
13) standard/routerstationpro
|
||||
14) standard/sys940x
|
||||
1) standard/arm-versatile-926ejs
|
||||
2) standard/base
|
||||
3) standard/beagleboard
|
||||
4) standard/ck
|
||||
5) standard/crownbay
|
||||
6) standard/edf
|
||||
7) standard/emenlow
|
||||
8) standard/fri2
|
||||
9) standard/fsl-mpc8315e-rdb
|
||||
10) standard/minnow
|
||||
11) standard/mti-malta32
|
||||
12) standard/mti-malta64
|
||||
13) standard/qemuppc
|
||||
14) standard/routerstationpro
|
||||
15) standard/sys940x
|
||||
1
|
||||
Would you like SMP support? (y/n) [default: y]
|
||||
Does your BSP have a touchscreen? (y/n) [default: n]
|
||||
@@ -1320,7 +1274,7 @@
|
||||
In the example, we use the ARM architecture.
|
||||
</para></listitem>
|
||||
<listitem><para>The script then prompts you for the kernel.
|
||||
The default 3.8 kernel is acceptable.
|
||||
The default 3.10 kernel is acceptable.
|
||||
So, the example accepts the default.
|
||||
If you enter 'n', the script prompts you to further enter the kernel
|
||||
you do want to use (e.g. 3.2, 3.2_preempt-rt, and so forth.).</para></listitem>
|
||||
|
||||
@@ -24,17 +24,6 @@
|
||||
set up your host development system and build an image, which you
|
||||
find in the
|
||||
<ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
|
||||
<note>
|
||||
By default, using the Yocto Project creates a Poky distribution.
|
||||
However, you can create your own distribution by providing key
|
||||
<link linkend='metadata'>Metadata</link>.
|
||||
A good example is Angstrom, which has had a distribution
|
||||
based on the Yocto Project since its inception.
|
||||
Other examples include commercial distributions like
|
||||
Wind River Linux, Mentor Embedded Linux, and ENEA Linux.
|
||||
See the "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>"
|
||||
section for more information.
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -43,13 +32,25 @@
|
||||
reconfigure the kernel, and develop an application using the
|
||||
popular <trademark class='trade'>Eclipse</trademark> IDE.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
By default, using the Yocto Project creates a Poky distribution.
|
||||
However, you can create your own distribution by providing key
|
||||
<link linkend='metadata'>Metadata</link>.
|
||||
A good example is Angstrom, which has had a distribution
|
||||
based on the Yocto Project since its inception.
|
||||
Other examples include commercial distributions like
|
||||
Wind River Linux, Mentor Embedded Linux, and ENEA Linux.
|
||||
See the "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>"
|
||||
section for more information.
|
||||
</note>
|
||||
</section>
|
||||
|
||||
<section id='what-this-manual-provides'>
|
||||
<title>What This Manual Provides</title>
|
||||
|
||||
<para>
|
||||
The following list describes what you can get from this guide:
|
||||
The following list describes what you can get from this manual:
|
||||
<itemizedlist>
|
||||
<listitem><para>Information that lets you get set
|
||||
up to develop using the Yocto Project.</para></listitem>
|
||||
@@ -75,17 +76,17 @@
|
||||
<para>
|
||||
This manual will not give you the following:
|
||||
<itemizedlist>
|
||||
<listitem><para>Step-by-step instructions if those instructions exist in other Yocto
|
||||
Project documentation.
|
||||
<listitem><para><emphasis>Step-by-step instructions when those instructions exist in other Yocto
|
||||
Project documentation:</emphasis>
|
||||
For example, the Yocto Project Application Developer's Guide contains detailed
|
||||
instructions on how to run the
|
||||
<ulink url='&YOCTO_DOCS_ADT_URL;#installing-the-adt'>Installing the ADT and Toolchains</ulink>,
|
||||
<ulink url='&YOCTO_DOCS_ADT_URL;#installing-the-adt'>ADT Installer</ulink>,
|
||||
which is used to set up a cross-development environment.</para></listitem>
|
||||
<listitem><para>Reference material.
|
||||
<listitem><para><emphasis>Reference material:</emphasis>
|
||||
This type of material resides in an appropriate reference manual.
|
||||
For example, system variables are documented in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;'>Yocto Project Reference Manual</ulink>.</para></listitem>
|
||||
<listitem><para>Detailed public information that is not specific to the Yocto Project.
|
||||
<listitem><para><emphasis>Detailed public information that is not specific to the Yocto Project:</emphasis>
|
||||
For example, exhaustive information on how to use Git is covered better through the
|
||||
Internet than in this manual.</para></listitem>
|
||||
</itemizedlist>
|
||||
@@ -109,7 +110,8 @@
|
||||
with the Yocto Project and quickly begin building an image.</para></listitem>
|
||||
<listitem><para><emphasis>
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;'>Yocto Project Reference Manual</ulink>:</emphasis> This manual is a reference
|
||||
guide to the OpenEmbedded build system known as "Poky."
|
||||
guide to the OpenEmbedded build system, which is based on BitBake.
|
||||
The build system is sometimes referred to as "Poky".
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>
|
||||
<ulink url='&YOCTO_DOCS_ADT_URL;'>Yocto Project Application Developer's Guide</ulink>:</emphasis>
|
||||
|
||||
@@ -254,9 +254,9 @@
|
||||
<listitem><para><ulink url='http://sitaramc.github.com/gitolite/master-toc.html'>The <filename>gitolite</filename> master index</ulink>:
|
||||
All topics for <filename>gitolite</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para><ulink url='http://hjemli.net/git/cgit/tree/README'><filename>cgit</filename> index</ulink>:
|
||||
A <filename>README</filename> file on how to create a
|
||||
fast web interface for Git.</para></listitem>
|
||||
<listitem><para><ulink url='https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools'>Interfaces, frontends, and tools</ulink>:
|
||||
Documentation on how to create interfaces and frontends
|
||||
for Git.</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</section>
|
||||
@@ -275,9 +275,8 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
See "<ulink url='http://autobuilder.yoctoproject.org:8010/'>Welcome to the buildbot for the Yocto Project</ulink>"
|
||||
for the Yocto Project's reference implementation that uses
|
||||
buildbot.
|
||||
See "<ulink url='http://autobuilder.yoctoproject.org'>Yocto Project Autobuilder</ulink>"
|
||||
for more information and links to buildbot.
|
||||
The Yocto Project team has found this implementation
|
||||
works well in this role.
|
||||
A public example of this is the Yocto Project
|
||||
@@ -394,7 +393,7 @@
|
||||
For some guidance on mailing lists to use, see the list in the
|
||||
"<link linkend='how-to-submit-a-change'>How to Submit a Change</link>"
|
||||
section.
|
||||
For a description of the available mailing lists, see
|
||||
For a description of the available mailing lists, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing Lists</ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
</para></listitem>
|
||||
@@ -615,7 +614,7 @@
|
||||
"<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>"
|
||||
section in the Yocto Project Board Support Packages (BSP)
|
||||
Developer's Guide.</para></listitem>
|
||||
<listitem><para id='meta-toochain'><emphasis>Meta-Toolchain:</emphasis>
|
||||
<listitem><para id='meta-toolchain'><emphasis>Meta-Toolchain:</emphasis>
|
||||
A term sometimes used for
|
||||
<link linkend='cross-development-toolchain'>Cross-Development Toolchain</link>.
|
||||
</para></listitem>
|
||||
@@ -689,7 +688,7 @@
|
||||
For example, downloading and unpacking <filename>&YOCTO_POKY_TARBALL;</filename>
|
||||
results in a Source Directory whose top-level folder is named
|
||||
<filename>&YOCTO_POKY;</filename>.
|
||||
If you create a local copy of the Git repository, then you can name the repository
|
||||
If you create a local copy of the Git repository, you can name the repository
|
||||
anything you like.
|
||||
Throughout much of the documentation, <filename>poky</filename> is used as the name of
|
||||
the top-level folder of the local copy of the poky Git repository.
|
||||
@@ -865,8 +864,8 @@
|
||||
It is important to understand that Git tracks content change and not files.
|
||||
Git uses "branches" to organize different development efforts.
|
||||
For example, the <filename>poky</filename> repository has
|
||||
<filename>bernard</filename>,
|
||||
<filename>edison</filename>, <filename>denzil</filename>, <filename>danny</filename>
|
||||
<filename>denzil</filename>, <filename>danny</filename>,
|
||||
<filename>dylan</filename>, <filename>dora</filename>,
|
||||
and <filename>master</filename> branches among others.
|
||||
You can see all the branches by going to
|
||||
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/poky/'></ulink> and
|
||||
@@ -1233,6 +1232,10 @@
|
||||
occurred.</para></listitem>
|
||||
<listitem><para>Be sure to indicate the Severity of the bug.
|
||||
Severity communicates how the bug impacted your work.</para></listitem>
|
||||
<listitem><para>Select the appropriate "Documentation change" item
|
||||
for the bug.
|
||||
Fixing a bug may or may not affect the Yocto Project
|
||||
documentation.</para></listitem>
|
||||
<listitem><para>Provide a brief summary of the issue.
|
||||
Try to limit your summary to just a line or two and be sure to capture the
|
||||
essence of the issue.</para></listitem>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
<para>
|
||||
You can use the OpenEmbedded build system, which uses
|
||||
BitBake to develop complete Linux
|
||||
BitBake, to develop complete Linux
|
||||
images and associated user-space applications for architectures based
|
||||
on ARM, MIPS, PowerPC, x86 and x86-64.
|
||||
<note>
|
||||
@@ -122,11 +122,11 @@
|
||||
<literallayout class='monospaced'>
|
||||
$ git clone git://git.yoctoproject.org/poky
|
||||
Cloning into 'poky'...
|
||||
remote: Counting objects: 183981, done.
|
||||
remote: Compressing objects: 100% (47428/47428), done.
|
||||
remote: Total 183981 (delta 132271), reused 183703 (delta 132044)
|
||||
Receiving objects: 100% (183981/183981), 89.71 MiB | 2.93 MiB/s, done.
|
||||
Resolving deltas: 100% (132271/132271), done.
|
||||
remote: Counting objects: 203728, done.
|
||||
remote: Compressing objects: 100% (52371/52371), done.
|
||||
remote: Total 203728 (delta 147444), reused 202891 (delta 146614)
|
||||
Receiving objects: 100% (203728/203728), 95.54 MiB | 308 KiB/s, done.
|
||||
Resolving deltas: 100% (147444/147444), done.
|
||||
</literallayout></para>
|
||||
<para>For another example of how to set up your own local Git repositories, see this
|
||||
<ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>
|
||||
@@ -145,27 +145,28 @@
|
||||
For simplicity, it is recommended that you create these structures outside of the
|
||||
Source Directory (usually <filename>poky</filename>).</para>
|
||||
<para>As an example, the following transcript shows how to create the bare clone
|
||||
of the <filename>linux-yocto-3.8</filename> kernel and then create a copy of
|
||||
of the <filename>linux-yocto-3.10</filename> kernel and then create a copy of
|
||||
that clone.
|
||||
<note>When you have a local Yocto Project kernel Git repository, you can
|
||||
reference that repository rather than the upstream Git repository as
|
||||
part of the <filename>clone</filename> command.
|
||||
Doing so can speed up the process.</note></para>
|
||||
<para>In the following example, the bare clone is named
|
||||
<filename>linux-yocto-3.8.git</filename>, while the
|
||||
copy is named <filename>my-linux-yocto-3.8-work</filename>:
|
||||
<filename>linux-yocto-3.10.git</filename>, while the
|
||||
copy is named <filename>my-linux-yocto-3.10-work</filename>:
|
||||
<literallayout class='monospaced'>
|
||||
$ git clone --bare git://git.yoctoproject.org/linux-yocto-3.8 linux-yocto-3.8.git
|
||||
Cloning into bare repository 'linux-yocto-3.8.git'...
|
||||
remote: Counting objects: 2847090, done.
|
||||
remote: Compressing objects: 100% (454675/454675), done.
|
||||
remote: Total 2847090 (delta 2386170), reused 2825793 (delta 2364886)
|
||||
Receiving objects: 100% (2847090/2847090), 603.19 MiB | 3.54 MiB/s, done.
|
||||
Resolving deltas: 100% (2386170/2386170), done. </literallayout></para>
|
||||
$ git clone --bare git://git.yoctoproject.org/linux-yocto-3.10 linux-yocto-3.10.git
|
||||
Cloning into bare repository 'linux-yocto-3.10.git'...
|
||||
remote: Counting objects: 3364487, done.
|
||||
remote: Compressing objects: 100% (507178/507178), done.
|
||||
remote: Total 3364487 (delta 2827715), reused 3364481 (delta 2827709)
|
||||
Receiving objects: 100% (3364487/3364487), 722.95 MiB | 423 KiB/s, done.
|
||||
Resolving deltas: 100% (2827715/2827715), done.
|
||||
</literallayout></para>
|
||||
<para>Now create a clone of the bare clone just created:
|
||||
<literallayout class='monospaced'>
|
||||
$ git clone linux-yocto-3.8.git my-linux-yocto-3.8-work
|
||||
Cloning into 'my-linux-yocto-3.8-work'...
|
||||
$ git clone linux-yocto-3.10.git my-linux-yocto-3.10-work
|
||||
Cloning into 'my-linux-yocto-3.10-work'...
|
||||
done.
|
||||
</literallayout></para></listitem>
|
||||
<listitem id='meta-yocto-kernel-extras-repo'><para><emphasis>
|
||||
@@ -189,11 +190,12 @@
|
||||
$ cd ~/poky
|
||||
$ git clone git://git.yoctoproject.org/meta-yocto-kernel-extras meta-yocto-kernel-extras
|
||||
Cloning into 'meta-yocto-kernel-extras'...
|
||||
remote: Counting objects: 690, done.
|
||||
remote: Compressing objects: 100% (431/431), done.
|
||||
remote: Total 690 (delta 238), reused 690 (delta 238)
|
||||
Receiving objects: 100% (690/690), 532.60 KiB, done.
|
||||
Resolving deltas: 100% (238/238), done. </literallayout></para></listitem>
|
||||
remote: Counting objects: 727, done.
|
||||
remote: Compressing objects: 100% (452/452), done.
|
||||
remote: Total 727 (delta 260), reused 719 (delta 252)
|
||||
Receiving objects: 100% (727/727), 536.36 KiB | 102 KiB/s, done.
|
||||
Resolving deltas: 100% (260/260), done.
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para id='supported-board-support-packages-(bsps)'><emphasis>Supported Board
|
||||
Support Packages (BSPs):</emphasis>
|
||||
The Yocto Project provides a layer called <filename>meta-intel</filename> and
|
||||
@@ -226,8 +228,8 @@
|
||||
BSP tarball from the same "Downloads" page of the
|
||||
<ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>
|
||||
to get the Yocto Project release.
|
||||
Once on the "Download" page, look for "BSP" under the
|
||||
"Type" heading.</para>
|
||||
Once on the "Download" page, look to the right of the
|
||||
page and scroll down to find the BSP tarballs.</para>
|
||||
<para>Once you have the tarball, just extract it into a directory of your choice.
|
||||
Again, this method just produces a snapshot of the BSP layer in the form
|
||||
of a hierarchical directory structure.</para></listitem>
|
||||
@@ -246,16 +248,17 @@
|
||||
$ cd ~/poky
|
||||
$ git clone git://git.yoctoproject.org/meta-intel.git
|
||||
Cloning into 'meta-intel'...
|
||||
remote: Counting objects: 6264, done.
|
||||
remote: Compressing objects: 100% (2135/2135), done.
|
||||
remote: Total 6264 (delta 3321), reused 6235 (delta 3293)
|
||||
Receiving objects: 100% (6264/6264), 2.17 MiB | 2.63 MiB/s, done.
|
||||
Resolving deltas: 100% (3321/3321), done.
|
||||
remote: Counting objects: 7366, done.
|
||||
remote: Compressing objects: 100% (2491/2491), done.
|
||||
remote: Total 7366 (delta 3997), reused 7299 (delta 3930)
|
||||
Receiving objects: 100% (7366/7366), 2.31 MiB | 95 KiB/s, done.
|
||||
Resolving deltas: 100% (3997/3997), done.
|
||||
</literallayout></para>
|
||||
<para>The same
|
||||
<ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>
|
||||
wiki page</ulink> referenced earlier covers how to
|
||||
set up the <filename>meta-intel</filename> Git repository.</para></listitem>
|
||||
<ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>wiki page</ulink>
|
||||
referenced earlier covers how to
|
||||
set up the <filename>meta-intel</filename> Git repository.
|
||||
</para></listitem>
|
||||
</itemizedlist></para></listitem>
|
||||
<listitem><para><emphasis>Eclipse Yocto Plug-in:</emphasis> If you are developing
|
||||
applications using the Eclipse Integrated Development Environment (IDE),
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
</revision>
|
||||
<revision>
|
||||
<revnumber>1.5</revnumber>
|
||||
<date>Sometime in 2013</date>
|
||||
<date>October 2013</date>
|
||||
<revremark>Released with the Yocto Project 1.5 Release.</revremark>
|
||||
</revision>
|
||||
</revhistory>
|
||||
|
||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 189 KiB |
@@ -296,6 +296,20 @@
|
||||
$ git commit --allow-empty -m "Create orphan meta branch"
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you modify the Metadata in the linux-yocto
|
||||
<filename>meta</filename> branch, you must not forget to update
|
||||
the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-SRCREV'><filename>SRCREV</filename></ulink>
|
||||
statements in the kernel's recipe.
|
||||
In particular, you need to update the
|
||||
<filename>SRCREV_meta</filename> variable to match the commit in
|
||||
the <filename>KMETA</filename> branch you wish to use.
|
||||
Changing the data in these branches and not updating the
|
||||
<filename>SRCREV</filename> statements to match will cause the
|
||||
build to fetch an older commit.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
</revision>
|
||||
<revision>
|
||||
<revnumber>1.5</revnumber>
|
||||
<date>Sometime in 2013</date>
|
||||
<date>October 2013</date>
|
||||
<revremark>Released with the Yocto Project 1.5 Release.</revremark>
|
||||
</revision>
|
||||
</revhistory>
|
||||
|
||||
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 42 KiB |
BIN
documentation/mega-manual/figures/image-generation.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 39 KiB |
BIN
documentation/mega-manual/figures/sdk-generation.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 189 KiB |
@@ -1,6 +1,6 @@
|
||||
<!ENTITY DISTRO "1.5">
|
||||
<!ENTITY DISTRO_COMPRESSED "15">
|
||||
<!ENTITY DISTRO_NAME "tbd">
|
||||
<!ENTITY DISTRO_NAME "dora">
|
||||
<!ENTITY YOCTO_DOC_VERSION "1.5">
|
||||
<!ENTITY POKYVERSION "10.0.0">
|
||||
<!ENTITY POKYVERSION_COMPRESSED "1000">
|
||||
@@ -26,6 +26,7 @@
|
||||
<!ENTITY ECLIPSE_UPDATES_URL "&ECLIPSE_DL_URL;/tm/updates/3.3">
|
||||
<!ENTITY ECLIPSE_INDIGO_URL "&ECLIPSE_DL_URL;/releases/indigo">
|
||||
<!ENTITY ECLIPSE_JUNO_URL "&ECLIPSE_DL_URL;/releases/juno">
|
||||
<!ENTITY ECLIPSE_KEPLER_URL "&ECLIPSE_DL_URL;/releases/kepler">
|
||||
<!ENTITY ECLIPSE_INDIGO_CDT_URL "&ECLIPSE_DL_URL;tools/cdt/releases/indigo">
|
||||
<!ENTITY YOCTO_DOCS_URL "&YOCTO_HOME_URL;/docs">
|
||||
<!ENTITY YOCTO_SOURCES_URL "&YOCTO_HOME_URL;/sources/">
|
||||
@@ -35,7 +36,7 @@
|
||||
<!ENTITY YOCTO_RELEASE_DL_URL "&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;">
|
||||
<!ENTITY YOCTO_TOOLCHAIN_DL_URL "&YOCTO_RELEASE_DL_URL;/toolchain/">
|
||||
<!ENTITY YOCTO_ECLIPSE_DL_URL "&YOCTO_RELEASE_DL_URL;/eclipse-plugin/indigo;">
|
||||
<!ENTITY YOCTO_ADTINSTALLER_DL_URL "&YOCTO_RELEASE_DL_URL;/adt_installer">
|
||||
<!ENTITY YOCTO_ADTINSTALLER_DL_URL "&YOCTO_RELEASE_DL_URL;/adt-installer">
|
||||
<!ENTITY YOCTO_POKY_DL_URL "&YOCTO_RELEASE_DL_URL;/&YOCTO_POKY;.tar.bz2">
|
||||
<!ENTITY YOCTO_MACHINES_DL_URL "&YOCTO_RELEASE_DL_URL;/machines">
|
||||
<!ENTITY YOCTO_QEMU_DL_URL "&YOCTO_MACHINES_DL_URL;/qemu">
|
||||
@@ -56,8 +57,8 @@
|
||||
<!ENTITY UBUNTU_HOST_PACKAGES_ESSENTIAL "gawk wget git-core diffstat unzip texinfo \
|
||||
build-essential chrpath">
|
||||
<!ENTITY FEDORA_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python unzip perl patch \
|
||||
diffutils diffstat git cpp gcc gcc-c++ eglibc-devel texinfo chrpath \
|
||||
ccache">
|
||||
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
|
||||
ccache perl-Data-Dumper perl-Text-ParseWords">
|
||||
<!ENTITY OPENSUSE_HOST_PACKAGES_ESSENTIAL "python gcc gcc-c++ git chrpath make wget python-xml \
|
||||
diffstat texinfo python-curses patch">
|
||||
<!ENTITY CENTOS_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python unzip perl patch \
|
||||
|
||||
@@ -3094,7 +3094,7 @@
|
||||
If you already have an LTTng trace on a remote target and
|
||||
would like to view it in Eclipse on the host, you can easily
|
||||
copy it from the target to the host and import it into
|
||||
Eclipse to view it using the LTTng Eclipse plugin already
|
||||
Eclipse to view it using the LTTng Eclipse plug-in already
|
||||
bundled in the Eclipse (Juno SR1 or greater).
|
||||
</para>
|
||||
|
||||
@@ -3172,7 +3172,7 @@
|
||||
|
||||
<para>
|
||||
You can access extensive help information on how to use
|
||||
the LTTng plugin to search and analyze captured traces via
|
||||
the LTTng plug-in to search and analyze captured traces via
|
||||
the Eclipse help system:
|
||||
<literallayout class='monospaced'>
|
||||
Help | Help Contents | LTTng Plug-in User Guide
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
</revision>
|
||||
<revision>
|
||||
<revnumber>1.5</revnumber>
|
||||
<date>Sometime in 2013</date>
|
||||
<date>October 2013</date>
|
||||
<revremark>Released with the Yocto Project 1.5 Release.</revremark>
|
||||
</revision>
|
||||
</revhistory>
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
configuration files.
|
||||
These example files are used as a basis for creating actual
|
||||
configuration files when you source the build environment
|
||||
script
|
||||
script
|
||||
(i.e.
|
||||
<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
|
||||
or
|
||||
@@ -129,8 +129,8 @@
|
||||
<para>
|
||||
Because the Poky repository is fundamentally an aggregation of
|
||||
existing repositories, some users might be familiar with running
|
||||
the <filename>&OE_INIT_FILE;</filename> or
|
||||
<filename>oe-init-build-env-memres</filename> script in the context
|
||||
the <filename>&OE_INIT_FILE;</filename> or
|
||||
<filename>oe-init-build-env-memres</filename> script in the context
|
||||
of separate OpenEmbedded-Core and BitBake repositories rather than a
|
||||
single Poky repository.
|
||||
This discussion assumes the script is executed from within a cloned
|
||||
@@ -297,7 +297,7 @@
|
||||
<para>
|
||||
The following figure shows an expanded representation of the
|
||||
Metadata, Machine Configuration, and Policy Configuration input
|
||||
(layers) boxes of the
|
||||
(layers) boxes of the
|
||||
<link linkend='general-yocto-environment-figure'>general Yocto Project Development Environment figure</link>:
|
||||
</para>
|
||||
|
||||
@@ -452,7 +452,7 @@
|
||||
<para>
|
||||
In order for the OpenEmbedded build system to create an image or
|
||||
any target, it must be able to access source files.
|
||||
The
|
||||
The
|
||||
<link linkend='general-yocto-environment-figure'>general Yocto Project Development Environment figure</link>
|
||||
represents source files using the "Upstream Project Releases",
|
||||
"Local Projects", and "SCMs (optional)" boxes.
|
||||
@@ -491,6 +491,14 @@
|
||||
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
|
||||
variable.
|
||||
This area is a cache that can hold previously downloaded source.
|
||||
You can also instruct the OpenEmbedded build system to create
|
||||
tarballs from Git repositories, which is not the default behavior,
|
||||
and store them in the <filename>DL_DIR</filename> by using the
|
||||
<link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
|
||||
variable.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Judicious use of a <filename>DL_DIR</filename> directory can
|
||||
save the build system a trip across the Internet when looking
|
||||
for files.
|
||||
@@ -566,6 +574,15 @@
|
||||
fetcher module.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
For information on how to have the OpenEmbedded build system
|
||||
generate tarballs for Git repositories and place them in the
|
||||
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
|
||||
directory, see the
|
||||
<link linkend='var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></link>
|
||||
variable.
|
||||
</note>
|
||||
|
||||
<para>
|
||||
When fetching a repository, BitBake uses the
|
||||
<link linkend='var-SRCREV'><filename>SRCREV</filename></link>
|
||||
@@ -601,6 +618,58 @@
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="package-feeds-dev-environment">
|
||||
<title>Package Feeds</title>
|
||||
|
||||
<para>
|
||||
When the OpenEmbedded build system generates an image or an SDK,
|
||||
it gets the packages from a package feed area located in the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
|
||||
The
|
||||
<link linkend='general-yocto-environment-figure'>general Yocto Project Development Environment figure</link>
|
||||
shows this package feeds area in the upper-right corner.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This section looks a little closer into the package feeds area used
|
||||
by the build system.
|
||||
Here is a more detailed look at the area:
|
||||
<imagedata fileref="figures/package-feeds.png" align="center" width="7in" depth="6in" />
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Package feeds are an intermediary step in the build process.
|
||||
BitBake generates packages whose type is defined by the
|
||||
<link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
|
||||
variable.
|
||||
Before placing the packages into package feeds,
|
||||
the build process validates them with generated output quality
|
||||
assurance checks through the
|
||||
<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>
|
||||
class.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The package feed area resides in
|
||||
<filename>tmp/deploy</filename> of the Build Directory.
|
||||
Folders are created that correspond to the package type
|
||||
(IPK, DEB, or RPM) created.
|
||||
Further organization is derived through the value of the
|
||||
<link linkend='var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></link>
|
||||
variable for each package.
|
||||
For example, packages can exist for the i586 or qemux86
|
||||
architectures.
|
||||
The package files themselves reside within the appropriate
|
||||
architecture folder.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
BitBake uses the <filename>do_package_write_*</filename> task to
|
||||
place generated packages into the package holding area (e.g.
|
||||
<filename>do_package_write_ipk</filename> for IPK packages).
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='bitbake-dev-environment'>
|
||||
<title>BitBake</title>
|
||||
|
||||
@@ -618,7 +687,7 @@
|
||||
<para>
|
||||
The first stages of building a recipe are to fetch and unpack
|
||||
the source code:
|
||||
<imagedata fileref="figures/source-fetching.png" align="center" width="6.5in" depth="4in" />
|
||||
<imagedata fileref="figures/source-fetching.png" align="center" width="6.5in" depth="5in" />
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -830,58 +899,151 @@
|
||||
</note>
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="package-feeds-dev-environment">
|
||||
<title>Package Feeds</title>
|
||||
<section id='image-generation-dev-environment'>
|
||||
<title>Image Generation</title>
|
||||
|
||||
<para>
|
||||
When the OpenEmbedded build system generates an image or an SDK,
|
||||
it gets the packages from a package feed area located in the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
|
||||
The
|
||||
<link linkend='general-yocto-environment-figure'>general Yocto Project Development Environment figure</link>
|
||||
shows this package feeds area in the upper-right corner.
|
||||
</para>
|
||||
<para>
|
||||
Once packages are split and stored in the Package Feeds area,
|
||||
the OpenEmbedded build system uses BitBake to generate the
|
||||
root filesystem image:
|
||||
<imagedata fileref="figures/image-generation.png" align="center" width="6in" depth="7in" />
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This section looks a little closer into the package feeds area used
|
||||
by the build system.
|
||||
Here is a more detailed look at the area:
|
||||
<imagedata fileref="figures/package-feeds.png" align="center" width="7in" depth="6in" />
|
||||
</para>
|
||||
<para>
|
||||
The image generation process consists of several stages and
|
||||
depends on many variables.
|
||||
The <filename>do_rootfs</filename> task uses these key variables
|
||||
to help create the list of packages to actually install:
|
||||
<itemizedlist>
|
||||
<listitem><para><link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>:
|
||||
Lists out the base set of packages to install from
|
||||
the Package Feeds area.</para></listitem>
|
||||
<listitem><para><link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>:
|
||||
Specifies packages that should not be installed.
|
||||
</para></listitem>
|
||||
<listitem><para><link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>:
|
||||
Specifies features to include in the image.
|
||||
Most of these features map to additional packages for
|
||||
installation.</para></listitem>
|
||||
<listitem><para><link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>:
|
||||
Specifies the package backend to use and consequently
|
||||
helps determine where to locate packages within the
|
||||
Package Feeds area.</para></listitem>
|
||||
<listitem><para><link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>:
|
||||
Determines the language(s) for which additional
|
||||
language support packages are installed.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Package feeds are an intermediary step in the build process.
|
||||
BitBake generates packages whose type is defined by the
|
||||
<link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>
|
||||
variable.
|
||||
Before placing the packages into package feeds,
|
||||
the build process validates them with generated output quality
|
||||
assurance checks through the
|
||||
<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>
|
||||
class.
|
||||
</para>
|
||||
<para>
|
||||
Package installation is under control of the package manager
|
||||
(e.g. smart/rpm, opkg, or apt/dpkg) regardless of whether or
|
||||
not package management is enabled for the target.
|
||||
At the end of the process, if package management is not
|
||||
enabled for the target, the package manager's data files
|
||||
are deleted from the root filesystem.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The package feed area resides in
|
||||
<filename>tmp/deploy</filename> of the Build Directory.
|
||||
Folders are created that correspond to the package type
|
||||
(IPK, DEB, or RPM) created.
|
||||
Further organization is derived through the value of the
|
||||
<link linkend='var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></link>
|
||||
variable for each package.
|
||||
For example, packages can exist for the i586 or qemux86
|
||||
architectures.
|
||||
The package files themselves reside within the appropriate
|
||||
architecture folder.
|
||||
</para>
|
||||
<para>
|
||||
During image generation, the build system attempts to run
|
||||
all post installation scripts.
|
||||
Any that fail to run on the build host are run on the
|
||||
target when the target system is first booted.
|
||||
If you are using a
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>read-only root filesystem</ulink>,
|
||||
all the post installation scripts must succeed during the
|
||||
package installation phase since the root filesystem cannot be
|
||||
written into.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
BitBake uses the <filename>do_package_write_*</filename> task to
|
||||
place generated packages into the package holding area (e.g.
|
||||
<filename>do_package_write_ipk</filename> for IPK packages).
|
||||
</para>
|
||||
<para>
|
||||
During Optimization, optimizing processes are run across
|
||||
the image.
|
||||
These processes include <filename>mklibs</filename> and
|
||||
<filename>prelink</filename>.
|
||||
The <filename>mklibs</filename> process optimizes the size
|
||||
of the libraries.
|
||||
A <filename>prelink</filename> process optimizes the dynamic
|
||||
linking of shared libraries to reduce start up time of
|
||||
executables.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Part of the image generation process includes compressing the
|
||||
root filesystem image.
|
||||
Compression is accomplished through several optimization
|
||||
routines designed to reduce the overall size of the image.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
After the root filesystem has been constructed, the image
|
||||
generation process turns everything into an image file or
|
||||
a set of image files.
|
||||
The formats used for the root filesystem depend on the
|
||||
<link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
|
||||
variable.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
The entire image generation process is run under Pseudo.
|
||||
Running under Pseudo ensures that the files in the root
|
||||
filesystem have correct ownership.
|
||||
</note>
|
||||
</section>
|
||||
|
||||
<section id='sdk-generation-dev-environment'>
|
||||
<title>SDK Generation</title>
|
||||
|
||||
<para>
|
||||
The OpenEmbedded build system uses BitBake to generate the
|
||||
Software Development Kit (SDK) installer script:
|
||||
<imagedata fileref="figures/sdk-generation.png" align="center" width="6in" depth="7in" />
|
||||
</para>
|
||||
|
||||
<note>
|
||||
For more information on the cross-development toolchain
|
||||
generation, see the
|
||||
"<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
|
||||
section.
|
||||
</note>
|
||||
|
||||
<para>
|
||||
Like image generation, the SDK script process consists of
|
||||
several stages and depends on many variables.
|
||||
The <filename>do_populate_sdk</filename> task uses these
|
||||
key variables to help create the list of packages to actually
|
||||
install.
|
||||
For information on the variables listed in the figure, see the
|
||||
"<link linkend='sdk-dev-environment'>Application Development SDK</link>"
|
||||
section.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <filename>do_populate_sdk</filename> task handles two
|
||||
parts: a target part and a host part.
|
||||
The target part is the part built for the target hardware and
|
||||
includes libraries and headers.
|
||||
The host part is the part of the SDK that runs on the
|
||||
<link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Once both parts are constructed, the
|
||||
<filename>do_populate_sdk</filename> task performs some cleanup
|
||||
on both parts.
|
||||
After the cleanup, the task creates a cross-development
|
||||
environment setup script and any configuration files that
|
||||
might be needed.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The final output of the task is the Cross-development
|
||||
toolchain installation script (<filename>.sh</filename> file),
|
||||
which includes the environment setup script.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id='images-dev-environment'>
|
||||
@@ -891,7 +1053,7 @@
|
||||
The images produced by the OpenEmbedded build system
|
||||
are compressed forms of the
|
||||
root filesystems that are ready to boot on a target device.
|
||||
You can see from the
|
||||
You can see from the
|
||||
<link linkend='general-yocto-environment-figure'>general Yocto Project Development Environment figure</link>
|
||||
that BitBake output in part consists of images.
|
||||
This section is going to look more closely at this output:
|
||||
@@ -907,13 +1069,17 @@
|
||||
<para>
|
||||
Images are written out to the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
|
||||
inside the <filename>deploy/images</filename> folder as shown
|
||||
in the figure.
|
||||
inside the <filename>deploy/images/<machine>/</filename>
|
||||
folder as shown in the figure.
|
||||
This folder contains any files expected to be loaded on the
|
||||
target device.
|
||||
The
|
||||
<link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>
|
||||
variable points to the <filename>deploy</filename> directory.
|
||||
variable points to the <filename>deploy</filename> directory,
|
||||
while the
|
||||
<link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
|
||||
variable points to the appropriate directory containing images for
|
||||
the current configuration.
|
||||
<itemizedlist>
|
||||
<listitem><para><filename><kernel-image></filename>:
|
||||
A kernel binary file.
|
||||
@@ -922,8 +1088,9 @@
|
||||
kernel image file.
|
||||
Depending on that variable, the file could begin with
|
||||
a variety of naming strings.
|
||||
The <filename>deploy/images</filename> directory can
|
||||
contain multiple image files.</para></listitem>
|
||||
The <filename>deploy/images/<machine></filename>
|
||||
directory can contain multiple image files for the
|
||||
machine.</para></listitem>
|
||||
<listitem><para><filename><root-filesystem-image></filename>:
|
||||
Root filesystems for the target device (e.g.
|
||||
<filename>*.ext3</filename> or <filename>*.bz2</filename>
|
||||
@@ -931,25 +1098,27 @@
|
||||
The <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
|
||||
variable setting determines the root filesystem image
|
||||
type.
|
||||
The <filename>deploy/images</filename> directory can
|
||||
contain multiple root filesystems.</para></listitem>
|
||||
The <filename>deploy/images/<machine></filename>
|
||||
directory can contain multiple root filesystems for the
|
||||
machine.</para></listitem>
|
||||
<listitem><para><filename><kernel-modules></filename>:
|
||||
Tarballs that contain all the modules built for the kernel.
|
||||
Kernel module tarballs exist for legacy purposes and
|
||||
can be suppressed by setting the
|
||||
<link linkend='var-MODULE_TARBALL_DEPLOY'><filename>MODULE_TARBALL_DEPLOY</filename></link>
|
||||
variable to "0".
|
||||
The <filename>deploy/images</filename> directory can
|
||||
contain multiple kernel module tarballs.
|
||||
</para></listitem>
|
||||
The <filename>deploy/images/<machine></filename>
|
||||
directory can contain multiple kernel module tarballs
|
||||
for the machine.</para></listitem>
|
||||
<listitem><para><filename><bootloaders></filename>:
|
||||
Bootloaders supporting the image, if applicable to the
|
||||
target machine.
|
||||
The <filename>deploy/images</filename> directory can
|
||||
contain multiple bootloaders.
|
||||
</para></listitem>
|
||||
The <filename>deploy/images/<machine></filename>
|
||||
directory can contain multiple bootloaders for the
|
||||
machine.</para></listitem>
|
||||
<listitem><para><filename><symlinks></filename>:
|
||||
The <filename>deploy/images</filename> folder contains
|
||||
The <filename>deploy/images/<machine></filename>
|
||||
folder contains
|
||||
a symbolic link that points to the most recently built file
|
||||
for each machine.
|
||||
These links might be useful for external scripts that
|
||||
@@ -963,7 +1132,7 @@
|
||||
<title>Application Development SDK</title>
|
||||
|
||||
<para>
|
||||
In the
|
||||
In the
|
||||
<link linkend='general-yocto-environment-figure'>general Yocto Project Development Environment figure</link>,
|
||||
the output labeled "Application Development SDK" represents an
|
||||
SDK.
|
||||
|
||||
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 42 KiB |
BIN
documentation/ref-manual/figures/image-generation.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 22 KiB |
BIN
documentation/ref-manual/figures/sdk-generation.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
@@ -133,17 +133,26 @@
|
||||
</para>
|
||||
</note>
|
||||
<itemizedlist>
|
||||
<listitem><para>Ubuntu 10.04</para></listitem>
|
||||
<listitem><para>Ubuntu 11.10</para></listitem>
|
||||
<!-- <listitem><para>Ubuntu 10.04</para></listitem>
|
||||
<listitem><para>Ubuntu 11.10</para></listitem> -->
|
||||
<listitem><para>Ubuntu 12.04 (LTS)</para></listitem>
|
||||
<listitem><para>Ubuntu 12.10</para></listitem>
|
||||
<listitem><para>Ubuntu 13.04</para></listitem>
|
||||
<listitem><para>Fedora release 17 (Beefy Miracle)</para></listitem>
|
||||
<!-- <listitem><para>Fedora 16 (Verne)</para></listitem>
|
||||
<listitem><para>Fedora 17 (Spherical)</para></listitem> -->
|
||||
<listitem><para>Fedora release 18 (Spherical Cow)</para></listitem>
|
||||
<listitem><para>CentOS release 6.3 (Final)</para></listitem>
|
||||
<listitem><para>CentOS release 6.4 (Final)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 6.0 (Squeeze)</para></listitem>
|
||||
<listitem><para>Fedora release 19 (Schrödinger's Cat)</para></listitem>
|
||||
<!-- <listitem><para>CentOS release 5.6 (Final)</para></listitem>
|
||||
<listitem><para>CentOS release 5.7 (Final)</para></listitem>
|
||||
<listitem><para>CentOS release 5.8 (Final)</para></listitem>
|
||||
<listitem><para>CentOS release 6.3 (Final)</para></listitem> -->
|
||||
<listitem><para>CentOS release 6.4</para></listitem>
|
||||
<!-- <listitem><para>Debian GNU/Linux 6.0 (Squeeze)</para></listitem> -->
|
||||
<listitem><para>Debian GNU/Linux 6.0.7 (Squeeze)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.0 (Wheezy)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.1 (Wheezy)</para></listitem>
|
||||
<!-- <listitem><para>openSUSE 11.4</para></listitem>
|
||||
<listitem><para>openSUSE 12.1</para></listitem> -->
|
||||
<listitem><para>openSUSE 12.2</para></listitem>
|
||||
<listitem><para>openSUSE 12.3</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
@@ -580,6 +580,509 @@
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id='moving-to-the-yocto-project-1.5-release'>
|
||||
<title>Moving to the Yocto Project 1.5 Release</title>
|
||||
|
||||
<para>
|
||||
This section provides migration information for moving to the
|
||||
Yocto Project 1.5 Release from the prior release.
|
||||
</para>
|
||||
|
||||
<section id='migration-1.5-host-dependency-changes'>
|
||||
<title>Host Dependency Changes</title>
|
||||
|
||||
<para>
|
||||
The OpenEmbedded build system now has some additional requirements
|
||||
on the host system:
|
||||
<itemizedlist>
|
||||
<listitem><para>Python 2.7.3+</para></listitem>
|
||||
<listitem><para>Tar 1.24+</para></listitem>
|
||||
<listitem><para>Git 1.7.5+</para></listitem>
|
||||
<listitem><para>Patched version of Make if you are using
|
||||
3.82.
|
||||
Most distributions that provide Make 3.82 use the patched
|
||||
version.</para></listitem>
|
||||
</itemizedlist>
|
||||
If the Linux distribution you are using on your build host
|
||||
does not provide packages for these, you can install and use
|
||||
the Buildtools tarball, which provides an SDK-like environment
|
||||
containing them.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For more information on this requirement, see the
|
||||
"<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
|
||||
section.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-atom-pc-bsp'>
|
||||
<title><filename>atom-pc</filename> Board Support Package (BSP)</title>
|
||||
|
||||
<para>
|
||||
The <filename>atom-pc</filename> hardware reference BSP has been
|
||||
replaced by a <filename>genericx86</filename> BSP.
|
||||
This BSP is not necessarily guaranteed to work on all x86
|
||||
hardware, but it will run on a wider range of systems than the
|
||||
<filename>atom-pc</filename> did.
|
||||
<note>
|
||||
Additionally, a <filename>genericx86-64</filename> BSP has been
|
||||
added for 64-bit systems.
|
||||
</note>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-bitbake'>
|
||||
<title>BitBake</title>
|
||||
|
||||
<para>
|
||||
The following changes have been made that relate to BitBake:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
BitBake now supports a <filename>_remove</filename>
|
||||
operator.
|
||||
The addition of this operator means you will have to
|
||||
rename any items in recipe space (functions, variables)
|
||||
whose names currently contain
|
||||
<filename>_remove_</filename> or end with
|
||||
<filename>_remove</filename> to avoid unexpected behavior.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
BitBake's global method pool has been removed.
|
||||
This method is not particularly useful and led to clashes
|
||||
between recipes containing functions that had the
|
||||
same name.</para></listitem>
|
||||
<listitem><para>
|
||||
The "none" server backend has been removed.
|
||||
The "process" server backend has been serving well as the
|
||||
default for a long time now.</para></listitem>
|
||||
<listitem><para>
|
||||
The <filename>bitbake-runtask</filename> script has been
|
||||
removed.</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>${</filename><link linkend='var-P'><filename>P</filename></link><filename>}</filename>
|
||||
and
|
||||
<filename>${</filename><link linkend='var-PF'><filename>PF</filename></link><filename>}</filename>
|
||||
are no longer added to
|
||||
<link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
|
||||
by default in <filename>bitbake.conf</filename>.
|
||||
These version-specific <filename>PROVIDES</filename>
|
||||
items were seldom used.
|
||||
Attempting to use them could result in two versions being
|
||||
built simultaneously rather than just one version due to
|
||||
the way BitBake resolves dependencies.</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-qa-warnings'>
|
||||
<title>QA Warnings</title>
|
||||
|
||||
<para>
|
||||
The following changes have been made to the package QA checks:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
If you have customized
|
||||
<link linkend='var-ERROR_QA'><filename>ERROR_QA</filename></link>
|
||||
or <link linkend='var-WARN_QA'><filename>WARN_QA</filename></link>
|
||||
values in your configuration, check that they contain all of
|
||||
the issues that you wish to be reported.
|
||||
Previous Yocto Project versions contained a bug that meant
|
||||
that any item not mentioned in <filename>ERROR_QA</filename>
|
||||
or <filename>WARN_QA</filename> would be treated as a
|
||||
warning.
|
||||
Consequently, several important items were not already in
|
||||
the default value of <filename>WARN_QA</filename>.
|
||||
All of the possible QA checks are now documented in the
|
||||
"<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
|
||||
section.</para></listitem>
|
||||
<listitem><para>
|
||||
An additional QA check has been added to check if
|
||||
<filename>/usr/share/info/dir</filename> is being installed.
|
||||
Your recipe should delete this file within
|
||||
<filename>do_install</filename> if "make install" is
|
||||
installing it.</para></listitem>
|
||||
<listitem><para>
|
||||
If you are using the buildhistory class, the check for the
|
||||
package version going backwards is now controlled using a
|
||||
standard QA check.
|
||||
Thus, if you have customized your
|
||||
<filename>ERROR_QA</filename> or
|
||||
<filename>WARN_QA</filename> values and still wish to have
|
||||
this check performed, you should add
|
||||
"version-going-backwards" to your value for one or the
|
||||
other variables depending on how you wish it to be handled.
|
||||
See the documented QA checks in the
|
||||
"<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
|
||||
section.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-directory-layout-changes'>
|
||||
<title>Directory Layout Changes</title>
|
||||
|
||||
<para>
|
||||
The following directory changes exist:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Output SDK installer files are now named to include the
|
||||
image name and tuning architecture through the
|
||||
<link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link>
|
||||
variable.</para></listitem>
|
||||
<listitem><para>
|
||||
Images and related files are now installed into a directory
|
||||
that is specific to the machine, instead of a parent
|
||||
directory containing output files for multiple machines.
|
||||
The
|
||||
<link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link>
|
||||
variable continues to point to the directory containing
|
||||
images for the current
|
||||
<link linkend='var-MACHINE'><filename>MACHINE</filename></link>
|
||||
and should be used anywhere there is a need to refer to
|
||||
this directory.
|
||||
The <filename>runqemu</filename> script now uses this
|
||||
variable to find images and kernel binaries and will use
|
||||
BitBake to determine the directory.
|
||||
Alternatively, you can set the
|
||||
<filename>DEPLOY_DIR_IMAGE</filename> variable in the
|
||||
external environment.</para></listitem>
|
||||
<listitem><para>
|
||||
When buildhistory is enabled, its output is now written
|
||||
under the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
|
||||
rather than
|
||||
<link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>.
|
||||
Doing so makes it a easier to delete
|
||||
<filename>TMPDIR</filename> and preserve the build history.
|
||||
Additionally, data for produced SDKs is now split by
|
||||
<link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
The <filename>pkgdata</filename> directory produced as
|
||||
part of the packaging process has been collapsed into a
|
||||
single machine-specific directory.
|
||||
This directory is located under
|
||||
<filename>sysroots</filename> and uses a machine-specific
|
||||
name (i.e.
|
||||
<filename>tmp/sysroots/<machine>/pkgdata</filename>).
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-shortened-git-srcrev-values'>
|
||||
<title>Shortened Git <filename>SRCREV</filename> Values</title>
|
||||
|
||||
<para>
|
||||
BitBake will now shorten revisions from Git repositories from the
|
||||
normal 40 characters down to 10 characters within
|
||||
<link linkend='var-SRCPV'><filename>SRCPV</filename></link>
|
||||
for improved usability in path and file names.
|
||||
This change should be safe within contexts where these revisions
|
||||
are used because the chances of spatially close collisions
|
||||
is very low.
|
||||
Distant collisions are not a major issue in the way
|
||||
the values are used.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-image-features'>
|
||||
<title><filename>IMAGE_FEATURES</filename></title>
|
||||
|
||||
<para>
|
||||
The following changes have been made that relate to
|
||||
<link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
The value of
|
||||
<link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
|
||||
is now validated to ensure invalid feature items are not
|
||||
added.
|
||||
Some users mistakenly add package names to this variable
|
||||
instead of using
|
||||
<link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
|
||||
in order to have the package added to the image, which does
|
||||
not work.
|
||||
This change is intended to catch those kinds of situations.
|
||||
Valid <filename>IMAGE_FEATURES</filename> are drawn from
|
||||
<link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link>
|
||||
definitions,
|
||||
<link linkend='var-COMPLEMENTARY_GLOB'><filename>COMPLEMENTARY_GLOB</filename></link>
|
||||
and a new "validitems" varflag on
|
||||
<filename>IMAGE_FEATURES</filename>.
|
||||
The "validitems" varflag change allows additional features
|
||||
to be added if they are not provided using the previous
|
||||
two mechanisms.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
The previously deprecated "apps-console-core"
|
||||
<filename>IMAGE_FEATURES</filename> item is no longer
|
||||
supported.
|
||||
Add "splash" to <filename>IMAGE_FEATURES</filename> if you
|
||||
wish to have the splash screen enabled, since this is
|
||||
all that apps-console-core was doing.</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-run'>
|
||||
<title><filename>/run</filename></title>
|
||||
|
||||
<para>
|
||||
The <filename>/run</filename> directory from the Filesystem
|
||||
Hierarchy Standard 3.0 has been introduced.
|
||||
You can find some of the implications for this change
|
||||
<ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873'>here</ulink>.
|
||||
The change also means that recipes that install files to
|
||||
<filename>/var/run</filename> must be changed.
|
||||
You can find a guide on how to make these changes
|
||||
<ulink url='http://permalink.gmane.org/gmane.comp.handhelds.openembedded/58530'>here</ulink>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-removal-of-package-manager-database-within-image-recipes'>
|
||||
<title>Removal of Package Manager Database Within Image Recipes</title>
|
||||
|
||||
<para>
|
||||
The image <filename>core-image-minimal</filename> no longer adds
|
||||
<filename>remove_packaging_data_files</filename> to
|
||||
<link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link>.
|
||||
This addition is now handled automatically when "package-management"
|
||||
is not in
|
||||
<link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
|
||||
If you have custom image recipes that make this addition,
|
||||
you should remove the lines, as they are not needed and might
|
||||
interfere with correct operation of postinstall scripts.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time'>
|
||||
<title>Images Now Rebuild Only on Changes Instead of Every Time</title>
|
||||
|
||||
<para>
|
||||
The <filename>do_rootfs</filename> and other related image
|
||||
construction tasks are no longer marked as "nostamp".
|
||||
Consequently, they will only be re-executed when their inputs have
|
||||
changed.
|
||||
Previous versions of the OpenEmbedded build system always rebuilt
|
||||
the image when requested rather when necessary.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-task-recipes'>
|
||||
<title>Task Recipes</title>
|
||||
|
||||
<para>
|
||||
The previously deprecated <filename>task.bbclass</filename> has
|
||||
now been dropped.
|
||||
For recipes that previously inherited from this task, you should
|
||||
rename them from <filename>task-*</filename> to
|
||||
<filename>packagegroup-*</filename> and inherit packagegroup
|
||||
instead.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For more information, see the
|
||||
"<link linkend='ref-classes-packagegroup'>Package Groups - <filename>packagegroup.bbclass</filename></link>"
|
||||
section.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-busybox'>
|
||||
<title>BusyBox</title>
|
||||
|
||||
<para>
|
||||
By default, we now split BusyBox into two binaries:
|
||||
one that is suid root for those components that need it, and
|
||||
another for the rest of the components.
|
||||
Splitting BusyBox allows for optimization that eliminates the
|
||||
<filename>tinylogin</filename> recipe as recommended by upstream.
|
||||
You can disable this split by setting
|
||||
<link linkend='var-BUSYBOX_SPLIT_SUID'><filename>BUSYBOX_SPLIT_SUID</filename></link>
|
||||
to "0".
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-automated-image-testing'>
|
||||
<title>Automated Image Testing</title>
|
||||
|
||||
<para>
|
||||
A new automated image testing framework has been added
|
||||
through the
|
||||
<link linkend='ref-classes-testimage'><filename>testimage*.bbclass</filename></link>
|
||||
class.
|
||||
This framework replaces the older
|
||||
<filename>imagetest-qemu</filename> framework.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You can learn more about performing automated image tests in the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
|
||||
section.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-build-history'>
|
||||
<title>Build History</title>
|
||||
|
||||
<para>
|
||||
Following are changes to Build History:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Installed package sizes:
|
||||
<filename>installed-package-sizes.txt</filename> for an
|
||||
image now records the size of the files installed by each
|
||||
package instead of the size of each compressed package
|
||||
archive file.</para></listitem>
|
||||
<listitem><para>
|
||||
The dependency graphs (<filename>depends*.dot</filename>)
|
||||
now use the actual package names instead of replacing
|
||||
dashes, dots and plus signs with underscores.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
The <filename>buildhistory-diff</filename> and
|
||||
<filename>buildhistory-collect-srcrevs</filename>
|
||||
utilities have improved command-line handling.
|
||||
Use the <filename>‐‐help</filename> option for
|
||||
each utility for more information on the new syntax.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
For more information on Build History, see the
|
||||
"<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
|
||||
section.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-udev'>
|
||||
<title><filename>udev</filename></title>
|
||||
|
||||
<para>
|
||||
Following are changes to <filename>udev</filename>:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<filename>udev</filename> no longer brings in
|
||||
<filename>udev-extraconf</filename> automatically
|
||||
through
|
||||
<link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>,
|
||||
since this was originally intended to be optional.
|
||||
If you need the extra rules, then add
|
||||
<filename>udev-extraconf</filename> to your image.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>udev</filename> no longer brings in
|
||||
<filename>pciutils-ids</filename> or
|
||||
<filename>usbutils-ids</filename> through
|
||||
<filename>RRECOMMENDS</filename>.
|
||||
These are not needed by <filename>udev</filename> itself
|
||||
and removing them saves around 350KB.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='removed-renamed-recipes'>
|
||||
<title>Removed and Renamed Recipes</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
The <filename>linux-yocto</filename> 3.2 kernel has been
|
||||
removed.</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>libtool-nativesdk</filename> has been renamed to
|
||||
<filename>nativesdk-libtool</filename>.</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>tinylogin</filename> has been removed.
|
||||
It has been replaced by a suid portion of Busybox.
|
||||
See the
|
||||
"<link linkend='migration-1.5-busybox'>BusyBox</link>" section
|
||||
for more information.</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>external-python-tarball</filename> has been renamed
|
||||
to <filename>buildtools-tarball</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>web-webkit</filename> has been removed.
|
||||
It has been functionally replaced by
|
||||
<filename>midori</filename>.</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>imake</filename> has been removed.
|
||||
It is no longer needed by any other recipe.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>transfig-native</filename> has been removed.
|
||||
It is no longer needed by any other recipe.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>anjuta-remote-run</filename> has been removed.
|
||||
Anjuta IDE integration has not been officially supported for
|
||||
several releases.</para></listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
<section id='migration-1.5-other-changes'>
|
||||
<title>Other Changes</title>
|
||||
|
||||
<para>
|
||||
Following is a list of short entries describing other changes:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<filename>run-postinsts</filename>: Make this generic.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>base-files</filename>: Remove the unnecessary
|
||||
<filename>/media/xxx</filename> directories.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>alsa-state</filename>: Provide an empty
|
||||
<filename>asound.conf</filename> by default.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>classes/image</filename>: Ensure
|
||||
<link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
|
||||
supports pre-renamed package names.</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>classes/rootfs_rpm</filename>: Implement
|
||||
<link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
|
||||
for RPM.</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>systemd</filename>: Remove
|
||||
<filename>systemd_unitdir</filename> if
|
||||
<filename>systemd</filename> is not in
|
||||
<link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>systemd</filename>: Remove
|
||||
<filename>init.d</filename> dir if
|
||||
<filename>systemd</filename> unit file is present and
|
||||
<filename>sysvinit</filename> is not a distro feature.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>libpam</filename>: Deny all services for the
|
||||
<filename>OTHER</filename> entries.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>image.bbclass</filename>: Move
|
||||
<filename>runtime_mapping_rename</filename> to avoid
|
||||
conflict with <filename>multilib</filename>.
|
||||
See
|
||||
<ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=4993'><filename>YOCTO #4993</filename></ulink>
|
||||
in Bugzilla for more information.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>linux-dtb</filename>: Use kernel build system
|
||||
to generate the <filename>dtb</filename> files.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>kern-tools</filename>: Switch from guilt to
|
||||
new <filename>kgit-s2q</filename> tool.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</chapter>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<note>
|
||||
BitBake strives to be a generic "task" executor that is capable of handling complex dependency relationships.
|
||||
As such, it has no real knowledge of what the tasks being executed actually do.
|
||||
BitBake just considers a list of tasks with dependencies and handles
|
||||
BitBake just considers a list of tasks with dependencies and handles
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
|
||||
consisting of variables in a certain format that get passed to the tasks.
|
||||
</note>
|
||||
@@ -320,76 +320,74 @@
|
||||
|
||||
<screen>
|
||||
$ bitbake --help
|
||||
Usage: bitbake [options] [package ...]
|
||||
Usage: bitbake [options] [recipename/target ...]
|
||||
|
||||
Executes the specified task (default is 'build') for a given set of BitBake files.
|
||||
It expects that BBFILES is defined, which is a space separated list of files to
|
||||
be executed. BBFILES does support wildcards.
|
||||
Default BBFILES are the .bb files in the current directory.
|
||||
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.
|
||||
|
||||
Options:
|
||||
--version show program's version number and exit
|
||||
-h, --help show this help message and exit
|
||||
-b BUILDFILE, --buildfile=BUILDFILE
|
||||
execute the task against this .bb file, rather than a
|
||||
package from BBFILES. Does not handle any
|
||||
dependencies.
|
||||
-k, --continue continue as much as possible after an error. While the
|
||||
target that failed, and those that depend on it,
|
||||
cannot be remade, the other dependencies of these
|
||||
targets can be processed all the same.
|
||||
-a, --tryaltconfigs continue with builds by trying to use alternative
|
||||
Execute tasks from a specific .bb recipe directly.
|
||||
WARNING: Does not handle any dependencies from other
|
||||
recipes.
|
||||
-k, --continue 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.
|
||||
-a, --tryaltconfigs Continue with builds by trying to use alternative
|
||||
providers where possible.
|
||||
-f, --force force run of specified cmd, regardless of stamp status
|
||||
-c CMD, --cmd=CMD Specify task to execute. Note that this only executes
|
||||
the specified task for the providee and the packages
|
||||
it depends on, i.e. 'compile' does not implicitly call
|
||||
stage for the dependencies (IOW: use only if you know
|
||||
what you are doing). Depending on the base.bbclass a
|
||||
listtasks tasks is defined and will show available
|
||||
tasks
|
||||
-f, --force Force the specified targets/task to run (invalidating
|
||||
any existing stamp file).
|
||||
-c CMD, --cmd=CMD 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.
|
||||
-C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
|
||||
Invalidate the stamp for the specified cmd such as
|
||||
'compile' and run the default task for the specified
|
||||
target(s)
|
||||
Invalidate the stamp for the specified task such as
|
||||
'compile' and then run the default task for the
|
||||
specified target(s).
|
||||
-r PREFILE, --read=PREFILE
|
||||
read the specified file before bitbake.conf
|
||||
Read the specified file before bitbake.conf.
|
||||
-R POSTFILE, --postread=POSTFILE
|
||||
read the specified file after bitbake.conf
|
||||
-v, --verbose output more chit-chat to the terminal
|
||||
Read the specified file after bitbake.conf.
|
||||
-v, --verbose Output more log message data to the terminal.
|
||||
-D, --debug Increase the debug level. You can specify this more
|
||||
than once.
|
||||
-n, --dry-run don't execute, just go through the motions
|
||||
-n, --dry-run Don't execute, just go through the motions.
|
||||
-S, --dump-signatures
|
||||
don't execute, just dump out the signature
|
||||
construction information
|
||||
-p, --parse-only quit after parsing the BB files (developers only)
|
||||
-s, --show-versions show current and preferred versions of all recipes
|
||||
-e, --environment show the global or per-package environment (this is
|
||||
what used to be bbread)
|
||||
-g, --graphviz emit the dependency trees of the specified packages in
|
||||
the dot syntax, and the pn-buildlist to show the build
|
||||
list
|
||||
Don't execute, just dump out the signature
|
||||
construction information.
|
||||
-p, --parse-only Quit after parsing the BB recipes.
|
||||
-s, --show-versions Show current and preferred versions of all recipes.
|
||||
-e, --environment Show the global or per-package environment complete
|
||||
with information about where variables were
|
||||
set/changed.
|
||||
-g, --graphviz Save dependency tree information for the specified
|
||||
targets in the dot syntax.
|
||||
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
|
||||
Assume these dependencies don't exist and are already
|
||||
provided (equivalent to ASSUME_PROVIDED). Useful to
|
||||
make dependency graphs more appealing
|
||||
-l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
|
||||
Show debug logging for the specified logging domains
|
||||
-P, --profile profile the command and print a report
|
||||
-u UI, --ui=UI userinterface to use
|
||||
-P, --profile Profile the command and save reports.
|
||||
-u UI, --ui=UI The user interface to use (e.g. knotty, hob, depexp).
|
||||
-t SERVERTYPE, --servertype=SERVERTYPE
|
||||
Choose which server to use, process or xmlrpc
|
||||
Choose which server to use, process or xmlrpc.
|
||||
--revisions-changed Set the exit code depending on whether upstream
|
||||
floating revisions have changed or not
|
||||
--server-only Run bitbake without UI, the frontend can connect with
|
||||
bitbake server itself
|
||||
-B BIND, --bind=BIND The name/address for the bitbake server to bind to
|
||||
--no-setscene Do not run any setscene tasks, forces builds
|
||||
floating revisions have changed or not.
|
||||
--server-only Run bitbake without a UI, only starting a server
|
||||
(cooker) process.
|
||||
-B BIND, --bind=BIND The name/address for the bitbake server to bind to.
|
||||
--no-setscene Do not run any setscene tasks. sstate will be ignored
|
||||
and everything needed, built.
|
||||
--remote-server=REMOTE_SERVER
|
||||
Connect to the specified server
|
||||
-m, --kill-server Terminate the remote server
|
||||
--observe-only Connect to a server as an observing-only client
|
||||
Connect to the specified server.
|
||||
-m, --kill-server Terminate the remote server.
|
||||
--observe-only Connect to a server as an observing-only client.
|
||||
</screen>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -86,9 +86,9 @@
|
||||
the <filename><link linkend='var-EXTRA_OEMAKE'>EXTRA_OEMAKE</link></filename> variable.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>do_install</filename> ‐ Runs <filename>make install</filename>
|
||||
and passes a destination directory option, which takes its value
|
||||
from the standard
|
||||
<filename><link linkend='var-DESTDIR'>DESTDIR</link></filename> variable.
|
||||
and passes in
|
||||
<filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
|
||||
as <filename>DESTDIR</filename>.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
@@ -341,9 +341,9 @@
|
||||
on the development host that can be used by Smart, you can
|
||||
install packages from the feed while you are running the image
|
||||
on the target (i.e. runtime installation of packages).
|
||||
For information on how to set up this repository, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-runtime-package-management'>Setting Up Runtime Package Management</ulink>"
|
||||
in the Yocto Project Development Manual.
|
||||
For more information, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-runtime-package-management'>Using Runtime Package Management</ulink>"
|
||||
section in the Yocto Project Development Manual.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -797,6 +797,21 @@
|
||||
<listitem><para><emphasis><filename>perms:</filename></emphasis>
|
||||
Currently, this check is unused but reserved.
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis><filename>version-going-backwards:</filename></emphasis>
|
||||
If Build History is enabled, reports when a package
|
||||
being written out has a lower version than the previously
|
||||
written package under the same name.
|
||||
If you are placing output packages into a feed and
|
||||
upgrading packages on a target system using that feed, the
|
||||
version of a package going backwards can result in the target
|
||||
system not correctly upgrading to the "new" version of the
|
||||
package.
|
||||
<note>
|
||||
If you are not using runtime package management on your
|
||||
target system, then you do not need to worry about
|
||||
this situation.
|
||||
</note>
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
@@ -935,6 +950,35 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='ref-classes-testimage'>
|
||||
<title><filename>testimage.bbclass</filename></title>
|
||||
|
||||
<para>
|
||||
You can use this class to enable running a series of automated tests
|
||||
for images.
|
||||
The class handles loading the tests and starting the image.
|
||||
<note>
|
||||
Currently, there is only support for running these tests
|
||||
under QEMU.
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To use the class, you need to perform steps to set up the
|
||||
environment.
|
||||
The tests are commands that run on the target system over
|
||||
<filename>ssh</filename>.
|
||||
they are written in Python and make use of the
|
||||
<filename>unittest</filename> module.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For information on how to enable, run, and create new tests, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
|
||||
section.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='ref-classes-others'>
|
||||
<title>Other Classes</title>
|
||||
|
||||
@@ -952,6 +996,7 @@
|
||||
allarch.bbclass
|
||||
archive*.bbclass
|
||||
binconfig.bbclass
|
||||
bin_package.bbclass
|
||||
blacklist.bbclass
|
||||
bootimg.bbclass
|
||||
boot-directdisk.bbclass
|
||||
@@ -960,6 +1005,7 @@
|
||||
buildstats.bbclass
|
||||
ccache.bbclass
|
||||
chrpath.bbclass
|
||||
clutter.bbclass
|
||||
cmake.bbclass
|
||||
cml1.bbclass
|
||||
copyleft_compliance.bbclass
|
||||
@@ -969,7 +1015,9 @@
|
||||
crosssdk.bbclass
|
||||
deploy.bbclass
|
||||
distrodata.bbclass
|
||||
distro_features_check.bbclass
|
||||
dummy.bbclass
|
||||
extrausers.bbclass
|
||||
fontcache.bbclass
|
||||
gconf.bbclass
|
||||
gettext.bbclass
|
||||
@@ -988,12 +1036,11 @@
|
||||
image-mklibs.bbclass
|
||||
image-prelink.bbclass
|
||||
image-swab.bbclass
|
||||
imagetest-dummy.bbclass
|
||||
imagetest-qemu.bbclass
|
||||
image_types.bbclass
|
||||
image_types_uboot.bbclass
|
||||
insserv.bbclass
|
||||
kernel-arch.bbclass
|
||||
kernel-module-split.bbclass
|
||||
kernel-yocto.bbclass
|
||||
lib_package.bbclass
|
||||
linux-kernel-base.bbclass
|
||||
@@ -1034,6 +1081,7 @@
|
||||
sip.bbclass
|
||||
siteconfig.bbclass
|
||||
sourcepkg.bbclass
|
||||
spdx.bbclass
|
||||
sstate.bbclass
|
||||
staging.bbclass
|
||||
syslinux.bbclass
|
||||
@@ -1042,8 +1090,11 @@
|
||||
tinderclient.bbclass
|
||||
toolchain-scripts.bbclass
|
||||
typecheck.bbclass
|
||||
uboot-config.bbclass
|
||||
utility-tasks.bbclass
|
||||
utils.bbclass
|
||||
vala.bbclass
|
||||
waf.bbclass
|
||||
-->
|
||||
|
||||
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
<listitem><para><emphasis>doc-pkgs:</emphasis> Installs documentation packages for all packages
|
||||
installed in a given image.</para></listitem>
|
||||
<listitem><para><emphasis>nfs-server:</emphasis> Installs an NFS server.</para></listitem>
|
||||
<listitem><para><emphasis>read-only-fsroot:</emphasis> Creates
|
||||
<listitem><para><emphasis>read-only-rootfs:</emphasis> Creates
|
||||
an image whose root filesystem is read-only.
|
||||
See the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>Creating a Read-Only Root Filesystem</ulink>"
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
</revision>
|
||||
<revision>
|
||||
<revnumber>1.5</revnumber>
|
||||
<date>Sometime in 2013</date>
|
||||
<date>October 2013</date>
|
||||
<revremark>Released with the Yocto Project 1.5 Release.</revremark>
|
||||
</revision>
|
||||
</revhistory>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<title>Build Overview</title>
|
||||
|
||||
<para>
|
||||
The first thing you need to do is set up the OpenEmbedded build
|
||||
The first thing you need to do is set up the OpenEmbedded build
|
||||
environment by sourcing an environment setup script
|
||||
(i.e.
|
||||
<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
|
||||
@@ -508,7 +508,8 @@
|
||||
<imagedata fileref="figures/buildhistory.png" align="center" width="6in" depth="4in" />
|
||||
</para>
|
||||
|
||||
<para>At the top level, there is a <filename>metadata-revs</filename> file
|
||||
<para>
|
||||
At the top level, there is a <filename>metadata-revs</filename> file
|
||||
that lists the revisions of the repositories for the layers enabled
|
||||
when the build was produced.
|
||||
The rest of the data splits into separate
|
||||
@@ -632,6 +633,12 @@
|
||||
<para>
|
||||
The files produced for each image are as follows:
|
||||
<itemizedlist>
|
||||
<listitem><para><filename>image-files:</filename>
|
||||
A directory containing selected files from the root
|
||||
filesystem.
|
||||
The files are defined by
|
||||
<filename>BUILDHISTORY_IMAGE_FILES</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>build-id:</filename>
|
||||
Human-readable information about the build configuration
|
||||
and metadata source revisions.</para></listitem>
|
||||
|
||||
@@ -88,13 +88,6 @@
|
||||
new to the Yocto Project but familiar with Linux build systems.</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<note>
|
||||
Due to production processes, there could be differences between the Yocto Project
|
||||
documentation bundled in a released tarball and the
|
||||
<ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink> on
|
||||
the <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website.
|
||||
For the latest version of this manual, see the manual on the website.
|
||||
</note>
|
||||
</section>
|
||||
|
||||
<section id='yp-intro'>
|
||||
@@ -288,8 +281,9 @@
|
||||
<title>Ubuntu and Debian</title>
|
||||
|
||||
<para>
|
||||
The essential packages you need for a supported Ubuntu
|
||||
or Debian distribution are shown in the following command:
|
||||
The essential and graphical support packages you need for a
|
||||
supported Ubuntu or Debian distribution are shown in the
|
||||
following command:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; libsdl1.2-dev xterm
|
||||
</literallayout>
|
||||
@@ -300,8 +294,8 @@
|
||||
<title>Fedora</title>
|
||||
|
||||
<para>
|
||||
The essential packages you need for a supported Fedora distribution
|
||||
are shown in the following command:
|
||||
The essential and graphical packages you need for a supported
|
||||
Fedora distribution are shown in the following command:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo yum install &FEDORA_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
|
||||
</literallayout>
|
||||
@@ -309,11 +303,11 @@
|
||||
</section>
|
||||
|
||||
<section id='opensuse'>
|
||||
<title>openSUSE</title>
|
||||
<title>OpenSUSE</title>
|
||||
|
||||
<para>
|
||||
The essential packages you need for a supported openSUSE
|
||||
distribution are shown in the following command:
|
||||
The essential and graphical packages you need for a supported
|
||||
OpenSUSE distribution are shown in the following command:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; libSDL-devel xterm
|
||||
</literallayout>
|
||||
@@ -324,8 +318,8 @@
|
||||
<title>CentOS</title>
|
||||
|
||||
<para>
|
||||
The essential packages you need for a supported CentOS
|
||||
distribution are shown in the following command:
|
||||
The essential and graphical packages you need for a supported
|
||||
CentOS distribution are shown in the following command:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
|
||||
</literallayout>
|
||||
@@ -346,8 +340,8 @@
|
||||
<ulink url="&YOCTO_HOME_URL;">Yocto Project website</ulink>
|
||||
clicking "Downloads" in the navigation pane to the left to view all
|
||||
available Yocto Project releases.
|
||||
Be sure to scroll down and look for "Yocto Project" under the
|
||||
"Type" heading in the list.
|
||||
Current and archived releases are available for download to the
|
||||
right.
|
||||
Nightly and developmental builds are also maintained at
|
||||
<ulink url="&YOCTO_AB_NIGHTLY_URL;"></ulink>.
|
||||
However, for this document a released version of Yocto Project is used.
|
||||
@@ -482,8 +476,9 @@
|
||||
By default, the target architecture for the build is <filename>qemux86</filename>,
|
||||
which produces an image that can be used in the QEMU emulator and is targeted at an
|
||||
<trademark class='registered'>Intel</trademark> 32-bit based architecture.
|
||||
To change this default, edit the value of the <filename>MACHINE</filename> variable
|
||||
in the configuration file before launching the build.
|
||||
To change this default, edit the value of the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
|
||||
variable in the configuration file before launching the build.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -596,11 +591,12 @@
|
||||
</para>
|
||||
|
||||
<literallayout class='monospaced'>
|
||||
poky-eglibc-<<emphasis>host_system</emphasis>>-<<emphasis>image_type</emphasis>>-<<emphasis>arch</emphasis>>.sh
|
||||
poky-eglibc-<<emphasis>host_system</emphasis>>-<<emphasis>image_type</emphasis>>-<<emphasis>arch</emphasis>>-<<emphasis>release_version</emphasis>>.sh
|
||||
|
||||
Where:
|
||||
<<emphasis>host_system</emphasis>> is a string representing your development system:
|
||||
i686 or x86_64.
|
||||
|
||||
i686 or x86_64.
|
||||
|
||||
<<emphasis>image_type</emphasis>> is a string representing the image you wish to
|
||||
develop a Software Development Toolkit (SDK) for use against.
|
||||
@@ -611,7 +607,12 @@
|
||||
|
||||
<<emphasis>arch</emphasis>> is a string representing the tuned target architecture:
|
||||
|
||||
i586, x86_64, powerpc, mips, armv7a or armv5te
|
||||
i586, x86_64, powerpc, mips, armv7a or armv5te
|
||||
|
||||
<<emphasis>release_version</emphasis>> is a string representing the release number of the
|
||||
Yocto Project:
|
||||
|
||||
&DISTRO;, &DISTRO;+snapshot
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
@@ -619,7 +620,7 @@
|
||||
development host system and a i586-tuned target architecture
|
||||
based off the SDK for <filename>core-image-sato</filename>:
|
||||
<literallayout class='monospaced'>
|
||||
poky-eglibc-x86_64-core-image-sato-i586.sh
|
||||
poky-eglibc-x86_64-core-image-sato-i586-&DISTRO;.sh
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
@@ -648,7 +649,7 @@
|
||||
|
||||
<para>
|
||||
<literallayout class='monospaced'>
|
||||
$ ~/Downloads/poky-eglibc-x86_64-core-image-sato-i586.sh
|
||||
$ ~/Downloads/poky-eglibc-x86_64-core-image-sato-i586-&DISTRO;.sh
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
@@ -713,10 +714,10 @@
|
||||
|
||||
Where:
|
||||
<<emphasis>profile</emphasis>> is the filesystem image's profile:
|
||||
lsb, lsb-dev, lsb-sdk, lsb-qt3, minimal, minimal-dev, sato, sato-dev, or sato-sdk.
|
||||
For information on these types of image profiles, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter
|
||||
in the Yocto Project Reference Manual.
|
||||
lsb, lsb-dev, lsb-sdk, lsb-qt3, minimal, minimal-dev, sato,
|
||||
sato-dev, or sato-sdk. For information on these types of image
|
||||
profiles, see the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter in the Yocto Project
|
||||
Reference Manual.
|
||||
|
||||
<<emphasis>arch</emphasis>> is a string representing the target architecture:
|
||||
x86, x86-64, ppc, mips, or arm.
|
||||
@@ -904,6 +905,17 @@
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In the previous example, the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></ulink>
|
||||
variable causes the OpenEmbedded build system to generate tarballs
|
||||
of the Git repositories and store them in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-DL_DIR'><filename>DL_DIR</filename></ulink>
|
||||
directory.
|
||||
Due to performance reasons, generating and storing these tarballs
|
||||
is not the build system's default behavior.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You can also use the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-PREMIRRORS'><filename>PREMIRRORS</filename></ulink>
|
||||
|
||||
@@ -6,11 +6,11 @@ BBPATH = "${TOPDIR}"
|
||||
BBFILES ?= ""
|
||||
|
||||
BBLAYERS ?= " \
|
||||
##COREBASE##/meta \
|
||||
##COREBASE##/meta-yocto \
|
||||
##COREBASE##/meta-yocto-bsp \
|
||||
##OEROOT##/meta \
|
||||
##OEROOT##/meta-yocto \
|
||||
##OEROOT##/meta-yocto-bsp \
|
||||
"
|
||||
BBLAYERS_NON_REMOVABLE ?= " \
|
||||
##COREBASE##/meta \
|
||||
##COREBASE##/meta-yocto \
|
||||
##OEROOT##/meta \
|
||||
##OEROOT##/meta-yocto \
|
||||
"
|
||||
|
||||
@@ -13,20 +13,23 @@ DISTRO_PN_ALIAS_pn-aaina = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-abiword-embedded = "Fedora=abiword Ubuntu=abiword"
|
||||
DISTRO_PN_ALIAS_pn-adt-installer = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-alsa-state = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-anjuta-remote-run = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-alsa-utils-alsaconf = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-atk = "Fedora=atk OpenSuSE=atk"
|
||||
DISTRO_PN_ALIAS_pn-atk-native = "Fedora=atk OpenSuSE=atk"
|
||||
DISTRO_PN_ALIAS_pn-augeas = "Ubuntu=libaugeas0 Debian=libaugeas0"
|
||||
DISTRO_PN_ALIAS_pn-avahi-ui = "Ubuntu=avahi-discover Debian=avahi-discover"
|
||||
DISTRO_PN_ALIAS_pn-babeltrace = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-bdwgc = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-bigreqsproto = "Meego=xorg-x11-proto-bigreqsproto"
|
||||
DISTRO_PN_ALIAS_pn-bjam-native = "OpenSuSE=boost-jam Debina=bjam"
|
||||
DISTRO_PN_ALIAS_pn-blktool = "Debian=blktool Mandriva=blktool"
|
||||
DISTRO_PN_ALIAS_pn-bluez4= "Fedora=bluez Ubuntu=bluez Debian=bluez-utils Opensuse=bluez"
|
||||
DISTRO_PN_ALIAS_pn-bluez4="Meego=bluz Fedora=bluz Ubuntu=bluz OpenSuSE=bluz Mandriva=bluz"
|
||||
DISTRO_PN_ALIAS_pn-bluez4 = "Ubuntu=bluez Debian=bluez-utils"
|
||||
DISTRO_PN_ALIAS_pn-bluez5 = "Fedora=bluez Opensuse=bluez"
|
||||
DISTRO_PN_ALIAS_pn-bluez-dtl1-workaround = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-btrfs-tools = "Debian=btrfs-tools Fedora=btrfs-progs"
|
||||
DISTRO_PN_ALIAS_pn-builder = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-build-appliance-image = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-calibrateproto = "OSPDT upstream=http://cgit.freedesktop.org/xorg/lib/libXCalibrate/"
|
||||
DISTRO_PN_ALIAS_pn-builder = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-buildtools-tarball = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-calibrateproto = "OSPDT upstream=http://cgit.freedesktop.org/xorg/proto/calibrateproto"
|
||||
DISTRO_PN_ALIAS_pn-cdrtools = "OpenSUSE=cdrtools OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-chkconfig-alternatives-native = "Mandriva=chkconfig Debian=chkconfig"
|
||||
@@ -37,44 +40,51 @@ DISTRO_PN_ALIAS_pn-claws-plugin-rssyl = "Fedora=claws-mail-plugins OpenSuSE=claw
|
||||
DISTRO_PN_ALIAS_pn-clipboard-manager = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-clutter = "Fedora=clutter OpenSuse=clutter Ubuntu=clutter-1.0 Mandriva=clutter Debian=clutter"
|
||||
DISTRO_PN_ALIAS_pn-clutter-1.8 = "Fedora=clutter OpenSuse=clutter Ubuntu=clutter-1.0 Mandriva=clutter Debian=clutter"
|
||||
DISTRO_PN_ALIAS_pn-clutter-gst-1.0 = "Debian=clutter-gst Ubuntu=clutter-gst Fedora=clutter-gst"
|
||||
DISTRO_PN_ALIAS_pn-clutter-gst-1.8 = "Fedora=clutter-gst Debian=libclutter-gst"
|
||||
DISTRO_PN_ALIAS_pn-clutter-gtk-1.0 = "Debian=clutter-gtk Ubuntu=clutter-gtk Fedora=clutter-gtk"
|
||||
DISTRO_PN_ALIAS_pn-clutter-gtk-1.8 = "Fedora=clutter-gtk OpenSuSE=clutter-gtk Ubuntu=clutter-gtk-0.10 Mandriva=clutter-gtk Debian=clutter-gtk"
|
||||
DISTRO_PN_ALIAS_pn-cogl-1.0 = "Debian=cogl Ubuntu=cogl Fedora=cogl"
|
||||
DISTRO_PN_ALIAS_pn-cogl = "Fedora=cogl OpenSuse=cogl Ubuntu=cogl Mandriva=cogl Debian=cogl"
|
||||
DISTRO_PN_ALIAS_pn-compositeproto = "Meego=xorg-x11-proto-compositeproto"
|
||||
DISTRO_PN_ALIAS_pn-connman-gnome = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-connman = "Meego=connman"
|
||||
DISTRO_PN_ALIAS_pn-connman-conf = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-connman-gnome = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-console-tools = "Debian=console-tools Ubuntu=console-tools"
|
||||
DISTRO_PN_ALIAS_pn-core-console = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-base = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-basic = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-clutter = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-core = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-lsb-dev = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-lsb = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-lsb-dev = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-lsb-qt3 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-lsb-sdk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-minimal = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-minimal-dev = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-minimal-directdisk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-minimal-initramfs = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-minimal-live = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-minimal-mtdutils = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-minimal = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-rt = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-rt-sdk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato-dev = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato-directdisk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato-live = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato-sdk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato-sdk-directdisk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato-sdk-live = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sato-sdk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-sdk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-weston = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-core-image-x11 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-cross-localedef = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-cwautomacros= "OSPDT upstream=http://cwautomacros.berlios.de/"
|
||||
DISTRO_PN_ALIAS_pn-cwautomacros = "OSPDT upstream=http://cwautomacros.berlios.de/"
|
||||
DISTRO_PN_ALIAS_pn-damageproto = "Meego=xorg-x11-proto-damageproto"
|
||||
DISTRO_PN_ALIAS_pn-db = "Debian=db5.1 Ubuntu=db5.1"
|
||||
DISTRO_PN_ALIAS_pn-dbus-ptest = "Fedora=dbus Ubuntu=dbus"
|
||||
DISTRO_PN_ALIAS_pn-dbus-wait = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-depmodwrapper-cross = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-directfb-examples = "Debian=directfb Fedora=directfb"
|
||||
DISTRO_PN_ALIAS_pn-distcc = "Debian=distcc Fedora=distcc"
|
||||
DISTRO_PN_ALIAS_pn-distcc-config = "OpenedHand"
|
||||
@@ -92,6 +102,10 @@ DISTRO_PN_ALIAS_pn-eee-acpi-scripts = "Debian=eeepc-acpi-scripts Ubuntu=eeepc-ac
|
||||
DISTRO_PN_ALIAS_pn-eglibc = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-eglibc-initial = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-eglibc-locale = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-eglibc-mtrace = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-eglibc-scripts = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-eglinfo-fb = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-eglinfo-x11 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-emgd-driver-bin = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-encodings = "Ubuntu=xfonts-encodings Mandriva=x11-font-encodings Debian=xfonts-encodings"
|
||||
DISTRO_PN_ALIAS_pn-evieext = "Meego=xorg-x11-proto-evieext Debian=x11proto-evie"
|
||||
@@ -114,26 +128,34 @@ DISTRO_PN_ALIAS_pn-gcc-crosssdk-initial = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-gccmakedep = "Mandriva=gccmakedep Ubuntu=xutils-dev"
|
||||
DISTRO_PN_ALIAS_pn-gcc-runtime = "Ubuntu=gcc Fedora=gcc"
|
||||
DISTRO_PN_ALIAS_pn-gconf-dbus = "Meego=GConf-dbus"
|
||||
DISTRO_PN_ALIAS_pn-gdk-pixbuf-csource-native = "Debian=libgdk-pixbuf2.0-0 Fedora=gdk-pixbuf2"
|
||||
DISTRO_PN_ALIAS_pn-gdk-pixbuf = "Debian=libgdk-pixbuf2.0 Fedora=gdk-pixbuf"
|
||||
DISTRO_PN_ALIAS_pn-gdk-pixbuf-csource-native = "Debian=libgdk-pixbuf2.0-0 Fedora=gdk-pixbuf2"
|
||||
DISTRO_PN_ALIAS_pn-gettext-minimal-native = "Debian=gettext Fedora=gettext"
|
||||
DISTRO_PN_ALIAS_pn-glib-2.0 = "Meego=glib2 Fedora=glib2 OpenSuSE=glib2 Ubuntu=glib2.0 Mandriva=glib2.0 Debian=glib2.0"
|
||||
DISTRO_PN_ALIAS_pn-glproto = "Meego=xorg-x11-proto-glproto"
|
||||
DISTRO_PN_ALIAS_pn-gnu-config = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-grub-efi-i586 = "Ubuntu=grub Fedora=grub"
|
||||
DISTRO_PN_ALIAS_pn-grub-efi-x86-64-native = "Ubuntu=grub Fedora=grub"
|
||||
DISTRO_PN_ALIAS_pn-gst-ffmpeg = "Mandriva=gstreamer0.10-ffmpeg Debian=gstreamer0.10-ffmpeg"
|
||||
DISTRO_PN_ALIAS_pn-gst-fluendo-mp3 = "Debian=gstreamer0.10-fluendo-mp3 Ubuntu=gstreamer0.10-fluendo-mp3"
|
||||
DISTRO_PN_ALIAS_pn-gst-fluendo-mpegdemux = "Ubuntu=gstreamer0.10-fluendo-mpegdemux Debian=gstreamer0.10-fluendo-mpegdemux"
|
||||
DISTRO_PN_ALIAS_pn-gst-meta-base = "Meego=gstreamer Fedora=gstreamer OpenSuSE=gstreamer Ubuntu=gstreamer0.10 Mandriva=gstreamer0.10 Debian=gstreamer0.10"
|
||||
DISTRO_PN_ALIAS_pn-gst-openmax="OSPDT upstream=http://cgit.freedesktop.org/gstreamer/gst-openmax"
|
||||
DISTRO_PN_ALIAS_pn-gst-openmax = "OSPDT upstream=http://cgit.freedesktop.org/gstreamer/gst-openmax"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugin-bluetooth = "Ubuntu=libgstreamer-plugins-base Fedora=gstreamer-plugins-base"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-bad = "Fedora=gstreamer-plugins-bad-free OpenSuSE=gstreamer-plugins-bad Debian=gst-plugins-bad0.10"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-base = "Meego=gst-plugins-base Fedora=gstreamer-plugins-base OpenSuSE=gstreamer-plugins-base Ubuntu=gst-plugins-base0.10 Mandriva=gstreamer0.10-plugins-base Debian=gst-plugins-base0.10"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-gl = "Debian=gstreamer0.10-plugins-gl OpenSuSE=gstreamer-0_10-plugins-gl"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-good = "Meego=gst-plugins-good Fedora=gstreamer-plugins-good OpenSuSE=gstreamer-plugins-good Ubuntu=gst-plugins-good0.10 Mandriva=gstreamer0.10-plugins-good Debian=gst-plugins-good0.10"
|
||||
DISTRO_PN_ALIAS_pn-gst-plugins-ugly = "OpenSuSE=gstreamer-plugins-ugly Mandriva=gstreamer0.10-plugins-ugly Debian=gst-plugins-ugly0.10"
|
||||
DISTRO_PN_ALIAS_pn-gstreamer1.0 = "Debian=gstreamer1.0 Ubuntu=gstreamer1.0"
|
||||
DISTRO_PN_ALIAS_pn-gstreamer1.0-plugins-bad = "Debian=gstreamer1.0-plugins-bad Ubuntu=gstreamer1.0-plugins-bad"
|
||||
DISTRO_PN_ALIAS_pn-gstreamer1.0-plugins-base = "Debian=gstreamer1.0-plugins-base Ubuntu=gstreamer1.0-plugins-base"
|
||||
DISTRO_PN_ALIAS_pn-gstreamer1.0-plugins-good = "Debian=gstreamer1.0-plugins-good Ubuntu=gstreamer1.0-plugins-bad"
|
||||
DISTRO_PN_ALIAS_pn-gstreamer = "Debian=gstreamer1.0 Ubuntu=gstreamer1.0"
|
||||
DISTRO_PN_ALIAS_pn-gtk+ = "Meego=gtk2 Fedora=gtk2 OpenSuSE=gtk2 Ubuntu=gtk+2.0 Mandriva=gtk+2.0 Debian=gtk+2.0"
|
||||
DISTRO_PN_ALIAS_pn-gtk+3 = "Ubuntu=gtk+3.0 Debian=gtk+3.0 Fedora=gtk3"
|
||||
DISTRO_PN_ALIAS_pn-gtk-doc-stub = "Fedora=gtk-doc Ubuntu=gtk-doc"
|
||||
DISTRO_PN_ALIAS_pn-gtk-engines = "Fedora=gtk2-engines OpenSuSE=gtk2-engines Ubuntu=gtk2-engines Mandriva=gtk-engines2 Debian=gtk2-engines"
|
||||
DISTRO_PN_ALIAS_pn-gtk+ = "Meego=gtk2 Fedora=gtk2 OpenSuSE=gtk2 Ubuntu=gtk+2.0 Mandriva=gtk+2.0 Debian=gtk+2.0"
|
||||
DISTRO_PN_ALIAS_pn-gtk-sato-engine = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-gtk-theme-torturer = "OSPDT upstream=http://wiki.laptop.org/go/GTK_for_OLPC"
|
||||
DISTRO_PN_ALIAS_pn-gtk-update-icon-cache-native = "OSPDT"
|
||||
@@ -141,19 +163,19 @@ DISTRO_PN_ALIAS_pn-hello-mod = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-hostap-conf = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-hwlatdetect = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-icecc-create-env = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-imake = "Mandriva=xutils Ubuntu=xutils"
|
||||
DISTRO_PN_ALIAS_pn-init-ifupdown = "Debian=ifupdown Ubuntu=ifupdown"
|
||||
DISTRO_PN_ALIAS_pn-initramfs-boot = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-initramfs-framework = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-initramfs-live-boot = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-initramfs-live-install = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-initramfs-live-install-efi = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-initscripts = "Fedora=initscripts Mandravia=initscripts"
|
||||
DISTRO_PN_ALIAS_pn-inputproto = "Meego=xorg-x11-proto-inputproto"
|
||||
DISTRO_PN_ALIAS_pn-iproute2 = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-jpeg="OpenSuSE=libjpeg Ubuntu=libjpeg62"
|
||||
DISTRO_PN_ALIAS_pn-jpeg = "OpenSuSE=libjpeg Ubuntu=libjpeg62"
|
||||
DISTRO_PN_ALIAS_pn-kbproto = "Meego=xorg-x11-proto-kbproto Ubuntu=x11proto-kb-dev Debian=x11proto-kb-dev"
|
||||
DISTRO_PN_ALIAS_pn-kconfig-frontends = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-kernelshark = "Mandriva=kernelshark Ubuntu=kernelshark"
|
||||
DISTRO_PN_ALIAS_pn-kern-tools-native = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-kern-tools-native = "Windriver"
|
||||
DISTRO_PN_ALIAS_pn-keymaps = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-kf = "OSPDT"
|
||||
@@ -161,50 +183,59 @@ DISTRO_PN_ALIAS_pn-lame = "Debian=lame Ubuntu=lame"
|
||||
DISTRO_PN_ALIAS_pn-latencytop = "Meego=latencytop Fedora=latencytop Debian=latencytop OpenSuSE=latencytop"
|
||||
DISTRO_PN_ALIAS_pn-ldconfig-native = "Ubuntu=libc-bin Fedora=glibc"
|
||||
DISTRO_PN_ALIAS_pn-liba52 = "Mandriva=a52dec Debian=a52dec"
|
||||
DISTRO_PN_ALIAS_pn-libacpi="Ubuntu=libacpi Mandriva=libacpi"
|
||||
DISTRO_PN_ALIAS_pn-libacpi = "Ubuntu=libacpi Mandriva=libacpi"
|
||||
DISTRO_PN_ALIAS_pn-libatomics-ops = "Meego=libatomic-ops Debian=libatomic-ops Ubuntu=libatomic-ops OpenSuSE=libatomic-ops Mandriva=libatomic-ops"
|
||||
DISTRO_PN_ALIAS_pn-libcgroup = "Ubuntu=libcgroup1 Debian=libcgroup1"
|
||||
DISTRO_PN_ALIAS_pn-libcheck = "Ubuntu=check Fedora=check OpenSuSE=check"
|
||||
DISTRO_PN_ALIAS_pn-libclass-isa-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libdrm-poulsbo = "Debian=libdrm-intel1 Ubuntu=libdrm-intel1"
|
||||
DISTRO_PN_ALIAS_pn-libdumpvalue-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libenv-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libfakekey="Meego1.0=libfakekey Debian=libfakekey"
|
||||
DISTRO_PN_ALIAS_pn-libfakekey = "Meego1.0=libfakekey Debian=libfakekey"
|
||||
DISTRO_PN_ALIAS_pn-libfile-checktree-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libfribidi = "OpenSuSE=fribidi Ubuntu=fribidi Mandriva=fribidi Debian=fribidi"
|
||||
DISTRO_PN_ALIAS_pn-libgcc = "Debian=libgcc4 Ubuntu=libgcc1 OpenSuSE=libgcc46"
|
||||
DISTRO_PN_ALIAS_pn-libgdbus = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-libglade = "Meego=libglade2 Fedora=libglade2 OpenSuSE=libglade2 Ubuntu=libglade2 Mandriva=libglade2.0 Debian=libglade2"
|
||||
DISTRO_PN_ALIAS_pn-libgu = "OpenSuSE=glu OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libglu = "Debian=libglu Ubuntu=libglu Opensuse=mesa-libglu"
|
||||
DISTRO_PN_ALIAS_pn-libgsmd = "Fedora=gsm Ubuntu=libgsm Debian=libgsm Opensuse=libgsm"
|
||||
DISTRO_PN_ALIAS_pn-libgtkstylus = "Debian=libgtkstylus Ubuntu=libgtkstylus"
|
||||
DISTRO_PN_ALIAS_pn-libgu = "OpenSuSE=glu OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libi18n-collate-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libical = "Ubuntu=libical Fedora=libical"
|
||||
DISTRO_PN_ALIAS_pn-libiconv = "Fedora=mingw-libiconv Opensuse=cross-mingw-libiconv"
|
||||
DISTRO_PN_ALIAS_pn-libjson = "Ubuntu=libjson0-dev Debian=libjson0-dev"
|
||||
DISTRO_PN_ALIAS_pn-libksba = "Fedora=libksba Debian=libksba8"
|
||||
DISTRO_PN_ALIAS_pn-liblbxutil = "Mandriva=liblbxutil OpenSuse=xorg-x11-devel"
|
||||
DISTRO_PN_ALIAS_pn-libmpc = "Fedora=libmpc OpenSuse=libmpc2"
|
||||
DISTRO_PN_ALIAS_pn-libnewt = "Debian=libnewt0.52 Fedora=newt"
|
||||
DISTRO_PN_ALIAS_pn-libnewt-python = "Ubuntu=python-newt Fedora=newt-python"
|
||||
DISTRO_PN_ALIAS_pn-libnss-mdns = "Meego=nss-mdns OpenSuSE=nss-mdns Ubuntu=nss-mdns Mandriva=nss_mdns Debian=nss-mdns"
|
||||
DISTRO_PN_ALIAS_pn-libomxil = "OSPDT upstream=http://omxil.sourceforge.net/"
|
||||
DISTRO_PN_ALIAS_pn-libowl-av = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-libowl = "Debian=owl OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-libowl-av = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-libpam = "Meego=pam Fedora=pam OpenSuSE=pam Ubuntu=pam Mandriva=pam Debian=pam"
|
||||
DISTRO_PN_ALIAS_pn-libpcre = "Mandriva=libpcre0 Fedora=pcre"
|
||||
DISTRO_PN_ALIAS_pn-libpng12 = "Debian=libpng12-0 Fedora=libpng"
|
||||
DISTRO_PN_ALIAS_pn-libpod-plainer-perl = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libsamplerate0 = "Meego=libsamplerate Fedora=libsamplerate OpenSuSE=libsamplerate Ubuntu=libsamplerate Mandriva=libsamplerate Debian=libsamplerate"
|
||||
DISTRO_PN_ALIAS_pn-libsdl = "Fedora=SDL Opensuse=SDL"
|
||||
DISTRO_PN_ALIAS_pn-libsdl2 = "Fedora=sdl2 Opensuse=libsdl2 Ubuntu=libsdl2 Debian=libsdl2"
|
||||
DISTRO_PN_ALIAS_pn-libsndfile1 = "Meego=libsndfile Fedora=libsndfile OpenSuSE=libsndfile Ubuntu=libsndfile Mandriva=libsndfile Debian=libsndfile"
|
||||
DISTRO_PN_ALIAS_pn-libsoup-2.4 = "Meego=libsoup Fedora=libsoup OpenSuSE=libsoup Ubuntu=libsoup2.4 Mandriva=libsoup Debian=libsoup2.4"
|
||||
DISTRO_PN_ALIAS_pn-libsync = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libtelepathy = "Debian=libtelepathy2 Ubuntu=libtelepathy2"
|
||||
DISTRO_PN_ALIAS_pn-libtimedate-perl = "Debian=libtimedate-perl Ubuntu=libtimedate-perl"
|
||||
DISTRO_PN_ALIAS_pn-liburcu = "Fedora=userspace-rcu Ubuntu=liburcu0"
|
||||
DISTRO_PN_ALIAS_pn-libusb1 = "Debian=libusb-1.0-0 Fedora=libusb1"
|
||||
DISTRO_PN_ALIAS_pn-libusb1-native = "Debian=libusb-1.0-0 Fedora=libusb1"
|
||||
DISTRO_PN_ALIAS_pn-libusb-compat = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-libx11 = "Debian=libx11-6 Fedora=libX11 Ubuntu=libx11-6 OpenSuSE=xorg-x11-libX11"
|
||||
DISTRO_PN_ALIAS_pn-libx11-diet = "Debian=libx11-6 Fedora=libX11 Ubuntu=libx11-6 OpenSuSE=xorg-x11-libX11"
|
||||
DISTRO_PN_ALIAS_pn-libxcalibrate = "OSPDT upstream=http://cgit.freedesktop.org/xorg/lib/libXCalibrate/"
|
||||
DISTRO_PN_ALIAS_pn-libxfontcache = "Mandriva=libxfontcache Debian=libxfontcache"
|
||||
DISTRO_PN_ALIAS_pn-libxft = "Mandriva=libxft Debian=libxft2 Ubuntu=libxft2"
|
||||
DISTRO_PN_ALIAS_pn-libxkbcommon = "Fedora=libxkbcommon Debian=libxkbcommon"
|
||||
DISTRO_PN_ALIAS_pn-libxprintapputil = "Debian=libxprintapputil Ubuntu=libxprintapputil1 Mandriva=libxprintapputil"
|
||||
DISTRO_PN_ALIAS_pn-libxscrnsaver = "Fedora=libXScrnSaver Ubuntu=libxss1 Mandriva=libxscrnsaver"
|
||||
DISTRO_PN_ALIAS_pn-libxsettings-client = "Debian=libxsettings-client0 Ubuntu=libxsettings-client0 Mandriva=libXsettings-client0"
|
||||
@@ -219,10 +250,13 @@ DISTRO_PN_ALIAS_pn-linux-yocto-tiny = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-lsbinitscripts = "Windriver"
|
||||
DISTRO_PN_ALIAS_pn-lsbsetup = "Windriver"
|
||||
DISTRO_PN_ALIAS_pn-lsbtest = "Windriver"
|
||||
DISTRO_PN_ALIAS_pn-ltp = "Ubuntu=ltp"
|
||||
DISTRO_PN_ALIAS_pn-ltp = "Mandriva=ltp Ubuntu=ltp"
|
||||
DISTRO_PN_ALIAS_pn-lttng-modules = "OSPDT upstream=http://lttng.org/"
|
||||
DISTRO_PN_ALIAS_pn-lttng-tools = "OSPDT upstream=http://lttng.org/"
|
||||
DISTRO_PN_ALIAS_pn-lttng-ust = "OSPDT upstream=http://lttng.org/"
|
||||
DISTRO_PN_ALIAS_pn-lzo = "Debian=liblzo Ubuntu=liblzo Fedora=lzp"
|
||||
DISTRO_PN_ALIAS_pn-lzo-native = "Debian=liblzo Ubuntu=liblzo Fedora=lzp"
|
||||
DISTRO_PN_ALIAS_pn-mailx = "Debian=bsd-mailx Ubuntu=bsd-mailx"
|
||||
DISTRO_PN_ALIAS_pn-makedepend = "Mandriva=makedepend Ubuntu=xutils-dev"
|
||||
DISTRO_PN_ALIAS_pn-makedevs = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-config-gtk = "OpenedHand"
|
||||
@@ -233,94 +267,117 @@ DISTRO_PN_ALIAS_pn-matchbox-panel-2 = "Debian=matchbox-panel Mandriva=matchbox-p
|
||||
DISTRO_PN_ALIAS_pn-matchbox-session = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-session-sato = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-terminal = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-theme-sato-2 = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-theme-sato = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-theme-sato-2 = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-themes-extra = "Ubuntu=matchbox-themes-extra Mandriva=matchbox-themes-extra"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-themes-gtk = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-wm-2 = "Mandriva=matchbox-window-manager Debian=matchbox-window-manager"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-wm = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-matchbox-wm-2 = "Mandriva=matchbox-window-manager Debian=matchbox-window-manager"
|
||||
DISTRO_PN_ALIAS_pn-menu-cache = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-mesa = "Fedora=mesa Ubuntu=libgl1-mesa-dri"
|
||||
DISTRO_PN_ALIAS_pn-mesa-gl = "Fedora=mesa Ubuntu=libgl1-mesa-dri"
|
||||
DISTRO_PN_ALIAS_pn-mesa-glsl-native = "Fedora=mesa Ubuntu=libgl1-mesa-dri"
|
||||
DISTRO_PN_ALIAS_pn-meta-environment-i586 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-environment-qemux86 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-environment-qemux86-64 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-ide-support = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-toolchain-gmae = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-toolchain = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-toolchain-gmae = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-toolchain-qt = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-meta-toolchain-qte = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-mkfontdir = "Mandriva=mkfontdir Ubuntu=xfonts-utils Fedora=xorg-x11-font-utils"
|
||||
DISTRO_PN_ALIAS_pn-meta-toolchain-sdk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-mini-x-session = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-mkfontdir = "Mandriva=mkfontdir Ubuntu=xfonts-utils Fedora=xorg-x11-font-utils"
|
||||
DISTRO_PN_ALIAS_pn-mkfontscale = "Mandriva=mkfontscale Ubuntu=xfonts-utils Fedora=xorg-x11-font-utils"
|
||||
DISTRO_PN_ALIAS_pn-mktemp = "Mandriva=mktemp Fedora=mktemp"
|
||||
DISTRO_PN_ALIAS_pn-moblin-proto = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-modutils-collateral = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-modutils-initscripts = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-msynctool = "OpenSuse=msynctool Mandriva=msynctool"
|
||||
DISTRO_PN_ALIAS_pn-mtd-utils = "Debian=mtd-utils Ubuntu=mtd-utils"
|
||||
DISTRO_PN_ALIAS_pn-mx-1.0 = "Ubuntu=mx Debian=mx Fedora=mx"
|
||||
DISTRO_PN_ALIAS_pn-n450-audio = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-nativesdk-libusb1 = "Debian=libusb-1.0-0 Fedora=libusb1"
|
||||
DISTRO_PN_ALIAS_pn-nativesdk-lzo = "Debian=liblzo Ubuntu=liblzo Fedora=lzp"
|
||||
DISTRO_PN_ALIAS_pn-nativesdk-packagegroup-qt-toolchain-host = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-nativesdk-pkgconfig = "Ubuntu=pkg-config Fedora=pkgconfig"
|
||||
DISTRO_PN_ALIAS_pn-nativesdk-python-git = "Debian=python-git Fedora=GitPython"
|
||||
DISTRO_PN_ALIAS_pn-nativesdk-readline = "Fedora=readline Ubuntu=readline-common"
|
||||
DISTRO_PN_ALIAS_pn-neard = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-network-suspend-scripts = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-nfs-export-root = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-nss-myhostname = "Meego=nss-mdns OpenSuSE=nss-mdns Ubuntu=nss-mdns Mandriva=nss_mdns Debian=nss-mdns"
|
||||
DISTRO_PN_ALIAS_pn-npth = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-nss-myhostname = "Meego=nss-mdns OpenSuSE=nss-mdns Ubuntu=nss-mdns Mandriva=nss_mdns Debian=nss-mdns"
|
||||
DISTRO_PN_ALIAS_pn-ocf-linux = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-ofono = "Debian=ofono Ubuntu=ofono"
|
||||
DISTRO_PN_ALIAS_pn-oh-puzzles = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-opkg = "OSPDT upstream=http://svn.openmoko.org/trunk/src/tar"
|
||||
DISTRO_PN_ALIAS_pn-opkg-collateral = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-opkg-config-base = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-opkg-nogpg = "OSPDT upstream=http://svn.openmoko.org/trunk/src/tar"
|
||||
DISTRO_PN_ALIAS_pn-opkg = "OSPDT upstream=http://svn.openmoko.org/trunk/src/tar"
|
||||
DISTRO_PN_ALIAS_pn-opkg-utils = "OSPDT upstream=http://svn.openmoko.org/trunk/src/target/opkg/"
|
||||
DISTRO_PN_ALIAS_pn-oprofileui = "Fedora=oprofileui Ubuntu=oprofile-gui Debian=oprofile-gui"
|
||||
DISTRO_PN_ALIAS_pn-oprofileui-server = "Fedora=oprofileui Ubuntu=oprofile-gui Debian=oprofile-gui"
|
||||
DISTRO_PN_ALIAS_pn-owl-video = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-package-index = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-base = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-basic = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-boot = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-buildessential = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-clutter = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-console = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-device-devel = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-directfb = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-eclipse-debug = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-lsb = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-nfs = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-qt = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-qt4e = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-sdk-gmae = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-sdk = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-sdk-gmae = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-ssh-dropbear = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-ssh-openssh = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-standalone-gmae-sdk-target = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-standalone-sdk-target = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-tools-debug = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-tools = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-tools-debug = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-tools-profile = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-tools-testapps = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-x11-mini = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-x11 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-x11-base = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-x11-mini = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-x11-sato = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-core-x11-xserver = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-cross-canadian-i586 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-cross-canadian-qemux86 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-cross-canadian-qemux86-64 = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-qt4e = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-qte-toolchain-host = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-qte-toolchain-target = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-qt-toolchain-target = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-sdk-host = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-self-hosted = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-packagegroup-toolset-native = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-package-index = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-perf = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-pkgconfig = "Ubuntu=pkg-config Fedora=pkgconfig"
|
||||
DISTRO_PN_ALIAS_pn-pkgconfig-native = "Ubuntu=pkg-config Fedora=pkgconfig"
|
||||
DISTRO_PN_ALIAS_pn-pointercal = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-pointercal-xinput = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-poky-feed-config-opkg = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-pong-clock = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-portmap = "OpenSuSE=portmap"
|
||||
DISTRO_PN_ALIAS_pn-powertop ="Meego=powertop Fedora=powertop Debian=powertop OpenSuSE=powertop Mandriva=powertop"
|
||||
DISTRO_PN_ALIAS_pn-portmap = "Debian=rpcbind Fedora=rpcbind"
|
||||
DISTRO_PN_ALIAS_pn-powertop = "Meego=powertop Fedora=powertop Debian=powertop OpenSuSE=powertop Mandriva=powertop"
|
||||
DISTRO_PN_ALIAS_pn-ppp-dialin = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-printproto = "Debian=x11proto-print-dev Ubuntu=x11proto-print-dev Mandriva=x11-proto-devel"
|
||||
DISTRO_PN_ALIAS_pn-pseudo = "Windriver"
|
||||
DISTRO_PN_ALIAS_pn-psplash = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-ptest-runner = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-puzzles = "Debian=sgt-puzzles"
|
||||
DISTRO_PN_ALIAS_pn-puzzles = "Debian=sgt-puzzles Fedora=puzzles"
|
||||
DISTRO_PN_ALIAS_pn-python-argparse = "Fedora=python-argparse OpenSuSE=python-argparse"
|
||||
DISTRO_PN_ALIAS_pn-python-argparse-native = "Fedora=python-argparse OpenSuSE=python-argparse"
|
||||
DISTRO_PN_ALIAS_pn-python-dbus = "Ubuntu=python-dbus Debian=python-dbus Mandriva=python-dbus"
|
||||
DISTRO_PN_ALIAS_pn-python-git = "Debian=python-git Fedora=GitPython"
|
||||
DISTRO_PN_ALIAS_pn-python-gst = "OpenSuSE=python-gstreamer Ubuntu=gst0.10-python Debian=gst0.10-python"
|
||||
DISTRO_PN_ALIAS_pn-python-pycairo = "Meego=pycairo Fedora=pycairo Ubuntu=pycairo Debian=pycairo"
|
||||
DISTRO_PN_ALIAS_pn-python-pycurl = "Debian=python-pycurl Ubuntu=python-pycurl"
|
||||
@@ -329,18 +386,18 @@ DISTRO_PN_ALIAS_pn-python-pygtk = "Debian=python-gtk2 Fedora=pygtk2 OpenSuSE=pyt
|
||||
DISTRO_PN_ALIAS_pn-python-pyrex = "Mandriva=python-pyrex Ubuntu=python-pyrex"
|
||||
DISTRO_PN_ALIAS_pn-python-scons = "Fedora=scons OpenSuSE=scons Ubuntu=scons Mandriva=scons Debian=scons"
|
||||
DISTRO_PN_ALIAS_pn-python-setuptools = "Mandriva=python-setup OpenSuSE=python-setup-git"
|
||||
DISTRO_PN_ALIAS_pn-python-smartpm = "Debian=smart OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-python-smartpm = "Debian=smart OpenSuSE=smart"
|
||||
DISTRO_PN_ALIAS_pn-python-ZSI = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-qemu-helper = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-qemu-config = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-qemugl = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-qemu-helper = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-qemu-helper-native = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-qemu-helper-nativesdk = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-qmmp = "Fedora=qmmp"
|
||||
DISTRO_PN_ALIAS_pn-qemuwrapper-cross = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-qmmp = "Fedora=qmmp Debian=qmmp"
|
||||
DISTRO_PN_ALIAS_pn-qt4e-demo-image = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-qt4-embedded = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-qt4-graphics-system = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-qt4-native = "Fedora=qt4 Debian=qt4-dev-tools"
|
||||
DISTRO_PN_ALIAS_pn-qt4-native = "Mandriva=libqt4-devel Ubuntu=libqt4-dev"
|
||||
DISTRO_PN_ALIAS_pn-qt4-tools = "Mandriva=libqt4-devel Ubuntu=libqt4-dev"
|
||||
DISTRO_PN_ALIAS_pn-qt4-x11-free = "Ubuntu=qt-x11-free Debian=qt-x11-free"
|
||||
@@ -349,6 +406,8 @@ DISTRO_PN_ALIAS_pn-qt-mobility-embedded = "Ubuntu=qtmobility-dev Debian=qtmobili
|
||||
DISTRO_PN_ALIAS_pn-qt-mobility-x11 = "Ubuntu=qtmobility-dev Debian=qtmobility-dev"
|
||||
DISTRO_PN_ALIAS_pn-quicky = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-randrproto = "Meego=xorg-x11-proto-randrproto"
|
||||
DISTRO_PN_ALIAS_pn-readline = "Fedora=readline Debian=readline-common"
|
||||
DISTRO_PN_ALIAS_pn-readline-native = "Fedora=readline Debian=readline-common"
|
||||
DISTRO_PN_ALIAS_pn-recordproto = "Meego=xorg-x11-proto-recordproto"
|
||||
DISTRO_PN_ALIAS_pn-remake = "Mandriva=remake Debian=remake"
|
||||
DISTRO_PN_ALIAS_pn-renderproto = "Meego=xorg-x11-proto-renderproto"
|
||||
@@ -359,9 +418,12 @@ DISTRO_PN_ALIAS_pn-rt-tests = "Debian=rt-tests Ubuntu=rt-tests"
|
||||
DISTRO_PN_ALIAS_pn-run-postinsts = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-sato-icon-theme = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-sato-screenshot = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-sbc = "Fedora=sbc Debian=libsbc1"
|
||||
DISTRO_PN_ALIAS_pn-screenshot = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-scrnsaverproto = "Meego=xorg-x11-proto-scrnsaverproto Ubuntu=x11proto-scrnsaver-dev Debian=x11proto-scrnsaver-dev"
|
||||
DISTRO_PN_ALIAS_pn-settings-daemon = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-sgml-common = "OpenSuSE=sgml-common Fedora=sgml-common"
|
||||
DISTRO_PN_ALIAS_pn-sgml-common-native = "OpenSuSE=sgml-common Fedora=sgml-common"
|
||||
DISTRO_PN_ALIAS_pn-sgmlspl = "Debian=sgmlspl Ubuntu=sgmlspl"
|
||||
DISTRO_PN_ALIAS_pn-shadow-securetty = "Ubuntu=shadow Fedora=shadow"
|
||||
DISTRO_PN_ALIAS_pn-shadow-sysroot = "Ubuntu=shadow Fedora=shadow"
|
||||
@@ -370,9 +432,12 @@ DISTRO_PN_ALIAS_pn-shutdown-desktop = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-signgp-native = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-stat = "Debian=coreutils Fedora=coreutils"
|
||||
DISTRO_PN_ALIAS_pn-swabber-native = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-systemtap-uprobes = "Ubuntu=systemtap Debian=systemtap"
|
||||
DISTRO_PN_ALIAS_pn-sysklogd = "Debian=sysklogd Mandriva=sysklogd"
|
||||
DISTRO_PN_ALIAS_pn-sysprof = "Fedora=sysprof Debian=sysprof"
|
||||
DISTRO_PN_ALIAS_pn-systemd-compat-units = "Fedora=systemd Ubuntu=systemd"
|
||||
DISTRO_PN_ALIAS_pn-systemd-systemctl-native = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-systemd-systemdctl-native = "Fedora=systemd Ubuntu=systemd"
|
||||
DISTRO_PN_ALIAS_pn-systemtap-uprobes = "Ubuntu=systemtap Debian=systemtap"
|
||||
DISTRO_PN_ALIAS_pn-sysvinit-inittab = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-table = "Intel"
|
||||
DISTRO_PN_ALIAS_pn-tar-replacement-native = "OE-Core"
|
||||
@@ -400,14 +465,16 @@ DISTRO_PN_ALIAS_pn-videoproto = "Meego=xorg-x11-proto-videoproto"
|
||||
DISTRO_PN_ALIAS_pn-watchdog = "Debian=watchdog Ubuntu=watchdog Mandriva=watchdog"
|
||||
DISTRO_PN_ALIAS_pn-webkit-gtk = "Fedora=webkitgtk Ubuntu=libwebkit"
|
||||
DISTRO_PN_ALIAS_pn-web-webkit = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-weston = "Fedora=weston OpenSuSE=weston"
|
||||
DISTRO_PN_ALIAS_pn-weston-init = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-which = "Mandriva=which Fedora=which"
|
||||
DISTRO_PN_ALIAS_pn-wpa-supplicant = "Meego=wpa_supplicant Fedora=wpa_supplicant OpenSuSE=wpa_supplicant Ubuntu=wpasupplicant Mandriva=wpa_supplicant Debian=wpasupplicant"
|
||||
DISTRO_PN_ALIAS_pn-x11-common = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-x11perf = "Fedora=xorg-x11-apps Ubuntu=x11-apps"
|
||||
DISTRO_PN_ALIAS_pn-x11vnc = "Fedora=x11vnc Ubuntu=x11vnc"
|
||||
DISTRO_PN_ALIAS_pn-xcb-util-wm = "Debian=xcb-util Fedora=xcb-util"
|
||||
DISTRO_PN_ALIAS_pn-xcb-util-image = "Debian=xcb-util Fedora=xcb-util"
|
||||
DISTRO_PN_ALIAS_pn-xcb-util-keysyms = "Debian=xcb-util Fedora=xcb-util"
|
||||
DISTRO_PN_ALIAS_pn-xcb-util-wm = "Debian=xcb-util Fedora=xcb-util"
|
||||
DISTRO_PN_ALIAS_pn-xcmiscproto = "Meego=xorg-x11-proto-xcmiscproto"
|
||||
DISTRO_PN_ALIAS_pn-xcursor-transparent-theme = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-xdpyinfo = "Fedora=xorg-x11-utils Ubuntu=x11-utils"
|
||||
@@ -426,15 +493,17 @@ DISTRO_PN_ALIAS_pn-xf86miscproto = "Meego=xorg-x11-proto-xf86miscproto"
|
||||
DISTRO_PN_ALIAS_pn-xf86rushproto = "Meego=xorg-x11-proto-xf86rushproto"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-fbdev = "Ubuntu=xserver-xorg-video-fbdev Debian=xserver-xorg-video-fbdev"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-intel = "Debian=xserver-xorg-video-intel Fedora=xorg-x11-drv-intel Mandriva=x11-driver-video-intel Meego=xorg-x11-drv-intel Ubuntu=xserver-xorg-video-intel"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-modesetting = "Debian=xserver-xorg-video-modesetting Fedora=xf86-video-modesetting"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-omap = "Ubuntu=xf86-video-omap Debian=xf86-video-omap"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-omapfb = "OSPDT"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-vesa = "Debian=xserver-xorg-video-vesa Fedora=xorg-x11-drv-vesa Mandriva=x11-driver-video-vesa Ubuntu=xserver-xorg-video-vesa"
|
||||
DISTRO_PN_ALIAS_pn-xf86-video-vmware = "Debian=xserver-xorg-video-vmware Fedora=xorg-x11-drv-vmware Mandriva=x11-driver-video-vmware Ubuntu=xserver-xorg-video-vmware"
|
||||
DISTRO_PN_ALIAS_pn-xf86vidmodeproto = "Meego=xorg-x11-proto-xf86vidmodeproto Ubuntu=x11proto-xf86vidmode Debian=x11proto-xf86vidmode"
|
||||
DISTRO_PN_ALIAS_pn-xhost = "Ubuntu=x11-xserver-utils Fedora=xorg-x11-server-utils"
|
||||
DISTRO_PN_ALIAS_pn-xineramaproto = "Meego=xorg-x11-proto-xineramaproto Ubuntu=x11proto-xinerama Debian=x11proto-xinerama"
|
||||
DISTRO_PN_ALIAS_pn-xinput-calibrator = "Fedora=xinput-calibrator Mandravia=xinput-calibrator Ubuntu=xinput-calibrator"
|
||||
DISTRO_PN_ALIAS_pn-xkbcomp = "Ubuntu=x11-xkb-utils Fedora=xorg-x11-xkb-utils"
|
||||
DISTRO_PN_ALIAS_pn-xmodmap = "Meego=xorg-x11-utils-xmodmap Fedora=xorg-x11-server-utils Ubuntu=x11-xserver-utils"
|
||||
DISTRO_PN_ALIAS_pn-xorg-cf-files = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-xorg-minimal-fonts = "Ubuntu=xfonts-base Fedora=xorg-x11-fonts-base"
|
||||
DISTRO_PN_ALIAS_pn-xprop = "Meego=xorg-x11-utils-xprop Fedora=xorg-x11-utils Ubuntu=x11-utils"
|
||||
DISTRO_PN_ALIAS_pn-xproto = "Meego=xorg-x11-proto-xproto Fedora=xorg-x11-proto-devel Ubuntu=x11proto-core-dev Debian=x11proto-core-dev Opensuse=xorg-x11-proto-devel Mandriva=x11-proto-devel"
|
||||
@@ -448,6 +517,7 @@ DISTRO_PN_ALIAS_pn-xserver-xf86-lite = "Fedora=xorg-x11-server Ubuntu=xserver-xo
|
||||
DISTRO_PN_ALIAS_pn-xserver-xorg = "Fedora=xorg-x11-server Ubuntu=xserver-xorg"
|
||||
DISTRO_PN_ALIAS_pn-xset = "Fedora=xorg-x11-server-utils Ubuntu=x11-xserver-utils Debian=x11-xserver-utils Opensuse=xorg-x11"
|
||||
DISTRO_PN_ALIAS_pn-xtscal = "OSPDT upstream=http://gpe.linuxtogo.org/download/source/"
|
||||
DISTRO_PN_ALIAS_pn-xuser-account = "OE-Core"
|
||||
DISTRO_PN_ALIAS_pn-xvideo-tests = "OpenedHand"
|
||||
DISTRO_PN_ALIAS_pn-xvinfo = "Fedora=xorg-x11-utils Ubuntu=x11-utils"
|
||||
DISTRO_PN_ALIAS_pn-xwininfo = "Fedora=xorg-x11-utils Ubuntu=x11-utils"
|
||||
|
||||
@@ -35,7 +35,6 @@ RECIPE_MAINTAINER_pn-alsa-state = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-alsa-tools = "Kai Kang <kai.kang@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-alsa-utils = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-alsa-utils-alsaconf = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-anjuta-remote-run = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-apmd = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-apr = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-apr-util = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
@@ -43,6 +42,8 @@ RECIPE_MAINTAINER_pn-apt = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-aspell = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-atk = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-at = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-at-spi2-atk = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-at-spi2-core = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-attr = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-augeas = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-autoconf = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
@@ -64,6 +65,7 @@ RECIPE_MAINTAINER_pn-bison = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-blktool = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-blktrace = "Tom Zanussi <tom.zanussi@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-bluez4 = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-bluez5 = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-bluez-hcidump = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-boost = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-btrfs-tools = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
@@ -82,9 +84,11 @@ RECIPE_MAINTAINER_pn-chrpath = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-clutter-gst-1.0 = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-clutter-gtk-1.0 = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-clutter = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-clutter-1.0 = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-cmake-native = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-cmake = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-cogl = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-cogl-1.0 = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-compositeproto = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-connman = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-connman-gnome = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
@@ -202,6 +206,7 @@ RECIPE_MAINTAINER_pn-gpgme = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-grep = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-groff = "Valentin Popa <valentin.popa@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-grub = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-gsettings-desktop-schemas = "Valentin Popa <valentin.popa@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-gst-ffmpeg = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-gst-fluendo-mp3 = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-gst-fluendo-mpegdemux = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
@@ -240,7 +245,6 @@ RECIPE_MAINTAINER_pn-hostap-utils = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-hwlatdetect = "Darren Hart <dvhart@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-icecc-create-env-native = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-icu = "Valentin Popa <valentin.popa@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-imake = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-initramfs-boot = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-initramfs-framework = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-initramfs-live-boot = "Saul Wold <sgw@linux.intel.com>"
|
||||
@@ -278,6 +282,7 @@ RECIPE_MAINTAINER_pn-libart-lgpl = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libassuan = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libatomics-ops = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libav = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libbsd = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libcap = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libcgroup = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libcheck = "Saul Wold <sgw@linux.intel.com>"
|
||||
@@ -315,6 +320,7 @@ RECIPE_MAINTAINER_pn-libmpc = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libnewt = "Kai Kang <kai.kang@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-libnfsidmap = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libnl = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libnotify = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libnss-mdns = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libogg = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-liboil = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
@@ -437,6 +443,7 @@ RECIPE_MAINTAINER_pn-meta-ide-support = "Jessica Zhang <jessica.zhang@intel.com>
|
||||
RECIPE_MAINTAINER_pn-meta-toolchain-gmae = "Jessica Zhang <jessica.zhang@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-meta-toolchain-qte = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-meta-toolchain = "Jessica Zhang <jessica.zhang@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-midori = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-mingetty = "Kai Kang <kai.kang@windriver.com>"
|
||||
RECIPE_MAINTAINER_pn-minicom = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-mini-x-session = "Saul Wold <sgw@linux.intel.com>"
|
||||
@@ -545,6 +552,7 @@ RECIPE_MAINTAINER_pn-puzzles = "Valentin Popa <valentin.popa@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-python-argparse = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-python = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-python-dbus = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-python-docutils = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-python-gst = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-python-imaging = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-python-pycairo = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
@@ -636,7 +644,6 @@ RECIPE_MAINTAINER_pn-tiff = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-time = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-tiny-init = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-trace-cmd = "Darren Hart <dvhart@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-transfig = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-tremor = "Cristian Iorga <cristian.iorga@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-tslib = "Paul Eggleton <paul.eggleton@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-ttf-bitstream-vera = "Valentin Popa <valentin.popa@intel.com>"
|
||||
@@ -655,6 +662,7 @@ RECIPE_MAINTAINER_pn-usbutils = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-util-linux = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-util-macros = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-v86d = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-vala = "Ross Burton <ross.burton@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-valgrind = "Cristiana Voicu <cristiana.voicu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-videoproto = "Valentin Popa <valentin.popa@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-vte ="Saul Wold <sgw@linux.intel.com>"
|
||||
@@ -705,10 +713,10 @@ RECIPE_MAINTAINER_pn-xineramaproto = "Laurentiu Palcu <laurentiu.palcu@intel.com
|
||||
RECIPE_MAINTAINER_pn-xinetd = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xinit = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xinput = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xinput-calibrator = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xkbcomp = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xkeyboard-config = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xmodmap = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xorg-cf-files = "Saul Wold <sgw@linux.intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xorg-minimal-fonts = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xprop = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xproto = "Laurentiu Palcu <laurentiu.palcu@intel.com>"
|
||||
|
||||
@@ -215,6 +215,8 @@ REGEX_pn-prelink = "(?P<pver>cross_prelink)"
|
||||
REGEX_URI_pn-psmisc = "http://sourceforge.net/projects/psmisc/files/psmisc/"
|
||||
REGEX_pn-psmisc = "[hH][rR][eE][fF]=\"http://sourceforge.net/projects/psmisc/files/psmisc/psmisc\-(?P<pver>((\d+[\.\-_]*)+))\.tar\.gz/download\""
|
||||
REGEX_URI_pn-python-argparse = "https://code.google.com/p/argparse/downloads/list"
|
||||
REGEX_URI_pn-python-docutils = "http://sourceforge.net/projects/docutils/files/docutils/"
|
||||
REGEX_pn-python-docutils = "[hH][rR][eE][fF]=\"/projects/docutils/files/docutils/docutils\-(?P<pver>((\d+[\.\-_]*)+)).*/\""
|
||||
REGEX_URI_pn-python-pycurl = "http://pycurl.sourceforge.net/download/"
|
||||
REGEX_pn-python-pycurl = "[hH][rR][eE][fF]=\"pycurl-(?P<pver>((\d+[\.\-_]*)+)).tar.gz\""
|
||||
REGEX_URI_pn-python-scons = "http://sourceforge.net/projects/scons/files/scons/"
|
||||
@@ -257,8 +259,6 @@ REGEX_URI_pn-tiff = "ftp://ftp.remotesensing.org/pub/libtiff/"
|
||||
REGEX_pn-tiff = "[hH][rR][eE][fF]=\"ftp://ftp.remotesensing.org:21/pub/libtiff/tiff-(?P<pver>((\d+[\.\-_]*)+))\.tar\.gz\""
|
||||
REGEX_URI_pn-tiff-native = "ftp://ftp.remotesensing.org/pub/libtiff/"
|
||||
REGEX_pn-tiff-native = "[hH][rR][eE][fF]=\"ftp://ftp.remotesensing.org:21/pub/libtiff/tiff-(?P<pver>((\d+[\.\-_]*)+))\.tar\.gz\""
|
||||
REGEX_URI_pn-transfig-native = "http://sourceforge.net/projects/mcj/files/mcj-source/"
|
||||
REGEX_pn-transfig-native = "[hH][rR][eE][fF]=\"http://sourceforge.net/projects/mcj/files/mcj-source/transfig.(?P<pver>((\d+[\.\-_]*)+[a-z]?)).tar.gz/download\""
|
||||
REGEX_URI_pn-tslib = "http://sourceforge.net/projects/tslib.berlios/files/"
|
||||
REGEX_pn-tslib = "[hH][rR][eE][fF]=\"http://sourceforge.net/projects/tslib.berlios/files/tslib\-(?P<pver>((\d+[\.\-_]*)+))\.tar\.bz2/download\""
|
||||
REGEX_URI_pn-tzdata = "ftp://ftp.iana.org/tz/releases/"
|
||||
|
||||
@@ -127,7 +127,6 @@ RECIPE_COLOR_pn-hostap-conf = "red"
|
||||
RECIPE_COLOR_pn-hostap-utils="yellow"
|
||||
RECIPE_COLOR_pn-icon-naming-utils = "red"
|
||||
RECIPE_COLOR_pn-icu = "yellow"
|
||||
RECIPE_COLOR_pn-imake = "red"
|
||||
RECIPE_COLOR_pn-initramfs-boot = "yellow"
|
||||
RECIPE_COLOR_pn-initramfs-live-boot = "yellow"
|
||||
RECIPE_COLOR_pn-initramfs-live-install = "yellow"
|
||||
@@ -383,7 +382,6 @@ RECIPE_COLOR_pn-telepathy-gabble = "red"
|
||||
RECIPE_COLOR_pn-tidy = "red"
|
||||
RECIPE_COLOR_pn-time = "yellow"
|
||||
RECIPE_COLOR_pn-tinylogin = "yellow"
|
||||
RECIPE_COLOR_pn-transfig = "yellow"
|
||||
RECIPE_COLOR_pn-trapproto = "yellow"
|
||||
RECIPE_COLOR_pn-tslib = "yellow"
|
||||
RECIPE_COLOR_pn-ttf-bitstream-vera = "yellow"
|
||||
|
||||
@@ -137,11 +137,13 @@ RECIPE_UPSTREAM_VERSION_pn-libiconv = "1.14"
|
||||
RECIPE_UPSTREAM_DATE_pn-libiconv = "Aug 07, 2011"
|
||||
CHECK_DATE_pn-libiconv = "Aug 30, 2012"
|
||||
RECIPE_NO_UPDATE_REASON_pn-libnl = "libnl-3.2.2 is incompatible with libnl2, so no Upgrade"
|
||||
RECIPE_NO_UPDATE_REASON_pn-libpng = "1.4.3 and later changes the API and breaks libmatchbox. Sticking with the 1.2.x series instead"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libsoup = "2.41.90"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libpng = "1.6.6"
|
||||
RECIPE_UPSTREAM_DATE_pn-libpng = "Sep 16, 2013"
|
||||
CHECK_DATE_pn-libpng = "Oct 02, 2013"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libpng12 = "1.2.50"
|
||||
RECIPE_UPSTREAM_DATE_pn-libpng12 = "Jul 10, 2012"
|
||||
CHECK_DATE_pn-libpng12 = "Aug 21, 2013"
|
||||
CHECK_DATE_pn-libpng12 = "Oct 02, 2013"
|
||||
RECIPE_UPSTREAM_DATE_pn-libsoup = "Feb 19, 2013"
|
||||
CHECK_DATE_pn-libsoup = "Mar 5, 2013"
|
||||
RECIPE_NO_UPDATE_REASON_pn-libsoup = "2.41.90 is unstable"
|
||||
@@ -164,7 +166,7 @@ CHECK_DATE_pn-makedevs = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-meta-ide-support = "check"
|
||||
RECIPE_UPSTREAM_VERSION_pn-minicom = "2.6.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-minicom = "Feb 06, 2013"
|
||||
CHECK_DATE_pn-minicom = "Jun 10, 2013"
|
||||
CHECK_DATE_pn-minicom = "Oct 02, 2013"
|
||||
RECIPE_UPSTREAM_DATE_pn-module-init-tools = "Jun 02, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-module-init-tools = "3.15"
|
||||
CHECK_DATE_pn-module-init-tools = "Aug 31, 2012"
|
||||
@@ -203,9 +205,9 @@ CHECK_DATE_pn-rpm = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-run-postinsts = "check"
|
||||
RECIPE_NO_UPDATE_REASON_pn-sato-screenshot = "PRS Reports Incorrectly"
|
||||
RECIPE_NO_UPDATE_REASON_pn-socat = "2.0.0 is beta"
|
||||
RECIPE_UPSTREAM_VERSION_pn-sqlite3 = "3.7.17"
|
||||
RECIPE_UPSTREAM_DATE_pn-sqlite3 = "Aug 20, 2013"
|
||||
CHECK_DATE_pn-sqlite3= "Aug 21, 2013"
|
||||
RECIPE_UPSTREAM_VERSION_pn-sqlite3 = "3.8.0.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-sqlite3 = "Sep 03, 2013"
|
||||
CHECK_DATE_pn-sqlite3= "Oct 02, 2013"
|
||||
RECIPE_UPSTREAM_VERSION_pn-squashfs-tools = "4.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-squashfs-tools = "Feb 28, 2011"
|
||||
CHECK_DATE_pn-squashfs-tools = "Nov 09, 2012"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
DISTRO = "poky"
|
||||
DISTRO_NAME = "Poky Next (Yocto Project Reference Distro)"
|
||||
DISTRO_VERSION = "1.4+snapshot-${DATE}"
|
||||
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
|
||||
DISTRO_VERSION = "1.5"
|
||||
DISTRO_CODENAME = "next"
|
||||
SDK_VENDOR = "-pokysdk"
|
||||
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
|
||||
@@ -72,21 +72,20 @@ CONNECTIVITY_CHECK_URIS ?= " \
|
||||
http://bugzilla.yoctoproject.org/report.cgi"
|
||||
|
||||
SANITY_TESTED_DISTROS ?= " \
|
||||
Poky-1.3 \n \
|
||||
Poky-1.4 \n \
|
||||
Poky-1.5 \n \
|
||||
Ubuntu-12.04 \n \
|
||||
Ubuntu-12.10 \n \
|
||||
Ubuntu-13.04 \n \
|
||||
Fedora-17 \n \
|
||||
Fedora-18 \n \
|
||||
CentOS-6.3 \n \
|
||||
Fedora-19 \n \
|
||||
CentOS-6.4 \n \
|
||||
Debian-6.0 \n \
|
||||
Debian-6.0.7 \n \
|
||||
Debian-7.0 \n \
|
||||
Debian-7.1 \n \
|
||||
SUSE-LINUX-12.2 \n \
|
||||
openSUSE-project-12.3 \n \
|
||||
"
|
||||
"
|
||||
|
||||
# Default hash policy for distro
|
||||
BB_SIGNATURE_HANDLER ?= 'OEBasicHash'
|
||||
|
||||
@@ -173,23 +173,9 @@ USER_CLASSES ?= "buildstats image-mklibs image-prelink"
|
||||
#
|
||||
# The build system can test booting virtual machine images under qemu (an emulator)
|
||||
# after any root filesystems are created and run tests against those images. To
|
||||
# enable this uncomment this line
|
||||
#IMAGETEST = "qemu"
|
||||
#
|
||||
# This variable controls which tests are run against virtual images if enabled
|
||||
# above. The following would enable bat, boot the test case under the sanity suite
|
||||
# and perform toolchain tests
|
||||
#TEST_SCEN = "sanity bat sanity:boot toolchain"
|
||||
#
|
||||
# Because of the QEMU booting slowness issue (see bug #646 and #618), the
|
||||
# autobuilder may suffer a timeout issue when running sanity tests. We introduce
|
||||
# the variable TEST_SERIALIZE here to reduce the time taken by the sanity tests.
|
||||
# It is set to 1 by default, which will boot the image and run cases in the same
|
||||
# image without rebooting or killing the machine instance. If it is set to 0, the
|
||||
# image will be copied and tested for each case, which will take longer but be
|
||||
# more precise.
|
||||
#TEST_SERIALIZE = "1"
|
||||
|
||||
# enable this uncomment this line. See classes/testimage(-auto).bbclass for
|
||||
# further details.
|
||||
#TEST_IMAGE = "1"
|
||||
#
|
||||
# Interactive shell configuration
|
||||
#
|
||||
|
||||
@@ -61,15 +61,15 @@ DISK_SIGNATURE ?= "${DISK_SIGNATURE_GENERATED}"
|
||||
SYSLINUX_ROOT ?= "root=/dev/sda2"
|
||||
SYSLINUX_TIMEOUT ?= "10"
|
||||
|
||||
populate() {
|
||||
DEST=$1
|
||||
install -d ${DEST}
|
||||
boot_direct_populate() {
|
||||
dest=$1
|
||||
install -d $dest
|
||||
|
||||
# Install bzImage, initrd, and rootfs.img in DEST for all loaders to use.
|
||||
install -m 0644 ${STAGING_KERNEL_DIR}/bzImage ${DEST}/vmlinuz
|
||||
install -m 0644 ${STAGING_KERNEL_DIR}/bzImage $dest/vmlinuz
|
||||
|
||||
if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then
|
||||
install -m 0644 ${INITRD} ${DEST}/initrd
|
||||
install -m 0644 ${INITRD} $dest/initrd
|
||||
fi
|
||||
|
||||
}
|
||||
@@ -79,13 +79,13 @@ build_boot_dd() {
|
||||
HDDIMG="${S}/hdd.image"
|
||||
IMAGE=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect
|
||||
|
||||
populate ${HDDDIR}
|
||||
boot_direct_populate $HDDDIR
|
||||
|
||||
if [ "${PCBIOS}" = "1" ]; then
|
||||
syslinux_hddimg_populate
|
||||
syslinux_hddimg_populate $HDDDIR
|
||||
fi
|
||||
if [ "${EFI}" = "1" ]; then
|
||||
grubefi_hddimg_populate
|
||||
grubefi_hddimg_populate $HDDDIR
|
||||
fi
|
||||
|
||||
BLOCKS=`du -bks $HDDDIR | cut -f 1`
|
||||
@@ -148,7 +148,12 @@ python do_bootdirectdisk() {
|
||||
def generate_disk_signature():
|
||||
import uuid
|
||||
|
||||
return str(uuid.uuid4())[:8]
|
||||
signature = str(uuid.uuid4())[:8]
|
||||
|
||||
if signature != '00000000':
|
||||
return signature
|
||||
else:
|
||||
return 'ffffffff'
|
||||
|
||||
def validate_disk_signature(d):
|
||||
import re
|
||||
|
||||
@@ -19,19 +19,24 @@
|
||||
|
||||
# External variables (also used by syslinux.bbclass)
|
||||
# ${INITRD} - indicates a filesystem image to use as an initrd (optional)
|
||||
# ${COMPRESSISO} - Transparent compress ISO, reduce size ~40% if set to 1
|
||||
# ${NOISO} - skip building the ISO image if set to 1
|
||||
# ${NOHDD} - skip building the HDD image if set to 1
|
||||
# ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional)
|
||||
|
||||
do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \
|
||||
mtools-native:do_populate_sysroot \
|
||||
cdrtools-native:do_populate_sysroot"
|
||||
cdrtools-native:do_populate_sysroot \
|
||||
${@oe.utils.ifelse(d.getVar('COMPRESSISO'),'zisofs-tools-native:do_populate_sysroot','')}"
|
||||
|
||||
PACKAGES = " "
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
HDDDIR = "${S}/hddimg"
|
||||
ISODIR = "${S}/iso"
|
||||
EFIIMGDIR = "${S}/efi_img"
|
||||
COMPACT_ISODIR = "${S}/iso.z"
|
||||
COMPRESSISO ?= "0"
|
||||
|
||||
BOOTIMG_VOLUME_ID ?= "boot"
|
||||
BOOTIMG_EXTRA_SPACE ?= "512"
|
||||
@@ -48,15 +53,10 @@ def pcbios(d):
|
||||
pcbios = base_contains("MACHINE_FEATURES", "efi", "0", "1", d)
|
||||
return pcbios
|
||||
|
||||
def pcbios_class(d):
|
||||
if d.getVar("PCBIOS", True) == "1":
|
||||
return "syslinux"
|
||||
return ""
|
||||
|
||||
PCBIOS = "${@pcbios(d)}"
|
||||
PCBIOS_CLASS = "${@pcbios_class(d)}"
|
||||
|
||||
inherit ${PCBIOS_CLASS}
|
||||
# The syslinux is required for the isohybrid command and boot catalog
|
||||
inherit syslinux
|
||||
inherit ${EFI_CLASS}
|
||||
|
||||
populate() {
|
||||
@@ -86,25 +86,54 @@ build_iso() {
|
||||
populate ${ISODIR}
|
||||
|
||||
if [ "${PCBIOS}" = "1" ]; then
|
||||
syslinux_iso_populate
|
||||
syslinux_iso_populate ${ISODIR}
|
||||
fi
|
||||
if [ "${EFI}" = "1" ]; then
|
||||
grubefi_iso_populate
|
||||
grubefi_iso_populate ${ISODIR}
|
||||
build_fat_img ${EFIIMGDIR} ${ISODIR}/efi.img
|
||||
fi
|
||||
|
||||
if [ "${PCBIOS}" = "1" ]; then
|
||||
# EFI only
|
||||
if [ "${PCBIOS}" != "1" ] && [ "${EFI}" = "1" ] ; then
|
||||
# Work around bug in isohybrid where it requires isolinux.bin
|
||||
# In the boot catalog, even though it is not used
|
||||
mkdir -p ${ISODIR}/${ISOLINUXDIR}
|
||||
install -m 0644 ${STAGING_DATADIR}/syslinux/isolinux.bin ${ISODIR}${ISOLINUXDIR}
|
||||
fi
|
||||
|
||||
if [ "${COMPRESSISO}" = "1" ] ; then
|
||||
# create compact directory, compress iso
|
||||
mkdir -p ${COMPACT_ISODIR}
|
||||
mkzftree -z 9 -p 4 -F ${ISODIR}/rootfs.img ${COMPACT_ISODIR}/rootfs.img
|
||||
|
||||
# move compact iso to iso, then remove compact directory
|
||||
mv ${COMPACT_ISODIR}/rootfs.img ${ISODIR}/rootfs.img
|
||||
rm -Rf ${COMPACT_ISODIR}
|
||||
mkisofs_compress_opts="-R -z -D -l"
|
||||
else
|
||||
mkisofs_compress_opts="-r"
|
||||
fi
|
||||
|
||||
if [ "${PCBIOS}" = "1" ] && [ "${EFI}" != "1" ] ; then
|
||||
# PCBIOS only media
|
||||
mkisofs -V ${BOOTIMG_VOLUME_ID} \
|
||||
-o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \
|
||||
-b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} -r \
|
||||
-b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} \
|
||||
$mkisofs_compress_opts \
|
||||
${MKISOFS_OPTIONS} ${ISODIR}
|
||||
else
|
||||
bbnote "EFI-only ISO images are untested, please provide feedback."
|
||||
mkisofs -V ${BOOTIMG_VOLUME_ID} \
|
||||
# EFI only OR EFI+PCBIOS
|
||||
mkisofs -A ${BOOTIMG_VOLUME_ID} -V ${BOOTIMG_VOLUME_ID} \
|
||||
-o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \
|
||||
-r ${ISODIR}
|
||||
-b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} \
|
||||
$mkisofs_compress_opts ${MKISOFS_OPTIONS} \
|
||||
-eltorito-alt-boot -eltorito-platform efi \
|
||||
-b efi.img -no-emul-boot \
|
||||
${ISODIR}
|
||||
isohybrid_args="-u"
|
||||
fi
|
||||
|
||||
isohybrid ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso
|
||||
isohybrid $isohybrid_args ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso
|
||||
|
||||
cd ${DEPLOY_DIR_IMAGE}
|
||||
rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.iso
|
||||
@@ -174,10 +203,10 @@ build_hddimg() {
|
||||
populate ${HDDDIR}
|
||||
|
||||
if [ "${PCBIOS}" = "1" ]; then
|
||||
syslinux_hddimg_populate
|
||||
syslinux_hddimg_populate ${HDDDIR}
|
||||
fi
|
||||
if [ "${EFI}" = "1" ]; then
|
||||
grubefi_hddimg_populate
|
||||
grubefi_hddimg_populate ${HDDDIR}
|
||||
fi
|
||||
|
||||
build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg
|
||||
|
||||
@@ -73,12 +73,12 @@ target_exec_prefix := "${exec_prefix}"
|
||||
base_prefix = "${SDKPATHNATIVE}"
|
||||
prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
|
||||
exec_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
|
||||
bindir = "${exec_prefix}/bin/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
|
||||
bindir = "${exec_prefix}/bin/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
|
||||
sbindir = "${bindir}"
|
||||
base_bindir = "${bindir}"
|
||||
base_sbindir = "${bindir}"
|
||||
libdir = "${exec_prefix}/lib/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
|
||||
libexecdir = "${exec_prefix}/libexec/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
|
||||
libdir = "${exec_prefix}/lib/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
|
||||
libexecdir = "${exec_prefix}/libexec/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
|
||||
|
||||
FILES_${PN} = "${prefix}"
|
||||
FILES_${PN}-dbg += "${prefix}/.debug \
|
||||
@@ -91,3 +91,7 @@ export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
|
||||
do_populate_sysroot[stamp-extra-info] = ""
|
||||
|
||||
USE_NLS = "${SDKUSE_NLS}"
|
||||
|
||||
# We have to us TARGET_ARCH but we care about the absolute value
|
||||
# and not any particular tune that is enabled.
|
||||
TARGET_ARCH[vardepsexclude] = "TUNE_ARCH"
|
||||
|
||||
@@ -56,6 +56,7 @@ libexecdir = "${exec_prefix}/libexec/${CROSS_TARGET_SYS_DIR}"
|
||||
|
||||
do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}/"
|
||||
do_populate_sysroot[stamp-extra-info] = ""
|
||||
do_packagedata[stamp-extra-info] = ""
|
||||
|
||||
python cross_virtclass_handler () {
|
||||
classextend = e.data.getVar('BBCLASSEXTEND', True) or ""
|
||||
|
||||
@@ -27,6 +27,7 @@ target_exec_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
|
||||
baselib = "lib"
|
||||
|
||||
do_populate_sysroot[stamp-extra-info] = ""
|
||||
do_packagedata[stamp-extra-info] = ""
|
||||
|
||||
# Need to force this to ensure consitency accross architectures
|
||||
EXTRA_OECONF_FPU = ""
|
||||
|
||||
@@ -47,14 +47,18 @@ distutils_do_install() {
|
||||
|
||||
if test -e ${D}${bindir} ; then
|
||||
for i in ${D}${bindir}/* ; do \
|
||||
sed -i -e s:${STAGING_BINDIR_NATIVE}/python-native/python:${bindir}/env\ python:g $i
|
||||
if [ ${PN} != "${BPN}-native" ]; then
|
||||
sed -i -e s:${STAGING_BINDIR_NATIVE}/python-native/python:${bindir}/env\ python:g $i
|
||||
fi
|
||||
sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i
|
||||
done
|
||||
fi
|
||||
|
||||
if test -e ${D}${sbindir}; then
|
||||
for i in ${D}${sbindir}/* ; do \
|
||||
sed -i -e s:${STAGING_BINDIR_NATIVE}/python-native/python:${bindir}/env\ python:g $i
|
||||
if [ ${PN} != "${BPN}-native" ]; then
|
||||
sed -i -e s:${STAGING_BINDIR_NATIVE}/python-native/python:${bindir}/env\ python:g $i
|
||||
fi
|
||||
sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i
|
||||
done
|
||||
fi
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
# External variables
|
||||
# ${INITRD} - indicates a filesystem image to use as an initrd (optional)
|
||||
# ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional)
|
||||
# ${GRUB_GFXSERIAL} - set this to 1 to have graphics and serial in the boot menu
|
||||
# ${LABELS} - a list of targets for the automatic config
|
||||
# ${APPEND} - an override list of append strings for each label
|
||||
# ${GRUB_OPTS} - additional options to add to the config, ';' delimited # (optional)
|
||||
@@ -16,6 +17,7 @@
|
||||
|
||||
do_bootimg[depends] += "grub-efi-${TRANSLATED_TARGET_ARCH}-native:do_deploy"
|
||||
|
||||
GRUB_SERIAL ?= "console=ttyS0,115200"
|
||||
GRUBCFG = "${S}/grub.cfg"
|
||||
GRUB_TIMEOUT ?= "10"
|
||||
#FIXME: build this from the machine config
|
||||
@@ -40,11 +42,20 @@ grubefi_populate() {
|
||||
}
|
||||
|
||||
grubefi_iso_populate() {
|
||||
grubefi_populate ${ISODIR}
|
||||
iso_dir=$1
|
||||
grubefi_populate $iso_dir
|
||||
# Build a EFI directory to create efi.img
|
||||
mkdir -p ${EFIIMGDIR}/${EFIDIR}
|
||||
cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
|
||||
cp $iso_dir/vmlinuz ${EFIIMGDIR}
|
||||
echo "EFI\\BOOT\\${GRUB_IMAGE}" > ${EFIIMGDIR}/startup.nsh
|
||||
if [ -f "$iso_dir/initrd" ] ; then
|
||||
cp $iso_dir/initrd ${EFIIMGDIR}
|
||||
fi
|
||||
}
|
||||
|
||||
grubefi_hddimg_populate() {
|
||||
grubefi_populate ${HDDDIR}
|
||||
grubefi_populate $1
|
||||
}
|
||||
|
||||
python build_grub_cfg() {
|
||||
@@ -55,6 +66,8 @@ python build_grub_cfg() {
|
||||
bb.error("WORKDIR not defined, unable to package")
|
||||
return
|
||||
|
||||
gfxserial = d.getVar('GRUB_GFXSERIAL', True) or ""
|
||||
|
||||
labels = d.getVar('LABELS', True)
|
||||
if not labels:
|
||||
bb.debug(1, "LABELS not defined, nothing to do")
|
||||
@@ -88,6 +101,12 @@ python build_grub_cfg() {
|
||||
else:
|
||||
cfgfile.write('timeout=50\n')
|
||||
|
||||
if gfxserial == "1":
|
||||
btypes = [ [ " graphics console", "" ],
|
||||
[ " serial console", d.getVar('GRUB_SERIAL', True) or "" ] ]
|
||||
else:
|
||||
btypes = [ [ "", "" ] ]
|
||||
|
||||
for label in labels.split():
|
||||
localdata = d.createCopy()
|
||||
|
||||
@@ -95,24 +114,27 @@ python build_grub_cfg() {
|
||||
if not overrides:
|
||||
raise bb.build.FuncFailed('OVERRIDES not defined')
|
||||
|
||||
localdata.setVar('OVERRIDES', label + ':' + overrides)
|
||||
bb.data.update_data(localdata)
|
||||
for btype in btypes:
|
||||
localdata.setVar('OVERRIDES', label + ':' + overrides)
|
||||
bb.data.update_data(localdata)
|
||||
|
||||
cfgfile.write('\nmenuentry \'%s\'{\n' % (label))
|
||||
if label == "install":
|
||||
label = "install-efi"
|
||||
cfgfile.write('linux /vmlinuz LABEL=%s' % (label))
|
||||
cfgfile.write('\nmenuentry \'%s%s\'{\n' % (label, btype[0]))
|
||||
lb = label
|
||||
if label == "install":
|
||||
lb = "install-efi"
|
||||
cfgfile.write('linux /vmlinuz LABEL=%s' % (lb))
|
||||
|
||||
append = localdata.getVar('APPEND', True)
|
||||
initrd = localdata.getVar('INITRD', True)
|
||||
append = localdata.getVar('APPEND', True)
|
||||
initrd = localdata.getVar('INITRD', True)
|
||||
|
||||
if append:
|
||||
cfgfile.write('%s' % (append))
|
||||
cfgfile.write('\n')
|
||||
if append:
|
||||
cfgfile.write('%s' % (append))
|
||||
cfgfile.write(' %s' % btype[1])
|
||||
cfgfile.write('\n')
|
||||
|
||||
if initrd:
|
||||
cfgfile.write('initrd /initrd')
|
||||
cfgfile.write('\n}\n')
|
||||
if initrd:
|
||||
cfgfile.write('initrd /initrd')
|
||||
cfgfile.write('\n}\n')
|
||||
|
||||
cfgfile.close()
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
EXTRANATIVEPATH += "pigz-native gzip-native"
|
||||
DEPENDS += "gzip-native"
|
||||
|
||||
# tar may get run by do_unpack or do_populate_lic which could call gzip
|
||||
do_unpack[depends] += "gzip-native:do_populate_sysroot"
|
||||
|
||||
@@ -16,6 +16,9 @@ RRECOMMENDS += "${PACKAGE_INSTALL_ATTEMPTONLY}"
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
TESTIMAGECLASS = "${@base_conditional('TEST_IMAGE', '1', 'testimage-auto', '', d)}"
|
||||
inherit ${TESTIMAGECLASS}
|
||||
|
||||
# IMAGE_FEATURES may contain any available package group
|
||||
IMAGE_FEATURES ?= ""
|
||||
IMAGE_FEATURES[type] = "list"
|
||||
@@ -510,7 +513,17 @@ rootfs_uninstall_unneeded () {
|
||||
if [ -e ${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts ]; then
|
||||
remove_run_postinsts=true
|
||||
fi
|
||||
rootfs_uninstall_packages update-rc.d base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}
|
||||
|
||||
# Remove package only if it's installed
|
||||
pkgs_to_remove="update-rc.d base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}"
|
||||
for pkg in $pkgs_to_remove; do
|
||||
# regexp for pkg, to be used in grep and sed
|
||||
pkg_regexp="^`echo $pkg | sed 's/\./\\\./'` "
|
||||
if grep -q "$pkg_regexp" ${WORKDIR}/installed_pkgs.txt; then
|
||||
rootfs_uninstall_packages $pkg
|
||||
sed -i "/$pkg_regexp/d" ${WORKDIR}/installed_pkgs.txt
|
||||
fi
|
||||
done
|
||||
|
||||
# Need to remove rc.d files for run-postinsts by hand since opkg won't
|
||||
# call postrm scripts in offline root mode.
|
||||
|
||||
@@ -1,238 +0,0 @@
|
||||
# Test related variables
|
||||
# By default, TEST_DIR is created under WORKDIR
|
||||
TEST_DIR ?= "${WORKDIR}/qemuimagetest"
|
||||
TEST_LOG ?= "${LOG_DIR}/qemuimagetests"
|
||||
TEST_RESULT ?= "${TEST_DIR}/result"
|
||||
TEST_TMP ?= "${TEST_DIR}/tmp"
|
||||
TEST_SCEN ?= "sanity"
|
||||
TEST_STATUS ?= "${TEST_TMP}/status"
|
||||
TARGET_IPSAVE ?= "${TEST_TMP}/target_ip"
|
||||
TEST_SERIALIZE ?= "1"
|
||||
|
||||
python do_qemuimagetest() {
|
||||
qemuimagetest_main(d)
|
||||
}
|
||||
addtask qemuimagetest before do_build after do_rootfs
|
||||
do_qemuimagetest[nostamp] = "1"
|
||||
do_qemuimagetest[depends] += "qemu-native:do_populate_sysroot"
|
||||
|
||||
python do_qemuimagetest_standalone() {
|
||||
qemuimagetest_main(d)
|
||||
}
|
||||
addtask qemuimagetest_standalone
|
||||
do_qemuimagetest_standalone[nostamp] = "1"
|
||||
do_qemuimagetest_standalone[depends] += "qemu-native:do_populate_sysroot"
|
||||
|
||||
def qemuimagetest_main(d):
|
||||
import sys
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
"""
|
||||
Test Controller for automated testing.
|
||||
"""
|
||||
|
||||
casestr = re.compile(r'(?P<scen>\w+\b):(?P<case>\S+$)')
|
||||
resultstr = re.compile(r'\s*(?P<case>\w+)\s*(?P<pass>\d+)\s*(?P<fail>\d+)\s*(?P<noresult>\d+)')
|
||||
machine = d.getVar('MACHINE', True)
|
||||
pname = d.getVar('PN', True)
|
||||
allfstypes = d.getVar("IMAGE_FSTYPES", True).split()
|
||||
testfstypes = [ "ext2", "ext3", "ext4", "jffs2", "btrfs" ]
|
||||
|
||||
"""function to save test cases running status"""
|
||||
def teststatus(test, status, index, length):
|
||||
test_status = d.getVar('TEST_STATUS', True)
|
||||
if not os.path.exists(test_status):
|
||||
raise bb.build.FuncFailed("No test status file existing under TEST_TMP")
|
||||
|
||||
f = open(test_status, "w")
|
||||
f.write("\t%-15s%-15s%-15s%-15s\n" % ("Case", "Status", "Number", "Total"))
|
||||
f.write("\t%-15s%-15s%-15s%-15s\n" % (case, status, index, length))
|
||||
f.close()
|
||||
|
||||
"""funtion to run each case under scenario"""
|
||||
def runtest(scen, case, fulltestpath, fstype):
|
||||
resultpath = d.getVar('TEST_RESULT', True)
|
||||
tmppath = d.getVar('TEST_TMP', True)
|
||||
|
||||
"""initialize log file for testcase"""
|
||||
logpath = d.getVar('TEST_LOG', True)
|
||||
bb.utils.mkdirhier("%s/%s" % (logpath, scen))
|
||||
caselog = os.path.join(logpath, "%s/log_%s.%s" % (scen, case, d.getVar('DATETIME', True)))
|
||||
subprocess.call("touch %s" % caselog, shell=True)
|
||||
|
||||
"""export TEST_TMP, TEST_RESULT, DEPLOY_DIR and QEMUARCH"""
|
||||
os.environ["PATH"] = d.getVar("PATH", True)
|
||||
os.environ["TEST_TMP"] = tmppath
|
||||
os.environ["TEST_RESULT"] = resultpath
|
||||
os.environ["DEPLOY_DIR"] = d.getVar("DEPLOY_DIR", True)
|
||||
os.environ["QEMUARCH"] = machine
|
||||
os.environ["QEMUTARGET"] = pname
|
||||
os.environ["COREBASE"] = d.getVar("COREBASE", True)
|
||||
os.environ["TOPDIR"] = d.getVar("TOPDIR", True)
|
||||
os.environ["OE_TMPDIR"] = d.getVar("TMPDIR", True)
|
||||
os.environ["TEST_STATUS"] = d.getVar("TEST_STATUS", True)
|
||||
os.environ["TARGET_IPSAVE"] = d.getVar("TARGET_IPSAVE", True)
|
||||
os.environ["TEST_SERIALIZE"] = d.getVar("TEST_SERIALIZE", True)
|
||||
os.environ["SDK_NAME"] = d.getVar("SDK_NAME", True)
|
||||
os.environ["RUNQEMU_LOGFILE"] = d.expand("${T}/log.runqemutest.%s" % os.getpid())
|
||||
os.environ["ROOTFS_EXT"] = fstype
|
||||
|
||||
# Add in all variables from the user's original environment which
|
||||
# haven't subsequntly been set/changed
|
||||
origbbenv = d.getVar("BB_ORIGENV", False) or {}
|
||||
for key in origbbenv:
|
||||
if key in os.environ:
|
||||
continue
|
||||
value = origbbenv.getVar(key, True)
|
||||
if value is not None:
|
||||
os.environ[key] = str(value)
|
||||
|
||||
"""run Test Case"""
|
||||
bb.note("Run %s test in scenario %s" % (case, scen))
|
||||
subprocess.call("%s" % fulltestpath, shell=True)
|
||||
|
||||
"""function to check testcase list and remove inappropriate cases"""
|
||||
def check_list(list):
|
||||
final_list = []
|
||||
for test in list:
|
||||
(scen, case, fullpath) = test
|
||||
|
||||
"""Skip rpm/smart if package_rpm not set for PACKAGE_CLASSES"""
|
||||
if case.find("smart") != -1 or case.find("rpm") != -1:
|
||||
if d.getVar("PACKAGE_CLASSES", True).find("rpm", 0, 11) == -1:
|
||||
bb.note("skip rpm/smart cases since package_rpm not set in PACKAGE_CLASSES")
|
||||
continue
|
||||
else:
|
||||
final_list.append((scen, case, fullpath))
|
||||
else:
|
||||
final_list.append((scen, case, fullpath))
|
||||
|
||||
if not final_list:
|
||||
raise bb.build.FuncFailed("There is no suitable testcase for this target")
|
||||
|
||||
return final_list
|
||||
|
||||
"""Generate testcase list in runtime"""
|
||||
def generate_list(testlist):
|
||||
list = []
|
||||
final_list = []
|
||||
if len(testlist) == 0:
|
||||
raise bb.build.FuncFailed("No testcase defined in TEST_SCEN")
|
||||
|
||||
"""check testcase folder and add case list according to TEST_SCEN"""
|
||||
for item in testlist.split(" "):
|
||||
n = casestr.match(item)
|
||||
if n:
|
||||
item = n.group('scen')
|
||||
casefile = n.group('case')
|
||||
for dir in d.getVar("QEMUIMAGETESTS", True).split():
|
||||
fulltestcase = os.path.join(dir, item, casefile)
|
||||
if not os.path.isfile(fulltestcase):
|
||||
raise bb.build.FuncFailed("Testcase %s not found" % fulltestcase)
|
||||
list.append((item, casefile, fulltestcase))
|
||||
else:
|
||||
for dir in d.getVar("QEMUIMAGETESTS", True).split():
|
||||
scenlist = os.path.join(dir, "scenario", machine, pname)
|
||||
if not os.path.isfile(scenlist):
|
||||
raise bb.build.FuncFailed("No scenario list file named %s found" % scenlist)
|
||||
|
||||
f = open(scenlist, "r")
|
||||
for line in f:
|
||||
if item != line.split()[0]:
|
||||
continue
|
||||
else:
|
||||
casefile = line.split()[1]
|
||||
|
||||
fulltestcase = os.path.join(dir, item, casefile)
|
||||
if not os.path.isfile(fulltestcase):
|
||||
raise bb.build.FuncFailed("Testcase %s not found" % fulltestcase)
|
||||
list.append((item, casefile, fulltestcase))
|
||||
f.close()
|
||||
final_list = check_list(list)
|
||||
return final_list
|
||||
|
||||
"""Clean tmp folder for testing"""
|
||||
def clean_tmp():
|
||||
tmppath = d.getVar('TEST_TMP', True)
|
||||
|
||||
if os.path.isdir(tmppath):
|
||||
for f in os.listdir(tmppath):
|
||||
tmpfile = os.path.join(tmppath, f)
|
||||
if os.path.isfile(tmpfile):
|
||||
os.remove(tmpfile)
|
||||
elif os.path.isdir(tmpfile):
|
||||
shutil.rmtree(tmpfile, True)
|
||||
|
||||
"""Before running testing, clean temp folder first"""
|
||||
clean_tmp()
|
||||
|
||||
"""check testcase folder and create test log folder"""
|
||||
testpath = d.getVar('TEST_DIR', True)
|
||||
bb.utils.mkdirhier(testpath)
|
||||
|
||||
logpath = d.getVar('TEST_LOG', True)
|
||||
bb.utils.mkdirhier(logpath)
|
||||
|
||||
tmppath = d.getVar('TEST_TMP', True)
|
||||
bb.utils.mkdirhier(tmppath)
|
||||
|
||||
"""initialize test status file"""
|
||||
test_status = d.getVar('TEST_STATUS', True)
|
||||
if os.path.exists(test_status):
|
||||
os.remove(test_status)
|
||||
subprocess.call("touch %s" % test_status, shell=True)
|
||||
|
||||
"""initialize result file"""
|
||||
resultpath = d.getVar('TEST_RESULT', True)
|
||||
bb.utils.mkdirhier(resultpath)
|
||||
resultfile = os.path.join(resultpath, "testresult.%s" % d.getVar('DATETIME', True))
|
||||
sresultfile = os.path.join(resultpath, "testresult.log")
|
||||
|
||||
machine = d.getVar('MACHINE', True)
|
||||
|
||||
if os.path.exists(sresultfile):
|
||||
os.remove(sresultfile)
|
||||
subprocess.call("touch %s" % resultfile, shell=True)
|
||||
os.symlink(resultfile, sresultfile)
|
||||
|
||||
"""generate pre-defined testcase list"""
|
||||
testlist = d.getVar('TEST_SCEN', True)
|
||||
fulllist = generate_list(testlist)
|
||||
|
||||
"""Begin testing"""
|
||||
for fstype in allfstypes:
|
||||
if fstype in testfstypes:
|
||||
with open(sresultfile, "a") as f:
|
||||
f.write("\tTest Result for %s %s %s\n" % (machine, pname, fstype))
|
||||
f.write("\t%-15s%-15s%-15s%-15s\n" % ("Testcase", "PASS", "FAIL", "NORESULT"))
|
||||
for index,test in enumerate(fulllist):
|
||||
(scen, case, fullpath) = test
|
||||
teststatus(case, "running", index, (len(fulllist) - 1))
|
||||
runtest(scen, case, fullpath, fstype)
|
||||
teststatus(case, "finished", index, (len(fulllist) - 1))
|
||||
|
||||
"""Print Test Result"""
|
||||
ret = 0
|
||||
f = open(sresultfile, "r")
|
||||
for line in f:
|
||||
m = resultstr.match(line)
|
||||
if m:
|
||||
if m.group('fail') == "1":
|
||||
ret = 1
|
||||
elif m.group('noresult') == "1":
|
||||
ret = 2
|
||||
line = line.strip('\n')
|
||||
bb.note(line)
|
||||
else:
|
||||
line = line.strip('\n')
|
||||
bb.note(line)
|
||||
f.close()
|
||||
|
||||
"""Clean temp files for testing"""
|
||||
clean_tmp()
|
||||
|
||||
if ret != 0:
|
||||
raise bb.build.FuncFailed("Some tests failed. Please check the results file: %s and the log files found in: %s." % (resultfile, d.getVar('TEST_LOG', True)))
|
||||
|
||||
@@ -175,10 +175,7 @@ def package_qa_check_rpath(file,name, d, elf, messages):
|
||||
if os.path.islink(file):
|
||||
return
|
||||
|
||||
bad_dirs = [d.getVar('TMPDIR', True) + "/work", d.getVar('STAGING_DIR_TARGET', True)]
|
||||
|
||||
if not bad_dirs[0] in d.getVar('WORKDIR', True):
|
||||
bb.fatal("This class assumed that WORKDIR is ${TMPDIR}/work... Not doing any check")
|
||||
bad_dirs = [d.getVar('BASE_WORKDIR', True), d.getVar('STAGING_DIR_TARGET', True)]
|
||||
|
||||
phdrs = elf.run_objdump("-p", d)
|
||||
|
||||
|
||||
@@ -83,6 +83,8 @@ KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.g
|
||||
|
||||
copy_initramfs() {
|
||||
echo "Copying initramfs into ./usr ..."
|
||||
# In case the directory is not created yet from the first pass compile:
|
||||
mkdir -p ${B}/usr
|
||||
# Find and use the first initramfs image archive type we find
|
||||
rm -f ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
|
||||
for img in cpio.gz cpio.lzo cpio.lzma cpio.xz; do
|
||||
@@ -156,6 +158,12 @@ kernel_do_compile() {
|
||||
# different initramfs image. The way to do that in the kernel
|
||||
# is to specify:
|
||||
# make ...args... CONFIG_INITRAMFS_SOURCE=some_other_initramfs.cpio
|
||||
if [ "$use_alternate_initrd" = "" ] && [ "${INITRAMFS_TASK}" != "" ] ; then
|
||||
# The old style way of copying an prebuilt image and building it
|
||||
# is turned on via INTIRAMFS_TASK != ""
|
||||
copy_initramfs
|
||||
use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
|
||||
fi
|
||||
oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
|
||||
if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then
|
||||
gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}"
|
||||
|
||||
@@ -128,12 +128,14 @@ def add_package_and_files(d):
|
||||
d.setVar('RRECOMMENDS_' + pn, "%s" % (pn_lic))
|
||||
|
||||
def copy_license_files(lic_files_paths, destdir):
|
||||
import shutil
|
||||
|
||||
bb.utils.mkdirhier(destdir)
|
||||
for (basename, path) in lic_files_paths:
|
||||
ret = bb.utils.copyfile(path, os.path.join(destdir, basename))
|
||||
# If the copy didn't occur, something horrible went wrong and we fail out
|
||||
if not ret:
|
||||
bb.warn("%s could not be copied for some reason. It may not exist. WARN for now." % path)
|
||||
try:
|
||||
ret = shutil.copyfile(path, os.path.join(destdir, basename))
|
||||
except Exception as e:
|
||||
bb.warn("Could not copy license file %s: %s" % (basename, e))
|
||||
|
||||
def find_license_files(d):
|
||||
"""
|
||||
|
||||
@@ -54,7 +54,7 @@ DEPENDS_GETTEXT = "gettext-native"
|
||||
PTEST_ENABLED = "0"
|
||||
|
||||
# Don't use site files for native builds
|
||||
export CONFIG_SITE = ""
|
||||
export CONFIG_SITE = "${COREBASE}/meta/site/native"
|
||||
|
||||
# set the compiler as well. It could have been set to something else
|
||||
export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}"
|
||||
@@ -157,6 +157,7 @@ do_package_write_ipk[noexec] = "1"
|
||||
do_package_write_deb[noexec] = "1"
|
||||
do_package_write_rpm[noexec] = "1"
|
||||
|
||||
do_packagedata[stamp-extra-info] = ""
|
||||
do_populate_sysroot[stamp-extra-info] = ""
|
||||
|
||||
USE_NLS = "no"
|
||||
|
||||
@@ -87,5 +87,6 @@ addhandler nativesdk_virtclass_handler
|
||||
nativesdk_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise"
|
||||
|
||||
do_populate_sysroot[stamp-extra-info] = ""
|
||||
do_packagedata[stamp-extra-info] = ""
|
||||
|
||||
USE_NLS = "${SDKUSE_NLS}"
|
||||
|
||||
@@ -953,6 +953,9 @@ python populate_packages () {
|
||||
|
||||
seen = []
|
||||
|
||||
# os.mkdir masks the permissions with umask so we have to unset it first
|
||||
oldumask = os.umask(0)
|
||||
|
||||
for pkg in package_list:
|
||||
root = os.path.join(pkgdest, pkg)
|
||||
bb.utils.mkdirhier(root)
|
||||
@@ -1025,6 +1028,7 @@ python populate_packages () {
|
||||
if ret is False or ret == 0:
|
||||
raise bb.build.FuncFailed("File population failed")
|
||||
|
||||
os.umask(oldumask)
|
||||
os.chdir(workdir)
|
||||
|
||||
unshipped = []
|
||||
|
||||
@@ -100,6 +100,7 @@ package_install_internal_deb () {
|
||||
cat "${STAGING_ETCDIR_NATIVE}/apt/apt.conf.sample" \
|
||||
| sed -e "s#Architecture \".*\";#Architecture \"${dpkg_arch}\";#" \
|
||||
| sed -e "s:#ROOTFS#:${target_rootfs}:g" \
|
||||
| sed -e "s:#APTCONF#:${APTCONF_TARGET}/apt:g" \
|
||||
> "${APTCONF_TARGET}/apt/apt.conf"
|
||||
|
||||
export APT_CONFIG="${APTCONF_TARGET}/apt/apt.conf"
|
||||
|
||||
@@ -35,6 +35,11 @@ package_update_index_rpm () {
|
||||
done
|
||||
done
|
||||
|
||||
# FIXME stopgap for broken "bitbake package-index" since MULTILIB_PREFIX_LIST isn't set for that
|
||||
if [ "$target_archs" = "" ] ; then
|
||||
target_archs="${ALL_MULTILIB_PACKAGE_ARCHS}"
|
||||
fi
|
||||
|
||||
target_archs=`echo "$target_archs" | tr - _`
|
||||
|
||||
archs=`for arch in $target_archs $sdk_archs ; do
|
||||
@@ -386,6 +391,10 @@ EOF
|
||||
fi
|
||||
|
||||
# Construct install scriptlet wrapper
|
||||
# Scripts need to be ordered when executed, this ensures numeric order
|
||||
# If we ever run into needing more the 899 scripts, we'll have to
|
||||
# change num to start with 1000.
|
||||
#
|
||||
cat << EOF > ${WORKDIR}/scriptlet_wrapper
|
||||
#!/bin/bash
|
||||
|
||||
@@ -401,11 +410,13 @@ export NATIVE_ROOT=${STAGING_DIR_NATIVE}
|
||||
if [ \$? -ne 0 ]; then
|
||||
if [ \$4 -eq 1 ]; then
|
||||
mkdir -p \$1/etc/rpm-postinsts
|
||||
num=100
|
||||
while [ -e \$1/etc/rpm-postinsts/\${num}-* ]; do num=\$((num + 1)); done
|
||||
name=\`head -1 \$1/\$3 | cut -d' ' -f 2\`
|
||||
echo "#!\$2" > \$1/etc/rpm-postinsts/\${name}
|
||||
echo "# Arg: \$4" >> \$1/etc/rpm-postinsts/\${name}
|
||||
cat \$1/\$3 >> \$1/etc/rpm-postinsts/\${name}
|
||||
chmod +x \$1/etc/rpm-postinsts/\${name}
|
||||
echo "#!\$2" > \$1/etc/rpm-postinsts/\${num}-\${name}
|
||||
echo "# Arg: \$4" >> \$1/etc/rpm-postinsts/\${num}-\${name}
|
||||
cat \$1/\$3 >> \$1/etc/rpm-postinsts/\${num}-\${name}
|
||||
chmod +x \$1/etc/rpm-postinsts/\${num}-\${name}
|
||||
else
|
||||
echo "Error: pre/post remove scriptlet failed"
|
||||
fi
|
||||
@@ -473,7 +484,7 @@ EOF
|
||||
echo "Note: see `dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}"
|
||||
translate_oe_to_smart ${sdk_mode} --attemptonly $package_attemptonly
|
||||
echo "Attempting $pkgs_to_install" >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}"
|
||||
smart --data-dir=${target_rootfs}/var/lib/smart install --attempt -y ${pkgs_to_install} >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" 2>&1
|
||||
smart --data-dir=${target_rootfs}/var/lib/smart install --attempt -y ${pkgs_to_install} >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" 2>&1 || :
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
inherit meta toolchain-scripts
|
||||
inherit populate_sdk_${IMAGE_PKGTYPE}
|
||||
|
||||
IMAGETESTCLASS = "${@oe.utils.ifelse(d.getVar('IMAGETEST'),'imagetest-' + (d.getVar('IMAGETEST') or ""),'')}"
|
||||
inherit ${IMAGETESTCLASS}
|
||||
|
||||
SDK_DIR = "${WORKDIR}/sdk"
|
||||
SDK_OUTPUT = "${SDK_DIR}/image"
|
||||
SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
|
||||
|
||||
@@ -107,9 +107,14 @@ delayed_postinsts () {
|
||||
}
|
||||
|
||||
save_postinsts () {
|
||||
# Scripts need to be ordered when executed, this ensures numeric order
|
||||
# If we ever run into needing more the 899 scripts, we'll have to
|
||||
# change num to start with 1000.
|
||||
num=100
|
||||
for p in $(delayed_postinsts); do
|
||||
install -d ${IMAGE_ROOTFS}${sysconfdir}/deb-postinsts
|
||||
cp ${IMAGE_ROOTFS}/var/lib/dpkg/info/$p.postinst ${IMAGE_ROOTFS}${sysconfdir}/deb-postinsts/$p
|
||||
cp ${IMAGE_ROOTFS}/var/lib/dpkg/info/$p.postinst ${IMAGE_ROOTFS}${sysconfdir}/deb-postinsts/$num-$p
|
||||
num=`echo \$((num+1))`
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
@@ -106,9 +106,14 @@ delayed_postinsts () {
|
||||
}
|
||||
|
||||
save_postinsts () {
|
||||
# Scripts need to be ordered when executed, this ensures numeric order
|
||||
# If we ever run into needing more the 899 scripts, we'll have to
|
||||
# change num to start with 1000.
|
||||
num=100
|
||||
for p in $(delayed_postinsts); do
|
||||
install -d ${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts
|
||||
cp ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/info/$p.postinst ${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts/$p
|
||||
cp ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/info/$p.postinst ${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts/$num-$p
|
||||
num=`echo \$((num+1))`
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
@@ -627,11 +627,11 @@ def check_sanity_everybuild(status, d):
|
||||
|
||||
check_supported_distro(d)
|
||||
|
||||
# Check if DISPLAY is set if IMAGETEST is set
|
||||
if d.getVar( 'IMAGETEST', True ) == 'qemu':
|
||||
# Check if DISPLAY is set if TEST_IMAGE is set
|
||||
if d.getVar('TEST_IMAGE', True) == '1' or d.getVar('DEFAULT_TEST_SUITES', True):
|
||||
display = d.getVar("BB_ORIGENV", False).getVar("DISPLAY", True)
|
||||
if not display:
|
||||
status.addresult('qemuimagetest needs an X desktop to start qemu, please set DISPLAY correctly (e.g. DISPLAY=:1.0)\n')
|
||||
status.addresult('testimage needs an X desktop to start qemu, please set DISPLAY correctly (e.g. DISPLAY=:1.0)\n')
|
||||
|
||||
omask = os.umask(022)
|
||||
if omask & 0755:
|
||||
|
||||
@@ -566,7 +566,12 @@ sstate_create_package () {
|
||||
TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
|
||||
# Need to handle empty directories
|
||||
if [ "$(ls -A)" ]; then
|
||||
tar --ignore-failed-read -czf $TFILE *
|
||||
set +e
|
||||
tar -czf $TFILE *
|
||||
if [ $? -ne 0 ] && [ $? -ne 1 ]; then
|
||||
exit 1
|
||||
fi
|
||||
set -e
|
||||
else
|
||||
tar -cz --file=$TFILE --files-from=/dev/null
|
||||
fi
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
# ${APPEND} - an override list of append strings for each label
|
||||
# ${SYSLINUX_OPTS} - additional options to add to the syslinux file ';' delimited
|
||||
# ${SYSLINUX_SPLASH} - A background for the vga boot menu if using the boot menu
|
||||
# ${SYSLINUX_DEFAULT_CONSOLE} - set to "console=ttyX" to change kernel boot default console
|
||||
# ${SYSLINUX_SERIAL} - Set an alternate serial port or turn off serial with empty string
|
||||
# ${SYSLINUX_SERIAL_TTY} - Set alternate console=tty... kernel boot argument
|
||||
|
||||
do_bootimg[depends] += "syslinux:do_populate_sysroot \
|
||||
syslinux-native:do_populate_sysroot"
|
||||
@@ -21,7 +23,11 @@ SYSLINUXCFG = "${S}/syslinux.cfg"
|
||||
|
||||
ISOLINUXDIR = "/isolinux"
|
||||
SYSLINUXDIR = "/"
|
||||
# The kernel has an internal default console, which you can override with
|
||||
# a console=...some_tty...
|
||||
SYSLINUX_DEFAULT_CONSOLE ?= ""
|
||||
SYSLINUX_SERIAL ?= "0 115200"
|
||||
SYSLINUX_SERIAL_TTY ?= "ttyS0,115200"
|
||||
ISO_BOOTIMG = "isolinux/isolinux.bin"
|
||||
ISO_BOOTCAT = "isolinux/boot.cat"
|
||||
MKISOFS_OPTIONS = "-no-emul-boot -boot-load-size 4 -boot-info-table"
|
||||
@@ -36,28 +42,27 @@ syslinux_populate() {
|
||||
|
||||
# Install the config files
|
||||
install -m 0644 ${SYSLINUXCFG} ${DEST}${BOOTDIR}/${CFGNAME}
|
||||
if [ "${AUTO_SYSLINUXMENU}" = 1 ] ; then
|
||||
install -m 0644 ${STAGING_DATADIR}/syslinux/vesamenu.c32 ${DEST}${BOOTDIR}/vesamenu.c32
|
||||
install -m 0444 ${STAGING_DATADIR}/syslinux/libcom32.c32 ${DEST}${BOOTDIR}/libcom32.c32
|
||||
install -m 0444 ${STAGING_DATADIR}/syslinux/libutil.c32 ${DEST}${BOOTDIR}/libutil.c32
|
||||
if [ "${SYSLINUX_SPLASH}" != "" ] ; then
|
||||
install -m 0644 ${SYSLINUX_SPLASH} ${DEST}${BOOTDIR}/splash.lss
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
syslinux_iso_populate() {
|
||||
syslinux_populate ${ISODIR} ${ISOLINUXDIR} isolinux.cfg
|
||||
install -m 0644 ${STAGING_DATADIR}/syslinux/isolinux.bin ${ISODIR}${ISOLINUXDIR}
|
||||
if [ "${AUTO_SYSLINUXMENU}" = 1 ] ; then
|
||||
install -m 0644 ${STAGING_DATADIR}/syslinux/vesamenu.c32 ${ISODIR}${ISOLINUXDIR}/vesamenu.c32
|
||||
if [ "${SYSLINUX_SPLASH}" != "" ] ; then
|
||||
install -m 0644 ${SYSLINUX_SPLASH} ${ISODIR}${ISOLINUXDIR}/splash.lss
|
||||
fi
|
||||
fi
|
||||
iso_dir=$1
|
||||
syslinux_populate $iso_dir ${ISOLINUXDIR} isolinux.cfg
|
||||
install -m 0644 ${STAGING_DATADIR}/syslinux/isolinux.bin $iso_dir${ISOLINUXDIR}
|
||||
install -m 0644 ${STAGING_DATADIR}/syslinux/ldlinux.c32 $iso_dir${ISOLINUXDIR}
|
||||
}
|
||||
|
||||
syslinux_hddimg_populate() {
|
||||
syslinux_populate ${HDDDIR} ${SYSLINUXDIR} syslinux.cfg
|
||||
install -m 0444 ${STAGING_DATADIR}/syslinux/ldlinux.sys ${HDDDIR}${SYSLINUXDIR}/ldlinux.sys
|
||||
if [ "${AUTO_SYSLINUXMENU}" = 1 ] ; then
|
||||
install -m 0644 ${STAGING_DATADIR}/syslinux/vesamenu.c32 ${HDDDIR}${SYSLINUXDIR}/vesamenu.c32
|
||||
if [ "${SYSLINUX_SPLASH}" != "" ] ; then
|
||||
install -m 0644 ${SYSLINUX_SPLASH} ${HDDDIR}${SYSLINUXDIR}/splash.lss
|
||||
fi
|
||||
fi
|
||||
hdd_dir=$1
|
||||
syslinux_populate $hdd_dir ${SYSLINUXDIR} syslinux.cfg
|
||||
install -m 0444 ${STAGING_DATADIR}/syslinux/ldlinux.sys $hdd_dir${SYSLINUXDIR}/ldlinux.sys
|
||||
}
|
||||
|
||||
syslinux_hddimg_install() {
|
||||
@@ -105,6 +110,8 @@ python build_syslinux_cfg () {
|
||||
cfgfile.write('%s\n' % opt)
|
||||
|
||||
cfgfile.write('ALLOWOPTIONS 1\n');
|
||||
syslinux_default_console = d.getVar('SYSLINUX_DEFAULT_CONSOLE', True)
|
||||
syslinux_serial_tty = d.getVar('SYSLINUX_SERIAL_TTY', True)
|
||||
syslinux_serial = d.getVar('SYSLINUX_SERIAL', True)
|
||||
if syslinux_serial:
|
||||
cfgfile.write('SERIAL %s\n' % syslinux_serial)
|
||||
@@ -147,10 +154,10 @@ python build_syslinux_cfg () {
|
||||
localdata.setVar('OVERRIDES', label + ':' + overrides)
|
||||
bb.data.update_data(localdata)
|
||||
|
||||
btypes = [ [ "", "console=tty0" ] ]
|
||||
btypes = [ [ "", syslinux_default_console ] ]
|
||||
if menu and syslinux_serial:
|
||||
btypes = [ [ "Graphics console ", " console=tty0" ],
|
||||
[ "Serial console ", " console=ttyS0,115200" ] ]
|
||||
btypes = [ [ "Graphics console ", syslinux_default_console ],
|
||||
[ "Serial console ", syslinux_serial_tty ] ]
|
||||
|
||||
for btype in btypes:
|
||||
cfgfile.write('LABEL %s%s\nKERNEL /vmlinuz\n' % (btype[0], label))
|
||||
|
||||