Compare commits

..

516 Commits

Author SHA1 Message Date
Richard Purdie
d854f1b6dc bitbake: server/process: Always place the server logfile in the build directory
Currently the bitbake-cookerdaemon.log is placed into cwd. This seems like a
bad idea, we can place it in the build directory alongside the lockfile that
represents the server instead.

(Bitbake rev: 1620dbc48ffb2a882371cf9174a7b12648befc8a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-25 16:48:27 +01:00
Richard Purdie
1b7eccff64 selftest/bbtests: Add test for bitbake execution outside the build directory
Also fix a related test's error message to match what it does.

(From OE-Core rev: 662be652ed39f32c3c7bee6539a9e91af191557e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-25 16:48:27 +01:00
Richard Purdie
ce76b71666 selftest/bblayers: Place the test layer directory in builddir
Placing the layer in meta means the directory is in an unclean state
which may influence other tests. Use our build directory instead
since we 'own' that. This helps keep oe-selftest parallelisation
clean.

(From OE-Core rev: f2d32bdf3f27a9ef62fe3abb7fdd2e04ab84b5f3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-25 16:48:27 +01:00
Richard Purdie
ce5cd33a8a license_image: Fix race
The current code pokes into do_deploy manifests from do_image_complete when the
do_image_complete task may or may not depend upon the do_deploy tasks in question.
Often it gets lucky, sometimes it results in build failures.

To fix this, split the functionality to its own task which can have the correct
task dependencies. This means the data in BB_TASKDEPDATA is definitive, the other
code can be dropped, as can the IMAGE_EXTRATYPES do_populate_lic dependencies
from image.bbclass.

This fixes bugs which show up as:

NOTE: recipe linux-yocto-4.14.48+gitAUTOINC+d64aec9793_97c8063d2d-r0: task do_deploy: Started
ERROR: core-image-minimal-1.0-r0 do_image_complete: Error executing a python function in exec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:write_deploy_manifest(d)
     0003:
File: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/classes/license.bbclass', lineno: 33, function: write_deploy_manifest
     0029:        'w+').write(output)
     0030:}
     0031:
     0032:python write_deploy_manifest() {
 *** 0033:    license_deployed_manifest(d)
     0034:}
     0035:
     0036:python license_create_manifest() {
     0037:    import oe.packagedata
File: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/classes/license.bbclass', lineno: 191, function: license_deployed_manifest
     0187:        # It is necessary to mark this will be used for image manifest
     0188:        man_dic[dep]["IMAGE_MANIFEST"] = True
     0189:        man_dic[dep]["PN"] = dep
     0190:        man_dic[dep]["FILES"] = \
 *** 0191:            " ".join(get_deployed_files(dep_dic[dep]))
     0192:        with open(os.path.join(lic_dir, dep, "recipeinfo"), "r") as f:
     0193:            for line in f.readlines():
     0194:                key,val = line.split(": ", 1)
     0195:                man_dic[dep][key] = val[:-1]
File: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/classes/license.bbclass', lineno: 289, function: get_deployed_files
     0285:    """
     0286:
     0287:    dep_files = []
     0288:    excluded_files = []
 *** 0289:    with open(man_file, "r") as manifest:
     0290:        all_files = manifest.read()
     0291:    for f in all_files.splitlines():
     0292:        if ((not (os.path.islink(f) or os.path.isdir(f))) and
     0293:                not os.path.basename(f) in excluded_files):
Exception: FileNotFoundError: [Errno 2] No such file or directory: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build-st-730/tmp/sstate-control/manifest-qemux86_64-linux-yocto.deploy'

ERROR: core-image-minimal-1.0-r0 do_image_complete: Function failed: write_deploy_manifest
ERROR: Logfile of failure stored in: /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build-st-730/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/temp/log.do_image_complete.50537
NOTE: recipe core-image-minimal-1.0-r0: task do_image_complete: Failed
ERROR: Task (/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/recipes-core/images/core-image-minimal.bb:do_image_complete) failed with exit code '1'
NOTE: recipe linux-yocto-4.14.48+gitAUTOINC+d64aec9793_97c8063d2d-r0: task do_deploy: Succeeded

(From OE-Core rev: b54cdaea7844ee3bf0c39eb97cc7c4c17ed5818c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-25 16:48:27 +01:00
Richard Purdie
a6a865ba93 license: Split image license functions to a separate class
This means the image code is only included in image recipes through
the IMAGE_CLASSES variable.

This sets things up to allow us to fix image deploy dependency problems.

(From OE-Core rev: fd44b8b4b2484f2d35c7a0e749e7dc316d601989)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-25 16:48:27 +01:00
Richard Purdie
2dda838683 package: Use subprocess to be consistent with the rest of the class
Using 'sub' in one function just confuses things, standardise and fix
formatting of the parameters too.

(From OE-Core rev: a740c638148ed7236c49eed55ae9a15b94e55b9f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-25 16:48:27 +01:00
Richard Purdie
b84b073396 selftest/wic: clean up runCmd error code handling
runCmd handles checking exit 0 internally unless specified otherwise and its
error messages are much more useful including the failed command output.

Clean up the unneeded 0 exit code checks in the wic tests.

(From OE-Core rev: 394f7d4efe80e390e2c9b0be5e6d10954395a82b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-25 16:48:27 +01:00
Richard Purdie
e3dcd61337 selftest/wic: Improve error message for test_fixed_size
Currently this can fail with a message like 127 != 0 which is unhelpful.

If we remove the ignore_status=False, the debugging from runCmd is much
more helpful printing status.output.

Also remove the now unneeded exit code check.

(From OE-Core rev: 1aa7471b11aedc68de5116c461fe73152e3985fd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-25 16:48:27 +01:00
Richard Purdie
d8762a1ea7 Revert "relocate_sdk.py: remove hardcoded SDK path"
This reverts commit 6671a4d980c8bef8f402780a308f6c43a25044aa.

This breaks uninative tarball since the call of relocate_sdk.py from uninative.bbclass
wasn't updated to account for this change. It isn't clear what value that code could
pass in and this isn't simple to fix so revert until a better fix can be found
that doesn't break uninative.

(From OE-Core rev: b247392b4ced57cfe694656032f6a6723740a9e8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-25 16:46:56 +01:00
Richard Purdie
dafacf0453 uninative-tarball: Add nativesdk-libnss-nis to resolve glibc symbol issues
We need this to avoid symbol mismatch issues for binaries that use this
on newer systems which then won't run on older ones where it isn't present.

(From OE-Core rev: 39c1719a32ed5567e3bf2df5c4f9068d0f5a9400)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 17:03:45 +01:00
Paul Eggleton
5aef7cd919 oe-selftest: fix for changes to buildhistory-diff
Now we're not reporting the related fields (as of openembedded-core
8658b3677b9f7cb70806061c41570c709086ef05) we shouldn't expect to see
PR reported here since it's not monitored by buildhistory-diff. However,
with a bit of messing about we can check for the exact output that we
should now see as a result of the test changing PR to go backwards.

(From OE-Core rev: f9c233908e6ada208d7abfdfe3ff98c6b278f405)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
34c2bd84ee lib/oe/utils: Drop now unused multiprocess_exec
(From OE-Core rev: f3b30def2cd1c9ede7630489c3949a45b6eba6ed)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
adea90740d package/package_manager: multiprocess_exec -> multiprocess_launch
After this replacement, the parent exception handling works so we don't
need subprocess wrapping with bb.error in the underlying functions.

The underlying contexts also have better module handling so the imports
can be cleaned up.

(From OE-Core rev: aa8260adf53139d776a2affe6118d28b295c1fab)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
1d8924f172 package: Clean up getstatusoutput usage
Replace usage of oe.utils.getstatusoutput() with direct subprocess calls. The
call is just a wraper to the subprocess call of the same name and requires
the caller to handle exceptions themselves. We usually do this badly, failing
to show the output or the command or the return code.

Its much safer to rely on a call like subprocess.check_output() instead.

This also makes it easier to spot and remove cases where shell=True isn't
needed in a later cleanup.

(From OE-Core rev: 9f058857fb692f1251deb43bcaa7ed0120140093)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
9928614e94 sstate/bitbake.conf: Use pigz if available
Currently the compression of sstate objects is single threaded. In the case
of ltp, this takes around 33s. If we add pigz into the list of non-fatal
HOSTTOOLS and then use if it available when building the sstate object,
this time drops to around 6s.

Since pigz is now widely available this is an optimisation we should
utilise.

(From OE-Core rev: 2de56aa0792ec93445130d801936a8ea643fad27)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
e1ba46109e package: Call file to determine elf status in parallel
This allows the calls to is_elf (which calls file) to happen in parallel
allowing a speedup of do_package and do_populate_sysroot for native
recipes.

(From OE-Core rev: bbe0d3e26484f3f347262d40a8a9d415ce21fb43)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
069a1c4a15 package: Refactor to remove isElf/is_elf function duplication
There are probably further cleanups needed here but this at least removes
the major code duplication between these two similar funcitons, keeping the
kernel module ".ko" extension check for efficiency to avoid opening and
reading file contents in the general case.

(From OE-Core rev: 7ad0c0d6ab12bebeac097fc0f5210c876dcfe9be)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
e0ea2c7378 package: Allow parallel processing of shlib analysis
This function is a bit more invasive to add parallelism to but
allows the shlibs analysis to happen in multiple threads. In order
to return values correctly/safely the data types needed tweaking
to avoid lists and use immutable objects.

(From OE-Core rev: b5788fb1f795f2f35d1788d8311e12984ffb2122)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
bc6b668e60 package: Allow parallel processing of debug splitting
Adjust the code so that the splitting of debug symbols from files happens
in parallel. To to this we need to move some path handling code into the
main function and pass more parameters in.

(From OE-Core rev: 9f0c2ed5d44a16e8268ac521236c4752f930f26a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
0e6a662ba2 package: Don't use subshell to execute file
We don't need any functionality from the shell here, its just extra fork
overhead. Therefore remove it and use subprocess directly.

(From OE-Core rev: bcc03ea19e103f6aa93bada2f49fcc5cc7bc0790)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
29482de968 package: Drop subshell usage for dwarfsrcfile generation.
The command for running dwarfsrcfiles is simple and does not need a subshell
for each execution. By expanding out this function to use check_output()
from subprocess and a list of arguments, the shell overhead can be dropped.

For recipes with lots of files this gives a significant saving.

(From OE-Core rev: 6334129dfbe266602fab70ce445641053a05be6c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
3fa835d9bc package_ipk|deb: Use oe.utils.multiprocess_launch
The current code had broken exception handling due to the use of a
"traceback" variable as well as an import. Use the new library code
for this instead which reduces code duplication and has fixed/improved
exception handling.

The chdir code can be dropped since any directory changes are in other
processes now so there is no need for it here and the code no longer
changes directory.

(From OE-Core rev: bcd47389f4b1fc69d2bb4da01933bfa1fdcae092)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
2245a94bb8 package: Rework PACKAGELOCK based upon sstate for do_packagedata
I think this lock dates from before we had sstate for do_packagedata.

Since WORKDIR is recipe specific and we write into WORKDIR, we no longer need
any write locks in the do_packagedata code itself, its handled by the sstate
task lock for the final copy in at the end. The final write lock can be simply
removed.

The only time we need read locking is when actually reading data from the
shared directory. We can therefore reduce the window the lock is held
significantly as well, hence improving the speed of packagedata tasks running
in parallel.

(From OE-Core rev: f7106cdf2190d9ec59132a1cb2bb431d653cd9c5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
6d66b57409 utils: Add multiprocess_launch API and testcase
The current methods of spawning processes for parallel execution have
issues around collection of results or exceptions.

Take the code from package_ipk/deb, make it generic, add a results
collection mechanism, fix the exception handling and for it into a
standard library function.

Also add a test case which tests both the success and failure modes
of operation to stop this functionality regressiing again.

In particular, compared to multiprocess_exec, this fork off the parent
approach means we can pass in the datastore and functions work in the
same scope as the parent. This removes some of the complexities
found trying to scale multiprocess_exec to wider use.

(From OE-Core rev: 88f0c214e593a45566df5131bda4c946f5ccc8c2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Richard Purdie
4c67ffef2e scripts/contrib/mkefidisk.sh: Remove
This has been printing a deprecation warning for a while, now remove it
in favour of wic's efi functionality.

(From OE-Core rev: 1f279cf1ad2f0a20495780b210a987416650f40f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Devarsh Thakkar
6cdfd77806 matchbox-terminal: Upgrade to 0.2
New version adds support for command line options
(-e and -- command) which can be used for launching
programs or running commands through matchbox-terminal.

(From OE-Core rev: e33ca806d34facad035fa387b17f56918648d80b)

Signed-off-by: Devarsh Thakkar <devarsht@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Ruslan Bilovol
bf5b43495a relocate_sdk.py: remove hardcoded SDK path
This patch removes hardcodes added to relocate_sdk.py
during SDK build, making it flexible and reusable.
Now default SDK path is passed to the script as
parameter rather then harcoded inside it.

This allows to reuse this script for multiple
relocations, and adds possibility to relocate
SDK multiple times

(From OE-Core rev: 6671a4d980c8bef8f402780a308f6c43a25044aa)

Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:27 +01:00
Paul Eggleton
2019f78260 oe-find-native-sysroot: drop message if pseudo is not found
pseudo won't always be in the native sysroot for a recipe, so we
shouldn't be complaining if it isn't there.

(From OE-Core rev: 11efc94742088ec6fbf2a86000e98286b0b529ef)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Paul Eggleton
9c20b0df5f oe-run-native: ensure arguments get quoted
If you pass quoted arguments to oe-run-native, they need to be passed
as-is to the underlying tool. Putting quotes around $@ ensures each
argument is quoted individually.

(From OE-Core rev: a8758653500a2458cd91bf1aa5eb666ad2b45df4)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
b4317d0ead xf86-input-libinput: upgrade 0.27.1 -> 0.28.0
(From OE-Core rev: afa7aa4c8742c8573d59e80625bd736e5ab56906)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
44bc1ba5f5 shared-mime-info: upgrade 1.9 -> 1.10
(From OE-Core rev: bd14918a01af2d88511443b03edf4efe99a61fe6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
79f916d92c harfbuzz: upgrade 1.7.5 -> 1.8.4
(From OE-Core rev: a5b52a8d78821eee489f90b0cf4bfa5db7801018)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
8056a3dcd2 libinput: upgrade 1.11.0 -> 1.11.2
(From OE-Core rev: 0af305129d7c482fdc0a0312166ef4b1af8a2405)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
ad79b00257 pciutils: upgrade 3.5.6 -> 3.6.1
(From OE-Core rev: 2ed00ce1acb19f351149c02f25267b111991e8f7)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
fde3ca8b73 strace: upgrade 4.22 -> 4.23
(From OE-Core rev: 71994715714076e7f4dfb29c91da0a4e293b7e53)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
6494ab4ab3 xz: upgrade 5.2.3 -> 5.2.4
(From OE-Core rev: 0529b8c88a2cd6c21737023d757f44eebc5a0547)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
437a5ace77 sysstat: upgrade 11.7.3 -> 11.7.4
(From OE-Core rev: 8a50ab1ebf1b9b274521c194662d9144f99304fc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
2f4009dd57 libgpg-error: upgrade 1.31 -> 1.32
(From OE-Core rev: 9437450e451fe30c7d6ee8c37f1ce804153c31c4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
a42ec88902 gnupg: upgrade 2.2.8 -> 2.2.9
(From OE-Core rev: b7da8d50ebc2f44376d352d001371e03f465e3be)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
1d1d96e75f btrfs-tools: upgrade 4.16.1 -> 4.17
(From OE-Core rev: 90755fd4ec0303bbf237520dc5237926f70bc3bf)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
c441b34e42 libyaml: upgrade to 0.2.1
License changed due to copyright dates being added.

(From OE-Core rev: 079df0021b0819f4b88e20ac8f3350a0f153c6bc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
b865fb4fcb tcf-agent: upgrade to 1.7.0
Remove 0001-canonicalize_file_name-is-specific-to-glibc.patch as upstream has
integrated musl support.

(From OE-Core rev: 4c243b71a0a05acc3b2a8bd327a8c97dcc08d3c5)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Ross Burton
e3af86e98d bc: upgrade to 1.07.1
Relicensed to just GPLv3+, update LICENSE and checksums.

The build dependency for flex should be flex-native.

libmath.h is missing from the tarball (it was present in 1.06) and the
generation rules are not cross-friendly, so delete the rules and copy in a
pre-generated libmath.h.

Remove fix-segment-fault.patch as the fixes are now upstream.

Add PACKAGECONFIG for readline and libedit, defaulting to readline.

(From OE-Core rev: 9862849ba883c110e4d2c57c39ab2c58e9b2d216)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Oleksii Konoplitskyi
1d8c7fa369 package.bbclass: exclude packages as shlib providers
Some packages containing shared libraries might be registered
as shlib providers when they shouldn't (for example, the lib is for
their private use and must not generate any dependency).

EXCLUDE_FROM_SHLIBS is targeted at that, but it could be set
for entire recipe only.

This patch allows to set list of packages that are not candidates
for shlib providers.

Variable EXCLUDE_PACKAGES_FROM_SHLIBS is used, e.g.:
EXCLUDE_PACKAGES_FROM_SHLIBS = "glibc-ptest glibc-mtest"

Cc: Andrii Bordunov <aborduno@cisco.com>
(From OE-Core rev: 43be374a6deceeaf105794f034957c65bb6bec72)

Signed-off-by: Oleksii Konoplitskyi <okonopli@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-24 11:52:26 +01:00
Chen Qi
b0f2f690a3 systemd-boot: upgrade to 239
Upgrade systemd-boot to 239.

The following patch is removed due to recent fix about meson's cpu family
mapping and validation.

  0001-Also-check-i386-i586-and-i686-for-ia32.patch

(From OE-Core rev: ff0b682b807959521c85716296de7a1d26d7d18f)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Chen Qi
ada8a5d917 systemd: upgrade to 239
Upgrade systemd to 239.

1. Patch Changes
* Rebased Patches
  0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
  0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch
  0006-Make-root-s-home-directory-configurable.patch
  0027-remove-nobody-user-group-checking.patch
  0011-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch
  0013-add-fallback-parse_printf_format-implementation.patch
  0014-src-basic-missing.h-check-for-missing-strndupa.patch
  0015-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
  0016-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch
  0017-Include-netinet-if_ether.h.patch
  0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch
  0022-don-t-use-glibc-specific-qsort_r.patch
  0024-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch
  0026-Use-uintmax_t-for-handling-rlim_t.patch
  0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch
  0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch
  0001-core-device.c-Change-the-default-device-timeout-to-2.patch
  0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch

* Dropped Patches and Reasons
  0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
    This patch is dropped because the problem has been fixed by
    binutils upstream. And this workaround could be dropped.
    https://sourceware.org/bugzilla/show_bug.cgi?id=18548

  0007-Revert-rules-remove-firmware-loading-rules.patch
  0008-Revert-udev-remove-userspace-firmware-loading-suppor.patch
    These two patches are dropped because they are for kernel < 3.7.
    But the current minimal requirement of kernel to build systemd
    is as below.
    REQUIREMENTS:
        Linux kernel >= 3.13
        Linux kernel >= 4.2 for unified cgroup hierarchy support
    So these two patches no long make any sense.
    Also remove non-exist firmware-path option

  0009-remove-duplicate-include-uchar.h.patch
  0010-check-for-uchar.h-in-meson.build.patch
    These two patches are dropped because musl has implemented
    uchar.h. See commit below from musl repo.
    """
    ab9672ae73248f51e30f4553c4b8878525e46383
    implement uchar.h (C11 UTF-16/32 conversion) interfaces
    """

  0018-check-for-missing-canonicalize_file_name.patch
    The above patch is dropped because current systemd does not need
    canonicalize_file_name.

  0025-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch
    The above patch is dropped because utmp makes no sense in musl.
    Check code below from musl.
    include/utmp.h:#define _PATH_UTMP "/dev/null/utmp"
    And utmp PACKAGECONFIG has been explicitly disabled for musl.
    So we don't need this patch.

  0032-memfd.patch
  0033-basic-macros-rename-noreturn-into-_noreturn_-8456.patch
  libmount.patch
  0034-Fix-format-truncation-compile-failure-by-typecasting.patch
    The above patches are dropped because they are backported patches.
    And current systemd has contained these patches.

  0036-time-util-fix-build-with-gcc8-Werror-format-truncati.patch
    The above patch is dropped because it has been merged and is now
    in new version.

* Newly Added Patch
  0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch
    This patch is added to fix build for musl.

  0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
    This patch is added to fix the following error which caused system
    unable to boot up.
      systemd-udevd.service: Failed to adjust OOM setting: Invalid argument
      dbus.service: Failed to adjust OOM setting: Invalid argument

  0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
    This patch is added to fix segment fault error on musl systems.

  0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch
    This patch is backported to solve a race condition between
    user-runtime-dir@xxx.service stop and user deletion.

2. PACKAGECONFIG and Dependency Changes
* Add a new PACKAGECONFIG item 'gshadow'. Enable it by default for glibc
  but disable it by default for musl. This is because musl does not provide
  gshadow.h.

* Add a new PACKAGECONFIG item 'portabled'. Default to disable it because
  it's still experimental, according to the announcement letter.
  """
  Currently, the support is still experimental, but this is expected to
  change soon. Reflecting this experimental state, the "portablectl" binary
  is not installed into /usr/bin yet.
  """

* Change 'kmod' from a hard dependency to a PACKAGECONFIG item. Default
  to enable it.

* Change 'acl' from a hard dependency to a PACKAGECONFIG item. Default
  to enable it.

* Remove 'readline' from DEPENDS. systemd does not need it.

* Remove 'libcgroup' from DEPENDS. The dependency on libcgroup has been
  removed from systemd a long time ago. We now remove this unnecessary
  dependency from DEPENDS.

3. update-alternatives changes
  The utilities like shutdown, poweroff, etc. are now created as symlinks
  at do_install. So there's no need to use update-alternatives mechanism
  anymore to create the symlinks now. In addtion, I don't think we now
  support multiple init systems at one running system, so there's really
  no need to use update-alternatives mechanism here.

  Also update the FILES_${PN} to include these files to avoid QA issue.

(From OE-Core rev: 597f4645faf61486eb1d2ab73f3d974460ab9466)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Khem Raj
219eed186d musl: Update to latest master
General bug fixes

Full logs
https://git.musl-libc.org/cgit/musl/log/?qt=range&q=193338e619de7c993efa2c0e1a87240bd732c181..9cad27a3dc1a4eb349b6591e4dc8cc89dce32277

(From OE-Core rev: 8a7db51308d62f75fbb2937ae4c79deb592070ba)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Khem Raj
b297c1aa4b recipes: Enforce ARM ISA just for arm arches <= armv5
armv7+ used thumb2 ISA and it compiles fine with thumb2
issues are only when using thumb1 ISA

(From OE-Core rev: c0ef8a91f671f30acd92e2734144f7ddf1acda53)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Andre McCurdy
a8ffa4a02c curl: add PACKAGECONFIG options for brotli, built-in manpages, etc
- Add PACKAGECONFIG option for brotli (disable by default)
 - Add PACKAGECONFIG option for built-in manpages (disabled by
   default). Embedding a copy of the manpages within the curl binary
   adds approx 60k of gzipped data and duplicates the contents of the
   curl-doc package.
 - Add PACKAGECONFIG option for verbose error messages (enabled by
   default)
 - Disable legacy NTLM http authentication via delegation to the
   external winbind ntlm_auth helper (which isn't going to work
   without a runtime dependency on samba).

(From OE-Core rev: 0bf3637a07228576d78cf4c71de92781ec143d7f)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Andre McCurdy
732a2d05fd curl: update 7.60.0 -> 7.61.0
https://curl.haxx.se/changes.html#7_61_0

(From OE-Core rev: b26ca91574a88745910d44777bb17ac0616baf3e)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Ross Burton
164785f81a atk: add explicit gettext-native dependency
In native builds we attempt to turn off i18n but this doesn't work in Meson
yet[1] but as the gettext class reduces dependencies in native builds we need to
add gettext-native to DEPENDS explicitly.

[1] https://github.com/mesonbuild/meson/issues/821

(From OE-Core rev: 964ea8bfc455f6017dc834104d96b8f5aa40a5bc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Khem Raj
ea9d7095a6 mesa: Fix build with wayland and egl
When wayland and egl both are on then it enables the wayland
plugin which actually fails to build because its not finding wayland-protocol
xml templates in proper location which is recipe sysroot since
we are cross compiling

Fixes build errors e.g.
make[4]: *** No rule to make target `//usr/share/wayland-protocols/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml', needed by `drivers/dri2/linux-dmabuf-unstable-v1-client-protocol.h'.  Stop.
make[4]: *** Waiting for unfinished jobs....

(From OE-Core rev: ff4762e94faa095abd7175810d1053fdd361058f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Olof Johansson
a24e8944e7 spdx.bbclass: Encode strings before passing to hashlib
In python3, passing a unicode object to hashlib will result in an
exception that encourages you to encode it first.

(From OE-Core rev: b06a44f1081ea422a365e80bc79b2aeb2783d23f)

Signed-off-by: Olof Johansson <olofjn@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Olof Johansson
83b3e1463a spdx.bbclass: Make use of bb.utils' sha1_file()
The same functionality already exists within bitbake, so avoid
duplicating.

(From OE-Core rev: 978f5a8f16bf5942aad73d761df2a00aeb36339d)

Signed-off-by: Olof Johansson <olofjn@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Olof Johansson
ae7d14ab44 spdx.bbclass: Fix undefined variable error
The path variable is used in an error message a few lines later, but was
never defined.

(From OE-Core rev: 863ff90b788f66241860e27e1fd3a791b00984cc)

Signed-off-by: Olof Johansson <olofjn@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Olof Johansson
a60a3c11f4 spdx.bbclass: Replace deprecated string.replace with str.replace
The string.replace function is removed in python3. Instead, the str
method "replace" should be used instead.

(From OE-Core rev: 8538aabf62d866f36764b4b136ee8575308df690)

Signed-off-by: Olof Johansson <olofjn@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Andrej Valek
c24db0fd6e perl: update to 5.24.4
- fix CVE-2018-6797, CVE-2018-6798, CVE-2018-6913
 - remove patches, which are now included in update
 - refresh patches

(From OE-Core rev: c0dac0d600e81054104f7b377f7c266aa83df371)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Rui Wang
566e2de017 bash: fix wrong exit status offset
In Linux,8 bits of the return code and 8 bits of the number of
the killing signal are mixed into a single value on the exit code,
so the exit status offset should be 8. But the autoconf checker
can not determine it while cross compiling, and then it is set to
the default value 0, which will cause generating the wrong exit
code if program exit with an error code.

(From OE-Core rev: e2dea46607a24620d6d2c250efc9b2e95bfd5ad8)

Signed-off-by: Rui Wang <rui.wang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Khem Raj
9d1323af45 packagegroups: Disable unbuildable dependencies for riscv64
This helps with cleaner world build parsing logs

(From OE-Core rev: ab6f5ea9c15e1e928a5a529813a241daafab2036)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Changqing Li
b3f188d541 epiphany: fix epiphany cannot start problem
Add RDEPEND of gsettings-desktop-schemas to fix below error:
Error: GLib-GIO-ERROR: Settings schema 'org.gnome.desktop.background'
is not installed

This depend was setted in gnome-desktop before, but dropped when we
drop gnome-desktop after upgrade epiphany to 3.28.1.1.

(From OE-Core rev: e81db90870ee373c12849bb41e619a3ac6068d6d)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Ross Burton
ebad780985 oeqa/sdk/python: clean up Python test
For the same reasons as the runtime Python test, clean up the SDK test.

Also port from Python 2 to Python 3, as that's what is supported now.

(From OE-Core rev: bead742a3ffc0a53162fb0c36610d74a1422e7b3)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Ross Burton
731ce8c760 oeqa/runtime/python: clean up Python test
Currently this is three test cases:

1) test_python_exists.  Fail if python3 isn't in PATH.
2) test_python_stdout.  Run a Python script and check the output is as expected
3) test_python_testfile.  Check that a file test_python_stdout wrote to exists.

(1) should be a setup and skip the test module if it isn't present.
(2) and (3) should be merged, there's no point copying over a two line Python
file, and the test doesn't verify that the file doesn't exist in the first
place.

Rewrite the test to check that Python is present in a class setup so the entire
test is skipped if it isn't and do some simple rot13 to verify that bytecode is
being executed correctly.

(From OE-Core rev: a35be5f32b4fe70b18ac1e2eccfd94558cecfbba)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Ross Burton
c093b40727 gnutls: use HTTP instead of FTP
HTTP is in general more reliable so use that in the SRC_URI.

(From OE-Core rev: 4f3378e0763a94a5daac7169f498177fc6ef4e75)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Anuj Mittal
81fd206d5b gstreamer1.0-plugins-good: disable gtk plugin
gtk-play example assumes that GTK's GL support always works if it is
compiled in and first tries to use gtkglsink element which leads to
problems if there are errors while instantiating GL context at a much
later stage. This failure isn't detected and there is no fallback at
this point.

gtkglsink works on wayland though using poky defaults with gtk+3 since
the gdk backend does support egl with wayland but it doesn't with x11.

Disable the gtk plugin to ensure gtk-play just moves on when gtkglsink
isn't present. This was the default when gtk was part of -plugins-bad
before upgrade to 1.14.0.

Fixes [YOCTO #12832]

(From OE-Core rev: cf321fa1f96be789e1e7c8704175f88fb5857576)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Anuj Mittal
e0934aa83b libva-utils: upgrade 2.1.0 -> 2.2.0
* Add vainfo support in Android
* Remove driver specific test cases

(From OE-Core rev: fb7070bdaa87c1b4c3a4330b9fc116354bc81e8a)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Anuj Mittal
ad76eb195b libva: upgrade 2.1.0 -> 2.2.0
* Bump VA-API version to 1.2.0
* Add support for hevc range extension decoding
* Add support for fast intra prediction in HEVC FEI
* Add 10/12-bit YUV render target formats
* Add fourcc code for Y210/Y216/Y410/Y416/RGB565/BGR565
* Add VA_STATUS_ERROR_NOT_ENOUGH_BUFFER
* Add VA_SURFACE_ATTRIB_USAGE_HINT_EXPORT
* Improve documentation

Tested with Intel vaapi driver. There is support for meson available but
its not being packaged as part of release tarball yet.

(From OE-Core rev: d61d417750d4eadf5a00760e9859cb4c3b233cdc)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Joe Slater
90a06269df tiff: security fix CVE-2018-10963
Denial of service described at https://nvd.nist.gov/vuln/detail/CVE-2018-10963.

(From OE-Core rev: d19a9b41d3b2dcba3b102a8289b7787b4b131e96)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Ross Burton
d3c639f5c9 python-setuptools: rationalise dependencies
There's no need to do native- and nativesdk-specific DEPENDS as the
BBCLASSEXTENDs handles those renames for us.

There's no need to have a subset of RDEPENDS for class-native as all with the
new manifest the python-native PROVIDES are complete.

(From OE-Core rev: 3e3c5cc579482041f0233e3e03ace736b62fb364)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Andre McCurdy
30ea610d04 python-setuptools.inc: avoid using += with an over-ride
An over-ride replaces the original value regardless of whether or
not it's set up with +=. As replacing the original value seems to be
the intention here, drop the += to make it more explicit. Also some
minor recipe formatting tweaks.

(From OE-Core rev: bda531e65bb6cc9f654c333e2f71283eccd17f27)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Ross Burton
8df7480d1c insane: optimise buildpath search
Instead of decoding every file we open as UTF-8 (with many errors as machine
code isn't UTF-8), convert the build path to the UTF-8 byte representation and
search for that instead.

(From OE-Core rev: ffb52d383bfe413cf31fef13663fe9937a146c76)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Yi Zhao
f92cd3aad0 file: fix regression for determining DB file type
The version 5.33 introduced a regression bug for determining the DB file
type. Backport a patch from upstream to fix it.

Before apply the patch:
$ file aliases.db
aliases.db: created: Thu Jan  1 00:38:24 1970, modified: Thu Jan  1 00:00:00 1970

After apply the patch:
$ file aliases.db
aliases.db: Berkeley DB (Btree, version 9, native byte-order)

(From OE-Core rev: 99e50d9e53ab23fc643c46378fa8c36190995335)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Anuj Mittal
bf7ed1d046 wic/engine: use up all free space when expanding partitions
Currently we just divide up the free space by the number of partitions
that need to be re-sized. This leads to problems when a user has
explicitly specified a subset of partitions (but not all) that need
to re-sized along with the sizes. As an example, for an image with 3
partitions, if we use:

wic write image.wic /dev/sdb --expand 1:10G

This would lead to paritions 2 and 3 each being re-sized to one thirds
of the free space instead of half.

Change the behavior to use up all the free space.

(From OE-Core rev: a88f1b5d88dbc5fb28be24b9787d73b9e0cdf183)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Anuj Mittal
82756dcac0 wic/engine: fix errors when expanding partitions
The UEFI spec implies that GPT partitions should be assumed to be on a 2048
sector boundary (for a 512 byte sector) and the current logic just
divides the free sectors available by the number of partitions that need
re-sizing, which may or may not align and the final result might
overshoot the limits imposed after alignment.

Since we are expanding already aligned partitions, just divide up the
free space in multiples of 2048. Also use the exec_cmd wrapper instead
of the subprocess call directly.

Fixes [YOCTO #12840]

(From OE-Core rev: 5eef63f5afdfbab8e30748cb1bf42bf2e6524759)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Ross Burton
f7792e58a2 mesa: remove hardware float patch
We don't need the texture float patches anymore, as the relevant patents have
expired so this defaults to on now.

(From OE-Core rev: db86b271c98dd50c641374ab6806b47a40ed134b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Marek Vasut
48d10a0a91 qemux86*: Add U-Boot machine configuration
Add U-Boot machine configuration for the qemux86 and qemux86-64
to allow building U-Boot on those targets. This in turn allows
the auto-updater to update the U-Boot recipe.

(From OE-Core rev: c9bd7f71b59e1c8e7436d65cd8ad6bfb29051c93)

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Ross Burton <ross.burton@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Marek Vasut
9911015b34 u-boot: Upgrade to 2018.07 release
This upgrades the U-Boot from 2018.05 to 2018.07 release.

(From OE-Core rev: ac269c7378e8f98bc433e76cb94a6729407a97b6)

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Ross Burton <ross.burton@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Marek Vasut
c7b45c8cdd u-boot: Add missing dependency on flex and bison native
The U-Boot build, in particular the Kconfig, depends on bison and
flex native. Add the missing dependencies.

(From OE-Core rev: 71309a5c91209d4afaee874889fa7eefb266185f)

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Ross Burton <ross.burton@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Paul Eggleton
8274ccae0d classes/buildhistory: properly process escaped chars from pkgdata
All values written out to pkgdata are escaped (see write_if_exists() in
package.bbclass). In practice there tend not to be characters that need
escaping except in the scriptlets (pkg_preinst, pkg_postinst, pkg_prerm
and pkg_postrm) where currently we still see the escape codes in the
corresponding files within buildhistory (e.g. \n and \t) and thus also
in the output of buildhistory-diff, hindering proper diffing of changes.
To fix this, when we read values from pkgdata and write them out to
buildhistory, we need to interpret the escape codes by doing the exact
reverse of what we do in package.bbclass.

(From OE-Core rev: c258379181a438cb01728d223b3d05e0ab205941)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Paul Eggleton
2e8787593f classes/buildhistory: handle packaged files with names containing spaces
The FILELIST field of the package info file in the buildhistory
repository is a space-separated list of all of the files in the package.
If a name of a file packaged by a recipe contains a space character then
of course the result was that we didn't handle its name properly. To fix
that, use quotes around any filename containing spaces and at the other
end use these quotes to extract the proper entries.

Fixes [YOCTO #12742].

(From OE-Core rev: 801b705957dc683030d11393f43407d0b3506b6a)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Paul Eggleton
0bbb80d381 lib/oe/buildhistory_analysis: drop related field feature
The original idea here was that changes to certain fields might be able
to be explained if there was a change to another field, for example if
RDEPENDS changed it might be because DEPENDS changed. Thus we were
printing this kind of thing out with each change. Unfortunately in
practice this turned out to be noisy and not particularly useful, so we
might as well remove it.

Fixes [YOCTO #7336].

(From OE-Core rev: 8658b3677b9f7cb70806061c41570c709086ef05)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Martin Jansa
12a3de5689 libdrm: allow to build native and nativesdk
(From OE-Core rev: 8eb5fa3b994be450d43b3d4ff505dec32de1fe3d)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
He Zhe
0594089706 lttng-modules: Fix do_compile failure for btrfs related tracepoints
Building lttng-modules with linux-yocto-dev will cause do_compile
failure:

lttng-modules/2.10.6-r0/lttng-modules-2.10.6/probes/../probes/lttng-tracepoint-event-impl.h:143:6: error: conflicting types for 'trace_btrfs_reserve_extent'
 void trace_##_name(_proto);
      ^~~~~~

The following commit from latest mainline kernel changes some btrfs
functions' prototype.

3dca5c942dac60164e6a6e89172f25b86af07ce7
"btrfs: trace: Remove unnecessary fs_info parameter for btrfs__reserve_extent event class"

This patch backports a commit from upstream to meet the above changes.

51ab0b1da29354375a19f865abcd233dd2178295
"Fix: btrfs: Remove unnecessary fs_info parameter"

(From OE-Core rev: c1daa5c0b89cdfab15d2fa093b021b2ce0937dad)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Anuj Mittal
ba598c7db3 oeqa/parselogs: remove references to BSPs that no longer exist
These platform specifc BSPs were removed from meta-intel and superseded by
intel-core* BSPs.

(From OE-Core rev: a6fd20fc57da3e1910e775f5994bd71bf79934ea)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Richard Purdie
dd31a246aa populate_sdk_base: Use default value assignment for SDK_TITLE/SDKEXTPATH
This allows the user mode flexibility about centrally overriding these
rather than needing to do it on a per recipe basis.

(From OE-Core rev: b0fb5bbd5f62857c32b2e071bcac841f856b1f1b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Richard Purdie
928d6159ed oeqa/decorator: Improve reliability
Checking if the dependency had any failure is unreliable, for example
if the underlying data doesn't get transferred and the list is empty,
success of the dependency is assumed.

Since we now have success data available, change the code to use it.

(From OE-Core rev: 4abba4c30d5a6163a968a119395a679e5e281ab4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Richard Purdie
da596a2ad6 testsdk: Enable multiprocess execution
This uses the new concurrenttest code to enable parallel test execution
if specified.

(From OE-Core rev: 07d19fb3adab7a8d83ba83d9a16395f70d7b7a47)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Richard Purdie
f5975278e3 oeqa: Remove xmlrunner
This isn't present on modern distros by default and doesn't work with
testtools, needing multiple code paths in the code. Remove it in favour
of finding a better replacement for results collection/analysis.

(From OE-Core rev: 8001d933a8dc86004db014777f094d718086687d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Richard Purdie
d9de34ce99 oeqa/runner: Simplify code
There doesn't appear to be any reason we need this _results indirection
any more so remove it.

(From OE-Core rev: b618261811c48ff3b98eab1b340a8cd09ef183c6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Richard Purdie
4e4958cba2 oeqa/core/threaded: Remove in favour of using concurrenttests
We have several options for parallel processing in oeqa, parallel
execution of modules, threading and mulitple processes for the runners.

After much experimentation is appears the most scalable and least
invasive approach is multiple processes using concurrenttestsuite
from testtools. This means we can drop the current threading code
which is only used by the sdk test execution.

oeqa/decorator/depends: Remove threading code

Revert "oeqa/sdk: Enable usage of OEQA thread mode"
This reverts commit adc434c063.

Revert "oeqa/core/tests: Add tests of OEQA Threaded mode"
This reverts commit a4eef558c9.

Revert "oeqa/core/decorator/oetimeout: Add support for OEQA threaded mode"
This reverts commit d3d4ba902d.

(From OE-Core rev: a98ab5e560e73b6988512fbae5cefe9e42ceed53)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Richard Purdie
ebd97e728a oeqa: Add selftest parallelisation support
This allows oe-selftest to take a -j option which specifies how much test
parallelisation to use. Currently this is "module" based with each module
being split and run in a separate build directory. Further splitting could
be done but this seems a good compromise between test setup and parallelism.

You need python-testtools and python-subunit installed to use this but only
when the -j option is specified.

See notes posted to the openedmbedded-architecture list for more details
about the design choices here.

Some of this functionality may make more sense in the oeqa core ultimately.

(From OE-Core rev: 326ababfd620ae5ea29bf486b9d68ba3d60cad30)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:41 +01:00
Richard Purdie
05c32d2de1 oeqa/selftest/wic: Split tests into two class groups
This improves test parallelism.

(From OE-Core rev: 26e04b23ba1b6942aa7c7df478d41dfe7b73e6e0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:35 +01:00
Richard Purdie
b3c379d93e oeqa/sdkbuildproject: Capture output to quieten selftest logs
Only show the output in the failure case.

(From OE-Core rev: 324785a99e3f2449cb443233e7ce224598c02a3b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:35 +01:00
Richard Purdie
a85015b109 devtool: Split tests into multiple classes
This allows better parallelism between the different tests as currently
this block takes the longest time to execute. devtool tests are still
all grouped into the "devtool" module for ease of exection.

This also makes it easier to execute some subset of devtool tests for
testing devtool changes.

(From OE-Core rev: 75148c190dd4823947557e9a07f1722e817c1fea)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:35 +01:00
Richard Purdie
6b219f64c4 oeqa: Default to buffer mode for tests
Currently some tests run in buffer mode and some don't. Those that don't can
corrupt stdout/stderr. Switch to using buffer mode everywhere so we're consistent.

If there is useful output on stdout/stderr, it will be displayed if the test
fails.

(From OE-Core rev: 978548c0abde2cb94c2782538552f39bdf2bf630)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:35 +01:00
Richard Purdie
eacc12c2ec oeqa/selftest/wic: Ensure initramfs exists for test_iso_image
AssertionError: Command 'wic create mkhybridiso --image-name core-image-minimal -o /var/tmp/wic.oe-selftest/' returned non-zero exit status 1:

ERROR: _exec_cmd: gzip -f -9 -c /var/tmp/wic.oe-selftest/tmp.wic.drhn6edm/initrd.cpio > /var/tmp/wic.oe-selftest/tmp.wic.drhn6edm/initrd.cpio.gz returned '1' instead of 0
output: gzip: /var/tmp/wic.oe-selftest/tmp.wic.drhn6edm/initrd.cpio: No such file or directory

This is because in a clean build directory, the initramfs may not be rebuilt.
Add a call to ensure it is built to avoid the error.

(From OE-Core rev: 2a80fa234d31992691a157425e8990db30158fd1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:35 +01:00
Richard Purdie
5e8367e17f oeqa/selftest/wic: Use a subdir of builddir, not /var/
Using /var/ leave wic open to races with other processes on the system, use
a subdir of builddir instead to avoid this.

(From OE-Core rev: e07ec908ce7f26143a7bdf0a07a1230c0fd6ac87)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:34 +01:00
Richard Purdie
5456a9261d oeqa/selftest/devtool: Ensure dbus is built befoe running test
If dbus isn't build first the dbus dependency of dbus-wait can't be detected
through pkgconfig and the test fails:

AssertionError: {'DEPENDS': {'dbus'}} != {}
- {'DEPENDS': {'dbus'}}
+ {} : Some expected variables not found in recipe: {'DEPENDS': {'dbus'}}

Ensure dbus is built and present in the sysroot.

(From OE-Core rev: 28699b4257436fb6079eafe50ca8cab09a2fdd90)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:34 +01:00
Richard Purdie
9a53d315ef oeqa/selftest/package: Use setUpLocal, not setUp
The main setUp function needs to be called and tests are meant to
define setUpLocal. For some reason this one didn't leading to errors
with recent code changes. Fix it.

(From OE-Core rev: aef07f09e224485539d8bc66ddac8bf394e4092a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:34 +01:00
Richard Purdie
75d5d0e873 oeqa/runner: Ensure we don't print misleading results output
The current code assumes if something isn't a failure of some
kind, it was a pass. When test case IDs weren't matching, this lead
to very confusing output where things would fail, then be listed as
passing.

This adds code to track successes, ensuring we don't end up in this
position again with unmatched entries being listed as UNKNOWN.

(From OE-Core rev: 4374c296d8963e4f6a1aa7bef7983ad0a1c2fcff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:34 +01:00
Richard Purdie
66b0348000 oqqa/selftest/lic_checksum: Avoid cache reparse
By having a consistent config for the test, a second reparse is avoided
and the test runs slightly faster.

(From OE-Core rev: a910d90dc18f9bc63142ccae2eeadc1feefc756b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:34 +01:00
Richard Purdie
62865578bf oeqa/selftest/image_tyypedep: Avoid undefined variable failure
If something goes wrong with the test, dep can be undefined. Avoid a
traceback for this and handle it more gracefully.

(From OE-Core rev: 0b74cb42aefe5c1b812fd155784e4c6581e26ce2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:34 +01:00
Richard Purdie
754cf58700 oeqa/core/runner: Improve test case comparision
We can directly compare the test case IDs rather than representations,
then if we're using subunit to split the tests, the comparisions still
work as intended.

(From OE-Core rev: 72e5f46f75454ba4c445c65c1cbc616a9e72fc6e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-16 13:21:34 +01:00
Richard Purdie
e6f7c57b55 oeqa/selftest/systemd_boot: Never use cleansstate in QA tests without special handling of SSTATE_DIR
Removing things straight from the live sstate directory is prone to issues
since other builds may be relying on the artefact presence.

Also, cleansstate is very slow on the huge sstate that the autobuilder has
on slow NFS drives. This may well be causing long buildtimes in oe-selftest
as the time taken to remove the artefact by be long.

(From meta-yocto rev: 1ed60bfb46569a8b8c29f24187390ba79686486a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:19:05 +01:00
Yi Zhao
69dfa029f1 file: Security fix CVE-2018-10360
CVE-2018-10360: The do_core_note function in readelf.c in libmagic.a in
file 5.33 allows remote attackers to cause a denial of service
(out-of-bounds read and application crash) via a crafted ELF file.

References:
https://nvd.nist.gov/vuln/detail/CVE-2018-10360

Patch from:
a642587a9c

(From OE-Core rev: 22886cf6f37d9a5c6ff90e10e0c17ed7f6321305)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Denys Dmytriyenko
f8b0a5786e wayland-protocols: upgrade 1.14 -> 1.15
(From OE-Core rev: 064455bc88f50d633f2ffe6a74c439d8a87c4fdc)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Derek Straka
703812a3f8 python3-pygobject: update to 3.28.3
Update the python3-pygobject package to the latest stable version

Tested on the qemu with core-image-minimal

(From OE-Core rev: 3c22f2080ece178b0cc68ae0b74310f81945ea52)

Signed-off-by: Derek Straka <derek@asterius.io>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Derek Straka
3021db034d python*-setuptools: update to 40.0.0
Update the python{3}-setuptools to the latest stable version

Tested on the qemu with core-image-minimal

(From OE-Core rev: 96971531e0d17a05bfd2b14c95d366f9c499edf9)

Signed-off-by: Derek Straka <derek@asterius.io>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Alistair Francis
6b029c68c8 xorg-xserver: Enable systemd-logind if using systemd
Enable the systemd-logind on xserver if the user set systemd as a
DISTRO_CONFIG. If a user is buildling Xorg with systemd then they most
likley want the systemd-logind PACKAGECONFIG set.

(From OE-Core rev: 358c237e2adf5449e33d99ebbdc12670f4bd465e)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Kristian Amlie
c7443c85c3 grub-efi: Provide target architecture for 32-bit ARM.
(From OE-Core rev: 65f9fb788371a9a08e3b0e6febecb9cc2aaeefe7)

Signed-off-by: Kristian Amlie <kristian.amlie@northern.tech>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Anuj Mittal
ebbd1e4a94 image-live: fix check for rootfs size with hddimg images
Currently we check if the rootfs.img size is greater than 4 GB and use
mcopy to copy it over to a hddimg, a FAT32 volume.

This results in problems when IMAGE_ROOTFS_SIZE is set to be exact 4 GB
(4294967296 bytes). mcopy uses the max offset/file size to be 4294967295
and as a result, it errors out without any warning to the user.

Change the 4 GB check to '-ge' to catch these cases. Since we allow
IMAGE_ROOTFS_SIZE to be in KBs, the maximum allowed is 4194303 KB. Also,
tweaked the error message to refer to wic too.

Fixes [YOCTO #12776]

(From OE-Core rev: 16956dacd4be2c64e5816ccb2b222b5b128838c9)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Alistair Francis
a9b91031ec liburcu: Add RISC-V support
(From OE-Core rev: eade50afbc267f2e4c6065745cd786e48332086b)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Ross Burton
7aff75bcc3 nfs-utils: remove libnfsidmap
As of nfs-utils 2.2.1 libnfsidmap has been integrated and isn't an external
requirement anymore.

Also consolidate nfs-utils patches into a single directory.

(From OE-Core rev: 98e8146553c912e869c174674c53e96d8ff01e57)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Anuj Mittal
6ebeeab6a6 perf: add dwarf to PACKAGECONFIG
Enable perf to be built with DWARF support.

Fixes [YOCTO #3359]

(From OE-Core rev: bed3a67932a85d7528179b0a35c21e1b595b6ce7)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Hong Liu
08c2f0581f psmisc:23.0 -> 23.1
Upgrade psmisc from 23.0 to 23.1

(From OE-Core rev: cbaa7fd39a0f64611321077d48d47046f5228fbb)

Signed-off-by: Hong Liu <hongl.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Hong Liu
eec5f3378f procps:3.3.14 -> 3.3.15
Upgrade procps from 3.3.14 to 3.3.15.

(From OE-Core rev: 19bd5ea331344c213c6d8ecdb47f78cf021c00ca)

Signed-off-by: Hong Liu <hongl.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Hong Liu
46ac750de6 ethtool:4.16 -> 4.17
Upgrade ethtool from 4.16 to 4.17

(From OE-Core rev: 11dc07b0d2f3b3c0ff9edc5e6aac3da100cbf588)

Signed-off-by: Hong Liu <hongl.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Martin Jansa
3c16339f73 libdrm: Add PACKAGECONFIG support for all meson options
* Use the same defaults as meson does, with few modifications based on
  previous EXTRA_OEMESON
* move libpciaccess dependency to new intel PACKAGECONFIG

(From OE-Core rev: dc7d3b2ff79ae324b96a51ec1be557a432ed351d)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Rasmus Villemoes
8e3fb6ff24 perf: disable parallelism for 'make clean'
Whenever perf got rebuilt, I was consistently getting errors such as

| find: '[...]/perf/1.0-r9/perf-1.0/plugin_mac80211.so': No such file or directory
| find: '[...]/perf/1.0-r9/perf-1.0/plugin_mac80211.so': No such file or directory
| find: find: '[...]/perf/1.0-r9/perf-1.0/libtraceevent.a''[...]/perf/1.0-r9/perf-1.0/libtraceevent.a': No such file or directory: No such file or directory
|
[...]
| find: cannot delete '/mnt/xfs/devel/pil/yocto/tmp-glibc/work/wandboard-oe-linux-gnueabi/perf/1.0-r9/perf-1.0/util/.pstack.o.cmd': No such file or directory

breaking the whole build. The root cause seems to be that the implicit
'make clean' done during do_configure ends up running in parallel, and
thus multiple find commands attempt to stat and/or delete the same
file.

A patch disabling parallelism for the clean target has been ack'ed
upstream (lkml.kernel.org/r/20180705134955.GB3686@krava), but it should
be harmless to pass JOBS=1 even with a fixed kernel. This can be removed
if and when all relevant -stable kernels have that patch.

(From OE-Core rev: bb58203b668df42fd08c2e5fa4a172cf63e37369)

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:16:16 +01:00
Martin Jansa
ce192a5cdc meta-yocto-bsp: mpc8315e-rdb.conf: use mpc8315erdb.dtb without the KERNEL_IMAGETYPE_FOR_MAKE as a prefix
* fix the issue with newer kernel-devicetree.bbclass as reported by RP in
  http://lists.openembedded.org/pipermail/openembedded-core/2018-July/152594.html
  with changes from
  http://lists.openembedded.org/pipermail/openembedded-core/2018-July/152560.html
  the bbclass no longer creates the dtb files prefixed with
  KERNEL_IMAGETYPE_FOR_MAKE:
  deploy/images/mpc8315e-rdb/uImage-mpc8315erdb.dtb
  use the version less symlink:
  -rw-r--r-- 2 bitbake bitbake 9.3K Jul  9 13:30 deploy/images/mpc8315e-rdb/mpc8315erdb--4.15.18+git0+45c256a5ca_0b32edc46d-r0.2-mpc8315e-rdb-20180709125726.dtb
  lrwxrwxrwx 2 bitbake bitbake   84 Jul  9 13:30 deploy/images/mpc8315e-rdb/mpc8315erdb.dtb -> mpc8315erdb--4.15.18+git0+45c256a5ca_0b32edc46d-r0.2-mpc8315e-rdb-20180709125726.dtb
  lrwxrwxrwx 2 bitbake bitbake   84 Jul  9 13:30 deploy/images/mpc8315e-rdb/mpc8315erdb-mpc8315e-rdb.dtb -> mpc8315erdb--4.15.18+git0+45c256a5ca_0b32edc46d-r0.2-mpc8315e-rdb-20180709125726.dtb

(From meta-yocto rev: 1f8b8d266a3e8dbe7c447d074446c9f27526991e)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:29 +01:00
Ross Burton
6fbddd24f4 distutils3: pass build arguments when doing a clean
We should pass the build arguments to setup.py when doing a clean, because
sometimes the arguments are required for setup.py get started.

(From OE-Core rev: f9324af88a99eca28b160fa31aa4516fd397e44b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
Armin Kuster
ab879ec1cf libxxf86misc: update to 1.0.4
(From OE-Core rev: 326f484ff8c1985baf8a70dfe7139857ec43b289)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
Armin Kuster
4e1f9fd4dd libxinerama: update to 1.1.4
(From OE-Core rev: bc7a84643c93a8989f95c4673ea3f8dbf8ad274b)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
Armin Kuster
00164cbd81 libxscrnsaver: update to 1.2.3
(From OE-Core rev: ab1a8048f8d6295a7c5b04a50c526f19c7399294)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
Armin Kuster
cdbed97897 xf86-input-mouse: update to 1.9.3
drop patch now included in update

(From OE-Core rev: 197fda706d3ac48da7cfa8fe49565bf89ee3034f)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
Robert Yang
a1c299df71 dwarfsrcfiles: fix typo: debig -> debug
(From OE-Core rev: ba777487e7d26f5a57f7eb2681caad13e19ac931)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
He Zhe
c68e4c6e3e scripts/runqemu: fix qemumips qemumips64 memory detection kernel panic
$ runqemu qemumips64 core-image-minimal nographic qemuparams="-m 512"
...
[    0.000000] Call Trace:
[    0.000000] [<ffffffff801268c0>] clear_page+0x0/0x128
[    0.000000] [<ffffffff80238158>] get_page_from_freelist+0xab8/0xc00
[    0.000000] [<ffffffff80238964>] __alloc_pages_nodemask+0xdc/0xf68
[    0.000000] [<ffffffff80239808>] __get_free_pages+0x18/0x70
[    0.000000] [<ffffffff80122a4c>] setup_zero_pages+0x1c/0xb8
[    0.000000] [<ffffffff80c7c998>] mem_init+0x54/0xa0
[    0.000000] [<ffffffff80c74904>] start_kernel+0x204/0x4d8
[    0.000000] [<ffffffff8091dfb0>] kernel_entry+0x0/0x40
[    0.000000] Code: 02002025  1000f8d9  8e634d7c <34860f80> cc9e0000
cc9e0020  cc9e0040  cc9e0060  cc9e0080
[    0.000000]
[    0.000000] ---[ end trace 0000000000000000 ]---
[    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
[    0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task!
...

OE uses qemumips to simulate a Malta board by default.

As upstream qemu introduced:
https://git.qemu.org/?p=qemu.git;a=commit;h=94c2b6aff43cdfcfdfb552773a6b6b973a72ef0b

The Malta board can support up to 2GiB of RAM which should
be able to boot a Linux kernel built with CONFIG_HIGHMEM
enabled and passing "-m 2048" to QEMU and appending the
following kernel parameters:
...
mem=256M@0x0 mem=256M@0x90000000 mem=1536M@0x20000000
...

But the following commit in kernel broke above mem=X@Y setting
which added the memory as reserved memory area.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
...
commit 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
Author: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Date:   Wed Nov 23 14:43:49 2016 +0100

    MIPS: fix mem=X@Y commandline processing
...

So remove `mem=*' to disable user-defined physical RAM map
which let kernel itself caculates memory ranges.

Author: Hongxu Jia <hongxu.jia@windriver.com>
[ Merge the two fixes for qemumips32 and qemumips64 into one patch,
  and make it support all mips cases ]
(From OE-Core rev: 0220cb34a91658ecc3782ec1a4700dcb5ece37d8)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
Andre McCurdy
78fae8676d openssl_1.1: minor recipe formatting tweaks etc
Drop redundant setting of S to its default value and re-order
variables to align more closely to the OE style-guide.

(From OE-Core rev: 4871481e66449dd2b054119b37d0baedb166b72c)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
Ross Burton
7af5e3bad3 meson: improve code style
Use elif for consistency.

(From OE-Core rev: 2ad89f12c9819326b29588a8a6c642aaae990f18)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
Martin Jansa
d0389bf1cd kernel.bbclass: move variables for kernel artifacts names to separate bbclass
* this makes it easier to access these variables from some other bbclass
  e.g. sdcard_image-rpi.bbclass in meta-raspberry where we need to know
  how some files in deploy are named, but we cannot inherit kernel.bbclass
  as it's used in image recipe not kernel recipe
* alternatively we can move these to bitbake.conf like similar image variables are:
  meta/conf/bitbake.conf:IMAGE_BASENAME = "${PN}"
  meta/conf/bitbake.conf:IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
  meta/conf/bitbake.conf:IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}"

(From OE-Core rev: 7d0ef0eaa1bfe97015a774c26f5791622e7e8b12)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
Martin Jansa
c159b6249a kernel.bbclass: use the consistent naming schema for initramfs
* use INITRAMFS_BASE_NAME and INITRAMFS_SYMLINK_NAME variables, like
  other kernel artifacts are using
* use "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" instead of
  "${PV}-${PR}-${MACHINE}-${DATETIME}" to be consistent with other files
* allow to modify default symlink name with INITRAMFS_SYMLINK_NAME
  instead of currently used:
  initramfs_symlink_name=${type}-initramfs-${MACHINE}

(From OE-Core rev: 935b9d5a2bd12effad65f69a631ecff96b8bb553)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:33:00 +01:00
Martin Jansa
c5b70d7155 kernel-devicetree.bbclass: Fix and simplify instalation of DTB files
* add 2 new variables:
  KERNEL_DTB_BASE_NAME
  KERNEL_DTB_SYMLINK_NAME
  instead of reusing KERNEL_IMAGE_SYMLINK_NAME and than expecting that
  default value ${MACHINE} was being used in e.g.:
  DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`

* install normal DTB files only once even if there is multiple entries
  in KERNEL_IMAGETYPE_FOR_MAKE and don't prefix them with the type of
  the kernel image, use the KERNEL_IMAGETYPE_FOR_MAKE as a prefix only
  when installing them bundled with kernel or initramfs image.

* deploy the files from ${D}/${KERNEL_IMAGEDEST}/ instead of kernel
  build directory, so that we don't need to call
  DTB_PATH=`get_real_dtb_path_in_kernel "${DTB}"`
  again in do_deploy

* create all links in do_deploy task, because default KERNEL_DTB_BASE_NAME
  like KERNEL_IMAGE_BASE_NAME contains PKGR and PKGR is different in
  do_install and do_deploy, because kernel.bbclass calls
  meta/classes/kernel.bbclass:do_install[prefuncs] += "package_get_auto_pr"
  meta/classes/kernel.bbclass:do_deploy[prefuncs] += "package_get_auto_pr"

* the filenames are a bit different, but with separate variable it
  should be easier for other bbclasses which use these DTB files to
  find them correctly, just use either the cannonical name
  $dtb_base_name.$dtb_ext or $dtb_base_name-${KERNEL_DTB_SYMLINK_NAME}.$dtb_ext
  because PKGR (and other PKG* variables) might be different in your
  task and kernel.do_deploy task.

* fix DTB files being deployed with incorrect filenames when
  KERNEL_IMAGE_SYMLINK_NAME isn't set to ${MACHINE}, e.g. instead of
  the default:
-rw-r--r-- 2 bitbake bitbake 1.4K Nov 20 07:41 deploy/images/raspberrypi3-64/Image-1-4.9.59+git0+e7976b2aff-r0.2-lirc-rpi-20171120043031.dtbo
lrwxrwxrwx 2 bitbake bitbake   64 Nov 20 07:41 deploy/images/raspberrypi3-64/Image-lirc-rpi.dtbo -> Image-1-4.9.59+git0+e7976b2aff-r0.2-lirc-rpi-20171120043031.dtbo
lrwxrwxrwx 2 bitbake bitbake   64 Nov 20 07:41 deploy/images/raspberrypi3-64/lirc-rpi.dtbo -> Image-1-4.9.59+git0+e7976b2aff-r0.2-lirc-rpi-20171120043031.dtbo
  I was getting:
-rw-r--r-- 2 bitbake bitbake 1348 Nov 20 10:28 deploy/images/raspberrypi3-64/Image-linux-raspberrypi-lirc-rpi.dtbo
lrwxrwxrwx 2 bitbake bitbake   37 Nov 20 10:28 deploy/images/raspberrypi3-64/Image-linux-raspberrypi-lirc-rpi-master-20171120102653.dtbo -> Image-linux-raspberrypi-lirc-rpi.dtbo
lrwxrwxrwx 2 bitbake bitbake   37 Nov 20 10:28 deploy/images/raspberrypi3-64/lirc-rpi.dtbo -> Image-linux-raspberrypi-lirc-rpi.dtbo
  and e.g. sdcard_image-rpi.bbclass from meta-raspberrypi:
  37e4e18f4a/classes/sdcard_image-rpi.bbclass
  was failing in:
  mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::${DTB_BASE_NAME}.dtb
  because ${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb doesn't exist in my
  build, due to
  DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
  not replacing whole "${KERNEL_IMAGE_SYMLINK_NAME}" (read ${MACHINE})
  with just ${DTB_BASE_NAME}

* with this change applied the deploy dir looks like this:
-rw-r--r-- 2 bitbake bitbake 1.4K Nov 20 15:49 deploy/images/raspberrypi3-64/lirc-rpi-1-4.9.59+git0+e7976b2aff-r0.8-raspberrypi3-64-20171120154716.dtbo
lrwxrwxrwx 2 bitbake bitbake   74 Nov 20 15:49 deploy/images/raspberrypi3-64/lirc-rpi.dtbo -> lirc-rpi-1-4.9.59+git0+e7976b2aff-r0.8-raspberrypi3-64-20171120154716.dtbo
lrwxrwxrwx 2 bitbake bitbake   74 Nov 20 15:49 deploy/images/raspberrypi3-64/lirc-rpi-raspberrypi3-64.dtbo -> lirc-rpi-1-4.9.59+git0+e7976b2aff-r0.8-raspberrypi3-64-20171120154716.dtbo
  and works correctly even with DISTRO using different naming scheme

* the sdcard_image-rpi.bbclass still needs to be modified, I've provided
  updated version here:
  https://github.com/agherzan/meta-raspberrypi/pull/159
* mpc8315e-rdb.conf MACHINE in meta-yocto-bsp also needs small fix:
  https://lists.yoctoproject.org/pipermail/poky/2018-July/011436.html

(From OE-Core rev: 1860d9d3c62e2e94cd68a809385873ffd8270b6d)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:32:59 +01:00
Martin Jansa
85d1f532f3 kernel-devicetree.bbclass: Use lowercase names for shell variables
* just to make it more clear what is local shell variable and what is
  replaced by bitbake from the metadata and also to prevent the variable
  to be incorrectly expanded by bitbake if someone happens to define
  e.g. DTB_BASE_NAME

(From OE-Core rev: 98b0f13f0650d970aac7441e7fcfc1089570785f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:32:59 +01:00
Bruce Ashfield
ea676cbdb8 linux-yocto/4.12: update to v4.12.26
Integrating Paul Gortmaker's -stable 4.12 release, which comprises
the following commits:

b0f63e84c132 Linux 4.12.26
61be5424616e usbnet: fix alignment for frames with no ethernet header
6d0519e75609 tipc: fix memory leak in tipc_accept_from_sock()
8560506d5b7a tipc: call tipc_rcv() only if bearer is up in tipc_udp_recv()
5ceba73f1c24 tcp: remove buggy call to tcp_v6_restore_cb()
450a839e54a6 tcp/dccp: block bh before arming time_wait timer
872d246eaed9 stmmac: reset last TSO segment size after device open
74386d6ee7bf sit: update frag_off info
3df033244a42 s390/qeth: fix GSO throughput regression
b7bd0107008f s390/qeth: fix early exit from error path
7f02573318ba s390/qeth: build max size GSO skbs on L2 devices
3c8a527e0496 rds: Fix NULL pointer dereference in __rds_rdma_map
00c0600c0a35 net: remove hlist_nulls_add_tail_rcu()
193d9a02e802 net: realtek: r8169: implement set_link_ksettings()
8fb1c5e220ee net: qmi_wwan: add Quectel BG96 2c7c:0296
0c2ba29a13d9 net/packet: fix a race in packet_bind() and packet_notifier()
bb06331e9156 net: openvswitch: datapath: fix data type in queue_gso_packets
ea15a664c5b8 usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping
7f11deffc177 ipmi: Stop timers before cleaning up the module
fb006a18929e fix kcm_clone()
ee82eaf439cc RDMA/cxgb4: Annotate r2 and stag as __be32
b71be191d4ed md: free unused memory after bitmap resize
6d24efc56915 dm raid: fix panic when attempting to force a raid to sync
490fc05683b4 blk-mq: Avoid that request queue removal can trigger list corruption
d9e8cb49aaf1 ide: ide-atapi: fix compile error with defining macro DEBUG
115978628b54 ipvlan: fix ipv6 outbound device
ee2ce344ee06 powerpc/powernv/idle: Round up latency and residency values
0fe4d3f9fb5b afs: Connect up the CB.ProbeUuid
94bdd552d7b1 IB/mlx5: Assign send CQ and recv CQ of UMR QP
aa02d85e4d08 IB/mlx4: Increase maximal message size under UD QP
dd955bcce383 bnxt_re: changing the ip address shouldn't affect new connections
a4b3e59bcb04 f2fs: fix to clear FI_NO_PREALLOC
78f9d39a2735 xfrm: Copy policy family in clone_policy
4577662b6010 atm: horizon: Fix irq release error
d7241b40fe6d kbuild: rpm-pkg: fix jobserver unavailable warning
bffb011d5446 mailbox: mailbox-test: don't rely on rx_buffer content to signal data ready
849ef7edfa4c clk: hi3660: fix incorrect uart3 clock freqency
d561354fe15d clk: uniphier: fix DAPLL2 clock rate of Pro5
eada5db0be6e clk: qcom: common: fix legacy board-clock registration
11ea07285eb4 geneve: fix fill_info when link down
4e0b53bd177a sctp: return error if the asoc has been peeled off in sctp_wait_for_sndbuf
be7cba326d33 sctp: use the right sk after waking up from wait_buf sleep
2c485f6fa3be sctp: do not free asoc when it is already dead in sctp_sendmsg
6e2b427a32da slub: fix sysfs duplicate filename creation when slub_debug=O
e66ebbc23607 zsmalloc: calling zs_map_object() from irq is a bug
dc423eda615d sparc64/mm: set fields in deferred pages
956c73ca6664 block: wake up all tasks blocked in get_request()
1f35bda74d1a dt-bindings: usb: fix reg-property port-number range
412c76f0f9b8 sunrpc: Fix rpc_task_begin trace point
09f79313b317 NFS: Fix a typo in nfs_rename()
a550f7b43f63 dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0
80f443550f8f lib/genalloc.c: make the avail variable an atomic_long_t
1dfea0e03917 drivers/rapidio/devices/rio_mport_cdev.c: fix resource leak in error handling path in 'rio_dma_transfer()'
4add25bf3dff route: update fnhe_expires for redirect when the fnhe exists
c53ad6cb2f86 route: also update fnhe_genid when updating a route cache
d09b814cd2aa gre6: use log_ecn_error module parameter in ip6_tnl_rcv()
f9ef4cd05462 mac80211_hwsim: Fix memory leak in hwsim_new_radio_nl()
a95269b0e4e5 x86/mpx/selftests: Fix up weird arrays
76e5bd0ae30a coccinelle: fix parallel build with CHECK=scripts/coccicheck
59f2aa43a314 kbuild: pkg: use --transform option to prefix paths in tar
50ce05457e39 irqchip/qcom: Fix u32 comparison with value less than zero
e3fec500f619 ARM: avoid faulting on qemu
602f85aeefb7 crypto: talitos - fix ctr-aes-talitos
73e76cb0ca1f crypto: talitos - fix use of sg_link_tbl_len
f17fe30404de crypto: talitos - fix AEAD for sha224 on non sha224 capable chips
f5fa317606b7 crypto: talitos - fix setkey to check key weakness
519619ec114a crypto: talitos - fix memory corruption on SEC2
e7984cca5abc crypto: talitos - fix AEAD test failures
64d05b5d1d86 bus: arm-ccn: fix module unloading Error: Removing state 147 which has instances left.
e14e213dfd51 bus: arm-ccn: Fix use of smp_processor_id() in preemptible context
63efd55a2c6b bus: arm-ccn: Check memory allocation failure
fd30c25b5596 bus: arm-cci: Fix use of smp_processor_id() in preemptible context
d358187f050b media: dvb: i2c transfers over usb cannot be done from stack
2ae277ebe31f drm/exynos: gem: Drop NONCONTIG flag for buffers allocated without IOMMU
0792a5a27074 drm/bridge: analogix dp: Fix runtime PM state in get_modes() callback
fdc899328ff3 kdb: Fix handling of kallsyms_symbol_next() return value
08f22e2251fd brcmfmac: change driver unbind order of the sdio function devices
f9a77013fa02 powerpc/64s: Initialize ISAv3 MMU registers before setting partition table
9c6dfd696e5a KVM: s390: Fix skey emulation permission check
092937ce1aae s390: fix compat system call table
4f4b2e279816 s390: always save and restore all registers on context switch
8c54b7d880d4 smp/hotplug: Move step CPUHP_AP_SMPCFD_DYING to the correct place
a2ec325c7d20 iommu/vt-d: Fix scatterlist offset handling
743ac71ece80 ALSA: usb-audio: Fix the missing ctl name suffix at parsing SU
1df6e988ae39 ALSA: usb-audio: Add check return value for usb_string()
974394e57a05 ALSA: usb-audio: Fix out-of-bound error
f4753360efda ALSA: seq: Remove spurious WARN_ON() at timer check
478c2ed7ca1c ALSA: pcm: prevent UAF in snd_pcm_info
b12060cae8c2 btrfs: handle errors while updating refcounts in update_ref_for_cow
ecfc013c7f23 btrfs: fix missing error return in btrfs_drop_snapshot
45822ea3d1bf X.509: fix comparisons of ->pkey_algo
19057ced2699 X.509: reject invalid BIT STRING for subjectPublicKey
a3ad8e49bc26 KEYS: reject NULL restriction string when type is specified
7c2ccfe13faa KEYS: add missing permission check for request_key() destination
664879ff9aef ASN.1: check for error from ASN1_OP_END__ACT actions
4c0e7ec3072d ASN.1: fix out-of-bounds read when parsing indefinite length item
17a6f363daf9 efi/esrt: Use memunmap() instead of kfree() to free the remapping
8dd372dd8845 efi: Move some sysfs files to be read-only by root
97c6b857262f scsi: libsas: align sata_device's rps_resp on a cacheline
eb78a8b8f172 scsi: use dma_get_cache_alignment() as minimum DMA alignment
db4a32fa5cf2 scsi: dma-mapping: always provide dma_get_cache_alignment
1f55442d0992 isa: Prevent NULL dereference in isa_bus driver callbacks
93fdb7dc713e hv: kvp: Avoid reading past allocated blocks from KVP file
d745d533737a pinctrl: armada-37xx: Fix direction_output() callback behavior
ae6add36f3ce iio: adc: meson-saradc: fix the bit_idx of the adc_en clock
50c87ecdb250 iio: adc: cpcap: fix incorrect validation
657257ba13ae iio: health: max30102: Temperature should be in milli Celsius
3da92b4ab2cc virtio: release virtio index when fail to device_register
f6fe0d2777b2 can: peak/pcie_fd: fix potential bug in restarting tx queue
654babccd437 can: usb_8dev: cancel urb on -EPIPE and -EPROTO
bda1dccdda47 can: esd_usb2: cancel urb on -EPIPE and -EPROTO
9ff8eb7ef05b can: ems_usb: cancel urb on -EPIPE and -EPROTO
51e5de2b036b can: mcba_usb: cancel urb on -EPROTO
c94c94a367ef can: kvaser_usb: cancel urb on -EPIPE and -EPROTO
c8474d8798ab can: kvaser_usb: ratelimit errors if incomplete messages are received
1936ba2b0b40 can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback()
bc86162fa81a can: kvaser_usb: free buf in error paths
4a879f2d1636 can: ti_hecc: Fix napi poll return value for repoll
09b06e3f7b1d can: flexcan: fix VF610 state transition issue
f81db8e7d0cb can: peak/pci: fix potential bug when probe() fails
7b747f65c553 can: mcba_usb: fix device disconnect bug
0a3964b0a8d3 usb: f_fs: Force Reserved1=1 in OS_DESC_EXT_COMPAT
d1c24d05d7ec serdev: ttyport: fix tty locking in close
541fbaaf6db7 serdev: ttyport: fix NULL-deref on hangup
a6d00d0df9e5 serdev: ttyport: add missing receive_buf sanity checks
b30e0bedb66b usb: gadget: udc: renesas_usb3: fix number of the pipes

(From OE-Core rev: 5fddf0226efc996f7eeba76f15e3335c9e60c2f3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:32:59 +01:00
Bruce Ashfield
c800e6dbd2 linux-yocto-dev: bump to 4.18+
Bumping the -dev kernel to 4.18 in preparation for the next
release kernel.

(From OE-Core rev: 3d7da5d8083b38a9b08fc187a41f8b6691f19091)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:32:59 +01:00
Bruce Ashfield
53177e644f linux-yocto/4.12: bump to v4.12.25
Integrating Paul Gortmaker's v4.12.25 -stable queue, which comprises the
following commits:

  e61748ef5db0 Linux 4.12.25
  c34553e3e8af x86/bugs: Rename SSBD_NO to SSB_NO
  4aa9e65a91b9 x86/bugs: Remove x86_spec_ctrl_set()
  7283d22a40c4 x86/bugs: Expose x86_spec_ctrl_base directly
  60fb8f1bbd46 x86/speculation: Rework speculative_store_bypass_update()
  cc8a65725832 x86/cpufeatures: Disentangle SSBD enumeration
  4cadf648f802 x86/cpufeatures: Disentangle MSR_SPEC_CTRL enumeration from IBRS
  14476a34b4d0 x86/speculation: Use synthetic bits for IBRS/IBPB/STIBP
  e66dd0595eac x86/cpu: Make alternative_msr_write work for 32-bit code
  32e38eda9958 x86/bugs: Fix the parameters alignment and missing void
  5593194735ea x86/bugs: Make cpu_show_common() static
  86e7eb199990 x86/bugs: Fix __ssb_select_mitigation() return type
  4efd9170a722 Documentation/spec_ctrl: Do some minor cleanups
  e074092d9d0a proc: Use underscores for SSBD in 'status'
  f57b4be9a391 x86/bugs: Rename _RDS to _SSBD
  f395cafed558 x86/speculation: Make "seccomp" the default mode for Speculative Store Bypass
  9599751872de seccomp: Move speculation migitation control to arch code
  647fb2d84f05 seccomp: Add filter flag to opt-out of SSB mitigation
  44d5a1d9fe07 seccomp: Use PR_SPEC_FORCE_DISABLE
  9490e71c3074 prctl: Add force disable speculation
  ad5b97fe1ab6 x86/bugs: Make boot modes __ro_after_init
  cfc00a7877b6 seccomp: Enable speculation flaw mitigations
  bc4bf81c64b0 proc: Provide details on speculation flaw mitigations
  a41d2136a447 nospec: Allow getting/setting on non-current task
  7e17279e72b9 x86/speculation: Add prctl for Speculative Store Bypass mitigation
  eea6b1abc91e x86/process: Allow runtime control of Speculative Store Bypass
  c8630c28cd28 prctl: Add speculation control prctls
  ecefae5ca101 x86/speculation: Create spec-ctrl.h to avoid include hell
  4bcdf54612aa x86/bugs/AMD: Add support to disable RDS on Fam[15,16,17]h if requested
  6ce1317929a3 x86/bugs: Whitelist allowed SPEC_CTRL MSR values
  cd5e5e6f2e39 x86/bugs/intel: Set proper CPU features and setup RDS
  d97584229d85 x86/bugs: Provide boot parameters for the spec_store_bypass_disable mitigation
  793b7453cfc5 x86/cpufeatures: Add X86_FEATURE_RDS
  c6c3cd47ccbb x86/bugs: Expose /sys/../spec_store_bypass
  2d92a521bda7 x86/bugs: Read SPEC_CTRL MSR during boot and re-use reserved bits
  81865e325abe x86/bugs: Concentrate bug reporting into a separate function
  45245a5b9dc4 x86/bugs: Concentrate bug detection into a separate function
  05e82d536970 x86/nospec: Simplify alternative_msr_write()
  effb0dfecfa2 x86/cpu_entry_area: Sync cpu_entry_area to initial_page_table
  89fffee9d555 x86/xen: Zero MSR_IA32_SPEC_CTRL before suspend
  76199d7beb0b x86/speculation: Move firmware_restrict_branch_speculation_*() from C to CPP
  426210b00b02 x86/speculation: Use IBRS if available before calling into firmware
  63904f8a6d41 x86/entry/64: Fix CR3 restore in paranoid_exit()
  35cf6a9daf5f x86/cpu: Change type of x86_cache_size variable to unsigned int
  7fded60b2cb7 x86/spectre: Fix an error message
  343945a16727 x86/speculation: Add <asm/msr-index.h> dependency
  eb0f059ee2de nospec: Move array_index_nospec() parameter checking into separate macro
  31951a39de73 x86/speculation: Fix up array_index_nospec_mask() asm constraint
  344711f16fec x86/entry/64: Remove the unused 'icebp' macro
  d4324affaf05 x86/entry/64: Fix paranoid_entry() frame pointer warning
  3cadbc9228b4 x86/entry/64: Indent PUSH_AND_CLEAR_REGS and POP_REGS properly
  0d561147160c x86/entry/64: Get rid of the ALLOC_PT_GPREGS_ON_STACK and SAVE_AND_CLEAR_REGS macros
  22c1269eefa9 x86/entry/64: Use PUSH_AND_CLEAN_REGS in more cases
  ac897d25b1d3 x86/entry/64: Introduce the PUSH_AND_CLEAN_REGS macro
  226eea037fa6 x86/entry/64: Interleave XOR register clearing with PUSH instructions
  120d889cac9f x86/entry/64: Merge the POP_C_REGS and POP_EXTRA_REGS macros into a single POP_REGS macro
  2d5eb3888f24 x86/entry/64: Merge SAVE_C_REGS and SAVE_EXTRA_REGS, remove unused extensions
  797a6f4444f1 x86/speculation: Clean up various Spectre related details
  ff032faca431 KVM/nVMX: Set the CPU_BASED_USE_MSR_BITMAPS if we have a valid L02 MSR bitmap
  1aaab2d1a1fd KVM/x86: Reduce retpoline performance impact in slot_handle_level_range(), by always inlining iterator helper methods
  dd17c0f5a114 Revert "x86/speculation: Simplify indirect_branch_prediction_barrier()"
  add7dd4f1f81 x86/speculation: Correct Speculation Control microcode blacklist again
  358f03a9395f x86/speculation: Update Speculation Control microcode blacklist
  0307861327c7 x86/mm/pti: Fix PTI comment in entry_SYSCALL_64()
  a612b987b028 x86/entry/64/compat: Clear registers for compat syscalls, to reduce speculation attack surface
  1b8b432f6dee x86/entry/64: Clear registers for exceptions/interrupts, to reduce speculation attack surface
  513e4bbfc32c x86/entry/64: Clear extra registers beyond syscall arguments, to reduce speculation attack surface

(From OE-Core rev: 400c1bd54c0191b96bccfe0d2755995bdfc04fc1)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:32:59 +01:00
Bruce Ashfield
de8a8cf537 linux-yocto: igb.cfg: change igb config from m to y
Yocto Project reference board such as Minnowboard need IGB module to
enable ethernet networking. It need to bundle together with kernel when
use NFS boot without initramfs.

(From OE-Core rev: f1b97a29a1918d4ae81cf71b026d6f2b82dfeb96)

Signed-off-by: Mohamad Noor Alim Hussin <mohamad.noor.alim.hussin@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:32:59 +01:00
Bruce Ashfield
2f13188922 linux-yocto: add qemuarm -tiny support
Adding a BSP definition to the kernel-cache, creating a tiny branch for
board specific patches and finally setting the machine compatibility in
the linux-yocto-tiny recipe.

This is only the BSP definition and kernel configuration side of things,
more changes are necessary for full tiny distro support on qemumarm.

(From OE-Core rev: 9e88c4923a337ca8279feaa773884a9c26a092f3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:32:59 +01:00
Lei Maohui
be497feac1 linux-libc-headers: To fix build error when enable mutilib on aarch64 Big endian.
(From OE-Core rev: 1c31fa6929fc97e2fb0c4fbfcc66c789c39c1117)

Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-10 17:32:59 +01:00
He Zhe
3e610d7e20 lttng-tools: Allow reconnect to relayd
If relayd is started after connection attempt from consumerd it will
leave the session in disconnected state and causes the following
inconvenience. This is covered by an upstream feature, see
https://bugs.lttng.org/issues/883. Before it's done, this patches
allows users to reconnect to relayd.

root@localhost:~# lttng enable-event --userspace --all
Error: Events: UST create channel failed (channel channel0, session trace_session)
root@localhost:~# lttng-relayd -b
Warning: No tracing group detected
root@localhost:~# lttng enable-event --userspace --all
Error: Events: UST create channel failed (channel channel0, session trace_session)

(From OE-Core rev: 6f0079a6c3cc8926423cff3a927a78dcecede90d)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 22:48:39 +01:00
Oleksii Konoplitskyi
f94c0c8e6f initramfs-framework: add nfsrootfs module
nfsrootfs module mounts rootfs via nfs parsing "nfsroot" and "ip" cmdline options.

(From OE-Core rev: d1737f2dabac5e338061863c78a91b4c115365c7)

Signed-off-by: Oleksii Konoplitskyi <okonopli@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 22:48:39 +01:00
Andre McCurdy
cfd0c39fbf gobject-introspection: minor recipe formatting tweaks
Re-order variables to align more closely to the OE style-guide.

(From OE-Core rev: 5c9c61250bb23fd5fd1c18e243cab0d80573b749)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 22:48:39 +01:00
Andre McCurdy
5f033859e2 gobject-introspection: avoid using += with an over-ride
Using += with an over-ride can be a source of confusion so try to
avoid the construct in core recipes.

The current usage functions correctly (it over-rides the default, ie
empty, value of EXTRA_OECONF and then PACKAGECONFIG derived options
are subsequently appended), however the += is unnecessary and can be
dropped.

(From OE-Core rev: e255d1aebd0e019f42c2110873ef4779bbbb5974)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 22:48:39 +01:00
Andre McCurdy
c4aa9678a8 openssl_1.1: avoid using += with an over-ride
Using += with an over-ride can be a source of confusion so try to
avoid the construct in core recipes.

The current usage is incorrect and prevents the aarch64 and musl
specific config options from being active together.

(From OE-Core rev: 2a30a9ecab6465892698f7fc9d14a430d8a26f0c)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 22:48:39 +01:00
Ovidiu Panait
f9ad66da9f openssl-nativesdk: Fix "can't open config file" warning
When SDK is not installed in the default location, openssl will not be
able to find the the openssl.cnf config file:

"WARNING: can't open config file: XXXX/usr/lib/ssl/openssl.cnf"

To fix this, we need to provide the environment variable $OPENSSL_CONF
pointing to the correct config file location.

(From OE-Core rev: b3f148333515efdb746b78c57d62cfbf3321b21e)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 22:48:39 +01:00
Jackie Huang
fbf465c07d dropbear: add default config file to disable root login
root login is disabled by default for openssh and we can
enable it through IMAGE_FEATURES 'debug-tweaks' or
'allow-empty-password', so change to the same default
behavior for dropbear.

(From OE-Core rev: d3e69fa2fef83015658aa5fa1442bab5a8c3edaa)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 22:48:38 +01:00
Jackie Huang
7c1adcc6d7 rootfs-postcommands: split ssh_allow_empty_password
"allow root login" should not be bundled in ssh_allow_empty_password,
because some distro may want only one of "allow root login" and "allow
empty password", so split it out into ssh_allow_root_login and add new
imagefeature allow-root-login so they can be controlled separately,
debug-tweaks will still include both of them.

(From OE-Core rev: 1ab494f06a12548a902298afabd0a842161ef10d)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 22:48:38 +01:00
Robert Yang
be73d2bf15 oe/copy_buildsystem.py: add SDK_LAYERS_EXCLUDE_PATTERN
It is helpful when exclude a lot of layers. It uses python re, and
supports multiple patterns (separated by space).

(From OE-Core rev: b5170882feb0f3bc2dddc213b6d115dfa87b7cc1)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 22:48:38 +01:00
Yadi.hu
53ba34d143 busybox: handle syslog
If CONFIG_KLOGD is not enabled, then the related service file should
not be installed, The error message is below:

    Cannot add dependency job for unit busybox-klogd.service,
    ignoring: Unit busybox-klogd.service failed to load:
    No such file or directory.

So we should first check the configuration before we install these
service files.

(From OE-Core rev: c3cc402df996654bf6f838b1e79e16a8bdd6d4d7)

Signed-off-by: Yadi.hu <yadi.hu@windriver.com>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 22:48:38 +01:00
Joshua Watt
9b034e9a83 bitbake: runqueue: Stop on first unsatisfied dependency
(Bitbake rev: 9876b5da1c65bf09a790542cb4057f2d93868cf7)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 11:26:56 +01:00
Joshua Watt
53d1027625 bitbake: runqueue: Remove unused variable
(Bitbake rev: 91e5540f53aca93e3489255cfd95feaa0afd0498)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 11:26:56 +01:00
Joshua Watt
6b66f22686 bitbake: siggen: Delete trailing whitespace
(Bitbake rev: b2fd783fa23403e8f08d998951b05bcabb458af1)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 11:26:56 +01:00
Joshua Watt
714f2f5bae bitbake: runqueue: Remove trailing whitespace
(Bitbake rev: 9b9aecbbb1a3fa67f7d3b1669186c9f4ced3a590)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-09 11:26:56 +01:00
Scott Rifenbark
c7d9010a07 sdk-manual: Updates to section on obtaining the SDK
Updated the example to more current information.

(From yocto-docs rev: 6952824473f820cbe6d02cba9523c023652f68e3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-07 10:59:38 +01:00
Ross Burton
b44e88c09b minicom: remove dead URL from UPSTREAM_CHECK_URI
(From OE-Core rev: f57363d307d573554a84443dd774df9549587b94)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:59:33 +01:00
Joshua Watt
a4c1720eb3 classes/sstate: Remove unused argument
Removes an unused argument to pstaging_fetch()

(From OE-Core rev: ab0eb2bf0db6e7da7c9b9bb4d46621dbf76dcc2a)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:59:33 +01:00
Joshua Watt
660374adb6 classes/sstate: Remove trailing whitespace
(From OE-Core rev: dc7c181f231db1290ea7d7d5e42476e70a488d73)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:59:33 +01:00
Joshua Watt
c07d1447a9 sstatesig: Remove trailing whitespace
(From OE-Core rev: 2067172e2e5f90cb321ca124f4f9065ae8ad680f)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:59:33 +01:00
Ross Burton
c015c70bc2 distro_alias: remove obsolete python-distribute entry
(From OE-Core rev: 2af01bb4c41b3058f4f5e23c1e4ec94e2773e5ad)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Ross Burton
b11fc28a1c setuptools.bbclass: depend on python-setuptools
python-distribute is obsolete and is now simply a PROVIDES of python-setuptools,
so use the right name.

The identical change for setuptools3.bbclass was done in 2015 in 8922e60.

(From OE-Core rev: 87e38f0306400609aeac92bc13fd6f41d61e6271)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Ross Burton
1276f1755b meson: map mipsel TARGET_ARCH to mips for the cross file
Meson uses 'mips' for both big- and little-endian MIPS machines, so map mipsel
to mips.

(From OE-Core rev: 23734432a24da77aa838ad4bdcbcc294cde08348)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Ross Burton
23899a254e meson: send user to our wiki instead of Meson bug system
If a CPU family isn't recognised the first step should be to verify the mapping.
Send the user to a wiki page explaining what to do, instead of directly to the
Meson bug tracker.

(From OE-Core rev: 6c1e880a2bf4799cf451ff20c7ab93c55a755751)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Chen Qi
ef98f64b71 testsdk.bbclass: set PREMIRRORS for kernel to speed up test
Currently if we do a testsdkext task for the image, it would take
very long time to finish. The time is mostly spent fetching kernel
source via network.

We have done some configuration in auto.conf, trying to make use
of own-mirrors.bbclass to avoid fetching kernel via network.

However, the solution normally does not work. Below is some log
from log.do_fetch.

  DEBUG: Fetcher failure: Unable to find file \
  file:///path/to/downloads/git2_git.yoctoproject.org.linux-yocto.git.tar.gz \
  anywhere.

The tar.gz file is not available. It is generated only if
BB_GENERATE_MIRROR_TARBALLS is set to "1". The default value of
BB_GENERATE_MIRROR_TARBALLS is "0", and according to the manual, users
need choose to set it to "1" only if they are trying to make a source
mirror. So generally, this var's value is "0".

Anyway, we do need to avoid fetching kernel source from network when
doing testsdkext. So set PREMIRRORS in auto.conf to achieve this.

After this change, the time reduces from 4209.131s to 1399.436s on
my local machine.

[YOCTO #12729]

(From OE-Core rev: fd18ddb0664f69d77681590774b0123251a98728)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Andre McCurdy
bf669ec97f quilt.inc: minor recipe formatting tweaks
Minor comment update and re-order variables to align more closely to
the OE style-guide.

(From OE-Core rev: 0b0c294ed3a9f901b9a6afaf984ff4958c327c0e)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Andre McCurdy
5fc11ac170 quilt.inc: avoid using += with an over-ride (drop unmaintained darwin support)
Using += with an over-ride can be a source of confusion so try to
avoid the construct in core recipes.

In this case, the _darwin over-ride seems to be unmaintained. It was
added in early 2013 but has not been accounted for in subsequent
updates to the recipe and (from inspection) now appears to be broken.
Remove the _darwin over-ride rather than try to debug or fix it.

(From OE-Core rev: 74e87700f4eb8c96aa7db3c722dd122c7e6f4bd6)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Andre McCurdy
616075eca3 ca-certificates: avoid using += with an over-ride
Using += with an over-ride can be a source of confusion so try to
avoid the construct in core recipes.

In this case, the commit which added the over-ride seems to have been
buggy - the commit message mentions "add to SYSROOT_DIRS" rather than
a correct description of what the change actually did, ie "over-ride
SYSROOT_DIRS":

  http://git.openembedded.org/openembedded-core/commit/?id=355e49e19abb3e729c82a6de46ada8da8a257f58

The commit also appears to have been unnecessary as ${sysconfdir} is
appended to SYSROOT_DIRS for -native recipes by default from within
staging.bbclass.

To workaround the bug introduced by the first commit, a subsequent
commit later added ${datadir}/ca-certificates to the over-ride value
(which would not normally be necessary as ${datadir} is included in
the default value of SYSROOT_DIRS - ie the value which was lost due
to being over-ridden):

  http://git.openembedded.org/openembedded-core/commit/?id=09bb7718d74573be9a5db4d0737fb14126f6489c

Therefore the fix seem to be to remove the SYSROOT_DIRS over-ride
entirely - the default value of SYSROOT_DIRS set by staging.bbclass
includes both ${datadir} and ${sysconfdir} when building for -native.

(From OE-Core rev: c1f18efda0280644b4a4ce6f2988fb7ada71faf6)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Khem Raj
750835fa1b musl: Upgrade to latest
add kernel 4.17 inferfaces and wire additional syscalls and dladdr fixes

complete change log
https://git.musl-libc.org/cgit/musl/log/?qt=range&q=d5e55ba3320c30310ca1d8938925d5424a652422..193338e619de7c993efa2c0e1a87240bd732c181

(From OE-Core rev: 5646516dafbd2536e30d5f01c9e30fd34fcc7da1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Chen Qi
c2ccd089b2 buildtools-tarball: add nativesdk-libnss-nis
Recent glibc change removed libnss-nis module from glibc and a new
recipe libnss-nis.bb was added.

After this change, we need to make sure nativesdk-libnss-nis is also
included in buildtools-tarball, otherwise, we may encounter the following
error when using 'tar' command from buildtools-tarball.

  tar: relocation error: /lib/x86_64-linux-gnu/libnss_nis.so.2: \
       symbol _nsl_default_nss version GLIBC_PRIVATE not defined \
       in file libnsl.so.1 with link time reference

This error occured on my ubuntu16.04 host with 'nis' configured in
/etc/nssswitch.conf.

So add nativesdk-libnss-nis to buildtools-tarball to fix this problem.

(From OE-Core rev: f7c703dd43e112b6cd63c7512645a1d418569ad7)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Pablo Saavedra
303fb675f2 patch: Jail patch_task_patch_prefunc in classes/patch into the workdir
With PATCHTOOL=git patches the changes in the patch_task_postfunc
of the classes/patch. This works OK when the S dir is a Git repo
but doesn't if the source is a tarball.

The while condition in the patch_task_patch_prefunc must be
jailed into the WORKDIR. In the opposite, when you are executing
the recipe out of a Git subtree the function simply fails but when
your recipes are into a Git repo the patch_task_postfunc execute a
commit over your BSP local Git repo adding the changes in an
arbitrary Git repo found in the path from the SOURCE directory to
the '/'. This situation is highly probable in  cases like ~home
directories under the control of a .git repo or Yocto BSP which
manage the meta layers as git submodules.

This patch fix the changes introduced in

  classes/patch: when PATCHTOOL = "git" double-check the repository
  commit: 86ab56b551
  Author: Paul Eggleton <paul.eggleton@linux.intel.com>
  Date:   Tue Dec 5 14:36:58 2017 +1300

  classes/patch: when PATCHTOOL = "git" double-check the repository

  If a bug is present or the user has set PATCHTOOL = "git" on a source
  tree that isn't git, if we try to perform git operations (such as
  committing or changing branches) when extracting source, then we might
  in fact be running those operations on the metadata repository if the
  build directory is underneath, say, poky or OE-Core, and that could
  make a mess. Check if the source tree is a git repository and refuse
  to continue if it isn't.

(From OE-Core rev: db6ce9d8838b1f9064604654ab579da3e237f361)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Otavio Salvador
87b9992ae7 cmake: Update 3.10.3 -> 3.11.4
This updates CMake to the current stable release and drop many
backported patches in the process.

(From OE-Core rev: d942ec4ff649782d22afe49fd48839dbbfedc871)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Armin Kuster
93e9729569 nss: update to 3.38
remove patch now included in release.
includes: CVE-2018-0495

(From OE-Core rev: f0ad38d02da0bbcc1534dcc99d10436675932ed9)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Binghua Guan
2ca8eeeaef curl: support mbedtls in PACKAGECONFIG
(From OE-Core rev: 65b86e87a693fc7a76e163734cd2da56494302c8)

Signed-off-by: Binghua Guan <freebendy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Ross Burton
2d28e8370e distutils: clean the build tree in do_configure
base_do_configure() tries to do "make clean" if there is a Makefile present.
For most recipes using distutils there is not a Makefile, but we do know that
"setup.py clean" will work so call that instead.

(From OE-Core rev: b805cefb24566772a2beb5d02036266e45370913)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Ross Burton
780565b368 python-numpy: set CLEANBROKEN
The distutils class is about to do a clean via "setup.py clean", but numpy
doesn't support this and errors.

(From OE-Core rev: 67ae24ddb2bebbf8b1c455b8968f8c69844afb9d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:02 +01:00
Ioan-Adrian Ratiu
78a2bdae65 util-linux.inc: add fallocate & unshare to alternatives
These binaries can be provided by busybox triggering a conflict in
do_rootfs so update-alternatives needs to know about them to properly
create the symlinks.

(From OE-Core rev: 147da8fe7458a38598845958cb358bb094eba57b)

Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:01 +01:00
Zhang Xiao
9b7e107140 diffutils-ptest: add runtime dependency on make
(From OE-Core rev: 0ab4fc861cff69acc42446c22f7a7ed2e6128849)

Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:01 +01:00
Ross Burton
e3e8e1f125 mesa: patch cleanup
0001-Makefile.vulkan.am-explictly-add-lib-expat-to-intel-.patch was fixed a
different way upstream so remove.

0007-dri-i965-Add-missing-time.h-include.patch is now accepted upstream so mark
as backport.

(From OE-Core rev: 8fb143fe69147c32e945e798662d78e606bfe0a0)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-06 22:55:01 +01:00
Robert Yang
5fef9fcd58 git: 2.16.1 -> 2.18.0
* Removed code for "${D}${exec_prefix}/lib/perl-native/perl" since there is no
  such a directory now.
* Fixed perl related code.

(From OE-Core rev: 416a8c241aff0dca6b8b123e52cf8e2d40c74c8d)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Khem Raj
27e886edbe bind: Disable lmdb support
with bind 9.11.2+ when the build host has lmdb installed, bind configure looks into
host headers and wrongly interprets that it should be enabling lmdb

disable lmdb to fix

| configure: error: found lmdb include but not library.

(From OE-Core rev: 8c00b32211f25e38c1601ec8de47e6d4729dd49e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Martin Jansa
8b92648246 Revert "kernel-devicetree: Corrected normalize_dtb"
This reverts commit 2e7f3b2b9318d1e5395ad58131eafb873f614326.

It was breaking quite common use case that the dtb files are in
some subdirectory and then kernel build fails to build them.

As reported by khem:
http://lists.openembedded.org/pipermail/openembedded-core/2018-July/152578.html
me:
http://lists.openembedded.org/pipermail/openembedded-core/2018-July/152579.html
on raspberrypi3 build:

make[3]: *** No rule to make target 'arch/arm/boot/dts/dwc2.dtbo'.  Stop.
arch/arm/Makefile:345: recipe for target 'dwc2.dtbo' failed
make[2]: *** [dwc2.dtbo] Error 2
Makefile:146: recipe for target 'sub-make' failed

and trevor on the IRC:
20:35:49 < tlwoerner> the recent 2e7f3b2b9318d1e5395ad58131eafb873f614326 commit in oe-core seems to cause dragonboard-410c's kernel to fail to build
20:36:26 < tlwoerner> for the dragonboard-410c, KERNEL_DEVICETREE is set to "qcom/apq8016-sbc.dtb" but the build failure is:
20:36:37 < tlwoerner> *** No rule to make target 'arch/arm64/boot/dts/dts/qcom/apq8016-sbc.dtb'.  Stop.
20:36:44 < tlwoerner> i.e. the "qcom/" is getting removed
20:37:08 < tlwoerner> oops!!
20:37:33 < tlwoerner> wrong copy&paste, the actual error is:
20:37:36 < tlwoerner> *** No rule to make target 'arch/arm64/boot/dts/apq8016-sbc.dtb'.  Stop.
20:37:53 < tlwoerner> i.e., the "qcom/" is being stripped out

(From OE-Core rev: 0d725c76c113dec441a7319a6ee997e4ae8c4c88)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Chen Qi
946a48be9e oeqa/runtime/cases/parselog.py: ignore a message from weston
The following error message when starting core-image-weston is not
critical as long as the image could start up correctly. So extend
the common_errors list for parselog.py test case to ignore this
message.

  logind: cannot setup systemd-logind helper (-61), using legacy fallback

[YOCTO #12835]

(From OE-Core rev: edc244b2f346ad2eb3c90664ec17c904b356b992)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Khem Raj
fbfacebaa9 libnss-nis: Limit parse skip only for target recipe on musl
on the host side we are glibc based therefore some native and nativesdk
recipes might need this package even when we target musl based systems

(From OE-Core rev: c939255a88d367d19497184ed64b828f021e5ef4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Hongxu Jia
956ddcc9d4 libxml2: fix CVE-2017-8872
The htmlParseTryOrFinish function in HTMLparser.c in libxml2 2.9.4
allows attackers to cause a denial of service (buffer over-read) or
information disclosure.

https://bugzilla.gnome.org/show_bug.cgi?id=775200

(From OE-Core rev: dac867dc63af70ae992c50697d2be95c3e7b58bb)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Chunrong Guo
b6bb7e1345 kernel-fitimage: add support for ext2.gz initramfs files
(From OE-Core rev: e2e0c91c2c8229d9ed0958de98b5a9b14c6805d1)

Signed-off-by: Chunrong Guo <chunrong.guo@nxp.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Robert Yang
6a51dbf9bb nfs-utils: 2.1.1 -> 2.3.1
* Removed 001-configure-Allow-to-explicitly-disable-nfsidmap.patch,
  the nfsidmap is enabled when --enable-nfsv4, so I added a
  PACKAGECONFIG[nfsv4], and default is no since keyutils is not in oe-core by
  default.

* Removed 0001-include-stdint.h-for-UINT16_MAX-definition.patch and
  nfs-utils-1.2.3-sm-notify-res_init.patch since they are already in the
  source.

* Taken two patches from git://git.alpinelinux.org/aports to fix build
  with musl, and the nfs-utils-musl-res_querydomain.patch is for musl only.

(From OE-Core rev: 0b51ed606b2e7543b50dadae7c0822b0f0de77ef)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Binghua Guan
0996eecb21 oe.types.boolean: treat None as False
It is better to return False for None. E.g. checking an undefined
variable returned d.getVar().

(From OE-Core rev: 3048e9fa0df6b1edf79bd1723e0fc022c3332af1)

Signed-off-by: Binghua Guan <freebendy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Derek Straka
ec9ad3648b python3-dbus: update to latest stable version of 1.2.8
Remove the PACKAGECONFIG for documentation as it now requires python3-sphinx which is not
provided in any existing recipe.

(From OE-Core rev: 32dded1bd2f6c5cf6437330830399b72f15096c4)

Signed-off-by: Derek Straka <derek@asterius.io>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Alex Kiernan
280239af32 bmap-tools: Add python3-fcntl dependency
Add missing python3-fcntl dependency

(From OE-Core rev: 5821db83e5c21a7a85b8675951e4e9c1893e4b26)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Derek Straka
e0cbfaedc4 python: update to version 2.7.15
Update to the latest stable version

License-Update: Copyright year updated to include 2018

Remove the alignment patch that is included upstream

(From OE-Core rev: 855020053906478cea164ed254c08bedce48479d)

Signed-off-by: Derek Straka <derek@asterius.io>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Derek Straka
1855f7c7b7 python-numpy: update to 1.14.5
Update to the latest stable release

(From OE-Core rev: 3e667be761daaa83e16f67a89f9414620bbe2726)

Signed-off-by: Derek Straka <derek@asterius.io>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Derek Straka
3a94936470 python3-pip: update to version 10.0.1
License-Update: Update checksum for whitespace (CRLF) changes

Update to the latest stable version

(From OE-Core rev: 467321703315f6e50aa8bc0e28cfe56f86c5fab7)

Signed-off-by: Derek Straka <derek@asterius.io>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Derek Straka
ea71b6d909 python3-git: update to 2.1.10
python3-git was updated to the latest stable version

Tested on qemux86-64 using core-image-minimal

(From OE-Core rev: 6aa6f57c4d42d45ce1d3dbdca0e8f38ae31c0fbe)

Signed-off-by: Derek Straka <derek@asterius.io>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 11:39:06 +01:00
Ross Burton
611013a23a mesa: add lost Upstream-Status tag
(From OE-Core rev: 4cb6e5c734341b9d1240814ffecd01f574e3c347)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Ross Burton
740b931d39 elfutils: clean up patches
In the upgrade a large number of Upstream-Status tags were dropped, so add them
back.  I'm taking the stand that copying a patch Debian is carrying doesn't
count as a backport.

Remove two Debian-specific patches (one for Hurd, one for kfreebsd) so
we're not carrying useless patches.

Remove two patches that are no longer applied.

(From OE-Core rev: b039b26958655aab496b588f4e41a5dea1bfaac1)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Fabio Berton
3232070931 busybox: Add patch to ignore -c on umount command
Fix error when umounting filesystem on shutdown with a systemd distro.

See more datails here: [https://github.com/systemd/systemd/issues/7786]

(From OE-Core rev: ae23367c85d1a6c84c25736ac3c9a059acbc8dbe)

(From OE-Core rev: 29b1555481a30f9a7eda43f67f3e8ceb5da1b0aa)

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Rasmus Villemoes
a77a6dad43 util-linux: alternatify fstrim
I hit

update-alternatives: Error: not linking [...]/rootfs/sbin/fstrim to /bin/busybox.nosuid since [...]/rootfs/sbin/fstrim exists and is not a link

The solution seems to be to tell the alternatives system that util-linux
can also provide fstrim.

(From OE-Core rev: 7b317343a74bb0c31515b28879127972d50d1896)

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Otavio Salvador
66aefd4811 go: Update 1.10.2 -> 1.10.3
go1.10.3 (released 2018/06/05) includes fixes to the go command, and
the crypto/tls, crypto/x509, and strings packages. In particular, it
adds minimal support to the go command for the vgo transition.

(From OE-Core rev: 37f288d783257cb9e6c035aaab1b661b1016b4c3)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Otavio Salvador
74f0f46360 go: Update 1.9.6 -> 1.9.7
go1.9.7 (released 2018/06/05) includes fixes to the go command, and
the crypto/x509, and strings packages. In particular, it adds minimal
support to the go command for the vgo transition.

(From OE-Core rev: 98d3ec92e8953304db51c73aff7a4e81b97f668c)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Olof Johansson
6d3617d0f6 rpm: Avoid leaking temporary scriplet files
RPM writes each package scriptlet (post-/preinstall) to
/var/tmp/rpm-tmp.XXXXXX --- a lot of files potentially gets created.
When debugging is enabled, these temporary scriptlet files aren't
cleaned up at all and after a while this results in the filesystem
resources are eaten up (like running out of available inodes).

Normally, the temporary files would have been written to the tmp
directory of the target sysroot (which we can easily clean up), but in
this tree, you can't necessarily run the scriptlets.

Fixes [YOCTO #12792]

(From OE-Core rev: ffb0ece83e74797f4c3da3866bb3d691c388a5e5)

Signed-off-by: Olof Johansson <olofjn@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Ross Burton
846193422c fstests: remove
These tests are very old and there are better benchmarking systems available
now.

(From OE-Core rev: 516c1d5c2b2875ac103d4b5e8e482f852477dc8f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Robert Yang
7647d7a019 ccache: 3.3.5 -> 3.4.2
* The license file is changed to LICENSE.adoc, it is still GPLv3+.
* Removed Revert-Create-man-page-in-the-make-install-from-git-.patch, it was
  used for fixing a build failure of no asciidoc, but now there is no such a
  failure, so remove it.
* Refreshed 0002-dev.mk.in-fix-file-name-too-long.patch

(From OE-Core rev: b137af6c2dc3d6c21808ecc872fbebbac5f96295)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Robert Yang
63b40c9008 e2fsprogs: 1.43.8 -> 1.44.2
- Rebased Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch
- Removed backport patch 0001-libext2fs-fix-build-failure-in-swapfs.c-on-big-endia.patch
- The LIC_FILES_CHKSUM changed because it updated the address, others are the same

(From OE-Core rev: 2577fbed729ddc8deb7a657dbaa695d5bd7ef20d)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Robert Yang
4604255985 automake: 1.15.1 -> 1.16.1
* Refreshed the following patches:
  - 0001-automake-Add-default-libtool_tag-to-cppasm.patch
  - automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch
  - buildtest.patch
  - new_rt_path_for_test-driver.patch
  - performance.patch
  - python-libdir.patch

(From OE-Core rev: f63a493298de7d0cac36a65dafba5dae06c06a05)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Ross Burton
bf760b5d9d mesa: enable surfaceless platform
This platform is enabled by default but as we override the platform list doesn't
get enabled.

(From OE-Core rev: bff79adccf3b6d7e07abc965af96f9c1d499d309)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Ross Burton
0c1437563b libdrm: port to Meson
Drop the patch to install tests as the Meson build allows this.

Drop the patch to disable cunit as this predates recipe-specific-sysroots and
isn't required anymore.

As Meson always builds the test suite (instead of building before running it),
add a patch to fix compilation with musl.

(From OE-Core rev: 8dcebad54ded4fa9b3455b674be37ad0b10190d8)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Ross Burton
e03660f46e meson: validate cpu_family
Meson has a defined list of known CPU families but these are not currently
validated, so mistakes in cross files or new architectures are not noticed.

Backport a patch from upstream which warns on unknown architectures, but tweak
it to fatally error instead.  When we upgrade to Meson 0.47 the first half of
this patch can be dropped.

(From OE-Core rev: be194a459944dfcc41bae7315643a5d284683efc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Ross Burton
5193aedb45 meson: map architecture to correct values in cross file
The cross file specifies the host/target cpu_family, which should be one of a
defined set of values[1] but if it isn't Meson won't complain and instead
recipes may behave unexpectedly.

[1] http://mesonbuild.com/Reference-tables.html#cpu-families

(From OE-Core rev: e33b902a1dc4294dac148715f4d3ca5b0a6ee1b7)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Ross Burton
c2ba7177f1 meson: various class improvements
- Ensure that the PACKAGECONFIG arguments are always in EXTRA_OEMESON

- Log the arguments that are being passed in do_configure.

- Do verbose builds so the compile logs are useful for debugging build problems

(From OE-Core rev: 3112ff268d095a65ecb893dd6ca88a85b0f70446)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-05 00:22:08 +01:00
Richard Purdie
f2c04b450f send-error-report: Fix test for name > 50 chars
A name > 50 chars causes a 500 internal server error and should be warned
to the user but the code to do so currently doesn't work. Fix the logic.

(From OE-Core rev: 844f8d46f522a994dbff00245c4ffb07452577a8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 12:19:13 +01:00
Richard Purdie
83b0109149 send-error-report: Fix dubious error reporting
Currently this code prints things like:

ERROR: OK

which is unhelpful at best. After this change it would print:

ERROR: HTTP Error 500

which at least gives us something to work on.

(From OE-Core rev: 06079240e4eb0a3e1f528f6c8d6f3ea20754afee)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 12:19:13 +01:00
Richard Purdie
0118f01787 multilib: Tweak previous cross-canadian multilib fix
As well as setting RECIPE_SYSROOT we also need to set STAGING_DIR_HOST/TARGET.

(From OE-Core rev: 59a0a05235d80c86251cf45d7142bfc57f2e70d2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:17 +01:00
Richard Purdie
f755066a00 staging: Always use the default sysroot for allarch recipes
Without this, recipes can't find allarch data files like autoconf-archive.

(From OE-Core rev: 8ae70703f68853a8714a4fb8fa5d959b5e21a02d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:17 +01:00
Armin Kuster
e9f8826681 bind: update to ESV version 9.11.3
LIC_FILES_CHKSUM changed do to updated year

removed:
dont-test-on-host.patch, no longer implemented
drop use-python3-and-fix-install-lib-path.patch, they added the ability to pass in lib dir loctions
drop bind-confgen-build-unix.o-once.patch, fix included in update

Refresh other patches:
add python3 flag for PACKAGECONFIG to pull in python
add new config option --with-eddsa=no (needs openssl support not released)

Python support is disaled by default now.

Acked-by: Martin Hundebøll <mnhu@prevas.dk>
(From OE-Core rev: c37207d0aca5ad1ec2b45813274931be458ee7ed)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:17 +01:00
Armin Kuster
c026c365eb dhcp: update 4.4.1
include several CVE fixes.
CVE: CVE-2018-5733
CVE: CVE-2018-5732

LIC_CHKSUM_FILE updated to SPFX format

https://kb.isc.org/article/AA-01571

remove several patches now included in update.
Shared libarary support is now enabled in configure+lt, use it
and revert to autotools-brokensep
Refresh patches

Aligns support with bind 9.11.x

Add libxml2 support to configure.ac+lt

(From OE-Core rev: 7cb42ae87ef929bf7e08c559f09dc224c6e3d314)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:17 +01:00
Paulo Neves
396e269c5c kernel-devicetree: Corrected normalize_dtb
The normalize_dtb function was buggy because
it only converted from .dts suffix to .dtb
suffix if the user passed a full source path to
KERNEL_DEVICETREE containing the /dts/ path.
The problem is that if the user did that there
would be a warning.

On the othet hand if user just set the variable
KERNEL_DEVICETREE="file.dts" the bbclass translation
to the respective .dtb target did not occur and
make would fail saying it has no rule to make target
file.dts

This patch decouples the logic of having /dts/ in the
path from the target translation.

(From OE-Core rev: 2e7f3b2b9318d1e5395ad58131eafb873f614326)

Signed-off-by: Paulo Neves <ptsneves@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:17 +01:00
Kai Kang
9267988e30 webkitgtk: 2.20.2 -> 2.20.3
Upgrade webkitgtk from 2.20.2 to 2.20.3.
* update context of 0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch
* remove detect-atomics-during-configure.patch that webkitgtk 2.20.3
  contains the commit of better solution, see
  https://bugs.webkit.org/show_bug.cgi?id=161900#c9

(From OE-Core rev: 069426b0a7a6848a9290cd2e8cdce941d7e3c08c)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Hongxu Jia
8342cc7d2f ghostscript: fix CVE-2018-10194
https://nvd.nist.gov/vuln/detail/CVE-2018-10194

(From OE-Core rev: 4b56d6a61bfe4ca28d1301ae83898a979d3df73a)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Hongxu Jia
2e6e9c02f9 ncurses: 6.1 -> 6.1+20180630
(From OE-Core rev: 397410d6ca6864c9a956b8a1e602b97f57d0031f)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Hongxu Jia
eece28c5a1 libgcrypt: 1.8.2 -> 1.8.3
(From OE-Core rev: c15a7f739a929c3f43f17387c5a950c9d6a02203)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Hongxu Jia
08b3432e9f help2man-native: 1.47.5 -> 1.47.6
(From OE-Core rev: 93b0a04d77b0b513fefaa80fb3fb9334c549a76f)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Hongxu Jia
13542a824b man-pages: 4.14 -> 4.16
(From OE-Core rev: 5d84441e148a43f42697dc7493d6c37c713fe397)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Hongxu Jia
60857bd2d4 elfutils: 0.170 -> 0.172
- Update debian 0.170 patches and rebase them for 0.172;

- Drop 0001-Use-fallthrough-attribute.patch which was
  accepted by upstream;

- Drop 0001-Ensure-that-packed-structs-follow-the-gcc-memory-lay.patch
  which was backported from upstream;

(From OE-Core rev: dbbe9c1d1f822cf13a4c16b79bccf6bf5c4b91e4)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Hongxu Jia
b07db23759 man-db: 2.8.2 -> 2.8.3
(From OE-Core rev: 3e48ac4a65efca1653d6cd69434b0164af4ef39a)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Hongxu Jia
b68ea8b7fe gpgme: 1.10.0 -> 1.11.1
License-Update: copyright years updated 2001-2017 -> 2001-2018

(From OE-Core rev: 82b2a087e4f0f9ff9e602e7b507be94498a7a73b)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Hongxu Jia
29687df30a gnupg: 2.2.5 -> 2.2.8
(From OE-Core rev: 4d09b6a411504be78379dff172ef12620204b89a)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Christopher Larson
c9812c91fe recipetool: add 'edit' subcommand
This edits the recipe and any bbappends for the specified target.

(From OE-Core rev: 7aece42c6b4744c54a8eb05ff90bd3bf4fbb14a3)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Alex Kiernan
bba7c19eeb kernel-fitimage: Make DTB key insertion optional
If UBOOT_DTB_BINARY is empty, then don't try inserting the U-Boot
signing keys into the DTB. In this configuration the keys are expected
to be already present in U-Boot's DTB.

(From OE-Core rev: a0d74767f7bd18c853df6b0be162363076d8f965)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Alistair Francis
b2a13cef91 nspr: Add RISC-V support
(From OE-Core rev: 47b76dd02007e96fc95099524d43d517daf2aa6e)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Alistair Francis
c33c20733d qemu: Add RISC-V support
(From OE-Core rev: 188f4d258587a8bed9c91922ed8d141dbea4232d)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Christopher Larson
b0527c08d4 oe.path: add which_wild function
This is a function much like shutil.which or bb.utils.which, retaining
shutil.which-like function semantics, bb.utils.which's support for
returning available candidates for signatures, and most importantly,
supports wildcards, returning only the first occurrance of each found
pathname in the search path.

(From OE-Core rev: ca276fe139129eec383d77768ba91b808c462b04)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04 00:02:16 +01:00
Ming Liu
7cb125d7ee bitbake: runqueue.py: Fix a virtual class extension stamps issue
The file_name parameter passed to bb.parse.siggen.invalidate_task
should be a virtual file name instead of a real file name, or else you
will encounter a following error, for instance, when you run:

$ bitbake nativesdk-lzip -c unpack -f

the error arise:
| ERROR: An uncaught exception occurred in runqueue
| if file_name:
|    > taintfn = d.stamp[file_name] + '.' + task + '.taint'
| else:
| KeyError: 'virtual:nativesdk:/opt/poky/meta/recipes-extended/lzip/lzip_1.19.bb'

when multilib builds are used on OE.

(Bitbake rev: da37bdad46e11e7ce93ba7a59d58757b769dc16b)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:38:06 +01:00
Richard Purdie
9fff2b5a75 multilib: Fix issues with some cross-canadian toolchain sysroots
MACHINE = "qemumips64"
MULTILIBS = "multilib:lib64 multilib:lib32"
DEFAULTTUNE = "mips64-n32"
DEFAULTTUNE_virtclass-multilib-lib64 = "mips64"
DEFAULTTUNE_virtclass-multilib-lib32 = "mips32r2"

bitbake core-image-minimal -c populate_sdk

Results in gcc-cross-canadian-mips failing to build due to the use
of an incorrect sysroot, fix this. All nativesdk pieces should be in
the same sysroot (unprefixed).

(From OE-Core rev: ae48ee6627e6c1c4f1fcc4ead40edc968e64f7fe)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Richard Purdie
6ca693f284 staging: Improve fixup processing code
With the fixes to other parts of multilib, it was found that the fixup code's
assumptions about the recipe sysroot were incorrect. We need to use the value
calculated earlier in the function.

It turns out there is a rather neat way to do this which cleans up the code
as an added bonus.

(From OE-Core rev: 2c1978fe1a5b72167c49010fbdd39a9e2eefdef8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Richard Purdie
522d422498 lib/oe/sstatesig: Fix task mappings from multilib<->non-multilib contexts
If we're in a multilib context already and want a non-multilib context
this function returned incorrect values.

Try and retain optimisations for the common case not needing to request
a datastore but allow the different multilib/non-multilib combinations
to work too.

This fixes bugs where rootfs generation of a multilib image would
write into incorrect locations, or be unable to find sstate manifest
files due to incorrect data stores being used to expand data.

(From OE-Core rev: af7cd7823a8cc95c9f849498b2416cdb0d4d103e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Richard Purdie
29353297b5 classes/utils: Improve all_multilib_tune_values
Currently there is duplication in the code, we can clean this up
by extending the multilib variants list.

This code also currently fails its its called from an existing multilib
context since its assumes the data store passed in is the non-multilib
case. When building an image, say lib32-core-image-sato, this leads to
incorrect PATH values.

To fix this, we also request a data store for the "" variant allowing
this corner case to be fixed and for the function to correctly return
values for each multilib even when a multilib is already selected.

(From OE-Core rev: cc1c481560b81c223170230430308c7e2f08c812)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Richard Purdie
f1079cd193 staging/image: Fix multilib recipe sysroot issues
Currently if you enable multilib, then build an image, the multilib
recipe sysroot is build in the wrong WORKDIR. If you then clean and
rebuild the image you see "file exists" errors.

This patch ensures the real WORKDIR is used consistently and then
cleans/rebuilds also work correctly.

(From OE-Core rev: c013ae59a158378d06ecf8eb123df0a10bf986b4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Richard Purdie
e9e1107c61 lib/oe/utils: Improve get_multilib_datastore
Currently this function assumes that no multilib is applied and that
we're applying a multilib. This means if we're in multilib context
and want the non-multilib context we can't obtain it (and no other
function exists for this either).

Improve the function to allow this to be requested.

(From OE-Core rev: 295c5a3d19834a2fac255346d0a373449cfdd776)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Joshua Watt
9086a55d25 oe-selftest: Add bitbake-layer create-layer test
Adds a test that creates a layer, adds it to bblayers.conf, then ensure
that it appears properly in bitbake-layers show-layers.

(From OE-Core rev: 828462d2c39fe6f4d188b5eb129f7b2969e1ee18)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Joe Slater
058119da17 postinst-intercepts: do not execute any variant of delay_to_first_boot
As of commit 2c5c6e3ff we create multilib variants of intercept
hooks but we did not account for delay_to_first_boot variants.
This was covered up until commit a335e7867, but will now cause
an error.

(From OE-Core rev: 77f7c75481dceec36b7373f277c3bac811de9ef2)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Alp Özmert
42b3761274 license: Fix and extend recommendations for license packages.
Changed package recommendations so that the license package of a
recipe is recommended for all packages of a recipe instead of for one
package given by the recipe name.

Pre-patch behaviour results in a missing recommendation when a recipe
does not have a package with the same name.

(From OE-Core rev: 07343ff6282dd18432ecee5d9b80ad1fb86217f1)

Signed-off-by: Alp Özmert <info@ib-oezmert.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Alistair Francis
830880a688 recipes-kernel/linux: Enable NUMA Kconfig from MACHINE_FEATURES
If the user has set numa in their MACHINE_FEATURES we should enable
NUMA support in the kernel config.

(From OE-Core rev: e999816fec19750c4885e99930113bac21c225c0)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Acked-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Derek Straka
9f3eca4c80 python*-setuptools: update to 39.2.0
Update the python{3}-setuptools to the latest stable version

Tested on the qemu with core-image-minimal

(From OE-Core rev: 920dc165abe2484c240b76f95123f5a28f48f9ce)

Signed-off-by: Derek Straka <derek@asterius.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Otavio Salvador
9018bea0d1 mesa: Upgrade 18.1.2 -> 18.1.3
This upgrades mesa to the 18.1.3 stable release.

The changes can be found at:

https://www.mesa3d.org/relnotes/18.1.3.html

(From OE-Core rev: 4acdeb1529f5355b2849556e9f4ef302e35d3b0c)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Hongzhi.Song
ec2bb22965 oeqa/runtime: Add testcases for kernel sample
We are going to let runtime test support kernel tests. Now we just add
kernel self-contained sample tests. And we plan to add overall kernel
tests in the future.

This patch is just add kernel samples test which contains about 13 tests
enabled by kernel-sample.scc. So it needs statement,
KERNEL_FEATURES_append += " features/kernel-sample/kernel-sample.scc" in
local.conf.

(From OE-Core rev: be6ef728fd36049ea3822a54909a995bdecf6dd0)

Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Hongzhi.Song
28a1f5cd95 linux-yocto: Enable kernel-sample features for runtime tests
Enable kernel-sample features by default with the machine of qemu.

(From OE-Core rev: df7213e4799f9147560f61bbd466367ba02fd470)

Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Richard Purdie
0609f4fee3 xtrans: Fix multilib .pc file conflict
Error: Transaction check error:
  file /usr/share/pkgconfig/xtrans.pc from install of lib32-xtrans-dev-1:1.3.5-r0.core2_32 conflicts with file from package xtrans-dev-1:1.3.5-r0.core2_64

[YOCTO #12511]

(From OE-Core rev: e20da6dec99c4d2e6b803b07f8f79af0c54d1396)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Zhang Xiao
69b588ea2a python3: fix file conflict when multilib enabled
Config file python3.5m-config conflicts between 32 and 64 bit packages.
Use update-alternatives to add base_libdir as suffix to avoid it.

[YOCTO #12511]

(From OE-Core rev: bbb5e55abd0e628a5b0dae90d5eace0a2483f1fc)

Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 21:37:47 +01:00
Arsalan H. Awan
960ab9ef8c initrdscripts/init-live.sh: fix mounts w/ spaces fail to move to real rootfs
When there are spaces in the mount points of devices e.g.:

 a partition mounted at "/run/media/My Root Partition-sda1",

the initrd fails to move such mount points over to the
corresponding directories at /media under the real root filesystem,
and the mount points would appear at the same location as they were
mounted on when detected by initrd, for example:
 here: "/run/media/My Root Partition-sda1"
 instead of here: "/media/My Root Partition-sda1"

This causes issues such as:

  * The disks/partitions cannot be formated with any filesystem
    using e.g. mkfs.ext4 or mke2fs in general. When tried to do so
    by making sure the device is not mounted, it failed with
    errors such as:

    > /dev/sda1 is apparently in use by the system; will not make a
      filesystem here!
    > /dev/sda1: Device or resource busy while setting up superblock

  * The read/write operations become extremely slow. e.g. Under testing,
    it took approx. 2 hours just to copy 700 MB of data to the partition,
    and it took more than 40 minutes to delete that data from it.
    Same operations took under 5 minutes on a partition that had no
    spaces in its mount point (or that was successfully moved to real
    root by initrd and appeared under /media instead of /run/media).

This commit fixes such issues by quoting the arguments of failing mount
move commands and by parsing OCT or HEX encoded special characters
such as spaces to ASCII charecters in the mount points as kernel
populates the procfs like so.

(From OE-Core rev: 6f8f984ba363f764e83290b972ec31a90aad1603)

Signed-off-by: Arsalan H. Awan <Arsalan_Awan@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:45 +01:00
Joshua Watt
44b1fe43b0 bitbake-bblayers/create: Fix layer name generation
The path to where the layer was being created was taken verbatim as the
name of the layer when generating the layer.conf and README files from
templates. This causes problems in the layer.conf file because it would
result in strangely named variables like

 BBFILE_PATTERN_../my-layer = "..."

Instead of blindly taking the path, use the name of the last component
of the path as the layer name.

Additionally, rework the template files to use python format strings
with named parameters so that the same argument doesn't have to be
repeated multiple times.

[YOCTO #12808]

(From OE-Core rev: 01071c5d524a878d9de4814196cba2f15739796e)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:45 +01:00
Ross Burton
1dec2101f9 libsdl2: fix build race
There's an occasional build race from headers being generated in parallel with
other files which include the headers being compiled.  Solve this by adding more
dependencies.

[ YOCTO #12815 ]

(From OE-Core rev: 177f4782e1ffca1eed3c9b102d910239a3dceea4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:45 +01:00
Ross Burton
4205e87a77 libsoup: fix CVE-2018-12910
(From OE-Core rev: 112683815ed1f63a96e845f264a2fd3390c6d01b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:45 +01:00
Ross Burton
0c09b20036 openssl: disable ccache usage
ccache and openssl don't get on:

| make[1]: Entering directory '/home/prj/yocto/build/tmp/work/core2-64-poky-linux/openssl/1.0.2o-r0/openssl-1.0.2o/crypto'
| ccache: invalid option -- 'D'

Disable the use of ccache in the openssl recipe until someone root-causes this.

[ YOCTO #12810 ]

(From OE-Core rev: 8f9ceebb197dba10f2d08449de2dd64584de06bb)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:45 +01:00
Ioan-Adrian Ratiu
870fbbd5c0 wic: isoimage-isohybrid: debloat image of redundant rootfs
There's no reason to have that rootfs.img filesystem in the image:
it's not used for anything because both the EFI and legacy boot paths
use the /initrd which contains the same contents as the rootfs.img,
only compressed. It was probably forgotten in there :)

My iso went down from 224 to 94 mb.

Tested using UEFI/legacy boots on CD-roms, usb dongle and qemu VM's.

(From OE-Core rev: 4c784379524cb12807ef87a02ef1514ed45c1cc3)

Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:45 +01:00
Ioan-Adrian Ratiu
b591fb889b wic: isoimage-isohybrid: fix UEFI spec breakage
It's really good that OE supports multiple EFI_PROVIDERs and that
commit 9a1709278de87 ("wic: isoimage-isohybrid: use grub-efi from
deploy dir") makes re-use of the grub-efi built image, but we should
still respect the standard otherwise the ISO will not boot, so install
grub images as boot[x64|ia32].efi not ${PN}-boot[x64|ia32].efi.

(From OE-Core rev: 1608129692d92c239b5fb9244b649a32b9009254)

Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:44 +01:00
Daniel Díaz
417a9b8baa kmscube: Update to master from 2018-06-17
Changes from 0d8de4ce:
  c2d4ba8 drm-legacy: fix poll for flip event, actually exit on user input
  56c3917 formats: use weston's egl config matching logic, centralize format
  aac3788 Rework default modifier handling
  4f7cec0 Use weak functions to handle lack of gbm modifiers
  98f31bf cube-tex: make use of modifiers
  063ce5c gbm: fix fallback for drivers that don't support modifiers
  9dcce71 add MSAA

Also refresh gbm_bo_map/_unmap patch.

(From OE-Core rev: 4cc150f31f84d1cbc82df7d7f8fe045a06a9859e)

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:44 +01:00
Richard Purdie
d2d84b1f96 mesa: Fix parallel make race
Builds keep failing with a race over the generated header file, fix it!

[YOCTO #12828]

(From OE-Core rev: 3db0b1e798797013e3c553c1ce599191da2c3daa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:44 +01:00
Yi Zhao
f15587a6f4 gnu-efi: update to 3.0.8
(From OE-Core rev: 91dad340e32271d5db681bae34ed5599310e8703)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:44 +01:00
Yi Zhao
01d7d97d2a debianutils: update to 4.8.6
(From OE-Core rev: 706686da448c10071ba7b3f209127f3d19bebfd5)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:44 +01:00
Yi Zhao
4d412d63b2 libbsd: update to 0.9.1
License-Update: update COPYING file format

Drop 0001-Replace-__BEGIN_DECLS-and-__END_DECLS.patch and
0002-Remove-funopen.patch since they are already fixed upstream.

Backport 0001-flopen-Add-missing-fcntl.h-include.patch to fix build with
musl.

(From OE-Core rev: 62981e79de16a2352744c4b275f0549b1dafd17a)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:44 +01:00
Yi Zhao
65da09ad88 file: update to 5.33
Drop 0001-Add-P-prompt-into-Usage-info.patch since it is already fixed
upstream.

(From OE-Core rev: 02f8aff020762e77bf49587115f6b8fbc96296c9)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-29 11:07:44 +01:00
Richard Purdie
c7c64baa41 bitbake.conf: Allow BBINCLUDED to be unset
For some reason the layer index is expanding HOSTTOOLS before BBINCLUDED is
set so recent changes break it. This adds in a simple workaround to stop it b
reaking allowing the index to function correctly again.

(From OE-Core rev: 40a904bf8bc1279c3da0893c003f740f1d2066c2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 12:26:54 +01:00
Yi Zhao
7cf964d611 maintainers.inc: recipes cleanup
Cleanup the recipes which had been removed from oe-core.

(From OE-Core rev: 2dfbff215f3567252fdfbd5704e6740a30ad41b4)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 12:26:54 +01:00
Andre McCurdy
3fcec2cfa2 bitbake.conf: handle cmake -dev files packaging with default rules
Move packaging rules for cmake -dev files from cmake.bbclass into
bitbake.conf to handle recipes (e.g. harfbuzz 1.8.1) which build with
autotools but also install cmake -dev files.

(From OE-Core rev: 543e39ad5e2baa0f1ece013a89483783e6b15dd9)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 12:26:54 +01:00
Kristi Rifenbark
25d3577a61 ref-manual: Removed the do_rm_work_all Task
(From yocto-docs rev: 74a90f766a38c425a6ceb8a50ad24b23460f9640)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:58 +01:00
Kristi Rifenbark
2a74e8fb94 dev-manual, ref-manual: Documented NO_GENERIC_LICENSE
FIXES [YOCTO #12734]
Added a new variable description and created a new
section in the dev-manual.

(From yocto-docs rev: 854e641482171585c96ee5b9387b3e64146072b9)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
293183961e sdk-manual: Updates to "Building an SDK Installer" section.
Updated some links.  Also, rewrote the note about the libraries.
It was inaccurate.

(From yocto-docs rev: a0fce0ed36f3d0668e2d211433e7d93fb8833319)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
3658816dec sdk-manual: Updates to the section for locating SDK installers
I corrected some wrong information.  Provided the correct terminology
for the build host, and provided quotations for supplied values to
be in line with manual writing conventions.

(From yocto-docs rev: 420a7e96e7145dbef31d706cd257059619f71e12)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
9e5a745d98 sdk-manual: Updates to Depolying and Debugging
Made several formatting changes for selections.  These should
be using quotes and not being formatted in Courier.

(From yocto-docs rev: ec0a2d7e3cfd78fa4e508d5672f1c8265a3600a4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
bb02c59e0b sdk-manual: Updates to neon section building the project
Rendered a menu correctly instead of in formatting mode.

(From yocto-docs rev: 7c7da68171dfee037d02fa683c5cba047237fd52)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
0e870635f7 sdk-manual: Updates to configuring the cross-toolchains section.
The step that describes how Eclipse runs the Autotools is too
detailed and can run into problems as Autotools workflow changes.
I made it more general.

(From yocto-docs rev: 5d378a48f7237c620b7fc781b43ee86ea7522432)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
197ff097f7 sdk-manual: Updated Neon creating the project section
Needed to render fields and items from the dialog in normal
text, not in formatted text.

(From yocto-docs rev: 204750e3e2a2e777207d5f2044e38d5482254c46)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
48372e1bcc sdk-manual: Updates to configuring targe options sections
Both Neon and Oxygen needed some changes for correct use of the
way we refer to menus and fields.

(From yocto-docs rev: 1cb20243194e61b925df6b0a3b136233f1da8a57)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
74f4f81f62 sdk-manual: Updates to configuring the cross compiler options
Used correct formatting for menu items and items fromt the
dialog screens.

(From yocto-docs rev: 9f9d4d65036dc23d193961efb4ae3f236fc8935c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
736e1d7916 sdk-manual: Fixed section capitalization problem.
(From yocto-docs rev: caf927123da995378116a3653232859992e8f8ec)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
fa3643f2f5 sdk-manual: Used ordered list for sequence-dependent items.
The list in the "Configuring the Neon Eclipse Yocto Plug-In
section should be an ordered list and not a bulleted list.

(From yocto-docs rev: 87926b1fb62f3678bd328af3f018f1b17a982092)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
ad26f668c2 sdk-manual: Updates to Neon intalling YP plug-in from latest source
I provided similar wordings in places in this section as were provided
in the parallel "oxygen" section.

(From yocto-docs rev: f4fd33d10363ab84f1f76d3e4bf115df45aef77c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
6ee788433d sdk-manual: Updated the step to install the pre-build YP plug-in
Needed to consolidate a couple steps here.  When you add in the
location for the YP Plug-in, it auto-populates the options.
Updated the prose to reflect that.

(From yocto-docs rev: b16963844cd573e5f52289f8948b38a5d4a0f7f1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
ec9606df06 sdk-manual: Updated steps to configure Neon Eclipse IDE
The "Configuring the Neon Eclipse IDE" section needed a bit more
information in the note.  Telling the users that if some options
are already installed they will not appear in the list.

(From yocto-docs rev: fbee757f102ee51e4db9fb6bdfd516775de8b5e0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
1110ef2a9b sdk-manual: Updated the Neon step to unpack the tarball
Steps indicated you had to be in a clean directory to unpack the
tarball.  This is false.  You can be in any directory and unpack the
file.  Unpacking it puts all the files into a directory named
"eclipse".

(From yocto-docs rev: 3e2fc8d013b51c1a90a44cf32a6cd69e2ef80a22)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
f9bfbc700a sdk-manual: Updates to step to download Neon Eclipse.
Fixed this step to be more accurate.

(From yocto-docs rev: 1a5c25c57a8f5829a8c3302520661def856adb58)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Scott Rifenbark
9079fee0d2 sdk-manual: Fixed link in the intro section for Neon
The link was pointing to the Chapter 5 as if it were in a different
manual.  The link worked but should have been pointing to the actual
section of the Eclipse flow overview.  Fixed it.

(From yocto-docs rev: 4cc906bf383af837855f4c40fc107c77ff6d3ff9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:57 +01:00
Samuli Piippo
9dce78ba8f glib: remove unnecessary dependency to DISTRO_FEATURES
Since DISTRO_FEATURES was expanded in the comments, it created
task dependency to the full content of DISTRO_FEATURES, instead
of just the x11 used below. This prevented reuse of sstate-cache
when unrelated feature flags were changed.

(From OE-Core rev: a39830b77f567e2361f1ced49bfdce52591e220c)

Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:35 +01:00
Andre McCurdy
3e7d26e31a arch-armv7a.inc: default to Thumb2 instruction set for armv7a and above
Although there may still be specific cases which can benefit from the
ARM instruction set, the Thumb2 instruction set is generally a better
default for armv7a class CPUs. Distros such as Debian and Fedora have
been targeting Thumb2 by default for some time.

Note that setting ARM_INSTRUCTION_SET has no effect unless
TUNE_FEATURES contains "thumb" (which is controlled by the "t" suffix
in DEFAULTTUNE, e.g. armv7vehf-neon -vs- armv7vethf-neon, etc) so out
of tree machine configs may need to update their DEFAULTTUNE to take
advantage of this change.

(From OE-Core rev: c88304a78e528596ca481cabe273749c286c352a)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:35 +01:00
Olof Johansson
16f060c56f insane.bbclass: Don't let warnings make previous errors non-fatal
package_qa_handle_error() returns True on non-fatal issues and False on
fatal issues. But the current usage has been to do

  sane = package_qa_handle_error(...)

which would always reset sanity status to be that of the last issue
identified. This change the assignments to use the &= operator instead:

  sane &= package_qa_handle_error(...)

As far as I can tell, this is not a real problem in practice, because
warnings of different levels (WARN_QA, ERROR_QA) does not seem to have
been mixed in a way that triggered this issue.

(From OE-Core rev: 21d015f6c9927598d64c48c925638619b25cf232)

Signed-off-by: Olof Johansson <olofjn@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:35 +01:00
Olof Johansson
fed27b0945 insane.bbclass: Make missing license file fatal
If a license file referenced from LIC_FILES_CHKSUM doesn't exist,
insane.bbclass would output an error message, but would continue the
build. This change makes this error fatal (as I suspect has been the
intention).

(From OE-Core rev: da29440633706fb7a346391d97894d6f2cbb0d01)

Signed-off-by: Olof Johansson <olofjn@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:35 +01:00
Zheng Ruoqin
1d2e5eed40 glibc: fix CVE-2018-11237
glibc: fix CVE-2018-11237

(From OE-Core rev: b9b254da08c1db94ac9ded5f67d7e2e82e3b9be7)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:35 +01:00
Ricardo Salveti
ef143b3f16 gcc-8: define GLIBC_DYNAMIC_LINKER relative to SYSTEMLIBS_DIR on riscv
Refresh 0014-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
to also define GLIBC_DYNAMIC_LINKER relative to SYSTEMLIBS_DIR on riscv.

(From OE-Core rev: 12e859dfb70f8aae40edfd88b143b6c771f4e1a6)

Signed-off-by: Ricardo Salveti <ricardo@opensourcefoundries.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:35 +01:00
Ross Burton
aa4f9c3cd6 maintainers: assign systemtap to Victor Kanensky
(From OE-Core rev: ec957a03010949a93fbebd3e7b8b924ebc055ef7)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:35 +01:00
Alex Kiernan
8d33b69ed0 kernel: Set SOURCE_DATE_EPOCH to kernel git timestamp if not set
If SOURCE_DATE_EPOCH is unset (in addition to the existing "0" behaviour)
parse out the top most commit timestamp from the kernel tree to use as the
timestamp.

(From OE-Core rev: 2f0dd67a5a8d4269f5155004d532d8fa972b3223)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:35 +01:00
Alex Kiernan
3c46673100 image: Set COREBASE as the git directory for timestamp
When REPRODUCIBLE_TIMESTAMP_ROOTFS is unset and we want to parse one
from git, use COREBASE as the base for the git command so we have a
known repository which we're using. Without this the build may fail
if the current directory is not part of a git repository.

(From OE-Core rev: 1c2197f96d69547e10b74dc722d9a569d9a2b2b6)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:35 +01:00
Andre McCurdy
9fa6e7d487 db: drop legacy ARM specific SWP based mutex optimisation
Although the ARM SWP instruction may exist for ARMv6 and above, it's
not guaranteed to work, especially on SMP systems where it's use may
lead to instability at runtime, etc:

  https://community.arm.com/processors/b/blog/posts/locks-swps-and-two-smoking-barriers

Keeping the optimisation for architecture levels which pre-date SMP
(ie <= ARMv5) may be safe, however other distros (Buildroot, Debian,
Fedora, etc) are not doing so and mutex contention is likely to be
less of an issue on uniprocessor systems anyway, so the benefits of
this micro optimisations are not clear. Since OE uses ARMv5 qemu as
a proxy for testing all 32bit ARM architecture levels, it's desirable
to keep the ARMv5 builds aligned with later ARM architecture levels
wherever possible.

(From OE-Core rev: 7aa94abac09be6beb7ce14a2b9a409e934465706)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:22:35 +01:00
Martin Jansa
3f5b5c59e7 mdadm: fix one more issue when building with gcc8
(From OE-Core rev: 1a0ee6b0f194807b9eac1207c43ba3fae4d1f94c)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:22 +01:00
Damien Riegel
cd928d3a98 systemd: escape paths passed to shell
Systemd mount configuration file must have a name that match the mount
point directory they control. So for instance, if a mount file contains

    [Mount]
    ...
    Where=/mnt/my-data

The file must be named `mnt-my\x2ddata.mount`, or systemd will refuse to
honour it.

If this config file contains an [Install] section, it will silently fail
because the unit file is not escaped properly when systemctl is called.
To fix that, make sure paths are escaped through `shlex.quote`.

(From OE-Core rev: bbd9524256461f1bcafd4103edd575e668de76f8)

Signed-off-by: Damien Riegel <damien.riegel@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:22 +01:00
Otavio Salvador
1ad7165f7e util-linux: Enable unshare utility
It allows to run program with some namespaces unshared from parent.

(From OE-Core rev: 68e0080a924654245f04cf92c2579abd9e5bc658)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:22 +01:00
Armin Kuster
1e36258c5a nss: update to 3.37.1
remove Fix-compilation-for-X32.patch as a solution simular is included in update.

notable changes:
The TLS 1.3 implementation was updated to Draft 28.
The CA certificates list was updated to version 2.24.

refresh patches
fix 32 bit build error nss bug: https://bugzilla.mozilla.org/show_bug.cgi?format=default&id=1459739

(From OE-Core rev: 1ed072515f2a23de75ee56b86d8607c85b42605c)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Khem Raj
0507645e3b findutils: Refresh patches with devtool
We get fuzz warnings when applying these patches and devtool
reports it

(From OE-Core rev: cb3c0343becc8bb2ebf4e9c12782c509a3d7754d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Zheng Ruoqin
f7b03cebfe update-rc.d: Add nativesdk
Add nativesdk for update-rc.d.

(From OE-Core rev: 94793d08b0087b7f579b2ca5adae3343864e5f66)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Zheng Ruoqin
bca21299ab createrepo-c: Add nativesdk
Add nativesdk for createrepo-c.

(From OE-Core rev: 802c4029f90cee3027b6bc62c5201e8b29f02557)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Zheng Ruoqin
c8a038a3e6 libnewt-python: Add nativesdk
Add nativesdk for libnewt-python.

(From OE-Core rev: b992be195821e110691434e4a743b753bc04b3c4)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Zheng Ruoqin
3a71b8396a libnewt: Add nativesdk
Add nativesdk for libnewt.

(From OE-Core rev: 6414d23cd23fc6ed2d31a7b55fce1be82a09ae67)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Zheng Ruoqin
0ad86147b9 slang: add nativesdk
Add nativesdk for slang.

(From OE-Core rev: 458c835fe05279467ab781aab811498ab80f6904)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Christopher Larson
7cb64b9fe1 rng-tools: start earlier in the boot process
Entropy is needed earlier in the boot process in some cases, for example
connman can require it, and rgd doesn't require much, so move it earlier
in the boot process, 03 for sysvinit, and before sysinit for systemd.

(From OE-Core rev: 31c9b42aaeef3ad66e05e51b8209e87f2a22f091)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Christopher Larson
a060ff2871 rng-tools: drop unnecessary INHIBIT_UPDATERCD_BBCLASS
This was added as the recipe didn't inherit systemd, but it does inherit
systemd now.

(From OE-Core rev: c70b70f045a5ccf62b19060f3438b38d9914e9a2)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Christopher Larson
3cda7c73a9 dmidecode: correct docdir
Without this, the package clutters up the root of /usr/share/doc.

(From OE-Core rev: af4f0d44acef328245dfe1bd102bb5e61293ee2d)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Christopher Larson
653c96d8e1 ovmf: set PARALLEL_MAKE for target as well
This can fail for target, not just native.

(From OE-Core rev: 747c7dc8702d2241475894876d06a2f1f2b29fed)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Christopher Larson
6ba3abd76f console-tools: add missing flex/bison deps
(From OE-Core rev: 369bbf393438ae4a76ab0d1817463c6f735816ea)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Christopher Larson
f4c174a580 pcmciautils: depend on bison-native
pcmciautils needs yacc as well as lex.

(From OE-Core rev: dd5208ae22d47504443785daece4bff6331d8904)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Christopher Larson
2fe9a05666 oe.scriptutils.run_editor: ditch the error-prone argument quoting
Rather than trying to construct a string by quoting the files in an
error-prone way, parse $EDITOR to pass a list to subprocess rather than
a string.

(From OE-Core rev: c9fdf3d046606a0becb2e6b566a481c483b9021a)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Ross Burton
ea4318b78e oeqa: add Git mirror test
Add an automated test to exercise that fetching a git: recipe...
1) works over git without mirrors
2) fails without git connectivity or mirrors
3) works without git connectivity but with a mirror

(2) is done by setting GIT_PROXY_COMMAND to 'false' which should break any git
network operations.

[ YOCTO #12805 ]

(From OE-Core rev: 13269dfbbc62faef32595343dc78250fdb2a2946)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
He Zhe
c568e89c3d cryptodev: Fix build errors with v4.17+
Backport from upstream to update internal syscall function usage.
https://github.com/cryptodev-linux/cryptodev-linux
f60aa08c63fc02780554a0a12180a478ca27d49f

(From OE-Core rev: 270a1e9bcf26a43f5cbdc5b901c4c6f79495311d)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Maxin B. John
b5d848199e piglit: upgrade to latest revision
(From OE-Core rev: 15e876ada73fe8e98284d14dec166007b5767f19)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Chen Qi
de8563dcec avahi: fix error at boot time for avahi-daemon.service
The following error messages appear now and then at boot time.

  avahi-daemon/chroot.c: open() failed: No such file or directory
  Failed to open /etc/resolv.conf: Invalid argument

The problem is about /etc/resolv.conf. In Yocto's systemd based
systems, it's a symlink to /etc/resolv-conf.systemd which in turn
is a symlink to /run/systemd/resolve/resolv.conf. The systemd-resolved
service handles creation of /run/systemd/resolve/resolv.conf file.

So if avahi-daemon is started before systemd-resolved, the error messages
appear.

Fix this problem by making avahi-daemon start after systemd-resolved.

(From OE-Core rev: 647db1d9eb65b225ffbb6953f796232026bfa935)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Chen Qi
2b152d3658 avahi: reorganize codes
This patch does nothing but reorganizing codes.

avahi.inc is shared by avahi and avahi-ui recipes. Move common things
into it, and move uncommon things out of it.

(From OE-Core rev: 75529d384bfeaf52befccb892cf41f22dc02668b)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Maxin B. John
19c22fc08a libepoxy: upgrade 1.5.0 -> 1.5.2
Remove upstreamed patch:
        no-tests.patch

(From OE-Core rev: ec9fcdf14d3e2aefc5af1e53a69f056db6ea83f5)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Maxin B. John
42dde16a5c ofono: upgrade 1.23 -> 1.24
(From OE-Core rev: 84980150ff4a2c27acd1f27123f200e03bee8c4b)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Anders Roxell
851c5c197f iproute2: upgrade to release 4.17
(From OE-Core rev: c93dc7dd18a752d9523e11c6c4dce1908b5970b4)

Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Lei Maohui
caed345be3 nss: Fix build error for aarch64be.
(From OE-Core rev: 2d9a8a5539342faa1827f4902b1095a9f3448c66)

Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Denys Dmytriyenko
8ea511ec30 mtd-utils: upgrade 2.0.1 -> 2.0.2
(From OE-Core rev: b2cd021887e12d9f5b8ba48d9be3c2f2119c8e2a)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Hannu Lounento
8c81752681 systemd: remove the group 'lock'
The upstream commit 61f32bff6130a44d077886d38cff89ad161bf177 included in
the release v229 removed the use of the group:

    commit 61f32bff6130a44d077886d38cff89ad161bf177
    Author: Martin Pitt <martin.pitt@ubuntu.com>
    Date:   Mon Feb 1 12:09:34 2016 +0100

        tmpfiles: drop /run/lock/lockdev

        Hardly any software uses that any more, and better locking mechanisms like
        flock() have been available for many years.

        Also drop the corresponding "lock" group from sysusers.d/basic.conf.in, as
        nothing else is using this.

    [...]
    diff --git a/sysusers.d/basic.conf.in b/sysusers.d/basic.conf.in
    index 823d6cb20..b2dc5ebd4 100644
    --- a/sysusers.d/basic.conf.in
    +++ b/sysusers.d/basic.conf.in
    @@ -19,7 +19,6 @@ g wheel   -     -            -

     # Access to certain kernel and userspace facilities
     g kmem    -     -            -
    -g lock    -     -            -
     g tty     @TTY_GID@     -            -
     g utmp    -     -            -
    [...]

The upstream documentation doc/UIDS-GIDS.md says that basic.conf.in is "the
precise list of the currently defined groups":

    ## Special `systemd` GIDs

    `systemd` defines no special UIDs beyond what Linux already defines (see
    above). However, it does define some special group/GID assignments, which are
    primarily used for `systemd-udevd`'s device management. The precise list of the
    currently defined groups is found in this `sysusers.d` snippet:
    [basic.conf](https://raw.githubusercontent.com/systemd/systemd/master/sysusers.d/basic.conf.in)

    It's strongly recommended that downstream distributions include these groups in
    their default group databases.

Removing the creation of the group also avoids the need to define a GID
for it when using static ids.

(From OE-Core rev: da3659155cd1825a4a8d3d7c5288b4273714de15)

Signed-off-by: Hannu Lounento <hannu.lounento@vaisala.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Ross Burton
eb45228a00 packagegroup-full-cmdline: remove popt
popt is a library, so it makes no sense for this to be in a "command line"
packagegroup.

(From OE-Core rev: 4af90876914e5f2ccc5b7f833cd43c239c2dac55)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Ross Burton
e7fba1e655 lsbinitscripts: remove spurious build dependencies
A recipe that doesn't configure, doesn't compile, and just ships a single shell
script certainly does not need to build depend on popt and glib-2.0.

(From OE-Core rev: 8a771f22980f766b71f3ea0825568fc5c669e444)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Ross Burton
e4628cd1dc minicom: change SRC_URI to use Debian mirrors
Alioth is dead and the minicom project on Salsa (the replacement for Alioth)
doesn't actually have any files in, so just use the Debian mirror instead.

(From OE-Core rev: b0338efcdabeec79c568c74b6888d7d523e8e9dc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Ross Burton
a947ebce96 mirrors: add Debian snapshot mirror for 2018
Add a Debian snapshot mirror from 2018 (specifically, 10th March, the date 9.4
was released) to DEBIAN_MIRRORS.

(From OE-Core rev: f3f394913b4e4a7c601ad1158faaf8b9d493e1c7)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Ross Burton
9aba67124f shadow: update SRC_URI now Alioth is down
Alioth is dead so we can't use it for SRC_URI anymore.  There is a shadow
repository on GitHub which is the new upstream, but for some reason it is
missing the 4.2.1 tag and tarball that we use.  Also 4.2.1 was never uploaded
into Debian itself, so we can't use their mirror network either.

For now point SRC_URI at the Yocto Project source mirror and set
UPSTREAM_CHECK_URI so that we get nagged to upgrade to 4.6.

(From OE-Core rev: b3e246fef166030f327b5a852718ea907ada1759)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Ross Burton
40e0f186b9 chrpath: Alioth is dead, use DEBIAN_MIRROR
The previous host of chrpath, Alioth, is dead.  chrpath hasn't yet moved to
Salsa, so download the tarball from the Debian mirrors.

(From OE-Core rev: a8a2c5ec891286a1e7fd5ebdd33565f9ae3965c2)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Oleksandr Kravchuk
fce36d3b94 iso-codes: update to 3.79 and fix SRC_URI
Updated package to version 3.79.

The original FTP server, alioth.debian.org has been permanently taken
down by the Debian Project and replaced with salsa.debian.org.

Source: https://wiki.debian.org/Alioth

Also added HOMEPAGE, and BUGTRACKER.

[ tweak URL to work with checkpkg - RB ]

(From OE-Core rev: ee48cb68e5d91ba108cccdabce003233290ba816)

Signed-off-by: Oleksandr Kravchuk <dev@sashko.rv.ua>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Jeremy Puhlman
5269e832c2 atk: Correct multilib conflict in header.
(From OE-Core rev: 088814ef79015d9df0c8c8bc61219507cfe52ad5)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Jeremy Puhlman
e1ea678e0b qemu: CVE-2018-11806 slirp heap buffer overflow
(From OE-Core rev: c03cef42e079e4ed3d1e4f401722778157158bd6)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Ross Burton
faa46ac06b trace-cmd: remove
Perf is superior in most ways and is preferred.

(From OE-Core rev: bcdaa93dc70411da8876364ae67d0bf2456a3611)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Maxin B. John
bfd866d47f libunistring: upgrade to 0.9.10
License-Update: Checksum changed due to updation in documentation. There
are no changes in the license terms.

(From OE-Core rev: e8dfe9799e473e0ba911a0670aa23e8e8d700223)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 13:55:21 +01:00
Alejandro Enedino Hernandez Samaniego
85367c093e maintainers: Assign ownership of newlib and libgloss to Alejandro Hernandez
(From OE-Core rev: e38e56e28f2090e2b8013546f4dd76da8d59f766)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-27 12:22:18 +01:00
Kevin Hao
a5d1288804 meta-yocto-bsp: Workaround the Ethernet malfunction on edgerouter when building with gcc8
Update the kernel for v4.14 and v4.15 to include a workaround of
the Ethernet malfunction on edgerouter board when building with gcc8.

(From meta-yocto rev: a503919e72fad9556ab0f51a78b92ef3e0075e97)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:59:26 +01:00
He Zhe
93c8c17d58 meta-yocto-bsp: mpc8315e-rdb: Change kernel provider assignment to a weaker one
Currently mpc8315e-rdb.conf comes after local.conf during parsing. We should
give local.conf a chance to overwrite the kernel provider assignment, like
other BSPs.

(From meta-yocto rev: c5c70afb0306d96ae63d7a67d658524ed6d91e88)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
He Zhe
b2bdf63fa6 meta-yocto-bsp: Let yocto BSPs be able to build with linux-yocto-dev
(From meta-yocto rev: 28f141bc0015664c05c2cd33155fefd58def3b59)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Nikolai Merinov
070a06ec53 bitbake: fetch2: Use correct check in parameter handling in uri_replace()
If uri_find contain parameters then original URI parameters should
be checked against parameters from uri_find instead of parameters
from uri_replace.

(Bitbake rev: 8efa7826a61501589afa33eb698c0ab3a622bf2e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Khem Raj
d3139c29e3 gcc-8: Enable fp arch extention when fpu is available
This is especially needed when defaulting to hard-float ABI
Fixes errors e.g.
cc1: error: -mfloat-abi=hard: selected processor lacks an FPU

Fixes [YOCTO #12795]

(From OE-Core rev: 85981cbbf0ce48a6d82bc39248afa9540ca858d8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
6cf9204d3b oe/types: Allow boolean to accept an existing boolean
Exception: TypeError: boolean accepts a string, not '<class 'bool'>

is a bit annoying if you pass in True/False. Tweak the function
to make it forgive that situation.

(From OE-Core rev: 147f5a665fe5073027d92e4acac631f15f08f79f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Ross Burton
160477e043 maintainers: update Intel owners
(From OE-Core rev: b503b1fe9a71f70726c92f46a71fc49615256fce)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Ross Burton
2393054565 mesa: add lost Upstream-Status
(From OE-Core rev: 4972faf1bf20f07a1c1f608bc421c6fd05651594)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
1bbcc5931e bitbake.conf/testimage: Add in compatiblity hacks
The testimage changes break the autobuilder. The plan is to revert these hacks
but due to various changes happening with the autobuilder, we need these for now
to keep things working until we can move to the new autobuilder codebase.

(From OE-Core rev: 309a02931779f32d1139cc1169a039cbe4638706)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
e8a8359641 subversion: Update HOMEPAGE
(From OE-Core rev: 5da1b9c29afc249d5ff7e9514bf996227dc28c7a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Ross Burton
674cd5111b mktemp: remove
Both busybox and coreutils provide mktemp, and the only difference between those
(and standalone mktemp) is that coreutils supports --suffix.

Also mktemp.org has disappeared, so it's fair to assume that the standalone
mktemp (last released in 2010) is dead.

(From OE-Core rev: 59a825ca1e08a7e47fcbc807606103d463280e6c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Otavio Salvador
2e42ded224 mesa: Update 18.1.1 -> 18.1.2
This includes bug fixes for 18.1.x series. For list of changes check:

https://www.mesa3d.org/relnotes/18.1.2.html

(From OE-Core rev: 0cfc7488d67346bdc3975767366220e65f8de7d7)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Otavio Salvador
e3bec3951b linux-firmware: upgrade to d114732 revision
Following changes are applied:

d114732 Merge branch 'for-upstreaming-v1.7.2-vsw' of https://github.com/felix-cavium/linux-firmware
fe4a9d4 brcm: update firmware for bcm4356 pcie
a292181 brcm: update firmware for bcm4354 sdio
be1c535 brcm: update firmware for bcm43362 sdio
5ac5ad5 brcm: update firmware for bcm43340 sdio
ec734a3 brcm: update firmware for bcm43430 sdio
ba51e86 Update Cypress license termination clause
1fa9ce3 amdgpu: update vega10 VCE firmware to version 55.3
9489f55 linux-firmware: Update firmware patch for Intel Bluetooth 7265 (D0)
6be4747 linux-firmware:Update firmware patch for Intel Bluetooth 7265 (D1)
4949d88 Merge branch 'master' of https://github.com/vgarodia/linux-firmware
7602644 qcom: add venus firmware files for v5.2
7518922 Update AMD cpu microcode for family 15h
3f8243c linux-firmware: Update firmware patch for Intel Bluetooth 8260
2c4f7c1 qed: Add firmware 8.37.2.0
0e193ca linux-firmware: liquidio: update vswitch firmware to v1.7.2
2a9b2cf Merge branch 'for-upstreaming-v1.7.2' of https://github.com/felix-cavium/linux-firmware
112d300 linux-firmware: Update firmware file for Intel Bluetooth,8265
629a5e0 linux-firmware: Update firmware patch for Intel Bluetooth 7260 (B5/B6)
7035335 linux-firmware: Update firmware patch for Intel Bluetooth 7260 (B3/B4)
c84bd66 linux-firmware: Update firmware file for Intel Bluetooth,9260
897330f linux-firmware:Update firmware patch for Intel Bluetooth 7265 (D1)
e94352c linux-firmware: Update firmware file for Intel Bluetooth,9560
7710151 linux-firmware: Update AMD cpu microcode
be1e8c5 Merge commit 'a6327c5a5f74c3d11da76d0dcb51c6f5db7f8a35' of https://github.com/Netronome/linux-firmware
86d39f8 amdgpu: sync up polaris12 firmware with 18.10 release
b5320a9 amdgpu: sync up polaris11 firmware with 18.10 release
152c924 amdgpu: sync up polaris10 firmware with 18.10 release
0d672f7 amdgpu: sync up vega10 firmware with 18.10 release
30447b1 amdgpu: sync up carrizo firmware with 18.10 release
dd6f936 amdgpu: sync up topaz firmware with 18.10 release
de9c175 amdgpu: sync up stoney firmware with 18.10 release
5e22609 amdgpu: sync up tonga firmware with 18.10 release
499042e amdgpu: sync up fiji firmware with 18.10 release
1db3eec amdgpu: sync up raven firmware with 18.10 release
a6327c5 nfp: Add symlink for Agilio CX 1x40GbE flower firmware
8b78780 nfp: update Agilio SmartNIC flower firmware to rev AOTC-2.9.A.16
d3b6941 linux-firmware: liquidio: update firmware to v1.7.2

License-Update: copyright years updated and filelist updated.
(From OE-Core rev: 6be8744d1b8ee35eb47acd517cfa29b2a7f455d5)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Zhixiong Chi
ac6f587692 findutils: make -delete honour the -ignore_readdir_race option
the '-delete' action no longer complains about disappeared files
when the '-ignore_readdir_race' option is given, too. That action
will also returns true in such a case now.

(From OE-Core rev: f0808ee03a244be1fb485e0046983a05193b23b6)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Armin Kuster
4623554463 xkbcomp: update to 1.4.2
(From OE-Core rev: ed26f8ffaf47dccd6fa0f9f1e0421b856e3555f3)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Armin Kuster
dde8c03212 xf86-video-vmware: update to 13.3.0
(From OE-Core rev: cdc00f912f3af54d14f3225801bde7b5d0982bb3)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Armin Kuster
e6956ca909 xf86-input-evdev: update 2.10.6
(From OE-Core rev: 61f72d40e44ad7f4629623eb4e0f2bbfe0534d53)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Armin Kuster
b1b6677fb4 xkeyboard-config: update to 2.24
(From OE-Core rev: 64a3e9c783bba5e26994a4d5c4a753ee4eb0a142)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
dc4d7bb8f7 subversion: 1.9.7 -> 1.10.0
License changed since licenses for the bundled linenoise and lz4 codebases
were added. We don't build either of them. Add MIT since utf8proc is MIT
licensed.

Configure to use the internal utf8proc codebase since we have no copy of that in
OE-Core, nor any need to add one.

Add a dependency on lz4 which is now required rather than using the internal
codebase within subversion.

Drop a patch merged upstream.

(From OE-Core rev: 5bb47984af79fe2e8c3ba5bc6895741131f03bcd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
5f12e1841a lttng-modules: upgrade 2.10.5 -> 2.10.6
(From OE-Core rev: 3ba2701c2cb837c4c8590604021c4a6c50bf894b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
fae0a9a439 image/testimage: Rework auto image test execution
The TEST_IMAGE interface has never particularly worked and image testing currently
gets configured manually.

This reworks the interface to better serve the needs of its users, replacing it
with TESTIMAGE_AUTO.

This does away with the need for the separate class due to better bitbake APIs for
changing tasks.

TESTIMAGE_AUTO will automatically boot under qemu any image that is built. It
also adds in dependencies so that any SDK for which testing is requested will
automatically be built first.

The code in bitbake.conf was error prone (e.g. testsdk wasn't considered), this
improves it to standardise on IMAGE_CLASSES as the standard configuration mechanism.

(From OE-Core rev: b34d44f3dfea8254826a46701a4fe3769a900434)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
83d791089f image/image-live: Improve handling of live/iso/hddimg types (drop NOISO/NOHDD)
The logic can be improved and the historical NOISO/NOHDD variables
moved into the class and out of common code.

The variables are also then removed in favour of directly controlling
the behaviour from IMAGE_FSTYPES in line with all the other image types.

(From OE-Core rev: a052caed563a09a01f5a3ea1f0477f379c05bee0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
25a2244265 image: Combine all the class handling code into a single section
Right now the code handling class inherits is spread all over and
its hard to get an idea of what is happening overall. Combine all
the code together to make it clearer. There shoould be no functionality
changes.

(From OE-Core rev: 9b6cda7ff443eebfc5a5a8c9442c93a881807dab)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
52b11deeb9 rm_work: Simplify looping code
The current looping structure is confusing, simplify it a bit
to improve readability. Should be no functionality changes.

(From OE-Core rev: 498065b51b205b43d7dae1008014eba85a8f138c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
79f6fa34ae rm_work: Improve code comments
This function is a little obtuse, add more comments about what its
doing and why. Also combine some of the statements where possible
to improve clarity.

(From OE-Core rev: 3e0c22e9bd9757cd458a073a3f043a48184d7bab)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
3b78eebd09 rm_work: The do_setscene task has not existed for years
Once, there were do_setscene tasks but this hasn't been the case for years,
drop the old code.

(From OE-Core rev: b13a691f1cfc0d68a0f94c343fa3a1b987dbe117)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
80443c42fd rm_work: Stop appending _setscene to do_image_complete_setscene stamps
This is a reworked version of the issue which 5479654eea
attempted to fix.

"""
Each time I build my image after the first, I end up with a
do_image_complete_setscene stamp file with an extra _setscene appended to
the name. Eventually, the filenames end up being so long that mv complains
and the build fails.

It looks like this behaviour was introduced when the special handling was
added for do_image_complete in 2ff9d40dc88d43567472218cf3d3faf414398c71.
"""

Instead of the original approach which broke do_package_setscene, add
an entry to explictly stop the stacking _setscene pieces on do_image_complete.

It's not straightforward to just move *do_image_complete* after the
*_setscene* pattern because do_image_complete stamps would then match
do_image*.

(From OE-Core rev: 0f4e734e0ef40076351ed7ff795aac36197e4949)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Richard Purdie
2869b56efa Revert "rm_work: Stop appending _setscene to do_image_complete_setscene stamps"
Whilst this fixes the do_image_complete_setscene append problem, it creates a
new problem since the code can no longer reach the *do_package_setscene.*
code block below it. This breaks builds as per [YOCTO #12765]. Revert this
change in search of a better fix.

This reverts commit 5479654eea.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Ross Burton
dbe48de0a5 xf86-video-intel: update dependencies for the tools
(From OE-Core rev: 76a701e71029fb3685f2939ee9066e7f8653f0c2)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Ross Burton
33d336626d xf86-video-intel: disable DRI 1, enable DRI 3
DRI 1 is only needed for UMS on i810[1], and modern X servers (1.20 onwards)
don't support DRI 1, so disable DRI 1.

However, DRI 3 isn't new and unreliable anymore, so enable support for it.

Also, now that the *proto packages are all part of xorgproto which is a required
DEPENDS, we don't need to mention it over and over.

[1] https://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=359477215092ac1b602ad1e2f17a28963d9224c2

(From OE-Core rev: 329364b3b33b1d769bfa6917a51131c64ef77ddf)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Ross Burton
f8df11d290 xf86-video-intel: patch cleanup
always_include_xorg_server.h.patch is merged upstream, so drop it.

disable-x11-dri3.patch was purely to solve determinism issues with the shared sysroot, which
we don't have anymore.

Also remove redundant tarball checksums as this recipe fetches from git.

(From OE-Core rev: a40c5dcdd3f5b05d1a1bb348753a1d9101ef5152)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Ross Burton
55dfcf5808 xf86-video-omapfb: remove
We were shipping the Debian fork of the original code, but that has disappeared
now that Alioth is down.  The driver didn't provide anything better than the
kernel and xserver's modesetting driver, so remove it.

(From OE-Core rev: 0e0b5e8abff3b0c30676bcfb76c60388ad2cfafe)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Ross Burton
ebdaf83e01 xf86-video-omap: remove
This driver is dead upstream and doesn't appear to provide any advantage over
upstream kernel drivers and xserver's modesetting support.

(From OE-Core rev: 61611dec98e5b13e95bb42500d6b261cdb95feb1)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-21 09:34:40 +01:00
Scott Rifenbark
d05a268c50 bitbake: bitbake-user-manual: Added "number_threads" varflag
You can now limit on a task-specific basis the number of threads
a task will use.  This is useful for machines that have high
numbers of cores and need to be rate-limited due to various
resource constraints.

(Bitbake rev: 4937ed392fdc4442dd91f644f329dda29f27242c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-19 17:09:17 +01:00
Khem Raj
53dfa673d7 musl: Upgrade to latest
Changelog:
https://git.musl-libc.org/cgit/musl/log/?qt=range&q=941bd884cc0221d051840ce6d21650339e711863..d5e55ba3320c30310ca1d8938925d5424a652422

(From OE-Core rev: b34e86b4ee13d53f09d558e613d5b66c845edde6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Otavio Salvador
b77d478b3d mesa: Update 18.0.2 -> 18.1.1
This includes all bugfixes of 18.0.x series and major new
features. For list of changes check:

https://www.mesa3d.org/relnotes/18.1.0.html
https://www.mesa3d.org/relnotes/18.1.1.html

(From OE-Core rev: 8803a6e31a4b64eb9d3c146567375c98972074df)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Chen Qi
559f4951e2 runqemu-ifdown: ensure to clean up TAP
In runqemu-ifup, ip command is used to add TAP; in runqemu-ifdown,
we should do the reversed logic, using ip command to delete TAP, to
make sure TAP is cleaned up by ourselves.

I can see that in runqemu-ifdown script, 'tunctl -d' and 'iptables'
commands are used to deal with TAP, but these two commands cannot
make sure that the TAP is cleaned up.

runqemu-ifup uses 'ip' to set up TAP, we really need to do the opposite
in runqemu-ifdown.

(From OE-Core rev: 322e41de7f4fb21315bf75f1038314c31ac4754b)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Chen Qi
27061a274f runqemu: add SIGTERM handler to make sure things are cleaned up
Add SIGTERM handler so that runqemu could clean things up correctly
when receving such signal.

This problem was originally observed when running testimage. On
some hosts, after running testimage task, the user has to manually
operate on the tap interface (e.g. `sudo ip link del tap0') in order
for the next runqemu command to launch successfully.

The problem is about runqemu, SIGTERM and network manager on the host.

In testimage task, the runqemu process will receive SIGTERM. In such
situation, its cleanup() function is not run, resulting in tap interface
not cleaned up. On some hosts, the network manager will bring down the
tap interface automatically, thus this problem. I saw this problem on
Fedora21.

I think we'd better just clean up the tap interface ourselves.

So this patch adds to runqemu a SIGTERM handler, in which the actual
qemu process is terminated and other things cleaned up.

(From OE-Core rev: 02709d4709c56f9b9095e3555da35b659b03a8a3)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
ffeb85ab80 bitbake-layers/create: add LAYERSERIES_COMPAT
Derive the value for template layer.conf from core layer and add
dependendency on it too.

Fixes [YOCTO #12767]

(From OE-Core rev: 461c305078c40fca8b5382e393e3e8513d4abfa4)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Alexander Kanavin
4699d29ac2 package_manager.py: rework postinst_intercept failures
Previously a warning was printed regardless of context and nature
of the failure, and because it was only a warning, it was mostly ignored.

Now, the following is considered when a failure happens:
1) whether we are installing packages into a target image, or populating
a SDK with host or target packages.
2) whether the failure was due to qemu not supporting the target machine.

Accordingly, warnings, notes, and failures are printed, and postponing
to first boot happens if possible.

(From OE-Core rev: a335e78672b1e1ae3ea6427f6a805218e513bb52)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Alexander Kanavin
bdfca89b80 image.bbclass, populate_sdk_base.bbclass: make all variants of qemuwrapper-cross available in sysroots
The variants are needed in particular when executing postinst_intercepts as
those may require running binaries built for different architectures and
against different sets of library paths, when multilib is in use (or nativesdk host
packages are installed), so a single global variant of the script was not working.

I do understand expanding PATH and DEPENDS in this manner is hackish, however
every other approach I could think of is worse.

(From OE-Core rev: 2f31eecc40ea4d0865aa28d65a0ba7d5a629393a)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Alexander Kanavin
87631af640 qemuwrapper-cross: enable multilib and nativesdk variants of the script
Previously only one global variant of the script was created,
which caused numerous issues:

1) multilib was not properly supported due to multilib variants each
needing their own version of the qemu binary and library paths to be set
2) nativesdk was not properly supported for the same reason

This patch also moves setting LD_LIBRARY_PATH directly into the
recipe, as passing it down from other recipes did not work when
said recipes were allarch, and adjusts calls to qemuwrapper from
postinst-intercepts, so that its correct variant is selected.

Also, the various qemu fallbacks in qemuwrapper script are all removed,
as they are no longer necessary.

(From OE-Core rev: d10fd6ae3fe46290c6e3a5250878966d9f12ca3f)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Alexander Kanavin
e67551e80e udev: only run qemu from postinst scripts if qemu usermode is supported
Otherwise, there would be a failure at image creation time; avoid
that by postponing to first boot explicitly.

(From OE-Core rev: f3247720dc4b1c49e8fad734e20b17ba55843b97)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Alexander Kanavin
4f3b7477a3 gtk-immodules-cache.bbclass: convert cache creation to postinst_intercept mechanism
This has the following benefits:
- consistent with how the other caches are created into target rootfs
- only runs once per package manager transaction, instead of once per every immodule package
- correctly postpones to first boot if qemu is not working; from postinst itself
this would've required special arrangements to avoid what is now a do_rootfs failure.

(From OE-Core rev: cca3c084b6c9bf600d7306e3fe12c4f236b78656)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Andre McCurdy
76b414c3cd gcc-target.inc: configure gcc for armv7ve targets to default to armv7ve
Originally these ARM specific EXTRA_OECONF options were applied to
both gcc for the target and gcc-cross. That lead to a compromise
being made: gcc on the target was configured to default to an ARM
architecture which was at least compatible with the target (but not
necessarily an exact match) and gcc-cross was configured default to
armv7a for both armv7a and armv7ve (to avoid gcc-cross rebuilds when
switching between the two).

However, when these ARM specific EXTRA_OECONF options were moved from
gcc-configure-common.inc into gcc-target.inc (ie they were made to
apply only to gcc on the target) the compromise no longer needed to
be made.

  http://git.openembedded.org/openembedded-core/commit/?id=851937dde81de2a9ef54c5f19a78fb12fb82afd4

(From OE-Core rev: 3c368282741e9de1f96988e127b86a6a01b6a26f)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Sascha Silbe
9a855aa403 gobject-introspection: relocate typelib repository for native builds
gobject-introspection hard-codes the install path in the search path
for the typelib repository, pretty much the same way glib behaves for
the gio modules directory. Like for glib, this causes problems when
gobject-introspection-native is restored from sstate with a different
build directory.

Based on the glib fix by Ross Burton <ross.burton@intel.com>.

(From OE-Core rev: e4cee788056133ce0a49bc96e54399bdd7825aa3)

Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Stefan Agner
261ee18968 rootfs.py: for dpkg/opkg, don't install postinsts if package management is present
If package management is present opkg/dpkg will bring the original
copy of the postinsts scripts with the metadata and will be able to
handle postinsts just fine. In fact, it is preferred to let package
management handle the postinsts scripts in this case since it will
keep the package managers database up-to-date too. The run-postinsts
scripts will make sure the package manager gets invoked instead of
the scripts directly.

Note: Before commit 5aae19959a44 ("rootfs.py: Change logic to
unistall packages") rootfs.py did not install /etc/$pm-postinsts
too. It is not clear whether that change was intentionally or just
a bug. This commit fixes/reverts that aspect of the commit.

(From OE-Core rev: 4b571c59e3e6bd8b22a63f547a95757aeba5b638)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Stefan Agner
a7d0346825 run-postinsts: for dpkg/opkg, do not rely on /etc/*-postinsts
Start opkg/dpkg as soon as the respective package managers status
file is present, no matter whether /etc/$pm-postinsts exists. This
decouples the implicit link between postinsts scripts in /etc and
the package manager: Currently the package manager is only started
if those scripts are present, although the package manager does not
use those scripts at all! Package managers install their own set of
postinst scripts.

The behavior when using rpm packages stays the same.

Note that using the package managers capability to execute postinst
scripts is preferred for good reasons: It makes sure that the
package managers database reflects that the packages have been
completely installed and configured.

This change allows to drop installation of the postinsts scripts
when package management is present. This will be done in a separate
change.

Note: Before commit 5aae19959a44 ("rootfs.py: Change logic to
unistall packages") rootfs.py did not install /etc/$pm-postinsts
when package management is installed! The change caused YOCTO #8235
which lead to the behavior change of run-postinsts in first place.

(From OE-Core rev: 1af421fcf05457223bf271f3951599b6c150cdff)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Stefan Agner
dcef944e33 opkg: avoid running postinst scripts twice when using systemd
OpenEmbedded has a built-in mechanism to run postinst scripts offline
at build time or, if necessary, on first boot (delayed execution). If
the latter is the case and systemd is in use, two services end up
doing the same thing:
- opkg-configure.service starts "opkg configure" directly.
- run-postinsts.service starts "/usr/sbin/run-postinsts" which runs
  postinst scripts stored in /etc/ipk-postinsts/ or "opkg configure"
  if package management is installed.

Since the run-postinsts.service is also used in cases where no
package management is in use, it is the primary means of handling
postinsts.

Get rid of the opkg-configure.service to avoid duplicate opkg
configure execution.

(From OE-Core rev: 23dcf7ea3af84721fac126a2b2f0f100f7266368)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
917282c41b gst-validate: upgrade 1.14.0 -> 1.14.1
Bugfixes only. Please see:

https://gstreamer.freedesktop.org/releases/1.14/#1.14.1

(From OE-Core rev: c4cdfc0507bba6edbdd361fd61a95eef8c76bb87)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
a5402ba7dd gstreamer1.0-rtsp-server: upgrade 1.14.0 -> 1.14.1
Bugfixes only. Please see:

https://gstreamer.freedesktop.org/releases/1.14/#1.14.1

(From OE-Core rev: 62d0d19173532fe4f6e6c3c87774d5c66cab6bfb)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
181fefbed2 gstreamer1.0-omx: upgrade 1.14.0 -> 1.14.1
Bugfixes only. Please see:

https://gstreamer.freedesktop.org/releases/1.14/#1.14.1

(From OE-Core rev: bfabe0672fce7ba9309dd9bc9c77f592777834cc)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
12da5ee245 gstreamer1.0-python: upgrade 1.14.0 -> 1.14.1
Bugfixes only. Please see:

https://gstreamer.freedesktop.org/releases/1.14/#1.14.1

(From OE-Core rev: 8a57c84ca4c66140e35e21b3ed43d29b13990928)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
9c51f290bc gstreamer1.0-libav: upgrade 1.14.0 -> 1.14.1
Bugfixes only. Please see:

https://gstreamer.freedesktop.org/releases/1.14/#1.14.1

(From OE-Core rev: 77fe0eea15730792ece3474828e83b35cbe2a108)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
99ba6772ae gstreamer1.0-vaapi: upgrade 1.14.0 -> 1.14.1
Bugfixes only. Please see:

https://gstreamer.freedesktop.org/releases/1.14/#1.14.1

(From OE-Core rev: 6f8330d0142b5ecd59c189938117937f667ef1ce)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
74f7629cf9 gstreamer1.0-plugins-ugly: upgrade 1.14.0 -> 1.14.1
Bugfixes only. Please see:

https://gstreamer.freedesktop.org/releases/1.14/#1.14.1

(From OE-Core rev: 23d2fbc5d525b01f426a64055ff86ddc4f3c0026)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
0bdb926225 gstreamer1.0-plugins-bad: upgrade 1.14.0 -> 1.14.1
Bugfixes only. Please see:

https://gstreamer.freedesktop.org/releases/1.14/#1.14.1

(From OE-Core rev: 12ff23f94b43b190ea4f9392f7ba9592362a9c50)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
f0aa326844 gstreamer1.0-plugins-good: upgrade 1.14.0 -> 1.14.1
Bugfixes only. Please see:

https://gstreamer.freedesktop.org/releases/1.14/#1.14.1

(From OE-Core rev: 308a5be3dcd0373bd09db253c15dc39d39b6e48f)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
ae6734b1f4 gstreamer1.0-plugins-base: upgrade 1.14.0 -> 1.14.1
Bugfixes only. Please see:

https://gstreamer.freedesktop.org/releases/1.14/#1.14.1

Remove a backport patch and rebase one other patch.

(From OE-Core rev: aea86b875ebf9fbc767d231f87bd33aa9ab18efa)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:58 +01:00
Anuj Mittal
c9bd85d503 gstreamer1.0: upgrade 1.14.0 -> 1.14.1
(From OE-Core rev: 82e2deb1eee76c10cf5f2785a8b0198276e0d854)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Anuj Mittal
760127420c gstreamer: enable ptest support
Make sure that the tests are packaged and can be executed
when ptest is enabled. Also, remove build host specific references
from Makefile.

(From OE-Core rev: d283b0eb909c78b020794ba78e7ec64c3fbee86f)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Chen Qi
c7fbb0251b oeqa/runtime/cases/rpm.py: change to use base-passwd-doc
The test cases assume that rpm-doc is built out, as it says it its
comment. This is not always true. And it sometimes results in
following error.

  |     cls.tc.target.copyTo(test_file, dst)
  | UnboundLocalError: local variable 'test_file' referenced before assignment

Change to use base-passwd-doc, as this package is more likely to be
built out than rpm-doc.

(From OE-Core rev: 2e23543b48921182307065c1fa9e8b9d7fbb3cdc)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Maxin B. John
fa62280e45 xdg-utils: upgrade to 1.1.3
1.1.2 -> 1.1.3

(From OE-Core rev: 749253756a376428a4e1d89ba7c441c947a8fde7)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Maxin B. John
1ddec43ce1 bluez5: upgrade to 5.50
Refresh the following patch:
        0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch

(From OE-Core rev: 4032fd3ae640da8076617403152a30841507db4f)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Maxin B. John
9ac26a8773 mc: upgrade to 4.8.21
4.8.20 -> 4.8.21

(From OE-Core rev: e1d16cd44630a14e91ff792f4e97d788bb0f2740)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Maxin B. John
54cf04b608 vte: upgrade to 0.52.2
0.52.0 -> 0.52.2

(From OE-Core rev: 6054ac4d5924bb8ebf4df929f4d689764df5f38f)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Maxin B. John
10cba7cbe0 gtk+3: upgrade to 3.22.30
3.22.29 -> 3.22.30

(From OE-Core rev: a9625b7b2e061c5be869040af41944908d4642ca)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Maxin B. John
84cc647832 gtk-icon-utils-native: upgrade to 3.22.30
3.22.29 -> 3.22.30

(From OE-Core rev: 08a67f0b4eb07a006c30c7ba9a52fc453739e63e)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Maxin B. John
bf5f7191e9 cronie: upgrade to 1.5.2
1.5.1 -> 1.5.2

(From OE-Core rev: ed376ab653dd7c0500184c7527085120b51448a9)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Maxin B. John
2250ba3d1a libsoup-2.4: upgrade to 2.62.2
2.62.0 -> 2.62.2

(From OE-Core rev: a0717d16d89ffc19c5ed5998a3b876fc023eb086)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Maxin B. John
54104d06ee libinput: upgrade to 1.11.0
1.9.4 -> 1.11.0

(From OE-Core rev: c17869ee01c423a089dfaef8895bb7ffec6a7d74)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Maxin B. John
cfb203eb22 acpid: upgrade to 2.0.29
2.0.28 -> 2.0.29

(From OE-Core rev: 6dc9857562b87b690ffa4e4d9ff57a4e5de4b4be)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Jeremy Puhlman
90d6d998ce Only add uninative and checksum if inherited uninative class
The checksum value is only calculated if the uninative class is
inherited, so check for inherit before adding it to local.conf

(From OE-Core rev: 3b5b832589d943700b273e3a4d83561be0c47f36)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Jeremy Puhlman
cc9a768192 Remove libdir specification from xorgproto .pc files
(From OE-Core rev: 8b8eaac3ec9e6f12d78a0be5fa6300c4e58294b7)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Dennis Menschel
81c5374751 runqemu-extract-sdk: fix whitespace errors
Indentation using a mix of whitespaces and tabs has been unified in
favor of tabs.

(From OE-Core rev: 3827f1aa4a2bb433e445802c48e32f72932950e6)

Signed-off-by: Dennis Menschel <menschel-d@posteo.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Dennis Menschel
959aae0c2b runqemu-extract-sdk: support tar.xz format
As the format "tar.xz" is included in the IMAGE_TYPES bitbake variable
as defined in meta/classes/image_types.bbclass, it should also be
possible to extract a rootfs that has been built using that format.

(From OE-Core rev: f813ca7b085c7ddf76a34932e2b3f5bc3372b239)

Signed-off-by: Dennis Menschel <menschel-d@posteo.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Stefan Stanacar
37ae135dc0 default-versions.inc: use weak assignments to allow overwrite
default-versions.inc is included by defaultsetup.conf which in bitbake.conf
is included after local/machine/distro.conf.
If these are hard assignments distros can's overwrite them.

(From OE-Core rev: b9fb89fb7189e631b615868d567e1eab504ee3c2)

Signed-off-by: Stefan Stanacar <sstncr@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Jeremy Puhlman
927c2669c5 Multilibize the UPDATERCPN variable
The audit package specifies the following:
UPDATERCPN = "auditd"

However because it is not multilibized, the value "auditd" is used to
search for the package to add the post install script too. In the mutlilib
alternate abi case, that package does not exist. It ends up assigning
the post install script to the lib32-audit-lic package, which
subsequently failes to execute the script due to the initscript it is
trying to turn on is not installed.

(From OE-Core rev: ce99653e1af50d9e8f070ca6ae810908c4c138c6)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Ross Burton
c76ca2c65b meson: only use lists of commands in cross file if required
There's a bug in Meson[1] where it find_program("foo") will fail if foo is
defined in the cross file as a list.

This is causing the Meson build of libdrm to fail, but for this instance we can
work around the problem by only using lists in the cross file if there are
arguments, and just using a string if there are not.

[1] https://github.com/mesonbuild/meson/issues/3737

(From OE-Core rev: 7fd8bc469c2caacc1c2021bd0aa83dd6da7fe1e7)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Chen Qi
0de9ceeafc dnf: default to disable systemd units
The services and timers are not useful if a repo is not configured.
In OE, we default to have no repo configured. So we default to disable
these units.

The problem was found by the test_systemd_failed runtime test case.
dnf-makecache.service is found to fail. This is due to lack of repo.
Note that as this service is started by the dnf-makecache.timer, it's
possible that test_systemd_failed passes in case the timer is not started
yet.

(From OE-Core rev: c017f5528d1ae6316c9434ffd8702665bfe069f9)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Chen Qi
a77b860335 oeqa/runtime/cases/parselogs.py: ignore a message from watchdog
The following message from watchdog is not an error.

  "error retry time-out = 60 seconds"

Checking watchdog's source codes, we have:

  src/watchdog.c: log_message(LOG_INFO, "error retry time-out = %d seconds", retry_timeout);

It's clear this is an info message, so parselogs should ignore it.

(From OE-Core rev: c90dff78310ab1517555c4df39b3e2d2f59ff06d)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Chen Qi
d200e3196d watchdog: fix init script for sysvinit
The current init script is installed from source with redhat style.
It does not get configuration from /etc/default/watchdog. We should use
debian style init script.

Write our own script just like what wd_keepalive does.
Also, in the init script, we check the existence of /dev/watchdog to
determine whether to start the daemon or not.

(From OE-Core rev: a31f8dd34e8ea34dfb087ed464575aa390ece09b)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Chen Qi
8aee3cce93 watchdog: make init script start after syslog
We need to make sure logs are not lost. As long as there's no
strong and vaild reason, we should make daemons start after syslog.

As a side effect, we could check the logs to see if there are
some potential problem. In OE, the 'parselogs' test case could
do it automatically.

(From OE-Core rev: 41e4d728ef92586e2714fa0c136b838c3fda051e)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Chen Qi
459d92e98d watchdog: disable systemd services by default
systemd has internal support for watchdog. See the RuntimeWatchdogSec
in /etc/systemd/system.conf.

We'd better just disable this service by default. If users want to use
watchdog, consider using the systemd one.

(From OE-Core rev: 183c9125e78ae1035894600a66b4ea1fa6a3a532)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Chen Qi
1e703e1b05 watchdog: remove the useless watchdog-conf.patch
This patch modifies watchdog.conf file. But this file is deliberately
deleted in do_install. The current mechanism in OE is to use another
recipe watchdog-conf to handle watchdog configuration. So the patch
is really useless.

(From OE-Core rev: 80638247143b15a5643f9fcc116d7bc7dcbf3496)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Chen Qi
d3f4363223 oeqa/runtime/cases/parselogs.py: extend common_errors list
Add the following line to common_errors list.

  Failed to read /var/lib/nfs/statd/state: Success

This message is not harmful, it does not result in rpc.statd starting
failure.

(From OE-Core rev: 0f2c39149941d95fa979ec675f9dc25655886e2c)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Mikko Rapeli
ad85e224a4 openssh: add nativesdk support
And use bitbake variables for install paths to fix nativesdk-openssh
compilation.

(From OE-Core rev: 70470dfa88338cae06670195bb7009cb13098ac2)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Damien Riegel
7d3ad1405c populate_sdk_ext.bbclass: fix corebase identification
When generating the extended SDK, there is a copy step where this class
goes through the layers and other stuff that have been copied to
generate the SDK. The corebase; ie. the folder that contains the core
layer 'meta' is treated in a special way. Unfortunately in our tree, we
have:

  sources/meta/meta
           |     `- core layer
           `------- corebase

In populate_sdk_ext's copy_buildsystem, the heuristic to determine which
element of the list returned by copy_bitbake_and_layers is corebase is
fooled by such layout.

In copy_bitbake_and_layers, corebase is already handled specifically and
reliably, so we should let that function tell us which folder is
corebase instead of trying to determine it.

To do so, change the return type of copy_bitbake_and_layers to a tuple
that contains (corebase, copied_layers). It also simplifies the code on
the caller side.

(From OE-Core rev: 5368bc5d0d3606198b93e877bcafcd77bb5f4fd1)

Signed-off-by: Damien Riegel <damien.riegel@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Andre McCurdy
1ecb384c11 rsync: merge rsync.inc into the rsync recipe
There's only one user of rsync.inc (meta-gplv2 has its own copy), so
merge the .inc file into the rsync recipe.

(From OE-Core rev: 4e42ad44f1df510a527d199b6ec41541f8939654)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Richard Purdie
44b185581d sqlite3: Merge/simplify CFLAGS
An earlier version of a change was merged from S. Lockwood-Childs
<sjl@vctlabs.com> which made the CFLAGS consistent across native,
nativesdk and target cases. This syncs with a later verison of the
patch to remove duplicate CFLAGS settings and simplify the recipe.

(From OE-Core rev: 604777acfc54d285f315b622bd147ed02d55d6fd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Alex Kiernan
4957ec32c2 kernel-fitimage: Add DTBO support for configurations
When generating overlay DTB configuration sections, U-Boot doesn't want
the kernel specified again as we already have that in our base DTB. Add
support for this to allow bootm to process overlay configuration sections.

(From OE-Core rev: c0db9776beb4f519079a554a733353c368739dcf)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Alex Kiernan
430774e459 kernel-fitimage: Allow setting of DTB/DTBO relocation address
Introduce UBOOT_DTB_LOADADDRESS and UBOOT_DTBO_LOADADDRESS so that you
can set where U-Boot loads full and overlay DTBs. This is required when
using bootm's overlay support to construct the final DTB.

(From OE-Core rev: 05d2230db1d7379494814407fc0d79d7e755d89e)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Khem Raj
3c3545ec78 gcc-8: Fix spurious mcpu/march conflict for xscale
(From OE-Core rev: 00808545041750698f710ef4e0345c80221373b8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Andre McCurdy
21c0898d8e gcc8: drop stray uClibc specific patch
The patch was previously removed for gcc7 but came back with gcc8.

  http://git.openembedded.org/openembedded-core/commit/?id=f71bc69e5b7581c53071055b694bb0dbfe4b4a87

(From OE-Core rev: 5f1b9128bd8693b2309c07cfc2de7b8f77c34da1)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-18 11:07:57 +01:00
Leonardo Sandoval
0beae3326a site.conf.sample: document oe-git-proxy required tools for HOSTTOOLS
The script oe-git-proxy uses some tools that may not be included
on HOSTTOOLS, thus add the proper documentation.

(From meta-yocto rev: 737702c175691db679d513a05b1800a14da35c74)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:57:30 +01:00
Mark Hatle
a0cb1021c0 bitbake: runqueue.py: Initial implementation of per task process limits
On high core machines, in do_fetch, it is possible to DDoS your own machine.
A method to limit any arbitrary task type to a certain number of simultaneous
threads is needed.  (Similar to how BB_NUMBER_THREADS works in the general
case.)  The format of this new limitation is:

    do_fetch[number_threads] = "2"

This should be set globally.  If it is set in individual recipes it could
result in unpredictable behavior.

Note: a value for number_threads > BB_NUMBER_THREADS will have no effect.

(Bitbake rev: 055865047c63b9c3b213b47a1884924ce0adeda0)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:57:30 +01:00
Mark Hatle
27101e647f bitbake: runqueue.py: Minor cleanup for RunQueueStats and users
The RunQueueStats:taskCompleted and RunQueueStats:taskSkipped can take
multiple arguments.  However, nowehere in bitbake are multiple arguments used.
Change this to match the behavior of the other APIs where it needs to be
called once for each task.

Additionally, these two functions were usually called in tandem, however in
the wrong order.  It really doesn't matter as there is no specific preemption
point between the calls.  But the taskSkipped should be called first to
increment the 'active' count, and then taskCompleted called to decrement it.

(Bitbake rev: 26d5ea9bb892bd6a2e1fd29a9023e0b0644edc16)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:57:30 +01:00
Andre McCurdy
7838294271 bitbake: fetch2: unify the way fetchers determine DL_DIR and FETCHCMD
Currently there is quite some variation between the fetchers in terms
of how they determine the subdirectory within DL_DIR and the base
fetch command to run. Some rely on variables being set externally
(e.g. from bitbake.conf in oe-core), some respect these external
variables but provide fallback defaults and some use only hardcoded
internal values. Try to unify the approach used across the various
fetchers.

(Bitbake rev: efd5e35af4b08501c67e8b30f30d9457f6fdf610)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:57:30 +01:00
Ross Burton
b054015357 alsa-tools: rewrite packaging
alsa-tools is actually a collection of 20 separate tools, each with their own
configure scripts.  The dependencies are varied, old, and estoric (FLTK, GTK+ 1, 2,
and 3, PyGTK 2, Qt3).

Instead of maintaining patches to try and pick a subset that builds, use
PACKAGECONFIG and some magic to build what the user requests.

By default we build all the tools which have no dependencies, and the tools
which need GTK+ 2 or GTK+ 3 if the relevant DISTRO_FEATURES are enabled.

Add a patch to fix the build of ld10k1 with musl.

The ncurses build dependency doesn't seem to be checked for, so remove that.

(From OE-Core rev: 83c9405df5748744ef673ac8757bb89d7050ad8d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:25 +01:00
Andre McCurdy
89cbaca359 rootfs-postcommands.bbclass: drop obsolete sshd UseDNS rootfs postprocessing
The sshd UseDNS option has defaulted to "no" since openssh 6.8p1,
so it's no longer necessary to postprocess the rootfs to force the
option:

  https://www.openssh.com/txt/release-6.8

(From OE-Core rev: 0cb4f11614bd3b17db8e6b3516761193cd45d082)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:25 +01:00
Andre McCurdy
05881bbf35 openssh: only create sshd host keys which have been enabled
Previously sshd_check_keys would create a full set of all possible
sshd host keys, even if sshd_config has been set to only enable
certain key types.

Update sshd_check_keys to only create keys which have been enabled in
sshd_config (with a fallback to creating a full set of key types if
no HostKey options are defined, as before).

(From OE-Core rev: 2303d795ae96f1a60caf145a0ddf100e89c4b5b0)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:25 +01:00
Andre McCurdy
958fd9e6f9 openssh: sync local ssh_config + sshd_config files with upstream 7.7p1
Changes are mostly related to the removal of support for SSH v.1
protocol, which was dropped from openssh sshd in 7.4p1:

  https://www.openssh.com/txt/release-7.4

(From OE-Core rev: b81389c50e0d191e31f71af82d86bfbb37b83acc)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:25 +01:00
Andre McCurdy
6c13d5d8d0 openssh: minor indent cleanup for sshd init script
The openssh sshd init script contains a mix of indent styles, mostly
inherited from the Debian script from which it is derived. Leave the
indent from Debian as-is, but for lines which are OE specific (e.g.
where Debian's log_daemon_msg helper has been replaced with echo)
make the indent consistent with surrounding lines.

(From OE-Core rev: 68fb7d3b06887e0db3eef0ab231ced37cfa4894c)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:25 +01:00
Andre McCurdy
897971dc73 openssh: drop RCONFLICTS for openssh-keygen
The "ssh-keygen" package no longer seems to be provided by any recipe
in oe-core or meta-oe, so there's no clear reason for the
openssh-keygen package to conflict with it.

(From OE-Core rev: 0c5567847edba6b5ab24ae505d16375397cf4b40)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Andre McCurdy
72b5d5bb8e openssh: stop adding -D__FILE_OFFSET_BITS=64 to CFLAGS
Openssh takes care of enabling large-file support automatically via
the AC_SYS_LARGEFILE in the configure.ac, so additional help from the
recipe is not required.

Even if it were once required, defining __FILE_OFFSET_BITS (ie with
double leading underscores) looks like a typo and probably never had
any effect anyway?

(From OE-Core rev: 37b1a7bada267b89094ce0c3eb81b1de9f04df8e)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Kai Kang
95a8753766 goarch.bbclass: set SECURITY_CFLAGS for mips64
When include conf/distro/include/security_flags.inc, NOPIE flags are
still required for mips64 target builds. Otherwise it fails to build
packages such as glide which inherit go.bbclass:

| .../tmp-glibc/work/mips64-wrs-linux/glide/0.13.1-r0/recipe-sysroot-native/usr/bin/mips64-wrs-linux/../../libexec/mips64-wrs-linux/
| gcc/mips64-wrs-linux/7.3.0/ld: .../tmp-glibc/work/mips64-wrs-linux/glide/0.13.1-r0/go-tmp/go-link-518447869/go.o:
| relocation r_mips_26 against `a local symbol' can not be used when making a shared object; recompile with -fPIC`

Use override 'mipsarch' to set SECURITY_CFLAGS for both mips and mips64.

(From OE-Core rev: 98b24e9268dc444356ce8bd9ddfec6adcce5e02a)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Richard Purdie
69fd500156 gcc-8: enable build-id in gcc-cross-initial
Apply patch from Taras Kondratiuk <takondra@cisco.com> to gcc 8.x too.

Normal gcc-cross has build-id feature enabled by default, so most of
target binaries has build-id. But libc (glibc, musl) doesn't have
build-id, because it is built with gcc-cross-initial.

Build-id is a useful feature, so enable it for gcc-cross-initial too.

(From OE-Core rev: f24308c95853bec5cfc9f0794b111c6afecbe768)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Taras Kondratiuk
78ab901b1e gcc: enable build-id in gcc-cross-initial
Normal gcc-cross has build-id feature enabled by default, so most of
target binaries has build-id. But libc (glibc, musl) doesn't have
build-id, because it is built with gcc-cross-initial.

Build-id is a useful feature, so enable it for gcc-cross-initial too.

(From OE-Core rev: ba69701dac785a220feffd6118718b1c9e733548)

Signed-off-by: Taras Kondratiuk <takondra@cisco.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Ross Burton
0b8d09b2df libdrm: drop uclibc-specific patch
This patch isn't needed for musl or glibc, so drop it.

(From OE-Core rev: 46275ed3de30e6095b0d7ef71aad842e5ea9fe30)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Robert Yang
e4bacbf94a send-error-report: decode response from server
Fixed:
b'Your entry can be found here: http://<snip>'

Now looks like:
Your entry can be found here: http://<snip>

(From OE-Core rev: 4510973fe12a61c21e12b46b8315c56f91eff5b7)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Naresh Kamboju
951fa62bab ltp: fix CVE-2017-5669 test case
Adding CVE-2017-5669 test fix patch which is accepted upstream in LTP repo.

Ref:
cve-2017-5669: shmat() for 0 (or <PAGESIZE with RND flag) has to fail with REMAPs
https://github.com/linux-test-project/ltp/pull/324

Upstream-Status: Accepted [https://github.com/linux-test-project/ltp/pull/324]
(From OE-Core rev: e356cb7e7bfb407c2f3a1bd0f28b5f14beaff882)

Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Tim Orling
5b0a32a5a7 liberror-perl: upgrade 0.17025 -> 0.17026
* Upstream release notes:
"
May 23 2018 <shlomif@shlomifish.org> (Shlomi Fish)

  Error.pm #0.17026
  - Convert to Dist-Zilla.
"

* Tested on qemux86: all tests pass

(From OE-Core rev: 8a5d5a8422239d45aba73595ee2a2120adf93c84)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Ross Burton
f706c89ca1 maintainers: add Andrej Valek as busybox maintainer
Andrej has kindly stepped up as the busybox maintainer.

(From OE-Core rev: 9102319b85ed097fc63c0b56e3b9242be28ec5ab)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Armin Kuster
9ca68a7db6 busybox: remove myself as maintainer.
(From OE-Core rev: ee4ebba0b4fc1e5c65509170794f79715bc0652f)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Armin Kuster
50804c0663 popt: update SRC_URI
It appears the rpm5.org has been down for some time, switch to fossies

WARNING: popt-native-1.16-r3 do_fetch: Failed to fetch URL http://rpm5.org/files/popt/popt-1.16.tar.gz, attempting MIRRORS if available

(From OE-Core rev: 347ee336dcc94e6fa4e4788117013615b90abd70)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Ricardo Ribalda Delgado
e4b365eb76 xinetd: Fix systemd service for systemd>237
SystemD 237 implements a stricted PIDfile handling that breaks several
daemons [1].

Change the way we start xinetd, mimicing other distros [2].

Fixes:
root@qt5122:~# journalctl -u xinetd
-- Logs begin at Fri 2018-05-25 14:33:29 UTC, end at Mon 2018-06-11 07:33:08 UTC. --
May 25 14:33:31 qt5122 systemd[1]: Starting Xinetd A Powerful Replacement For Inetd...
May 25 14:33:31 qt5122 systemd[1]: xinetd.service: Permission denied while opening PID file or unsafe symlink chain: /var/run/xinetd.pid
Jun 11 07:27:24 qt5122 systemd[1]: xinetd.service: Start operation timed out. Terminating.
Jun 11 07:27:24 qt5122 systemd[1]: xinetd.service: Failed with result 'timeout'.
Jun 11 07:27:24 qt5122 systemd[1]: Failed to start Xinetd A Powerful Replacement For Inetd.
Jun 11 07:31:38 qt5122 systemd[1]: Starting Xinetd A Powerful Replacement For Inetd...
Jun 11 07:31:38 qt5122 systemd[1]: xinetd.service: Permission denied while opening PID file or unsafe symlink chain: /var/run/xinetd.pid
Jun 11 07:33:08 qt5122 systemd[1]: xinetd.service: Start operation timed out. Terminating.
Jun 11 07:33:08 qt5122 systemd[1]: xinetd.service: Failed with result 'timeout'.
Jun 11 07:33:08 qt5122 systemd[1]: Failed to start Xinetd A Powerful Replacement For Inetd.

[1]: https://github.com/systemd/systemd/issues/8085
[2]: e490406367

(From OE-Core rev: eea25f03e4c46cfe0d05df46f8f50e1389179c80)

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Anuj Mittal
425af487a3 bitbake-blayers/create: add version for example recipe
Add version field in recipe name for example recipe created by
bitbake-layers.

Fixes [YOCTO #12767]

(From OE-Core rev: c62f6b9643d31b465ea0e919882e411a5ed35c56)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Otavio Salvador
2138f47802 uboot-extlinux-config.bbclass: Add baudrate in console bootparam
By default, we ought to use console="${console},${baudrate}" as
console bootparam as commonly it is left to be passed with the
bootargs.

(From OE-Core rev: 2ce3534b2011cf5516780c9fd7e00bd107619adc)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Dengke Du
05a2e21c82 trace-cmd: add PACKAGECONFIG for audit
(From OE-Core rev: f7d62fff09b033b6eee7251a133d05c24c55769e)

Signed-off-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Zhixiong Chi
d2efd1f20e glibc: fix CVE-2017-18269 and CVE-2018-11236
Backport two CVE patches from the upstream
https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=summary
commit 5460617d1567657621107d895ee2dd83bc1f88f2
commit cd66c0e584c6d692bc8347b5e72723d02b8a8ada

(From OE-Core rev: 398ac946745bbfad55deb382aeafec0be3298819)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Kai Kang
15b3b32407 man-pages: inherit manpages
Inherit manpages to update manual file index caches after installation
for man-pages.

(From OE-Core rev: 72e5e124e565c5a72771c7325a783011aedcab96)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Kai Kang
8c103176e2 manpages.bbclass: Update RDEPENDS and post install scripts
If a package installs manual files, it should update manual index cache
after its installation. Add package 'man-db' to RDEPENDS which contains
command 'mandb' to update the cache. And do the update in the post
install scripts.

(From OE-Core rev: 078900f2416202b677471b10b69c8defb0f14c8d)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Andre McCurdy
31a87d4d1d cpio: fix CVE-2016-2037
"The cpio_safer_name_suffix function in util.c in cpio 2.11 allows
remote attackers to cause a denial of service (out-of-bounds write)
via a crafted cpio file."

  https://nvd.nist.gov/vuln/detail/CVE-2016-2037

Note that there appear to be two versions of this fix. The original
patch posted to the bug-cpio mailing list [1] is used by Debian [2],
but apparently causes regression [3]. The patch accepted to the
upstream git repo [4] seems to be the most complete fix.

  [1] https://lists.gnu.org/archive/html/bug-cpio/2016-01/msg00005.html
  [2] https://security-tracker.debian.org/tracker/CVE-2016-2037
  [3] https://www.mail-archive.com/bug-cpio@gnu.org/msg00584.html
  [4] http://git.savannah.gnu.org/cgit/cpio.git/commit/?id=d36ec5f4e93130efb24fb9678aafd88e8070095b

(From OE-Core rev: f170288ac706126e69a504a14d564b2e5c3513e4)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Andre McCurdy
a0a395a8c6 cpio: rely on texinfo.bbclass for texinfo-native dependency
(From OE-Core rev: 7dad119dd0ee82b14a82b2a0b5a89f790e3bc007)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Andre McCurdy
b177ee9244 cpio: move contents of cpio_v2.inc into the cpio recipe
Merge contents of cpio_v2.inc into the only recipe which uses it.

(From OE-Core rev: 162ff3871779d646dadc7e7287f4667641d6e612)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Ross Burton
d7c5ae6ea9 qemu: don't inherit autotools
qemu doesn't use autotools, so don't inherit it and just call 'make install'
directly.

No need to alter makefiles anymore, as they appear to respect CFLAGS now.

Remove a chmod of beginend_funcs.sh (a file we patched in, and removed,
many years ago).

(From OE-Core rev: b52a9d108d72ebdf93f2dc51aa6f26ccc890d451)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Ross Burton
041041609e wayland: fix upstream release checking
Wayland has moved to GitLab with the result that /releases/ no longer returns a
directory listing, so the upgrade detection doesn't work.

The upgrade detection can scan releases.html just as well, so tell it to look
there.

(From OE-Core rev: 8befb09eb28bb6d8884d2052cd63c2c319eceed1)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Joshua Watt
2e81bf1b9d icecc-toolchain: Remove environment setup
The handling of the environment setup was moved to the post-relocate
script handler, and so is no longer necessary in the setup script

(From OE-Core rev: 710b93a24df6372abd6d7aa0ede8750cf4bf88b4)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Dan McGregor
927db5db26 systemd: allow setting time-epoch to epoch
systemd by default sets the system time at boot to the date of its NEWS
file. It provides the option to change that at build time, and some
projects need to come up at a particular date if no RTC is present.

Provide the option to set the time at boot to the epoch instead of the
date of the NEWS file.

(From OE-Core rev: bf1847cd369fe72b8f8e04e2661bb7d2d3524ea2)

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Nicola Lunghi
72f2b9d6c7 Add license file EPL-2.0
it is from:

https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt

And add 'EPL-2.0' to SRC_DISTRIBUTE_LICENSES.

(From OE-Core rev: f045b3d2c62c70a87277596d20bdb8830faa2963)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Li Wang
c7786c5bb8 rpcbind: add option to make user able to use fixed port number
Add option "-p" to specify fixed port number

(From OE-Core rev: f6f3f7388cefb2833b4240c2c9ddbf8bd201bc61)

Signed-off-by: Li Wang <li.wang@windriver.com>
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Hong Liu
61e587b32d wpa-supplicant: fix the bug for PATCHTOOL = "patch"
When switch PATCHTOOL to patch, applying 'key-replay-cve-multiple.patch' failed:

checking file src/ap/ieee802_11.c
checking file src/ap/wpa_auth.c
checking file src/ap/wpa_auth.h
checking file src/ap/wpa_auth_ft.c
checking file src/ap/wpa_auth_i.h
checking file src/common/wpa_common.h
checking file src/rsn_supp/wpa.c
checking file src/rsn_supp/wpa_i.h
checking file src/rsn_supp/wpa.c
Hunk #1 FAILED at 709.
Hunk #2 FAILED at 757.
Hunk #3 succeeded at 840 (offset -12 lines).
Hunk #4 FAILED at 868.
Hunk #5 FAILED at 900.
Hunk #6 FAILED at 924.
Hunk #7 succeeded at 1536 (offset -38 lines).
Hunk #8 FAILED at 2386.
Hunk #9 FAILED at 2920.
Hunk #10 succeeded at 2940 (offset -46 lines).
Hunk #11 FAILED at 2998.
8 out of 11 hunks FAILED
checking file src/rsn_supp/wpa_i.h
Hunk #1 FAILED at 32.
1 out of 1 hunk FAILED
checking file src/common/wpa_common.h
Hunk #1 succeeded at 215 with fuzz 1.
checking file src/rsn_supp/wpa.c
checking file src/rsn_supp/wpa_i.h
checking file src/ap/wpa_auth.c
Hunk #1 succeeded at 1898 (offset -3 lines).
Hunk #2 succeeded at 2470 (offset -3 lines).
checking file src/rsn_supp/tdls.c
checking file wpa_supplicant/wnm_sta.c
checking file src/rsn_supp/wpa.c
Hunk #1 succeeded at 2378 (offset -62 lines).
checking file src/rsn_supp/wpa_ft.c
checking file src/rsn_supp/wpa_i.h
Hunk #1 succeeded at 123 (offset -5 lines).

So split the wpa-supplicant/key-replay-cve-multiple to 8 patches.

(From OE-Core rev: 4e9bc513c22b9a52c48588ef276e2ab7f7781526)

Signed-off-by: Hong Liu <hongl.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Changqing Li
c8a1e372f3 nettle: do the multilib_header magic for nettle-stdint.h and version.h
add multilib support for this receipe, or it will conflicts in mutlilib setting

(From OE-Core rev: ea618e061fa190e4ae647da6466d074b49940395)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Jens Rehsack
a34850f703 cpan_build.bbclass: tell Module::Build the replacement
Instead of patching Module::Build, maybe Module::Build::Tiny and all other
similar tools, use the official way to tell them which is the target perl
on target.

(From OE-Core rev: f3925216b06ff7fbe21989210f8eb11e16be6631)

(From OE-Core rev: 306435507c4790ec44f30cd3c7fa7d340b441ec4)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Ross Burton
73daeda22d cmake: fix Upstream-Status tag spelling
(From OE-Core rev: a734431a7ce36a679dff81822c2fba6f07a09e88)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Ross Burton
bd0d7c7ed5 attr/acl: disable make clean
These packages use hand-grown makefiles which don't handle cleans as they can
invoke /usr/bin/gmake directly which may not exist.  Until new upstream releases
are made (which have ported to automake) set CLEANBROKEN to work around this.

[ YOCTO #12775 ]

(From OE-Core rev: eb924bc684f92fc2d806715872667f241e54b365)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Ross Burton
0e4d2a7ce5 glib: add PACKAGECONFIG for libelf
gresource-tool has optional support for using libelf to extract resources from
ELF files, so add a PACKAGECONFIG in case someone wants this.

(From OE-Core rev: 93f08a036343d4df1aefe9793a7a9ab5b296f5b5)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Chen Qi
ae49d379b7 sysklogd: fix typo in RCONFLICTS
It should be RCONFLICTS_${PN} instead of RCONFLICTS_${PN}-syslog.
There's no ${PN}-syslog package.

(From OE-Core rev: 840d04182bc71ae3f6f562f668b9900c5625e1aa)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Mingli Yu
b4a4cf6122 boost: Improve reproducibility
Set .file section explicitly for .S files to avoid
the linker introduces the host path in symbols for
object files whose source file is .S
Otherwise, there is a host path in the symbols as
below:
$ readelf --wide --symbols /my-build/boost/1.67.0-r0/boost_1_67_0/x86_64-poky-linux/boost/bin.v2/libs/context/build/aca09349fdb84d131321425f6c3a38ed/libboost_context.so.1.67.0
42: 0000000000000000 0 FILE LOCAL DEFAULT ABS /my-build/boost/1.67.0-r0/boost_1_67_0/x86_64-poky-linux/boost/bin.v2/libs/context/build/aca09349fdb84d131321425f6c3a38ed/asm/make_x86_64_sysv_elf_gas.o

[YOCTO #12708]

(From OE-Core rev: 5d785dadf2bd35f4ae7304ab927fda10368377ce)

Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
S. Lockwood-Childs
086610faf0 sqlite3: consistent set of features for nativesdk
Enable use of pread() and enable column metadata API for nativesdk builds.
This brings nativesdk in line with target and native builds.

(From OE-Core rev: 7c8b85e1c3d852975cd5961a297aa939bf4c7fe7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
S. Lockwood-Childs
5f3a3d4063 coreutils: fix nativesdk install failure
The change "fix hostname conflict with other packages" moved the
hostname util to the list of base_bindir_progs, so do_install_append()
now expects hostname to have been built.

coreutils do_install_append() is shared between target and nativesdk
builds (though not used by native build, see comment) so hostname should
be enabled to build on both of them.

(From OE-Core rev: 57f1f5708306a6121b1172c5163c6566d5bcb89c)

Signed-off-by: S. Lockwood-Childs <sjl@vctlabs.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Mingli Yu
834b24d507 ltp: set -fomit-frame-pointer explicitly for x86-64
Since ltp contains x86-64 assembler which uses the
frame-pointer register, it will trigger below error
when build ltp with -fno-omit-frame-pointer on
x86-64.
| cve-2015-3290.c: In function 'child_thread':
| cve-2015-3290.c:416:1: error: bp cannot be used in asm here

And there is also some comment as below in the source
file ltp/20180515-r0/git/testcases/cve/cve-2015-3290.c
* Build with -O2.  Don't use -fno-omit-frame-pointer.

So explicitly set -fomit-frame-pointer on x86-64 for
compiler to fix the above build error.

(From OE-Core rev: 3084ff86d61b54011e0647ee17cbba521bafc9df)

Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Alejandro Enedino Hernandez Samaniego
073dbcedf5 tclibc-newlib: Adds a new TCLIBC variant to build with newlib as C library
This patch adds the posibility to build using TCLIBC=newlib.

It allows users to build baremetal applications with the use of a
C library.

Newlib is a lightweight C library meant to be used on embedded systems,
it is meant to be easily portable for new platforms and to provide
basic functionality on them, by design, it provides stubs for some of
these core functions declared as weak, so they can be built correctly
and then linked against some other library which provides specifics
about the platform being used if need be, libgloss takes care of these
in some cases, but it can also be extended, this patch also allows the
user to easily add other libraries to it by adding them to
NEWLIB_EXTENDED for this specific reason.

(From OE-Core rev: 9f0570351a7b0877aa50efff5fe9a9ef368cb38f)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Alejandro Enedino Hernandez Samaniego
361f7a902d insane.bbclass: Adds powerpc to elf headers machine dictionary
This patch adds makes it possible to build elf for powerpc by adding
this combination to the elf headers machine dictionary, this can be
useful when trying to build baremetal applications where the TARGET_OS=elf

(From OE-Core rev: 6f7ef4f6049fa8f2a8e17abfcf53ccbc22394088)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Alejandro Enedino Hernandez Samaniego
ae5e33ddc4 newlib: Adds newlib and libgloss recipes
Newlib is a C library that is intended to be used on embedded systems.
It is a conglomeration of several library parts, all under free software
licenses that make them easily usable on embedded products.

Newlib provides a C library alternative that can run on baremetal, mainly
for resource constrained devices.

Libgloss is the BSP part of the C library, which can be easily modified
to port for new hardware platforms.

(From OE-Core rev: fe490ff829440b94124317759d856e2e2daf5047)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Richard Purdie
b6dbfabbad yocto-uninative: Update to version 2.1
This fixes issues with fontforge-native.

(From OE-Core rev: cec85a6fcadc24fd266fa34631cb095e0a773c1a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Scott Rifenbark
73e10835b7 sdk-manual: Updated the note in Eclipse configuration section
Using consistent wording.

(From yocto-docs rev: fad0230d99259aa94ef3d8db30bc81394b8da4ac)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
6e8b019531 sdk-manual: Updated step to install Oxygen
The step describes the installation process and the intial launch
process.  No information exists for describing how you launch
Oxygen from outside the install process.  I added a note that
tells where the "eclipse" binary is installed and an example
line to invoke it.

(From yocto-docs rev: dc59410caf18e36497d70ea3c877b4f82f620e2c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
ad675cd6a6 sdk-manual: Removed superfluous text from Step 5 of the flow.
(From yocto-docs rev: 3df35b5f313da7d2394c75ac6924f1add7f2af71)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
190702642b sdk-manual: Updated workflow step on getting the image
Provided better instructions and accounted for the fact that it
is just this workflow here that is assuming the need for a
YP-built image.

(From yocto-docs rev: a05091768c914817ed262b15d39e7c9b54a5b863)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
79081fa07c sdk-manual: Updates to Eclipse Workflow section
Updated the "Workflow Using Eclipse" section head to not match so
closely the "Working With Eclipse" section heading.  TOC appeared
funny.

Also, updated the step 1 to be more accurate regarding the real
need of having a YP build host and where to go to get information
on setting it up.

(From yocto-docs rev: 1cbca098a2f793bd86b6f73d3d35ce79bdf639f0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
6caba4afb8 sdk-manual: Small edits correcting bits and pieces in Eclipse chapter.
(From yocto-docs rev: 3ef3a4c7f424d0f16ab3e8093372210fa2c58be0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
052c49367b sdk-manual: Edits to the Oxygen section
Found several items that were slightly off after working through the
procedure.  Updates to bring it into line with reality.

(From yocto-docs rev: 0f34afe3c37dedda28a1a5714703787a5dfe649d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
402b7ce9df sdk-manual: Updated the "Makefile-Based Projects" section.
Expanded this section to contain a figure of the flow and an
example that showcases the ways to override and use SDK
environment and Makefile variables.

(From yocto-docs rev: 834c059c1df4e8328248ea86fa23ca9a397351fa)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
0f3aece52d sdk-manual: Created a new Makefile flow diagram
The Makefile-Based Projects section was expanded to add a useful
example and figure.  Added this figure to the sdk-manual and
mega-manual figures folders.

Updated the Makefile to include the new figure as part of the
tar files for each manual.

(From yocto-docs rev: 6261cb55b6393e0d5dce91cdb7c8e6e83849ec0c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
0a764481ed sdk-manual: Review edits to the "Autotools-Based Projects" section.
Autotools is simpler now as it uses "autoreconf" to one-step a bunch
of the existing tools such as aclocal and autoconf.  I updated the
figure to reflect the simpler flow and also the steps that accompany
the figure.

(From yocto-docs rev: 380cb1bb89003229befb4715e875586c798d6735)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
b15903d61b sdk-manual: Updates to the "Makefile-Based Projects" section.
I wrote the section to include a flow diagram using "make" and
provided a working example highlighting how to override environment
variables.

(From yocto-docs rev: 00e8e09a51a1f0305317f38975a9d7695c92bdb5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
e8127d4fc4 sdk-manual: Added cross-reference to Makefile section. Fixed syntax
Two changes here.  One was a note to the "make" step of the
Autotools-based section.  I cross-referenced the Makefile section
for information on how SDK installation environment variables
are respected and or overridden when using make variables.

Also, fixed the quotation syntax of the four environment variable
examples used in the "Makefile-Based Projects" section.

(From yocto-docs rev: 5bd4e056496ff3478e213ccd9e49adfe1fac67ab)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
31b2696c90 sdk-manual, mega-manual: Added Autotools flow figure
New figure for the section on Autotools workflow.  The figure
goes in the folders for both the sdk-manual and the
mega-manual.

Updated the Makefile to include the new figure in the tarball
when creating both manuals.

(From yocto-docs rev: ccb2c4b9ebd0b0aaa55b5790eb6a916701e10af4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:47 +01:00
Scott Rifenbark
61a7ab26ee sdk-manual: Updated the Autotools workflow example.
Did a re-write of this section with better explanations.
I also pulled the bit about passing parameters to the
configure script into the step that talks about that.

(From yocto-docs rev: 79432ba0eb0cc2f6bdb3410fbf99f227fb666b2c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
9da094bb75 sdk-manual: Changed "configure.ac" file in the autotools-based example
The line used to be "AC_PROG_INSTALL".  I did some digging and can't
really figure out why the example is not following the standard
"helloworld" stuff out there all over the internet.  So, I have the
user create a configure.in file as follows now:

   AC_INIT(hello,0.1)
   AM_INIT_AUTOMAKE([foreign])
   AC_PROG_CC
   AC_CONFIG_FILES(makefile)
   AC_OUTPUT

The original was as follows:

   AC_INIT(HELLO,0.1)
   AM_INIT_AUTOMAKE([foreign])
   AC_PROG_CC
   AC_PROG_INSTALL
   AC_OUTPUT(Makefile)

(From yocto-docs rev: ed86d61178f86df3248b34d52602121c39bd56b5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
8ac16cc0a4 sdk-manual: Updated link to variables set for cross-toolchain script
The link was going to a spot from which another link was suggested.
Too many redirections for the reader.  Linked to the original place
instead.

(From yocto-docs rev: 9fc383a99ae0a7ff8cae761c0c31b27030f765cf)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
15728cd041 sdk-manual: Updated formatting for "configure" script
Formatting used for the "configure" script created using the
"autoconf" command in the example.

(From yocto-docs rev: dd55ceb2c19f9e013c13e776acf7201c25501ff7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
ca3f701a98 sdk-manual: Replaced "configure.in" with "configure.ac"
The Autotools example called for a "configure.in" file as part
of the "hello-world" example.  When working through the example,
a warning occurs saying that the file needs to be "configure.ac".
I changed the example.

(From yocto-docs rev: 7f677e3bbf0331228ed5aed1ace7c55d523d3121)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
5b804813fc sdk-manual: Added cross-referencing to "Autotools-Based Projects"
Needed to reference a couple terms for first use: "cross-development
toolchain" and "OpenEmbedded build system".

(From yocto-docs rev: 2370c3508574efe05e768f4515fec5b17f0ca177)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
0f622b6d64 sdk-manual: Edits to "Running the SDK Environment Setup Script"
Minor edits to this section.

(From yocto-docs rev: 68a6e4cac6cecd14e87d4f05f558d79165761d4d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
3a6a32df97 sdk-manual: Edits to standard SDK intro and install sections
Changed the output to reflect the real command's output.  Updated
prose to match (mostly) that used in the similar extensible SDK
sections.

(From yocto-docs rev: fb6c8895f2afda0c43bbaa49870c425e25841ec4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
4d586da108 sdk-manual: Edits to "Creating a Derivative SDK With Additional Components"
Fixed some poor writing in this section.

(From yocto-docs rev: 5709c2c2c1c37166ec5df1193b58ff82bb10b4c3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
bf2a7a31ca sdk-manual: Edits to "Installing Additional Items Into the Extensible SDK"
Minor edits.

(From yocto-docs rev: 3ed2c1026bf03feb03001e00daec55b94d7dc35b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
73d00d17fb sdk-manual: Edits to "Restoring the Target Device to its Original State"
Fixed a grammar error and made a few other corrections.

(From yocto-docs rev: 369a22ffe3780fd00514344f1b3b8a944305e320)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
d527a5f7ab sdk-manual: Edits to "Packaging" section.
Edits to improve writing.

(From yocto-docs rev: 04d2df37ad718508c7f78a204d0d5e5fff431ce8)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
c0d1ff66ee sdk-manual: Edits to "Sharing Files Between Recipes"
Added a cross-reference to the term "build host".  Corrected
a subject/verb grammar error.

(From yocto-docs rev: 8763e333867d0039315f0ca0aa96fdadea676783)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
130038674a sdk-manual: Edits to "Finding Logs and Work Files"
This section was poorly organized with a mile long sentence as
the opener.  Fixed it.

(From yocto-docs rev: c7624244e40c807d1c3cea80d2eced3cd9948019)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
815d829600 sdk-manual: Added links to sample tasks to "Working With Recipes"
(From yocto-docs rev: 6dd62a3f97dc4e70a532faae0055ef7937f40afc)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
6068e017e8 sdk-manual: Edits to "Adding Node.js Modules"
Fixed a few sentences up by providing clearer text.

(From yocto-docs rev: e81984d73c05f2d722bc082a100d01c3cc0173ab)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
54e3cdcc27 sdk-manual: Edits to "Adding Native Tools"
Added a cross-reference link to the term "bulid host" and removed
the redundant word "system".

(From yocto-docs rev: 205d6fb6030cecb02301ec9cdc92ac908d250160)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
54609b038f sdk-manual: Edits to "Adding Makefile-Only Software"
Fixed some prose in various places.

(From yocto-docs rev: f754969eff4c314d9f4c489cca2b3c2f8fd87fff)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
73c7e9d229 sdk-manual: Edits to "License Detection"
Updates to prose for better understanding.

(From yocto-docs rev: 44a07560845c973a0da4c27969c740d3d712d323)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
290809334a sdk-manual: Edits to "Dependency Detection and Mapping"
Updated various prose for better understanding.

(From yocto-docs rev: ddbd66d7732bbc8b4940c660f8a8c941a5cc4ea2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
5a9e1870db sdk-manual: Edits to "Name and Version"
Poor writing left over in here.  Updated some of the prose.

(From yocto-docs rev: 8f71cd997c86610dd62780f74f39dad811098540)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
34f381ee26 sdk-manual: Edits to "A Closer look at devtool add" section.
Corrected some prose to be clearer.

(From yocto-docs rev: c73f3d486fab555e6c6ac3dd1f5fbaf4d531ab29)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
11e0ec39fd sdk-manual, mega-manual: Updated devtool add and upgrade figures
Took out the $TMPDIR part for the output and left more generically
as "Build Output".

(From yocto-docs rev: 4b0375e3293d67e4b5be433cd6c468532fee5a30)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
779f47897d sdk-manual: Changes to the devtool upgrade section.
Edits to improve this section.

(From yocto-docs rev: f062882b3b3cf9c454466fa9d243284d97592bdc)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
d0373e0834 sdk-manual, mega-manual: Updated the devtool upgrade flow diagram.
Added more detail at the top for how the local recipe interacts
with the Upstream Source.

(From yocto-docs rev: c1d49a7c00c458b55396c0efc7a329acd870be6c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
f633c4294b sdk-manual: Edits to the devtool add workflow section.
Minor edits from the read-through.

(From yocto-docs rev: d165438d3d02f3154fc59197d75ab1cb6a285320)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
Scott Rifenbark
ef0fdb9e27 sdk-manual, mega-manual: Updated devtool add flow diagram
Added more detail on how the upstream source or files from
srctree are located.

(From yocto-docs rev: 5eff4b1b68c232071814969b6367188352639f17)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:46 +01:00
663 changed files with 11954 additions and 13053 deletions

View File

@@ -1929,6 +1929,38 @@
not careful.
</note>
</para></listitem>
<listitem><para><emphasis><filename>[number_threads]</filename>:</emphasis>
Limits tasks to a specific number of simultaneous threads
during execution.
This varflag is useful when your build host has a large number
of cores but certain tasks need to be rate-limited due to various
kinds of resource constraints (e.g. to avoid network throttling).
<filename>number_threads</filename> works similarly to the
<link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link>
variable but is task-specific.</para>
<para>Set the value globally.
For example, the following makes sure the
<filename>do_fetch</filename> task uses no more than two
simultaneous execution threads:
<literallayout class='monospaced'>
do_fetch[number_threads] = "2"
</literallayout>
<note><title>Warnings</title>
<itemizedlist>
<listitem><para>
Setting the varflag in individual recipes rather
than globally can result in unpredictable behavior.
</para></listitem>
<listitem><para>
Setting the varflag to a value greater than the
value used in the <filename>BB_NUMBER_THREADS</filename>
variable causes <filename>number_threads</filename>
to have no effect.
</para></listitem>
</itemizedlist>
</note>
</para></listitem>
<listitem><para><emphasis><filename>[postfuncs]</filename>:</emphasis>
List of functions to call after the completion of the task.
</para></listitem>

View File

@@ -452,8 +452,8 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
# Handle URL parameters
if i:
# Any specified URL parameters must match
for k in uri_replace_decoded[loc]:
if uri_decoded[loc][k] != uri_replace_decoded[loc][k]:
for k in uri_find_decoded[loc]:
if uri_decoded[loc][k] != uri_find_decoded[loc][k]:
return None
# Overwrite any specified replacement parameters
for k in uri_replace_decoded[loc]:

View File

@@ -41,8 +41,9 @@ class Bzr(FetchMethod):
init bzr specific variable within url data
"""
# Create paths to bzr checkouts
bzrdir = d.getVar("BZRDIR") or (d.getVar("DL_DIR") + "/bzr")
relpath = self._strip_leading_slashes(ud.path)
ud.pkgdir = os.path.join(d.expand('${BZRDIR}'), ud.host, relpath)
ud.pkgdir = os.path.join(bzrdir, ud.host, relpath)
ud.setup_revisions(d)
@@ -57,7 +58,7 @@ class Bzr(FetchMethod):
command is "fetch", "update", "revno"
"""
basecmd = d.expand('${FETCHCMD_bzr}')
basecmd = d.getVar("FETCHCMD_bzr") or "/usr/bin/env bzr"
proto = ud.parm.get('protocol', 'http')

View File

@@ -110,7 +110,7 @@ class Cvs(FetchMethod):
if ud.tag:
options.append("-r %s" % ud.tag)
cvsbasecmd = d.getVar("FETCHCMD_cvs")
cvsbasecmd = d.getVar("FETCHCMD_cvs") or "/usr/bin/env cvs"
cvscmd = cvsbasecmd + " '-d" + cvsroot + "' co " + " ".join(options) + " " + ud.module
cvsupdatecmd = cvsbasecmd + " '-d" + cvsroot + "' update -d -P " + " ".join(options)
@@ -121,7 +121,8 @@ class Cvs(FetchMethod):
# create module directory
logger.debug(2, "Fetch: checking for module directory")
pkg = d.getVar('PN')
pkgdir = os.path.join(d.getVar('CVSDIR'), pkg)
cvsdir = d.getVar("CVSDIR") or (d.getVar("DL_DIR") + "/cvs")
pkgdir = os.path.join(cvsdir, pkg)
moddir = os.path.join(pkgdir, localdir)
workdir = None
if os.access(os.path.join(moddir, 'CVS'), os.R_OK):

View File

@@ -261,7 +261,7 @@ class Git(FetchMethod):
gitsrcname = gitsrcname + '_' + ud.revisions[name]
dl_dir = d.getVar("DL_DIR")
gitdir = d.getVar("GITDIR") or (dl_dir + "/git2/")
gitdir = d.getVar("GITDIR") or (dl_dir + "/git2")
ud.clonedir = os.path.join(gitdir, gitsrcname)
ud.localfile = ud.clonedir

View File

@@ -80,7 +80,7 @@ class Hg(FetchMethod):
ud.fullmirror = os.path.join(d.getVar("DL_DIR"), mirrortarball)
ud.mirrortarballs = [mirrortarball]
hgdir = d.getVar("HGDIR") or (d.getVar("DL_DIR") + "/hg/")
hgdir = d.getVar("HGDIR") or (d.getVar("DL_DIR") + "/hg")
ud.pkgdir = os.path.join(hgdir, hgsrcname)
ud.moddir = os.path.join(ud.pkgdir, ud.module)
ud.localfile = ud.moddir

View File

@@ -32,8 +32,9 @@ class Osc(FetchMethod):
ud.module = ud.parm["module"]
# Create paths to osc checkouts
oscdir = d.getVar("OSCDIR") or (d.getVar("DL_DIR") + "/osc")
relpath = self._strip_leading_slashes(ud.path)
ud.pkgdir = os.path.join(d.getVar('OSCDIR'), ud.host)
ud.pkgdir = os.path.join(oscdir, ud.host)
ud.moddir = os.path.join(ud.pkgdir, relpath, ud.module)
if 'rev' in ud.parm:
@@ -54,7 +55,7 @@ class Osc(FetchMethod):
command is "fetch", "update", "info"
"""
basecmd = d.expand('${FETCHCMD_osc}')
basecmd = d.getVar("FETCHCMD_osc") or "/usr/bin/env osc"
proto = ud.parm.get('protocol', 'ocs')

View File

@@ -43,13 +43,9 @@ class Perforce(FetchMethod):
provided by the env, use it. If P4PORT is specified by the recipe, use
its values, which may override the settings in P4CONFIG.
"""
ud.basecmd = d.getVar('FETCHCMD_p4')
if not ud.basecmd:
ud.basecmd = "/usr/bin/env p4"
ud.basecmd = d.getVar("FETCHCMD_p4") or "/usr/bin/env p4"
ud.dldir = d.getVar('P4DIR')
if not ud.dldir:
ud.dldir = '%s/%s' % (d.getVar('DL_DIR'), 'p4')
ud.dldir = d.getVar("P4DIR") or (d.getVar("DL_DIR") + "/p4")
path = ud.url.split('://')[1]
path = path.split(';')[0]

View File

@@ -45,6 +45,8 @@ class Repo(FetchMethod):
"master".
"""
ud.basecmd = d.getVar("FETCHCMD_repo") or "/usr/bin/env repo"
ud.proto = ud.parm.get('protocol', 'git')
ud.branch = ud.parm.get('branch', 'master')
ud.manifest = ud.parm.get('manifest', 'default.xml')
@@ -60,8 +62,8 @@ class Repo(FetchMethod):
logger.debug(1, "%s already exists (or was stashed). Skipping repo init / sync.", ud.localpath)
return
repodir = d.getVar("REPODIR") or (d.getVar("DL_DIR") + "/repo")
gitsrcname = "%s%s" % (ud.host, ud.path.replace("/", "."))
repodir = d.getVar("REPODIR") or os.path.join(d.getVar("DL_DIR"), "repo")
codir = os.path.join(repodir, gitsrcname, ud.manifest)
if ud.user:
@@ -72,11 +74,11 @@ class Repo(FetchMethod):
repodir = os.path.join(codir, "repo")
bb.utils.mkdirhier(repodir)
if not os.path.exists(os.path.join(repodir, ".repo")):
bb.fetch2.check_network_access(d, "repo init -m %s -b %s -u %s://%s%s%s" % (ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), ud.url)
runfetchcmd("repo init -m %s -b %s -u %s://%s%s%s" % (ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), d, workdir=repodir)
bb.fetch2.check_network_access(d, "%s init -m %s -b %s -u %s://%s%s%s" % (ud.basecmd, ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), ud.url)
runfetchcmd("%s init -m %s -b %s -u %s://%s%s%s" % (ud.basecmd, ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), d, workdir=repodir)
bb.fetch2.check_network_access(d, "repo sync %s" % ud.url, ud.url)
runfetchcmd("repo sync", d, workdir=repodir)
bb.fetch2.check_network_access(d, "%s sync %s" % (ud.basecmd, ud.url), ud.url)
runfetchcmd("%s sync" % ud.basecmd, d, workdir=repodir)
scmdata = ud.parm.get("scmdata", "")
if scmdata == "keep":

View File

@@ -49,7 +49,7 @@ class Svn(FetchMethod):
if not "module" in ud.parm:
raise MissingParameterError('module', ud.url)
ud.basecmd = d.getVar('FETCHCMD_svn')
ud.basecmd = d.getVar("FETCHCMD_svn") or "/usr/bin/env svn --non-interactive --trust-server-cert"
ud.module = ud.parm["module"]
@@ -59,8 +59,9 @@ class Svn(FetchMethod):
ud.path_spec = ud.parm["path_spec"]
# Create paths to svn checkouts
svndir = d.getVar("SVNDIR") or (d.getVar("DL_DIR") + "/svn")
relpath = self._strip_leading_slashes(ud.path)
ud.pkgdir = os.path.join(d.expand('${SVNDIR}'), ud.host, relpath)
ud.pkgdir = os.path.join(svndir, ud.host, relpath)
ud.moddir = os.path.join(ud.pkgdir, ud.module)
ud.setup_revisions(d)

View File

@@ -94,13 +94,13 @@ class RunQueueStats:
self.active = self.active - 1
self.failed = self.failed + 1
def taskCompleted(self, number = 1):
self.active = self.active - number
self.completed = self.completed + number
def taskCompleted(self):
self.active = self.active - 1
self.completed = self.completed + 1
def taskSkipped(self, number = 1):
self.active = self.active + number
self.skipped = self.skipped + number
def taskSkipped(self):
self.active = self.active + 1
self.skipped = self.skipped + 1
def taskActive(self):
self.active = self.active + 1
@@ -134,6 +134,7 @@ class RunQueueScheduler(object):
self.prio_map = [self.rqdata.runtaskentries.keys()]
self.buildable = []
self.skip_maxthread = {}
self.stamps = {}
for tid in self.rqdata.runtaskentries:
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
@@ -150,8 +151,25 @@ class RunQueueScheduler(object):
self.buildable = [x for x in self.buildable if x not in self.rq.runq_running]
if not self.buildable:
return None
# Filter out tasks that have a max number of threads that have been exceeded
skip_buildable = {}
for running in self.rq.runq_running.difference(self.rq.runq_complete):
rtaskname = taskname_from_tid(running)
if rtaskname not in self.skip_maxthread:
self.skip_maxthread[rtaskname] = self.rq.cfgData.getVarFlag(rtaskname, "number_threads")
if not self.skip_maxthread[rtaskname]:
continue
if rtaskname in skip_buildable:
skip_buildable[rtaskname] += 1
else:
skip_buildable[rtaskname] = 1
if len(self.buildable) == 1:
tid = self.buildable[0]
taskname = taskname_from_tid(tid)
if taskname in skip_buildable and skip_buildable[taskname] >= int(self.skip_maxthread[taskname]):
return None
stamp = self.stamps[tid]
if stamp not in self.rq.build_stamps.values():
return tid
@@ -164,6 +182,9 @@ class RunQueueScheduler(object):
best = None
bestprio = None
for tid in self.buildable:
taskname = taskname_from_tid(tid)
if taskname in skip_buildable and skip_buildable[taskname] >= int(self.skip_maxthread[taskname]):
continue
prio = self.rev_prio_map[tid]
if bestprio is None or bestprio > prio:
stamp = self.stamps[tid]
@@ -1040,7 +1061,7 @@ class RunQueueData:
# Create a whitelist usable by the stamp checks
self.stampfnwhitelist = {}
for mc in self.taskData:
for mc in self.taskData:
self.stampfnwhitelist[mc] = []
for entry in self.stampwhitelist.split():
if entry not in self.taskData[mc].build_targets:
@@ -1072,7 +1093,7 @@ class RunQueueData:
bb.debug(1, "Task %s is marked nostamp, cannot invalidate this task" % taskname)
else:
logger.verbose("Invalidate task %s, %s", taskname, fn)
bb.parse.siggen.invalidate_task(taskname, self.dataCaches[mc], fn)
bb.parse.siggen.invalidate_task(taskname, self.dataCaches[mc], taskfn)
self.init_progress_reporter.next_stage()
@@ -1865,14 +1886,13 @@ class RunQueueExecuteTasks(RunQueueExecute):
continue
if revdep in self.runq_buildable:
continue
alldeps = 1
alldeps = True
for dep in self.rqdata.runtaskentries[revdep].depends:
if dep not in self.runq_complete:
alldeps = 0
if alldeps == 1:
alldeps = False
break
if alldeps:
self.setbuildable(revdep)
fn = fn_from_tid(revdep)
taskname = taskname_from_tid(revdep)
logger.debug(1, "Marking task %s as buildable", revdep)
def task_complete(self, task):
@@ -1896,8 +1916,8 @@ class RunQueueExecuteTasks(RunQueueExecute):
self.setbuildable(task)
bb.event.fire(runQueueTaskSkipped(task, self.stats, self.rq, reason), self.cfgData)
self.task_completeoutright(task)
self.stats.taskCompleted()
self.stats.taskSkipped()
self.stats.taskCompleted()
def execute(self):
"""
@@ -2342,8 +2362,8 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
def task_failoutright(self, task):
self.runq_running.add(task)
self.runq_buildable.add(task)
self.stats.taskCompleted()
self.stats.taskSkipped()
self.stats.taskCompleted()
self.scenequeue_notcovered.add(task)
self.scenequeue_updatecounters(task, True)
@@ -2351,8 +2371,8 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
self.runq_running.add(task)
self.runq_buildable.add(task)
self.task_completeoutright(task)
self.stats.taskCompleted()
self.stats.taskSkipped()
self.stats.taskCompleted()
def execute(self):
"""

View File

@@ -377,11 +377,12 @@ class BitBakeServer(object):
if os.path.exists(sockname):
os.unlink(sockname)
# Place the log in the builddirectory alongside the lock file
logfile = os.path.join(os.path.dirname(self.bitbake_lock.name), "bitbake-cookerdaemon.log")
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
# AF_UNIX has path length issues so chdir here to workaround
cwd = os.getcwd()
logfile = os.path.join(cwd, "bitbake-cookerdaemon.log")
try:
os.chdir(os.path.dirname(sockname))
self.sock.bind(os.path.basename(sockname))

View File

@@ -347,7 +347,7 @@ class SignatureGeneratorBasicHash(SignatureGeneratorBasic):
def stampcleanmask(self, stampbase, fn, taskname, extrainfo):
return self.stampfile(stampbase, fn, taskname, extrainfo, clean=True)
def invalidate_task(self, task, d, fn):
bb.note("Tainting hash to force rebuild of task %s, %s" % (fn, task))
bb.build.write_taint(task, d, fn)
@@ -636,7 +636,7 @@ def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False):
if collapsed:
output.extend(recout)
else:
# If a dependent hash changed, might as well print the line above and then defer to the changes in
# If a dependent hash changed, might as well print the line above and then defer to the changes in
# that hash since in all likelyhood, they're the same changes this task also saw.
output = [output[-1]] + recout

View File

@@ -406,6 +406,8 @@ class MirrorUriTest(FetcherTest):
: "http://somewhere2.org/somefile_1.2.3.tar.gz",
("http://somewhere.org/somedir1/somedir2/somefile_1.2.3.tar.gz", "http://.*/.*", "http://somewhere2.org/")
: "http://somewhere2.org/somefile_1.2.3.tar.gz",
("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master", "git://someserver.org/bitbake;branch=master", "git://git.openembedded.org/bitbake;protocol=http")
: "git://git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master;protocol=http",
#Renaming files doesn't work
#("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz") : "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz"

View File

@@ -268,7 +268,7 @@ TARFILES = mega-manual.html mega-style.css \
figures/sdk-devtool-add-flow.png figures/sdk-installed-extensible-sdk-directory.png \
figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png \
figures/sdk-devtool-upgrade-flow.png figures/bitbake-build-flow.png figures/bypqs-title.png \
figures/overview-manual-title.png
figures/overview-manual-title.png figures/sdk-autotools-flow.png figures/sdk-makefile-flow.png
endif
MANUALS = $(DOC)/$(DOC).html
@@ -295,7 +295,7 @@ TARFILES = sdk-manual.html sdk-style.css figures/sdk-title.png \
figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \
figures/sdk-installed-extensible-sdk-directory.png figures/sdk-devtool-add-flow.png \
figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png \
figures/sdk-devtool-upgrade-flow.png \
figures/sdk-devtool-upgrade-flow.png figures/sdk-autotools-flow.png figures/sdk-makefile-flow.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
FIGURES = figures

View File

@@ -15072,6 +15072,31 @@
</para>
</section>
</section>
<section id='copying-licenses-that-do-not-exist'>
<title>Copying Licenses that Do Not Exist</title>
<para>
Some packages, such as the linux-firmware package, have many
licenses that are not in any way common.
You can avoid adding a lot of these types of common license
files, which are only applicable to a specific package, by using
the
<ulink url='&YOCTO_DOCS_REF_URL;#var-NO_GENERIC_LICENSE'><filename>NO_GENERIC_LICENSE</filename></ulink>
variable.
Using this variable also avoids QA errors when you use a
non-common, non-CLOSED license in a recipe.
</para>
<para>
The following is an example that uses the
<filename>LICENSE.Abilis.txt</filename>
file as the license from the fetched source:
<literallayout class='monospaced'>
NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
</literallayout>
</para>
</section>
</section>
<section id='using-the-error-reporting-tool'>

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -596,15 +596,6 @@
</para>
</section>
<section id='ref-tasks-rm_work_all'>
<title><filename>do_rm_work_all</filename></title>
<para>
Top-level task for removing work files after the build system has
finished with them.
</para>
</section>
<section id='ref-tasks-unpack'>
<title><filename>do_unpack</filename></title>

View File

@@ -9011,6 +9011,40 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
<glossentry id='var-NO_GENERIC_LICENSE'><glossterm>NO_GENERIC_LICENSE</glossterm>
<info>
NO_GENERIC_LICENSE[doc] = "Used to allow copying a license that does not exist in common licenses."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Avoids QA errors when you use a non-common, non-CLOSED
license in a recipe.
Packages exist, such as the linux-firmware package, with
many licenses that are not in any way common.
Also, new licenses are added occasionally to avoid
introducing a lot of common license files, which are only
applicable to a specific package.
<filename>NO_GENERIC_LICENSE</filename> is used to allow
copying a license that does not exist in common licenses.
</para>
<para>
The following example shows how to add
<filename>NO_GENERIC_LICENSE</filename> to a recipe:
<literallayout class='monospaced'>
NO_GENERIC_LICENSE[<replaceable>license_name</replaceable>] = "<replaceable>license_file_in_fetched_source</replaceable>"
</literallayout>
The following is an example that uses the
<filename>LICENSE.Abilis.txt</filename> file as the license
from the fetched source:
<literallayout class='monospaced'>
NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
</literallayout>
</para>
</glossdef>
</glossentry>
<glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
<info>
NO_RECOMMENDATIONS[doc] = "When set to '1', no recommended packages will be installed. Some recommended packages might be required for certain system functionality, such as kernel-modules. It is up to the user to add packages to IMAGE_INSTALL as needed."

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -14,8 +14,8 @@
from start to finish.
For general information on using the Eclipse IDE and the Yocto
Project Eclipse Plug-In, see the
"<link linkend='sdk-eclipse-project'>Developing Applications Using <trademark class='trade'>Eclipse</trademark></link>"
Chapter.
"<link linkend='application-development-workflow-using-eclipse'>Application Development Workflow Using <trademark class='trade'>Eclipse</trademark></link>"
section.
</para>
<section id='neon-setting-up-the-eclipse-ide'>
@@ -53,13 +53,18 @@
<ulink url='http://www.eclipse.org/neon/'>http://www.eclipse.org/neon/</ulink>.
</para></listitem>
<listitem><para><emphasis>Download the Tarball:</emphasis>
Click the "Download" button and then use the "Eclipse
IDE for C/C++ Developers"
appropriate for your development system.
Click the "Download" button and look for the
"Eclipse IDE for C/C++ Developers" Neon 3 Package.
Select the correct platform download link listed at
the right.
For example, click on "64-bit" next to Linux if your
build host is running a 64-bit Linux distribution.
Click through the process to save the file.
</para></listitem>
<listitem><para><emphasis>Unpack the Tarball:</emphasis>
Move to a clean directory and unpack the tarball.
Here is an example:
Move to a directory and unpack the tarball.
The following commands unpack the tarball into the
home directory:
<literallayout class='monospaced'>
$ cd ~
$ tar -xzvf ~/Downloads/eclipse-cpp-neon-3-linux-gtk-x86_64.tar.gz
@@ -84,11 +89,22 @@
<para>
Follow these steps to configure the Neon Eclipse IDE.
<note>
Depending on how you installed Eclipse and what you have
already done, some of the options will not appear.
If you cannot find an option as directed by the manual,
it has already been installed.
<note><title>Notes</title>
<itemizedlist>
<listitem><para>
Depending on how you installed Eclipse and what
you have already done, some of the options do
not appear.
If you cannot find an option as directed by the
manual, it has already been installed.
</para></listitem>
<listitem><para>
If you want to see all options regardless of
whether they are installed or not, deselect the
"Hide items that are already installed"
check box.
</para></listitem>
</itemizedlist>
</note>
<orderedlist>
<listitem><para>Be sure Eclipse is running and
@@ -164,11 +180,11 @@
in the URL field and provide a meaningful name
in the "Name" field.
</para></listitem>
<listitem><para>Click "OK" to have the entry added
to the "Work with:" drop-down list.
</para></listitem>
<listitem><para>Select the entry for the plug-in
from the "Work with:" drop-down list.
<listitem><para>
Click "OK" to have the entry automatically
populate the "Work with:" field and to have
the items for installation appear in the window
below.
</para></listitem>
<listitem><para>Check the boxes next to the following:
<literallayout class='monospaced'>
@@ -196,8 +212,14 @@
To install the Neon Eclipse Yocto Plug-in from the latest
source code, follow these steps:
<orderedlist>
<listitem><para>Be sure your development system
has JDK 1.8+
<listitem><para>
Be sure your build host has JDK version 1.8
or greater.
On a Linux build host you can determine the
version using the following command:
<literallayout class='monospaced'>
$ java -version
</literallayout>
</para></listitem>
<listitem><para>install X11-related packages:
<literallayout class='monospaced'>
@@ -211,18 +233,19 @@
$ git clone git://git.yoctoproject.org/eclipse-yocto
</literallayout>
</para></listitem>
<listitem><para>Use Git to checkout the correct
tag:
<listitem><para>
Use Git to create the correct tag:
<literallayout class='monospaced'>
$ cd ~/eclipse-yocto
$ git checkout neon/yocto-&DISTRO;
$ git checkout -b neon/&DISTRO_NAME_NO_CAP; remotes/origin/neon/&DISTRO_NAME_NO_CAP;
</literallayout>
This creates a local tag named
<filename>neon/yocto-&DISTRO;</filename> based on
the branch <filename>origin/neon-master</filename>.
This puts you in a detached HEAD state, which
is fine since you are only going to be building
and not developing.
<filename>neon/&DISTRO_NAME_NO_CAP;</filename>
based on the branch
<filename>origin/neon/&DISTRO_NAME_NO_CAP;</filename>.
You are put into a detached HEAD state,
which is fine since you are only going to
be building and not developing.
</para></listitem>
<listitem><para>Change to the
<filename>scripts</filename>
@@ -243,20 +266,22 @@
directory of the Git repository created
earlier.
</para></listitem>
<listitem><para>Run the <filename>build.sh</filename>
<listitem><para>
Run the <filename>build.sh</filename>
script as directed.
Be sure to provide the tag name, documentation
branch, and a release name.</para>
<para>
Following is an example:
Be sure to provide the tag name,
documentation branch, and a release name.</para>
<para>Following is an example:
<literallayout class='monospaced'>
$ ECLIPSE_HOME=/home/scottrif/eclipse-yocto/scripts/eclipse ./build.sh -l neon/yocto-&DISTRO; master yocto-&DISTRO; 2>&amp;1 | tee build.log
$ ECLIPSE_HOME=/home/scottrif/eclipse-yocto/scripts/eclipse ./build.sh -l neon/&DISTRO_NAME_NO_CAP; master yocto-&DISTRO; 2>&amp;1 | tee build.log
</literallayout>
The previous example command adds the tag you
need for <filename>neon/yocto-&DISTRO;</filename>
to <filename>HEAD</filename>, then tells the
build script to use the local (-l) Git checkout
for the build.
The previous example command adds the tag
you need for
<filename>neon/&DISTRO_NAME_NO_CAP;</filename>
to <filename>HEAD</filename>, then tells
the build script to use the local (-l) Git
checkout for the build.
After running the script, the file
<filename>org.yocto.sdk-</filename><replaceable>release</replaceable><filename>-</filename><replaceable>date</replaceable><filename>-archive.zip</filename>
is in the current directory.
@@ -310,7 +335,7 @@
</section>
<section id='neon-configuring-the-eclipse-yocto-plug-in'>
<title>Configuring the Neon Eclipse Yocto Plug-in</title>
<title>Configuring the Neon Eclipse Yocto Plug-In</title>
<para>
Configuring the Neon Eclipse Yocto Plug-in involves setting the
@@ -324,14 +349,16 @@
<para>
To start, you need to do the following from within the
Eclipse IDE:
<itemizedlist>
<listitem><para>Choose "Preferences" from the
<orderedlist>
<listitem><para>
Choose "Preferences" from the
"Window" menu to display the Preferences Dialog.
</para></listitem>
<listitem><para>Click "Yocto Project SDK" to display
<listitem><para>
Click "Yocto Project SDK" to display
the configuration screen.
</para></listitem>
</itemizedlist>
</orderedlist>
The following sub-sections describe how to configure the
the plug-in.
<note>
@@ -354,15 +381,15 @@
the sysroot location, and select the target
architecture.
<itemizedlist>
<listitem><para><emphasis>Selecting the Toolchain Type:</emphasis>
Choose between
<filename>Standalone pre-built toolchain</filename>
<listitem><para>
<emphasis>Selecting the Toolchain Type:</emphasis>
Choose between "Standalone pre-built toolchain"
and
<filename>Build system derived toolchain</filename>
for Cross Compiler Options.
"Build system derived toolchain" for Cross Compiler
Options.
<itemizedlist>
<listitem><para><emphasis>
<filename>Standalone Pre-built Toolchain:</filename></emphasis>
<listitem><para>
<emphasis>Standalone Pre-built Toolchain:</emphasis>
Select this type when you are using
a stand-alone cross-toolchain.
For example, suppose you are an
@@ -376,24 +403,25 @@
and installed a pre-built toolchain
for an existing image.
</para></listitem>
<listitem><para><emphasis>
<filename>Build System Derived Toolchain:</filename></emphasis>
<listitem><para>
<emphasis>Build System Derived Toolchain:</emphasis>
Select this type if you built the
toolchain as part of the
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>.
When you select
<filename>Build system derived toolchain</filename>,
you are using the toolchain built and
bundled inside the Build Directory.
When you select "Build system derived
toolchain", you are using the toolchain
built and bundled inside the Build
Directory.
For example, suppose you created a
suitable image using the steps in the
<ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>wiki</ulink>.
In this situation, you would select the
<filename>Build system derived toolchain</filename>.
In this situation, you would select
"Build system derived toolchain".
</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para><emphasis>Specify the Toolchain Root Location:</emphasis>
<listitem><para>
<emphasis>Specify the Toolchain Root Location:</emphasis>
If you are using a stand-alone pre-built
toolchain, you should be pointing to where it is
installed (e.g.
@@ -402,10 +430,10 @@
"<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
section for information about how the SDK is
installed.</para>
<para>If you are using a build system derived
toolchain, the path you provide for the
<filename>Toolchain Root Location</filename>
field is the
"Toolchain Root Location" field is the
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>
from which you run the
<filename>bitbake</filename> command (e.g
@@ -414,10 +442,12 @@
"<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
section.
</para></listitem>
<listitem><para><emphasis>Specify Sysroot Location:</emphasis>
<listitem><para>
<emphasis>Specify Sysroot Location:</emphasis>
This location is where the root filesystem for
the target hardware resides.
</para>
<para>This location depends on where you
separately extracted and installed the
target filesystem when you either built
@@ -438,17 +468,18 @@
and you would browse to and select that directory
(e.g. <filename>/home/scottrif/build/MY_QEMU_ROOTFS</filename>).
</para>
<para>For more information on how to install the
toolchain and on how to extract and install the
sysroot filesystem, see the
"<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
section.
</para></listitem>
<listitem><para><emphasis>Select the Target Architecture:</emphasis>
<listitem><para>
<emphasis>Select the Target Architecture:</emphasis>
The target architecture is the type of hardware
you are going to use or emulate.
Use the pull-down
<filename>Target Architecture</filename> menu
Use the pull-down "Target Architecture" menu
to make your selection.
The pull-down menu should have the supported
architectures.
@@ -473,16 +504,17 @@
emulator, or you can choose to run your image on actual
hardware.
<itemizedlist>
<listitem><para><emphasis>QEMU:</emphasis>
<listitem><para>
<emphasis>QEMU:</emphasis>
Select this option if you will be using the
QEMU emulator.
If you are using the emulator, you also need to
locate the kernel and specify any custom
options.</para>
<para>If you selected the
<filename>Build system derived toolchain</filename>,
the target kernel you built will be located in
the
<para>If you selected the Build system derived
toolchain, the target kernel you built will be
located in the
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>
in
<filename>tmp/deploy/images/<replaceable>machine</replaceable></filename>
@@ -494,10 +526,12 @@
followed by the image (e.g.
<filename>/home/scottrif/poky/build/tmp/deploy/images/qemux86/bzImage-qemux86.bin</filename>).
</para>
<para>If you selected the standalone pre-built
toolchain, the pre-built image you downloaded is
located in the directory you specified when you
downloaded the image.</para>
<para>Most custom options are for advanced QEMU
users to further customize their QEMU instance.
These options are specified between paired
@@ -514,16 +548,16 @@
The following is an example:
<literallayout class='monospaced'>
serial &lt;-m 256 -full-screen&gt;
</literallayout></para>
<para>
</literallayout>
Regardless of the mode, Sysroot is already
defined as part of the Cross-Compiler Options
configuration in the
<filename>Sysroot Location:</filename> field.
configuration in the "Sysroot Location:" field.
</para></listitem>
<listitem><para><emphasis>External HW:</emphasis>
<listitem><para>
<emphasis>External HW:</emphasis>
Select this option if you will be using actual
hardware.</para></listitem>
hardware.
</para></listitem>
</itemizedlist>
</para>
@@ -558,31 +592,37 @@
To create a project based on a Yocto template and then display
the source code, follow these steps:
<orderedlist>
<listitem><para>Select "C Project" from the "File -> New" menu.
<listitem><para>
Select "C Project" from the "File -> New" menu.
</para></listitem>
<listitem><para>Expand <filename>Yocto Project SDK Autotools Project</filename>.
<listitem><para>
Expand "Yocto Project SDK Autotools Project".
</para></listitem>
<listitem><para>Select <filename>Hello World ANSI C Autotools Projects</filename>.
<listitem><para>
Select "Hello World ANSI C Autotools Projects".
This is an Autotools-based project based on a Yocto
template.
</para></listitem>
<listitem><para>Put a name in the <filename>Project name:</filename>
field.
<listitem><para>
Put a name in the "Project name:" field.
Do not use hyphens as part of the name
(e.g. <filename>hello</filename>).
(e.g. "hello").
</para></listitem>
<listitem><para>Click "Next".
<listitem><para>
Click "Next".
</para></listitem>
<listitem><para>Add appropriate information in the various
fields.
<listitem><para>
Add appropriate information in the various fields.
</para></listitem>
<listitem><para>Click "Finish".
<listitem><para>
Click "Finish".
</para></listitem>
<listitem><para>If the "open perspective" prompt appears,
<listitem><para>
If the "open perspective" prompt appears,
click "Yes" so that you are in the C/C++ perspective.
</para></listitem>
<listitem><para>The left-hand navigation pane shows your
project.
<listitem><para>
The left-hand navigation pane shows your project.
You can display your source by double clicking the
project's source file.
</para></listitem>
@@ -600,7 +640,8 @@
You can override these settings for a given project by following
these steps:
<orderedlist>
<listitem><para>Select "Yocto Project Settings" from
<listitem><para>
Select "Yocto Project Settings" from
the "Project -> Properties" menu.
This selection brings up the Yocto Project Settings
Dialog and allows you to make changes specific to an
@@ -613,22 +654,19 @@
The Yocto Project Settings Dialog allows you to override
those default settings for a given project.
</para></listitem>
<listitem><para>Make or verify your configurations for the
project and click "OK".
<listitem><para>
Make or verify your configurations for the project and
click "OK".
</para></listitem>
<listitem><para>Right-click in the navigation pane and
select "Reconfigure Project" from the pop-up menu.
<listitem><para>
Right-click in the navigation pane and select
"Reconfigure Project" from the pop-up menu.
This selection reconfigures the project by running
<filename>autogen.sh</filename> in the workspace for
your project.
The script also runs <filename>libtoolize</filename>,
<filename>aclocal</filename>,
<filename>autoconf</filename>,
<filename>autoheader</filename>,
<filename>automake --a</filename>, and
<filename>./configure</filename>.
Click on the "Console" tab beneath your source code to
see the results of reconfiguring your project.
<ulink url='https://en.wikipedia.org/wiki/GNU_Build_System'>Autotools GNU utility programs</ulink>
such as Autoconf, Automake, and so forth in the
workspace for your project.
Click on the "Console" tab beneath your source code
to see the results of reconfiguring your project.
</para></listitem>
</orderedlist>
</para>
@@ -656,8 +694,7 @@
Select the project.
</para></listitem>
<listitem><para>
Select "Folder" from the
<filename>File > New</filename> menu.
Select "Folder" from the "File > New" menu.
</para></listitem>
<listitem><para>
In the "New Folder" Dialog, select "Link to alternate
@@ -782,54 +819,66 @@
exit out of or close that shell).
</note>
<orderedlist>
<listitem><para>Select "Debug Configurations..." from the
<listitem><para>
Select "Debug Configurations..." from the
"Run" menu.</para></listitem>
<listitem><para>In the left area, expand
<filename>C/C++Remote Application</filename>.
<listitem><para>
In the left area, expand
"C/C++Remote Application".
</para></listitem>
<listitem><para>Locate your project and select it to bring
<listitem><para>
Locate your project and select it to bring
up a new tabbed view in the Debug Configurations Dialog.
</para></listitem>
<listitem><para>Click on the "Debugger" tab to see the
<listitem><para>
Click on the "Debugger" tab to see the
cross-tool debugger you are using.
Be sure to change to the debugger perspective in Eclipse.
</para></listitem>
<listitem><para>Click on the "Main" tab.
<listitem><para>
Click on the "Main" tab.
</para></listitem>
<listitem><para>Create a new connection to the QEMU instance
by clicking on "new".</para></listitem>
<listitem><para>Select <filename>SSH</filename>, which means
<listitem><para>
Select "SSH", which means
Secure Socket Shell.
Optionally, you can select a TCF connection instead.
</para></listitem>
<listitem><para>Click "Next".
<listitem><para>
Click "Next".
</para></listitem>
<listitem><para>Clear out the "Connection name" field and
<listitem><para>
Clear out the "Connection name" field and
enter any name you want for the connection.
</para></listitem>
<listitem><para>Put the IP address for the connection in
<listitem><para>
Put the IP address for the connection in
the "Host" field.
For QEMU, the default is <filename>192.168.7.2</filename>.
For QEMU, the default is "192.168.7.2".
However, if a previous QEMU session did not exit
cleanly, the IP address increments (e.g.
<filename>192.168.7.3</filename>).
"192.168.7.3").
<note>
You can find the IP address for the current QEMU
session by looking in the xterm that opens when
you launch QEMU.
</note>
</para></listitem>
<listitem><para>Enter <filename>root</filename>, which
<listitem><para>
Enter "root", which
is the default for QEMU, for the "User" field.
Be sure to leave the password field empty.
</para></listitem>
<listitem><para>Click "Finish" to close the
New Connections Dialog.
</para></listitem>
<listitem><para>If necessary, use the drop-down menu now in the
<listitem><para>
If necessary, use the drop-down menu now in the
"Connection" field and pick the IP Address you entered.
</para></listitem>
<listitem><para>Assuming you are connecting as the root user,
<listitem><para>
Assuming you are connecting as the root user,
which is the default for QEMU x86-64 SDK images provided by
the Yocto Project, in the "Remote Absolute File Path for
C/C++ Application" field, browse to
@@ -874,9 +923,11 @@
<listitem><para>
Be sure you change to the "Debug" perspective in Eclipse.
</para></listitem>
<listitem><para>Click "Debug"
<listitem><para>
Click "Debug"
</para></listitem>
<listitem><para>Accept the debug perspective.
<listitem><para>
Accept the debug perspective.
</para></listitem>
</orderedlist>
</para>

View File

@@ -25,32 +25,33 @@
Go to <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>
</para></listitem>
<listitem><para>
<emphasis>Open the Folder for Your Development System:</emphasis>
Open the folder that matches your host development system
<emphasis>Open the Folder for Your Build Host:</emphasis>
Open the folder that matches your
<ulink url='&YOCTO_DOCS_REF_URL;#build-system-term'>build host</ulink>
(i.e. <filename>i686</filename> for 32-bit machines or
<filename>x86_64</filename> for 64-bit machines).
</para></listitem>
<listitem><para>
<emphasis>Locate and Download the SDK Installer:</emphasis>
You need to find and download the installer appropriate for
your development system, target hardware, and image type.
your build host, target hardware, and image type.
</para>
<para>The installer files (<filename>*.sh</filename>) follow
this naming convention:
<literallayout class='monospaced'>
poky-eglibc-<replaceable>host_system</replaceable>-core-image-<replaceable>type</replaceable>-<replaceable>arch</replaceable>-toolchain-ext-<replaceable>release</replaceable>.sh
poky-glibc-<replaceable>host_system</replaceable>-core-image-<replaceable>type</replaceable>-<replaceable>arch</replaceable>-toolchain[-ext]-<replaceable>release</replaceable>.sh
Where:
<replaceable>host_system</replaceable> is a string representing your development system:
i686 or x86_64.
"i686" or "x86_64"
<replaceable>type</replaceable> is a string representing either a "sato" or "minimal"
image.
<replaceable>type</replaceable> is a string representing the image:
"sato" or "minimal"
<replaceable>arch</replaceable> is a string representing the target architecture:
aarch64, armv5e, core2-64, coretexa8hf-neon, i586, mips3242,
mips64, or ppc7400.
"aarch64", "armv5e", "core2-64", "coretexa8hf-neon", "i586", "mips32r2",
"mips64", or "ppc7400"
<replaceable>release</replaceable> is the version of Yocto Project.
@@ -65,10 +66,10 @@
libraries appropriate for developing against those images.
</para>
<para>For example, if your host development system is a
64-bit x86 system and you are need an extended SDK for a
64-bit core2 target, go into the <filename>x86_64</filename>
folder and download the following installer:
<para>For example, if your build host is a 64-bit x86 system
and you need an extended SDK for a 64-bit core2 target, go
into the <filename>x86_64</filename> folder and download the
following installer:
<literallayout class='monospaced'>
poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
</literallayout>
@@ -97,7 +98,7 @@
<title>Building an SDK Installer</title>
<para>
As an alternative to locating and downloading a SDK installer,
As an alternative to locating and downloading an SDK installer,
you can build the SDK installer.
Follow these steps:
<orderedlist>
@@ -138,8 +139,7 @@
Among other things, the script creates the
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>,
which is <filename>build</filename> in this case
and is located in the
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
and is located in the Source Directory.
After the script runs, your current working directory
is set to the <filename>build</filename> directory.
</para></listitem>
@@ -148,14 +148,14 @@
Check to be sure that your
<ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
variable in the <filename>local.conf</filename> file in your
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>
matches the architecture for which you are building.
Build Directory matches the architecture for which you are
building.
</para></listitem>
<listitem><para>
<emphasis>Make Sure Your SDK Machine is Correctly Set:</emphasis>
If you are building a toolchain designed to run on an
architecture that differs from your current development host
machine (i.e. the build machine), be sure that the
machine (i.e. the build host), be sure that the
<ulink url='&YOCTO_DOCS_REF_URL;#var-SDKMACHINE'><filename>SDKMACHINE</filename></ulink>
variable in the <filename>local.conf</filename> file in your
Build Directory is correctly set.
@@ -174,7 +174,7 @@
<literallayout class='monospaced'>
$ bitbake <replaceable>image</replaceable> -c populate_sdk_ext
</literallayout>
These commands result in a SDK installer that contains the
These commands produce an SDK installer that contains the
sysroot that matches your target root filesystem.</para>
<para>When the <filename>bitbake</filename> command completes,
@@ -183,16 +183,18 @@
<note><title>Notes</title>
<itemizedlist>
<listitem><para>
By default, this toolchain does not build static
binaries.
By default, the previous BitBake command does not
build static binaries.
If you want to use the toolchain to build these
types of libraries, you need to be sure your SDK
has the appropriate static development libraries.
Use the
<ulink url='&YOCTO_DOCS_REF_URL;#var-TOOLCHAIN_TARGET_TASK'><filename>TOOLCHAIN_TARGET_TASK</filename></ulink>
variable inside your <filename>local.conf</filename>
file to install the appropriate library packages
in the SDK.
file before building the SDK installer.
Doing so ensures that the eventual SDK installation
process installs the appropriate library packages
as part of the SDK.
Following is an example using
<filename>libc</filename> static development
libraries:
@@ -275,6 +277,9 @@
<para>The pre-built root filesystem image files
follow these naming conventions:
<literallayout class='monospaced'>
<!--
core-image-<replaceable>profile</replaceable>-<replaceable>arch</replaceable>-<replaceable>date_time</replaceable>.rootfs.tar.bz2
-->
core-image-<replaceable>profile</replaceable>-<replaceable>arch</replaceable>.tar.bz2
Where:
@@ -285,9 +290,12 @@
"Images" chapter in the Yocto Project Reference Manual.
<replaceable>arch</replaceable> is a string representing the target architecture:
beaglebone, edgerouter, genericx86, genericx86-64, mpc8315e-rdb,
qemuarm, qemuarm64, qemumips, qemumips64, qemuppc, qemux86, or
qemux86-64.
beaglebone, edgerouter, genericx86, genericx86-64, mpc8315e-rdb,
and several versions for qemu*.
<!-->
<replaceable>date_time</replaceable> is a date and time stamp.
-->
</literallayout>
The root filesystems provided by the Yocto Project are based
@@ -300,7 +308,7 @@
<filename>core-image-minimal</filename> image, you need
to download the following root filesystem image file:
<literallayout class='monospaced'>
core-image-minimal-beaglebone.tar.bz2
core-image-minimal-beaglebone-yocto.tar.bz2
</literallayout>
</para></listitem>
<listitem><para>
@@ -313,8 +321,8 @@
which you installed the toolchain (e.g.
<filename>poky_sdk</filename>).</para>
<para>Following is an example for the Core2 64-bit
architecture:
<para>Following is an example for the BeagleBone Board
previously shown:
<literallayout class='monospaced'>
$ source ~/poky_sdk/environment-setup-core2-64-poky-linux
</literallayout>

View File

@@ -12,15 +12,34 @@
application all from within Eclipse.
This chapter describes general workflow using the SDK and Eclipse
and how to configure and set up Eclipse.
<note><title>Notes</title>
<itemizedlist>
<listitem><para>
This chapter assumes development of applications on top of
an image prepared using the Yocto Project.
As such, inclusion of a pre-built image or the building of
an image is included in the workflow.
</para></listitem>
<listitem><para>
The chapter also assumes development on a build host that
is set up to use the Yocto Project.
Realize that you can easily use Eclipse and the Yocto
Project plug-in to develop an application for any number
of images developed and tested on different machines.
</para></listitem>
</itemizedlist>
</note>
</para>
<section id='workflow-using-eclipse'>
<title>Workflow Using <trademark class='trade'>Eclipse</trademark></title>
<section id='application-development-workflow-using-eclipse'>
<title>Application Development Workflow Using <trademark class='trade'>Eclipse</trademark></title>
<para>
The following figure and supporting list summarize the
application development general workflow that employs both the
SDK Eclipse.
The following figure and supporting list summarize a
general workflow for application development that uses the
SDK within the Eclipse IDE.
The application developed runs on top of an image created using
the Yocto Project.
</para>
<para>
@@ -32,22 +51,29 @@
<orderedlist>
<listitem><para>
<emphasis>Prepare the Host System for the Yocto Project</emphasis>:
Because this example workflow assumes development on a
system set up to use the Yocto Project, you need to be
sure your
<ulink url='&YOCTO_DOCS_REF_URL;#hardware-build-system-term'>build host</ulink>
can use the Yocto Project.
See the
"<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
and
"<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
sections both in the Yocto Project Reference Manual for
requirements.
In particular, be sure your host system has the
<filename>xterm</filename> package installed.
"<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-the-development-host-to-use-the-yocto-project'>Preparing a Build Host</ulink>"
section in the Yocto Project Development Tasks Manual for
information on how to set up your build host.
<note>
Be sure you install the "xterm" package, which is a
<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>graphical and Eclipse plug-in extra</ulink>
needed by Eclipse.
</note>
</para></listitem>
<listitem><para>
<emphasis>Secure the Yocto Project Kernel Target
Image</emphasis>:
You must have a target kernel image that has been built
using the OpenEmbedded build system.</para>
<para>Depending on whether the Yocto Project has a
pre-built image that matches your target architecture
<emphasis>Secure the Yocto Project Kernel Target Image</emphasis>:
This example workflow assumes application development on
top of an image built using the Yocto Project.
Depending on whether you are using a pre-built image
that matches your target architecture or you are using an
image you build using the
<ulink url='&YOCTO_DOCS_REF_URL;#build-system-term'>OpenEmbedded Build System</ulink>
and where you are going to run the image while you
develop your application (QEMU or real hardware), the
area from which you get the image differs.
@@ -78,6 +104,10 @@
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#using-devtool-to-patch-the-kernel'>Using <filename>devtool</filename> to Patch the Kernel</ulink>"
section in the Yocto Project Linux Kernel
Development Manual for an example.
You can also see the
"<ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage#Making_a_Suitable_Qemux86_Image'>Making a Suitable Qemux86 Image</ulink>"
wiki for steps needed to build an image suitable
for QEMU and for debugging within the Eclipse IDE.
</para></listitem>
</itemizedlist>
</para></listitem>
@@ -91,10 +121,10 @@
section.
</para></listitem>
<listitem><para>
<emphasis>Secure the Target Root Filesystem
and the Cross-Development Toolchain</emphasis>:
<emphasis>Secure the Target Root Filesystem and the Cross-Development Toolchain</emphasis>:
You need to find and download the appropriate root
filesystem and the cross-development toolchain.</para>
<para>You can find the tarballs for the root filesystem
in the same area used for the kernel image.
Depending on the type of image you are running, the
@@ -102,6 +132,7 @@
For example, if you are developing an application that
runs on an image that supports Sato, you need to get a
root filesystem that supports Sato.</para>
<para>You can find the cross-development toolchains at
<ulink url='&YOCTO_TOOLCHAIN_DL_URL;'><filename>toolchains</filename></ulink>.
Be sure to get the correct toolchain for your
@@ -118,14 +149,13 @@
section.
Another helpful resource for building an installer
is the
<ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>Cookbook guide to Making an Eclipse Debug Capable Image</ulink>
"<ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>Cookbook guide to Making an Eclipse Debug Capable Image</ulink>"
wiki page.
</note>
</para></listitem>
<listitem><para>
<emphasis>Create and Build Your Application</emphasis>:
At this point, you need to have source files for your
application.
You need to have source files for your application.
Once you have the files, you can use the Eclipse IDE
to import them and build the project.
</para></listitem>
@@ -259,15 +289,28 @@
</para></listitem>
<listitem><para>
<emphasis>Install the Software:</emphasis>
Accept the default "cpp-oxygen" directory and
click "Install".
Accept any license agreements and approve any
certificates.
Click "Install" to begin the installation.
Accept all the certificates and any license
agreements.
Click "Install" again to finish the installation.
</para></listitem>
<listitem><para>
<emphasis>Launch Oxygen:</emphasis>
Click the "Launch" button and accept the
default "workspace".
Accept the default "workspace" and click the
"Launch" button.
You should see the Eclipse welcome page from which
can click "workbench" to enter your workspace.
<note>
The executable for Eclipse is located in the
<filename>eclipse/cpp-oxygen/eclipse</filename>
folder.
To launch Eclipse outside of the installation
process, simply execute that binary.
Here is an example:
<literallayout class='monospaced'>
$ ~/eclipse/cpp-oxygen/eclipse/eclipse
</literallayout>
</note>
</para></listitem>
</orderedlist>
</para>
@@ -278,17 +321,29 @@
<para>
Follow these steps to configure the Oxygen Eclipse IDE.
<note>
Depending on how you installed Eclipse and what
you have already done, some of the options will
not appear.
If you cannot find an option as directed by the
manual, it has already been installed.
<note><title>Notes</title>
<itemizedlist>
<listitem><para>
Depending on how you installed Eclipse and what
you have already done, some of the options do
not appear.
If you cannot find an option as directed by the
manual, it has already been installed.
</para></listitem>
<listitem><para>
If you want to see all options regardless of
whether they are installed or not, deselect the
"Hide items that are already installed"
check box.
</para></listitem>
</itemizedlist>
</note>
<orderedlist>
<listitem><para>
Be sure Eclipse is running and you are in your
workbench.
Just click "workbench" if you are not in your
default workspace.
</para></listitem>
<listitem><para>
Select "Install New Software" from the "Help"
@@ -341,7 +396,7 @@
<para>
You can install the Eclipse Yocto Plug-in into the
Eclipse IDE one of two ways: use the Yocto Project's
Eclipse Update site to install the pre-built plug-in
Eclipse Update site to install the pre-built plug-in,
or build and install the plug-in from the latest
source code.
</para>
@@ -370,12 +425,10 @@
name in the "Name" field.
</para></listitem>
<listitem><para>
Click "OK" to have the entry added
to the "Work with:" drop-down list.
</para></listitem>
<listitem><para>
Select the entry for the plug-in
from the "Work with:" drop-down list.
Click "OK" to have the entry automatically
populate the "Work with:" field and to have
the items for installation appear in the window
below.
</para></listitem>
<listitem><para>
Check the boxes next to the following:
@@ -407,8 +460,13 @@
latest source code, follow these steps:
<orderedlist>
<listitem><para>
Be sure your development system
has JDK 1.8+
Be sure your build host has JDK version 1.8
or greater.
On a Linux build host you can determine the
version using the following command:
<literallayout class='monospaced'>
$ java -version
</literallayout>
</para></listitem>
<listitem><para>
Install X11-related packages:
@@ -428,12 +486,12 @@
Use Git to create the correct tag:
<literallayout class='monospaced'>
$ cd ~/eclipse-yocto
$ git checkout -b oxygen/yocto-&DISTRO; remotes/origin/oxygen-master
$ git checkout -b oxygen/&DISTRO_NAME_NO_CAP; remotes/origin/oxygen/&DISTRO_NAME_NO_CAP;
</literallayout>
This creates a local tag named
<filename>oxygen/yocto-&DISTRO;</filename>
<filename>oxygen/&DISTRO_NAME_NO_CAP;</filename>
based on the branch
<filename>origin/oxygen-master</filename>.
<filename>origin/oxygen/&DISTRO_NAME_NO_CAP;</filename>.
You are put into a detached HEAD state,
which is fine since you are only going to
be building and not developing.
@@ -467,11 +525,11 @@
<para>
Following is an example:
<literallayout class='monospaced'>
$ ECLIPSE_HOME=/home/scottrif/eclipse-yocto/scripts/eclipse ./build.sh -l oxygen/yocto-&DISTRO; master yocto-&DISTRO; 2>&amp;1 | tee build.log
$ ECLIPSE_HOME=/home/scottrif/eclipse-yocto/scripts/eclipse ./build.sh -l oxygen/&DISTRO_NAME_NO_CAP; master yocto-&DISTRO; 2>&amp;1 | tee build.log
</literallayout>
The previous example command adds the tag
you need for
<filename>oxygen/yocto-&DISTRO;</filename>
<filename>oxygen/&DISTRO_NAME_NO_CAP;</filename>
to <filename>HEAD</filename>, then tells
the build script to use the local (-l) Git
checkout for the build.
@@ -538,7 +596,7 @@
</section>
<section id='oxygen-configuring-the-eclipse-yocto-plug-in'>
<title>Configuring the Oxygen Eclipse Yocto Plug-in</title>
<title>Configuring the Oxygen Eclipse Yocto Plug-In</title>
<para>
Configuring the Oxygen Eclipse Yocto Plug-in involves
@@ -553,7 +611,7 @@
<para>
To start, you need to do the following from within the
Eclipse IDE:
<itemizedlist>
<orderedlist>
<listitem><para>
Choose "Preferences" from the "Window" menu to
display the Preferences Dialog.
@@ -562,7 +620,7 @@
Click "Yocto Project SDK" to display
the configuration screen.
</para></listitem>
</itemizedlist>
</orderedlist>
The following sub-sections describe how to configure
the plug-in.
<note>
@@ -570,7 +628,7 @@
example for preparing a QEMU image for use with
Eclipse is referenced as the "wiki" and is linked
to the example on the
<ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'> Cookbook guide to Making an Eclipse Debug Capable Image</ulink>
"<ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'> Cookbook guide to Making an Eclipse Debug Capable Image</ulink>"
wiki page.
</note>
</para>
@@ -587,18 +645,13 @@
architecture.
<itemizedlist>
<listitem><para>
<emphasis>Selecting the Toolchain
Type:</emphasis>
Choose between
<filename>Standalone pre-built toolchain</filename>
and
<filename>Build system derived toolchain</filename>
for Cross Compiler Options.
<emphasis>Selecting the Toolchain Type:</emphasis>
Choose between "Standalone pre-built toolchain"
and "Build system derived toolchain" for
Cross Compiler Options.
<itemizedlist>
<listitem><para>
<emphasis>
<filename>Standalone Pre-built Toolchain:</filename>
</emphasis>
<emphasis>Standalone Pre-built Toolchain:</emphasis>
Select this type when you are using
a stand-alone cross-toolchain.
For example, suppose you are an
@@ -613,29 +666,24 @@
for an existing image.
</para></listitem>
<listitem><para>
<emphasis>
<filename>Build System Derived Toolchain:</filename>
</emphasis>
<emphasis>Build System Derived Toolchain:</emphasis>
Select this type if you built the
toolchain as part of the
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>.
When you select
<filename>Build system derived toolchain</filename>,
you are using the toolchain built
and bundled inside the Build
When you select "Build system derived
toolchain", you are using the toolchain
built and bundled inside the Build
Directory.
For example, suppose you created a
suitable image using the steps in the
<ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>wiki</ulink>.
In this situation, you would select
the
<filename>Build system derived toolchain</filename>.
"Build system derived toolchain".
</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
<emphasis>Specify the Toolchain Root
Location:</emphasis>
<emphasis>Specify the Toolchain Root Location:</emphasis>
If you are using a stand-alone pre-built
toolchain, you should be pointing to where
it is installed (e.g.
@@ -644,11 +692,10 @@
"<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
section for information about how the SDK is
installed.</para>
<para>If you are using a build system
derived toolchain, the path you provide for
the
<filename>Toolchain Root Location</filename>
field is the
the "Toolchain Root Location" field is the
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>
from which you run the
<filename>bitbake</filename> command (e.g
@@ -659,11 +706,11 @@
section.
</para></listitem>
<listitem><para>
<emphasis>Specify Sysroot Location:
</emphasis>
<emphasis>Specify Sysroot Location:</emphasis>
This location is where the root filesystem
for the target hardware resides.
</para>
<para>This location depends on where you
separately extracted and installed the
target filesystem when you either built
@@ -685,6 +732,7 @@
directory (e.g.
<filename>/home/scottrif/poky/build/MY_QEMU_ROOTFS</filename>).
</para>
<para>For more information on how to
install the toolchain and on how to extract
and install the sysroot filesystem, see the
@@ -692,12 +740,10 @@
section.
</para></listitem>
<listitem><para>
<emphasis>Select the Target Architecture:
</emphasis>
<emphasis>Select the Target Architecture:</emphasis>
The target architecture is the type of
hardware you are going to use or emulate.
Use the pull-down
<filename>Target Architecture</filename>
Use the pull-down "Target Architecture"
menu to make your selection.
The pull-down menu should have the
supported architectures.
@@ -730,10 +776,10 @@
If you are using the emulator, you also
need to locate the kernel and specify any
custom options.</para>
<para>If you selected the
<filename>Build system derived toolchain</filename>,
the target kernel you built will be located
in the
<para>If you selected the Build system derived
toolchain, the target kernel you built will be
located in the
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>
in
<filename>tmp/deploy/images/<replaceable>machine</replaceable></filename>
@@ -745,11 +791,13 @@
Directory path followed by the image (e.g.
<filename>/home/scottrif/poky/build/tmp/deploy/images/qemux86/bzImage-qemux86.bin</filename>).
</para>
<para>If you selected the standalone
pre-built toolchain, the pre-built image
you downloaded is located in the directory
you specified when you downloaded the
image.</para>
<para>Most custom options are for advanced
QEMU users to further customize their QEMU
instance.
@@ -768,23 +816,22 @@
The following is an example:
<literallayout class='monospaced'>
serial &lt;-m 256 -full-screen&gt;
</literallayout></para>
<para>
</literallayout>
Regardless of the mode, Sysroot is already
defined as part of the Cross-Compiler
Options configuration in the
<filename>Sysroot Location:</filename>
field.
Options configuration in the "Sysroot
Location:" field.
</para></listitem>
<listitem><para>
<emphasis>External HW:</emphasis>
Select this option if you will be using
actual hardware.</para></listitem>
actual hardware.
</para></listitem>
</itemizedlist>
</para>
<para>
Click the "Apply" and "OK" to save your plug-in
Click "Apply and Close" to save your plug-in
configurations.
</para>
</section>
@@ -822,19 +869,17 @@
click "Next".
</para></listitem>
<listitem><para>
Expand
<filename>Yocto Project SDK Autotools Project</filename>.
Expand "Yocto Project SDK Autotools Project".
</para></listitem>
<listitem><para>
Select <filename>Hello World ANSI C Autotools Projects</filename>.
Select "Hello World ANSI C Autotools Projects".
This is an Autotools-based project based on a Yocto
template.
</para></listitem>
<listitem><para>
Put a name in the
<filename>Project name:</filename> field.
Put a name in the "Project name:" field.
Do not use hyphens as part of the name
(e.g. <filename>hello</filename>).
(e.g. "hello").
</para></listitem>
<listitem><para>
Click "Next".
@@ -886,21 +931,15 @@
</para></listitem>
<listitem><para>
Make or verify your configurations for the
project and click "OK".
project and click "Apply and Close".
</para></listitem>
<listitem><para>
Right-click in the navigation pane and
select "Reconfigure Project" from the pop-up menu.
Right-click in the navigation pane and select
"Reconfigure Project" from the pop-up menu.
This selection reconfigures the project by running
<filename>autogen.sh</filename> in the workspace
for your project.
The script also runs
<filename>libtoolize</filename>,
<filename>aclocal</filename>,
<filename>autoconf</filename>,
<filename>autoheader</filename>,
<filename>automake --a</filename>, and
<filename>./configure</filename>.
<ulink url='https://en.wikipedia.org/wiki/GNU_Build_System'>Autotools GNU utility programs</ulink>
such as Autoconf, Automake, and so forth in the
workspace for your project.
Click on the "Console" tab beneath your source code
to see the results of reconfiguring your project.
</para></listitem>
@@ -914,7 +953,8 @@
To build the project select "Build All" from the
"Project" menu.
The console should update and you can note the
cross-compiler you are using.
cross-compiler you are using (i.e.
<filename>i586-poky-linux-gcc</filename> in this example).
<note>
When building "Yocto Project SDK Autotools" projects,
the Eclipse IDE might display error messages for
@@ -930,12 +970,12 @@
Select the project.
</para></listitem>
<listitem><para>
Select "Folder" from the
<filename>File > New</filename> menu.
Select "Folder" from the "File -> New" menu.
</para></listitem>
<listitem><para>
In the "New Folder" Dialog, select "Link to
alternate location (linked folder)".
In the "New Folder" Dialog, click the "Advanced"
button and then activate "Link to
alternate location (linked folder)" button.
</para></listitem>
<listitem><para>
Click "Browse" to navigate to the include
@@ -943,9 +983,6 @@
selected in the Yocto Project
configuration preferences.
</para></listitem>
<listitem><para>
Click "OK".
</para></listitem>
<listitem><para>
Click "Finish" to save the linked folder.
</para></listitem>
@@ -988,8 +1025,8 @@
<filename>rpcbind</filename>, follow the
suggestions to get the service running.
As an example, on a new Ubuntu 16.04 LTS
installation, you must do the following in
order to get QEMU to launch:
installation, you must do the following in a new
shell in order to get QEMU to launch:
<literallayout class='monospaced'>
$ sudo apt-get install rpcbind
</literallayout>
@@ -1073,7 +1110,7 @@
</para></listitem>
<listitem><para>
In the left area, expand
<filename>C/C++Remote Application</filename>.
"C/C++Remote Application".
</para></listitem>
<listitem><para>
Locate your project and select it to bring
@@ -1092,7 +1129,7 @@
<listitem><para>
Create a new connection to the QEMU instance
by clicking on "new".</para></listitem>
<listitem><para>Select <filename>SSH</filename>, which
<listitem><para>Select "SSH", which
means Secure Socket Shell and then click "OK".
Optionally, you can select a TCF connection
instead.
@@ -1104,11 +1141,10 @@
<listitem><para>
Put the IP address for the connection in
the "Host" field.
For QEMU, the default is
<filename>192.168.7.2</filename>.
For QEMU, the default is "192.168.7.2".
However, if a previous QEMU session did not exit
cleanly, the IP address increments (e.g.
<filename>192.168.7.3</filename>).
"192.168.7.3").
<note>
You can find the IP address for the current
QEMU session by looking in the xterm that
@@ -1116,7 +1152,7 @@
</note>
</para></listitem>
<listitem><para>
Enter <filename>root</filename>, which
Enter "root", which
is the default for QEMU, for the "User" field.
Be sure to leave the password field empty.
</para></listitem>

View File

@@ -359,7 +359,7 @@
corresponding append file in the workspace.
If you do not provide
<replaceable>recipe</replaceable>, the command
attempts to figure out the recipe name.
makes an attempt to determine the recipe name.
</para></listitem>
<listitem><para>
<emphasis>Middle</emphasis>:
@@ -420,7 +420,7 @@
<para>Because the extracted source code already
exists, <filename>devtool</filename> does not
try to relocate the source code into the
workspace - only the new the recipe is placed
workspace - only the new recipe is placed
in the workspace.</para>
<para>Aside from a recipe folder, the command
@@ -708,9 +708,25 @@
your source code modifications.
</para></listitem>
<listitem><para>
<emphasis>Build the Recipe</emphasis>:
Once you have updated the source files, you can build
the recipe.
<emphasis>Build the Recipe or Rebuild the Image</emphasis>:
The next step you take depends on what you are going
to do with the new code.</para>
<para>If you need to eventually move the build output
to the target hardware, use the following
<filename>devtool</filename> command:
<literallayout class='monospaced'>
$ devtool build <replaceable>recipe</replaceable>
</literallayout></para>
<para>On the other hand, if you want an image to
contain the recipe's packages from the workspace
for immediate deployment onto a device (e.g. for
testing purposes), you can use
the <filename>devtool build-image</filename> command:
<literallayout class='monospaced'>
$ devtool build-image <replaceable>image</replaceable>
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Deploy the Build Output</emphasis>:
@@ -800,7 +816,7 @@
workflow to make sure your recipes you are using for builds
are up-to-date with their upstream counterparts.
<note>
Several methods exist by which you can upgrade recipes.
Several methods exist by which you can upgrade recipes -
<filename>devtool upgrade</filename> happens to be one.
You can read about all the methods by which you can
upgrade recipes in the
@@ -819,12 +835,8 @@
</para>
<para>
Depending on your particular scenario, the arguments and
options you use with <filename>devtool upgrade</filename> form
different combinations.
The following diagram shows a common development flow
you would use with the <filename>devtool upgrade</filename>
command:
The following diagram shows the common development flow
used with the <filename>devtool upgrade</filename> command:
</para>
<para>
@@ -835,19 +847,18 @@
<orderedlist>
<listitem><para>
<emphasis>Initiate the Upgrade</emphasis>:
The top part of the flow shows a typical scenario by
which you could use
<filename>devtool upgrade</filename>.
The top part of the flow shows the typical scenario by
which you use the <filename>devtool upgrade</filename>
command.
The following conditions exist:
<itemizedlist>
<listitem><para>
The recipe exists in some layer external
The recipe exists in a local layer external
to the <filename>devtool</filename> workspace.
</para></listitem>
<listitem><para>
The source files for the new release
exist adjacent to the same location pointed to
by
exist in the same location pointed to by
<ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
in the recipe (e.g. a tarball with the new
version number in the name, or as a different
@@ -888,19 +899,19 @@
<para>Once <filename>devtool</filename> locates the
recipe, it uses the <filename>SRC_URI</filename>
variable to locate the source code and any local patch
files from other developers are located.
files from other developers.
The result is that the command sets up the source
code, the new version of the recipe, and an append file
all within the workspace.
</para></listitem>
<listitem><para><emphasis>
Resolve any Conflicts created by the Upgrade</emphasis>:
At this point, conflicts could exist due to the
software being upgraded to a new version.
<listitem><para>
<emphasis>Resolve any Conflicts created by the Upgrade</emphasis>:
Conflicts could exist due to the software being
upgraded to a new version.
Conflicts occur if your recipe specifies some patch
files in <filename>SRC_URI</filename> that conflict
with changes made in the new version of the software.
If this is the case, you need to resolve the conflicts
For such cases, you need to resolve the conflicts
by editing the source and following the normal
<filename>git rebase</filename> conflict resolution
process.</para>
@@ -910,13 +921,25 @@
newer or different version of the software.
</para></listitem>
<listitem><para>
<emphasis>Build the Recipe</emphasis>:
Once you have your recipe in order, you can build it.
You can either use <filename>devtool build</filename>
or <filename>bitbake</filename>.
Either method produces build output that is stored
in
<ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>.
<emphasis>Build the Recipe or Rebuild the Image</emphasis>:
The next step you take depends on what you are going
to do with the new code.</para>
<para>If you need to eventually move the build output
to the target hardware, use the following
<filename>devtool</filename> command:
<literallayout class='monospaced'>
$ devtool build <replaceable>recipe</replaceable>
</literallayout></para>
<para>On the other hand, if you want an image to
contain the recipe's packages from the workspace
for immediate deployment onto a device (e.g. for
testing purposes), you can use
the <filename>devtool build-image</filename> command:
<literallayout class='monospaced'>
$ devtool build-image <replaceable>image</replaceable>
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Deploy the Build Output</emphasis>:
@@ -992,8 +1015,8 @@
<title>A Closer Look at <filename>devtool add</filename></title>
<para>
The <filename>devtool add</filename> command automatically creates a
recipe based on the source tree with which you provide it.
The <filename>devtool add</filename> command automatically creates
a recipe based on the source tree you provide with the command.
Currently, the command has support for the following:
<itemizedlist>
<listitem><para>
@@ -1039,8 +1062,8 @@
In most cases, you need to edit the automatically generated
recipe in order to make it build properly.
Typically, you would go through several edit and build cycles
until you can build the recipe.
Once the recipe can be built, you could use possible further
until the recipe successfully builds.
Once the recipe builds, you could use possible further
iterations to test the recipe on the target device.
</note>
</para>
@@ -1055,15 +1078,19 @@
<para>
If you do not specify a name and version on the command
line, <filename>devtool add</filename> attempts to determine
the name and version of the software being built from
various metadata within the source tree.
Furthermore, the command sets the name of the created recipe
file accordingly.
If the name or version cannot be determined, the
<filename>devtool add</filename> command prints an error and
you must re-run the command with both the name and version
or just the name or version specified.
line, <filename>devtool add</filename> uses various metadata
within the source tree in an attempt to determine
the name and version of the software being built.
Based on what the tool determines, <filename>devtool</filename>
sets the name of the created recipe file accordingly.
</para>
<para>
If <filename>devtool</filename> cannot determine the name and
version, the command prints an error.
For such cases, you must re-run the command and provide
the name and version, just the name, or just the version as
part of the command line.
</para>
<para>
@@ -1087,26 +1114,27 @@
detect build-time dependencies and map them to other recipes
in the system.
During this mapping, the command fills in the names of those
recipes in the
recipes as part of the
<ulink url='&YOCTO_DOCS_REF_URL;#var-DEPENDS'><filename>DEPENDS</filename></ulink>
value within the recipe.
If a dependency cannot be mapped, then a comment is placed in
the recipe indicating such.
The inability to map a dependency might be caused because the
naming is not recognized or because the dependency simply is
not available.
variable within the recipe.
If a dependency cannot be mapped, <filename>devtool</filename>
places a comment in the recipe indicating such.
The inability to map a dependency can result from naming not
being recognized or because the dependency simply is not
available.
For cases where the dependency is not available, you must use
the <filename>devtool add</filename> command to add an
additional recipe to satisfy the dependency and then come
back to the first recipe and add its name to
<filename>DEPENDS</filename>.
additional recipe that satisfies the dependency.
Once you add that recipe, you need to update the
<filename>DEPENDS</filename> variable in the original recipe
to include the new recipe.
</para>
<para>
If you need to add runtime dependencies, you can do so by
adding the following to your recipe:
<literallayout class='monospaced'>
RDEPENDS_${PN} += "dependency1 dependency2 ..."
RDEPENDS_${PN} += "<replaceable>dependency1 dependency2 ...</replaceable>"
</literallayout>
<note>
The <filename>devtool add</filename> command often cannot
@@ -1117,7 +1145,7 @@
script for the software the recipe is building for further
details.
In some cases, you might find you can substitute the
dependency for an option to disable the associated
dependency with an option that disables the associated
functionality passed to the configure script.
</note>
</para>
@@ -1129,20 +1157,24 @@
<para>
The <filename>devtool add</filename> command attempts to
determine if the software you are adding is able to be
distributed under a common open-source license and sets the
distributed under a common, open-source license.
If so, the command sets the
<ulink url='&YOCTO_DOCS_REF_URL;#var-LICENSE'><filename>LICENSE</filename></ulink>
value accordingly.
You should double-check this value against the documentation
or source files for the software you are building and update
that <filename>LICENSE</filename> value if necessary.
You should double-check the value added by the command against
the documentation or source files for the software you are
building and, if necessary, update that
<filename>LICENSE</filename> value.
</para>
<para>
The <filename>devtool add</filename> command also sets the
<ulink url='&YOCTO_DOCS_REF_URL;#var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></ulink>
value to point to all files that appear to be license-related.
However, license statements often appear in comments at the top
of source files or within documentation.
Realize that license statements often appear in comments at
the top of source files or within the documentation.
In such cases, the command does not recognize those license
statements.
Consequently, you might need to amend the
<filename>LIC_FILES_CHKSUM</filename> variable to point to one
or more of those comments if present.
@@ -1156,14 +1188,13 @@
<para>
If the <filename>devtool add</filename> command cannot
determine licensing information, the
<filename>LICENSE</filename> value is set to "CLOSED" and the
<filename>LIC_FILES_CHKSUM</filename> value remains unset.
This behavior allows you to continue with development but is
unlikely to be correct in all cases.
Consequently, you should check the documentation or source
files for the software you are building to determine the actual
license.
determine licensing information, <filename>devtool</filename>
sets the <filename>LICENSE</filename> value to "CLOSED" and
leaves the <filename>LIC_FILES_CHKSUM</filename> value unset.
This behavior allows you to continue with development even
though the settings are unlikely to be correct in all cases.
You should check the documentation or source files for the
software you are building to determine the actual license.
</para>
</section>
@@ -1171,8 +1202,8 @@
<title>Adding Makefile-Only Software</title>
<para>
The use of <filename>make</filename> by itself is very common
in both proprietary and open source software.
The use of Make by itself is very common in both proprietary
and open-source software.
Unfortunately, Makefiles are often not written with
cross-compilation in mind.
Thus, <filename>devtool add</filename> often cannot do very
@@ -1185,7 +1216,7 @@
<filename>gcc</filename> is the compiler for the build host
and the cross-compiler is named something similar to
<filename>arm-poky-linux-gnueabi-gcc</filename> and might
require some arguments (e.g. to point to the associated sysroot
require arguments (e.g. to point to the associated sysroot
for the target machine).
</para>
@@ -1200,18 +1231,17 @@
<filename>g++</filename>.
</para></listitem>
<listitem><para>
The environment in which <filename>make</filename> runs
is set up with various standard variables for
compilation (e.g. <filename>CC</filename>,
<filename>CXX</filename>, and so forth) in a similar
manner to the environment set up by the SDK's
environment setup script.
The environment in which Make runs is set up with
various standard variables for compilation (e.g.
<filename>CC</filename>, <filename>CXX</filename>, and
so forth) in a similar manner to the environment set
up by the SDK's environment setup script.
One easy way to see these variables is to run the
<filename>devtool build</filename> command on the
recipe and then look in
<filename>oe-logs/run.do_compile</filename>.
Towards the top of this file you will see a list of
environment variables that are being set.
Towards the top of this file, a list of environment
variables exists that are being set.
You can take advantage of these variables within the
Makefile.
</para></listitem>
@@ -1219,7 +1249,7 @@
If the Makefile sets a default for a variable using "=",
that default overrides the value set in the environment,
which is usually not desirable.
In this situation, you can either patch the Makefile
For this case, you can either patch the Makefile
so it sets the default using the "?=" operator, or
you can alternatively force the value on the
<filename>make</filename> command line.
@@ -1244,16 +1274,17 @@
This is particularly true because those hardcoded paths
often point to locations on the build host and thus
will either be read-only or will introduce
contamination into the cross-compilation by virtue of
being specific to the build host rather than the target.
contamination into the cross-compilation because they
are specific to the build host rather than the target.
Patching the Makefile to use prefix variables or other
path variables is usually the way to handle this.
path variables is usually the way to handle this
situation.
</para></listitem>
<listitem><para>
Sometimes a Makefile runs target-specific commands such
as <filename>ldconfig</filename>.
For such cases, you might be able to simply apply
patches that remove these commands from the Makefile.
For such cases, you might be able to apply patches that
remove these commands from the Makefile.
</para></listitem>
</itemizedlist>
</para>
@@ -1264,9 +1295,11 @@
<para>
Often, you need to build additional tools that run on the
build host system as opposed to the target.
You should indicate this using one of the following methods
when you run <filename>devtool add</filename>:
<ulink url='&YOCTO_DOCS_REF_URL;#hardware-build-system-term'>build host</ulink>
as opposed to the target.
You should indicate this requirement by using one of the
following methods when you run
<filename>devtool add</filename>:
<itemizedlist>
<listitem><para>
Specify the name of the recipe such that it ends
@@ -1288,8 +1321,8 @@
typically accomplish this by building the native and target
parts separately rather than within the same compilation
process.
Realize though that with the "&dash;&dash;also-native" option, you
can add the tool using just one recipe file.
Realize though that with the "&dash;&dash;also-native"
option, you can add the tool using just one recipe file.
</note>
</para>
</section>
@@ -1330,11 +1363,9 @@
found" errors.
</para></listitem>
<listitem><para>
In order to support adding
Node.js modules, a
<filename>nodejs</filename> recipe must be part of your
SDK in order to provide Node.js
itself.
In order to support adding Node.js modules, a
<filename>nodejs</filename> recipe must be part
of your SDK.
</para></listitem>
</itemizedlist>
</note>
@@ -1343,14 +1374,15 @@
<para>
As mentioned earlier, you can also add Node.js modules
directly from a repository or local source tree.
To add modules this way, use <filename>devtool add</filename> in
the following form:
To add modules this way, use <filename>devtool add</filename>
in the following form:
<literallayout class='monospaced'>
$ devtool add https://github.com/diversario/node-ssdp
</literallayout>
In this example, <filename>devtool</filename> fetches the specified
Git repository, detects that the code is Node.js code, fetches
dependencies using <filename>npm</filename>, and sets
In this example, <filename>devtool</filename> fetches the
specified Git repository, detects the code as Node.js
code, fetches dependencies using <filename>npm</filename>, and
sets
<ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
accordingly.
</para>
@@ -1361,8 +1393,9 @@
<title>Working With Recipes</title>
<para>
When building a recipe with <filename>devtool build</filename>, the
typical build progression is as follows:
When building a recipe using the
<filename>devtool build</filename> command, the typical build
progresses as follows:
<orderedlist>
<listitem><para>
Fetch the source
@@ -1374,7 +1407,7 @@
Configure the source
</para></listitem>
<listitem><para>
Compiling the source
Compile the source
</para></listitem>
<listitem><para>
Install the build output
@@ -1385,10 +1418,13 @@
</orderedlist>
For recipes in the workspace, fetching and unpacking is disabled
as the source tree has already been prepared and is persistent.
Each of these build steps is defined as a function, usually with a
"do_" prefix.
These functions are typically shell scripts but can instead be written
in Python.
Each of these build steps is defined as a function (task), usually
with a "do_" prefix (e.g.
<ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-fetch'><filename>do_fetch</filename></ulink>,
<ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-unpack'><filename>do_unpack</filename></ulink>,
and so forth).
These functions are typically shell scripts but can instead be
written in Python.
</para>
<para>
@@ -1396,12 +1432,13 @@
recipe does not include complete instructions for building the
software.
Instead, common functionality is encapsulated in classes inherited
with the <filename>inherit</filename> directive, leaving the recipe
to describe just the things that are specific to the software to be
built.
A <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-base'><filename>base</filename></ulink>
class exists that is implicitly inherited by all recipes and provides
the functionality that most typical recipes need.
with the <filename>inherit</filename> directive.
This technique leaves the recipe to describe just the things that
are specific to the software being built.
A
<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-base'><filename>base</filename></ulink>
class exists that is implicitly inherited by all recipes and
provides the functionality that most recipes typically need.
</para>
<para>
@@ -1413,46 +1450,57 @@
<title>Finding Logs and Work Files</title>
<para>
When you are debugging a recipe that you previously created using
<filename>devtool add</filename> or whose source you are modifying
by using the <filename>devtool modify</filename> command, after
the first run of <filename>devtool build</filename>, you will
find some symbolic links created within the source tree:
<filename>oe-logs</filename>, which points to the directory in
which log files and run scripts for each build step are created
and <filename>oe-workdir</filename>, which points to the temporary
work area for the recipe.
You can use these links to get more information on what is
happening at each build step.
</para>
<para>
These locations under <filename>oe-workdir</filename> are
particularly useful:
After the first run of the <filename>devtool build</filename>
command, recipes that were previously created using the
<filename>devtool add</filename> command or whose sources were
modified using the <filename>devtool modify</filename>
command contain symbolic links created within the source tree:
<itemizedlist>
<listitem><para><filename>image/</filename>:
Contains all of the files installed at the
<ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
stage.
Within a recipe, this directory is referred to by the
expression
<filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink><filename>}</filename>.
<listitem><para>
<filename>oe-logs</filename>:
This link points to the directory in which log files
and run scripts for each build step are created.
</para></listitem>
<listitem><para><filename>sysroot-destdir/</filename>:
Contains a subset of files installed within
<filename>do_install</filename> that have been put into the
shared sysroot.
For more information, see the
"<link linkend='sdk-sharing-files-between-recipes'>Sharing Files Between Recipes</link>"
section.
</para></listitem>
<listitem><para><filename>packages-split/</filename>:
Contains subdirectories for each package produced by the
<listitem><para>
<filename>oe-workdir</filename>:
This link points to the temporary work area for the
recipe.
For more information, see the
"<link linkend='sdk-packaging'>Packaging</link>" section.
The following locations under
<filename>oe-workdir</filename> are particularly
useful:
<itemizedlist>
<listitem><para>
<filename>image/</filename>:
Contains all of the files installed during
the
<ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
stage.
Within a recipe, this directory is referred
to by the expression
<filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink><filename>}</filename>.
</para></listitem>
<listitem><para>
<filename>sysroot-destdir/</filename>:
Contains a subset of files installed within
<filename>do_install</filename> that have
been put into the shared sysroot.
For more information, see the
"<link linkend='sdk-sharing-files-between-recipes'>Sharing Files Between Recipes</link>"
section.
</para></listitem>
<listitem><para>
<filename>packages-split/</filename>:
Contains subdirectories for each package
produced by the recipe.
For more information, see the
"<link linkend='sdk-packaging'>Packaging</link>"
section.
</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
You can use these links to get more information on what is
happening at each build step.
</para>
</section>
@@ -1499,12 +1547,14 @@
<para>
Recipes often need to use files provided by other recipes on
the build host.
the
<ulink url='&YOCTO_DOCS_REF_URL;#hardware-build-system-term'>build host</ulink>.
For example, an application linking to a common library needs
access to the library itself and its associated headers.
The way this access is accomplished within the extensible SDK is
through the sysroot.
One sysroot exists per "machine" for which the SDK is being built.
One sysroot exists per "machine" for which the SDK is being
built.
In practical terms, this means a sysroot exists for the target
machine, and a sysroot exists for the build host.
</para>
@@ -1517,7 +1567,7 @@
task within the
<filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink><filename>}</filename>
directory.
A subset of these files automatically go into the sysroot.
A subset of these files automatically goes into the sysroot.
The reason for this limitation is that almost all files that go
into the sysroot are cataloged in manifests in order to ensure
they can be removed later when a recipe is modified or removed.
@@ -1542,20 +1592,20 @@
<ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-package'><filename>do_package</filename></ulink>
task, files installed during the
<ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
task are split into one main package, which is almost always named
the same as the recipe, and several other packages.
This separation is done because not all of those installed files
are always useful in every image.
task are split into one main package, which is almost always
named the same as the recipe, and into several other packages.
This separation exists because not all of those installed files
are useful in every image.
For example, you probably do not need any of the documentation
installed in a production image.
Consequently, for each recipe the documentation files are separated
into a <filename>-doc</filename> package.
Recipes that package software that has optional modules or
plugins might do additional package splitting as well.
Consequently, for each recipe the documentation files are
separated into a <filename>-doc</filename> package.
Recipes that package software containing optional modules or
plugins might undergo additional package splitting as well.
</para>
<para>
After building a recipe you can see where files have gone by
After building a recipe, you can see where files have gone by
looking in the <filename>oe-workdir/packages-split</filename>
directory, which contains a subdirectory for each package.
Apart from some advanced cases, the
@@ -1565,17 +1615,18 @@
variables controls splitting.
The <filename>PACKAGES</filename> variable lists all of the
packages to be produced, while the <filename>FILES</filename>
variable specifies which files to include in each package,
variable specifies which files to include in each package by
using an override to specify the package.
For example, <filename>FILES_${PN}</filename> specifies the files
to go into the main package (i.e. the main package is named the
same as the recipe and
For example, <filename>FILES_${PN}</filename> specifies the
files to go into the main package (i.e. the main package has
the same name as the recipe and
<filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink><filename>}</filename>
evaluates to the recipe name).
The order of the <filename>PACKAGES</filename> value is significant.
The order of the <filename>PACKAGES</filename> value is
significant.
For each installed file, the first package whose
<filename>FILES</filename> value matches the file is the package
into which the file goes.
<filename>FILES</filename> value matches the file is the
package into which the file goes.
Defaults exist for both the <filename>PACKAGES</filename> and
<filename>FILES</filename> variables.
Consequently, you might find you do not even need to set these
@@ -1597,29 +1648,29 @@
<filename>devtool deploy-target</filename> command.
Because the <filename>devtool deploy-target</filename> command
backs up any files it overwrites, you can use the
<filename>devtool undeploy-target</filename> to restore those files
and remove any other files the recipe deployed.
<filename>devtool undeploy-target</filename> command to restore
those files and remove any other files the recipe deployed.
Consider the following example:
<literallayout class='monospaced'>
$ devtool undeploy-target lighttpd root@192.168.7.2
</literallayout>
If you have deployed multiple applications, you can remove them
all at once thus restoring the target device back to its
all using the "-a" option thus restoring the target device to its
original state:
<literallayout class='monospaced'>
$ devtool undeploy-target -a root@192.168.7.2
</literallayout>
Information about files deployed to the target as well as any
backed up files are stored on the target itself.
This storage of course requires some additional space
This storage, of course, requires some additional space
on the target machine.
<note>
The <filename>devtool deploy-target</filename> and
<filename>devtool undeploy-target</filename> command do not
<filename>devtool undeploy-target</filename> commands do not
currently interact with any package management system on the
target device (e.g. RPM or OPKG).
Consequently, you should not intermingle operations
<filename>devtool deploy-target</filename> and the package
Consequently, you should not intermingle
<filename>devtool deploy-target</filename> and package
manager operations on the target device.
Doing so could result in a conflicting set of files.
</note>
@@ -1630,16 +1681,14 @@
<title>Installing Additional Items Into the Extensible SDK</title>
<para>
The extensible SDK typically only comes with a small number of tools
and libraries out of the box.
If you have a minimal SDK, then it starts mostly empty and is
populated on-demand.
However, sometimes you will need to explicitly install extra items
into the SDK.
Out of the box the extensible SDK typically only comes with a small
number of tools and libraries.
A minimal SDK starts mostly empty and is populated on-demand.
Sometimes you must explicitly install extra items into the SDK.
If you need these extra items, you can first search for the items
using the <filename>devtool search</filename> command.
For example, suppose you need to link to libGL but you are not sure
which recipe provides it.
which recipe provides libGL.
You can use the following command to find out:
<literallayout class='monospaced'>
$ devtool search libGL
@@ -1650,17 +1699,19 @@
<literallayout class='monospaced'>
$ devtool sdk-install mesa
</literallayout>
By default, the <filename>devtool sdk-install</filename> assumes the
item is available in pre-built form from your SDK provider.
By default, the <filename>devtool sdk-install</filename> command
assumes the item is available in pre-built form from your SDK
provider.
If the item is not available and it is acceptable to build the item
from source, you can add the "-s" option as follows:
<literallayout class='monospaced'>
$ devtool sdk-install -s mesa
</literallayout>
It is important to remember that building the item from source takes
significantly longer than installing the pre-built artifact.
Also, if no recipe exists for the item you want to add to the SDK, you
must instead add it using the <filename>devtool add</filename> command.
It is important to remember that building the item from source
takes significantly longer than installing the pre-built artifact.
Also, if no recipe exists for the item you want to add to the SDK,
you must instead add the item using the
<filename>devtool add</filename> command.
</para>
</section>
@@ -1698,31 +1749,34 @@
<para>
You might need to produce an SDK that contains your own custom
libraries for sending to a third party (e.g., if you are a vendor with
customers needing to build their own software for the target platform).
If that is the case, then you can produce a derivative SDK based on
the currently installed SDK fairly easily.
Use these steps:
libraries.
A good example would be if you were a vendor with customers that
use your SDK to build their own platform-specific software and
those customers need an SDK that has custom libraries.
In such a case, you can produce a derivative SDK based on the
currently installed SDK fairly easily by following these steps:
<orderedlist>
<listitem><para>If necessary, install an extensible SDK that
<listitem><para>
If necessary, install an extensible SDK that
you want to use as a base for your derivative SDK.
</para></listitem>
<listitem><para>Source the environment script for the SDK.
<listitem><para>
Source the environment script for the SDK.
</para></listitem>
<listitem><para>Add the extra libraries or other components
you want by using the <filename>devtool add</filename>
command.
<listitem><para>
Add the extra libraries or other components you want by
using the <filename>devtool add</filename> command.
</para></listitem>
<listitem><para>Run the <filename>devtool build-sdk</filename>
command.
<listitem><para>
Run the <filename>devtool build-sdk</filename> command.
</para></listitem>
</orderedlist>
The above procedure takes the recipes added to the workspace and
constructs a new SDK installer containing those recipes and the
The previous steps take the recipes added to the workspace and
construct a new SDK installer that contains those recipes and the
resulting binary artifacts.
The recipes go into their own separate layer in the constructed
derivative SDK, leaving the workspace clean and ready for users
to add their own recipes.
derivative SDK, which leaves the workspace clean and ready for
users to add their own recipes.
</para>
</section>
</chapter>

View File

@@ -53,24 +53,24 @@
<title>Installing the SDK</title>
<para>
The first thing you need to do is install the SDK on your host
development machine by running the <filename>*.sh</filename>
installation script.
The first thing you need to do is install the SDK on your
<ulink url='&YOCTO_DOCS_REF_URL;#hardware-build-system-term'>Build Host</ulink>
by running the <filename>*.sh</filename> installation script.
</para>
<para>
You can download a tarball installer, which includes the
pre-built toolchain, the <filename>runqemu</filename>
script, and support files from the appropriate directory under
<ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
Toolchains are available for 32-bit and 64-bit x86 development
systems from the <filename>i686</filename> and
<filename>x86_64</filename> directories, respectively.
script, and support files from the appropriate
<ulink url='&YOCTO_TOOLCHAIN_DL_URL;'>toolchain</ulink>
directory within the Index of Releases.
Toolchains are available for several 32-bit and 64-bit
architectures with the <filename>x86_64</filename> directories,
respectively.
The toolchains the Yocto Project provides are based off the
<filename>core-image-sato</filename> image and contain
<filename>core-image-sato</filename> and
<filename>core-image-minimal</filename> images and contain
libraries appropriate for developing against that image.
Each type of development system supports five or more target
architectures.
</para>
<para>
@@ -92,7 +92,7 @@
<replaceable>arch</replaceable> is a string representing the tuned target architecture:
aarch64, armv5e, core2-64, coretexah8f-neon, i586, mips32r2, mips64, or ppc7400.
aarch64, armv5e, core2-64, i586, mips32r2, mips64, ppc7400, or cortexa8hf-neon.
<replaceable>release_version</replaceable> is a string representing the release number of the Yocto Project:
@@ -121,38 +121,36 @@
<para>
The SDK and toolchains are self-contained and by default are
installed into <filename>/opt/poky</filename>.
However, when you run the SDK installer, you can choose an
installation directory.
<note>
You must change the permissions on the SDK
installer script so that it is executable:
<literallayout class='monospaced'>
$ chmod +x poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
</literallayout>
</note>
installed into the <filename>poky_sdk</filename> folder in your
home directory.
You can choose to install the extensible SDK in any location when
you run the installer.
However, because files need to be written under that directory
during the normal course of operation, the location you choose
for installation must be writable for whichever
users need to use the SDK.
</para>
<para>
The following command shows how to run the installer given a
toolchain tarball for a 64-bit x86 development host system and
a 32-bit x86 target architecture.
a 64-bit x86 target architecture.
The example assumes the SDK installer is located in
<filename>~/Downloads/</filename>.
<filename>~/Downloads/</filename> and has execution rights.
<note>
If you do not have write permissions for the directory
into which you are installing the SDK, the installer
notifies you and exits.
Be sure you have write permissions in the directory and
run the installer again.
For that case, set up the proper permissions in the directory
and run the installer again.
</note>
<literallayout class='monospaced'>
$ ./poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
$ ./Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
Poky (Yocto Project Reference Distro) SDK installer version &DISTRO;
===============================================================
Enter target directory for SDK (default: /opt/poky/&DISTRO;):
You are about to install the SDK to "/opt/poky/&DISTRO;". Proceed[Y/n]? Y
Extracting SDK.......................................................................done
Extracting SDK........................................ ..............................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
@@ -173,12 +171,11 @@
<para>
Once you have the SDK installed, you must run the SDK environment
setup script before you can actually use it.
setup script before you can actually use the SDK.
This setup script resides in the directory you chose when you
installed the SDK.
For information on where this setup script can reside, see the
"<link linkend='sdk-appendix-obtain'>Obtaining the SDK</link>"
Appendix.
installed the SDK, which is either the default
<filename>/opt/poky/&DISTRO;</filename> directory or the directory
you chose during installation.
</para>
<para>
@@ -187,9 +184,11 @@
Environment setup scripts begin with the string
"<filename>environment-setup</filename>" and include as part of
their name the tuned target architecture.
For example, the command to source a setup script for an IA-based
target machine using i586 tuning and located in the default SDK
installation directory is as follows:
As an example, the following commands set the working directory
to where the SDK was installed and then source the environment
setup script.
In this example, the setup script is for an IA-based
target machine using i586 tuning:
<literallayout class='monospaced'>
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
</literallayout>

View File

@@ -19,263 +19,494 @@
<title>Autotools-Based Projects</title>
<para>
Once you have a suitable cross-toolchain installed, it is very easy
to develop a project outside of the OpenEmbedded build system.
This section presents a simple "Helloworld" example that shows how
to set up, compile, and run the project.
Once you have a suitable
<ulink url='&YOCTO_DOCS_REF_URL;#cross-development-toolchain'>cross-development toolchain</ulink>
installed, it is very easy to develop a project using the
<ulink url='https://en.wikipedia.org/wiki/GNU_Build_System'>GNU Autotools-based</ulink>
workflow, which is outside of the
<ulink url='&YOCTO_DOCS_REF_URL;#build-system-term'>OpenEmbedded build system</ulink>.
</para>
<section id='creating-and-running-a-project-based-on-gnu-autotools'>
<title>Creating and Running a Project Based on GNU Autotools</title>
<para>
The following figure presents a simple Autotools workflow.
<imagedata fileref="figures/sdk-autotools-flow.png" width="7in" height="8in" align="center" />
</para>
<para>
Follow these steps to create a simple Autotools-based project:
<orderedlist>
<listitem><para>
<emphasis>Create Your Directory:</emphasis>
Create a clean directory for your project and then make
that directory your working location:
<literallayout class='monospaced'>
<para>
Follow these steps to create a simple Autotools-based
"Hello World" project:
<note>
For more information on the GNU Autotools workflow,
see the same example on the
<ulink url='https://developer.gnome.org/anjuta-build-tutorial/stable/create-autotools.html.en'>GNOME Developer</ulink>
site.
</note>
<orderedlist>
<listitem><para>
<emphasis>Create a Working Directory and Populate It:</emphasis>
Create a clean directory for your project and then make
that directory your working location.
<literallayout class='monospaced'>
$ mkdir $HOME/helloworld
$ cd $HOME/helloworld
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Populate the Directory:</emphasis>
Create <filename>hello.c</filename>,
<filename>Makefile.am</filename>,
and <filename>configure.ac</filename> files as follows:
<itemizedlist>
<listitem><para>
For <filename>hello.c</filename>, include
these lines:
<literallayout class='monospaced'>
</literallayout>
After setting up the directory, populate it with files
needed for the flow.
You need a project source file, a file to help with
configuration, and a file to help create the Makefile,
and a README file:
<filename>hello.c</filename>,
<filename>configure.ac</filename>,
<filename>Makefile.am</filename>, and
<filename>README</filename>, respectively.</para>
<para> Use the following command to create an empty README
file, which is required by GNU Coding Standards:
<literallayout class='monospaced'>
$ touch README
</literallayout>
Create the remaining three files as follows:
<itemizedlist>
<listitem><para>
<emphasis><filename>hello.c</filename>:</emphasis>
<literallayout class='monospaced'>
#include &lt;stdio.h&gt;
main()
{
printf("Hello World!\n");
}
</literallayout>
</para></listitem>
<listitem><para>
For <filename>Makefile.am</filename>,
include these lines:
<literallayout class='monospaced'>
bin_PROGRAMS = hello
hello_SOURCES = hello.c
</literallayout>
</para></listitem>
<listitem><para>
For <filename>configure.in</filename>,
include these lines:
<literallayout class='monospaced'>
</literallayout>
</para></listitem>
<listitem><para>
<emphasis><filename>configure.ac</filename>:</emphasis>
<literallayout class='monospaced'>
AC_INIT(hello,0.1)
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
AC_PROG_INSTALL
AC_OUTPUT(Makefile)
</literallayout>
</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
<emphasis>Source the Cross-Toolchain
Environment Setup File:</emphasis>
As described earlier in the manual, installing the
cross-toolchain creates a cross-toolchain
environment setup script in the directory that the SDK
was installed.
Before you can use the tools to develop your project,
you must source this setup script.
The script begins with the string "environment-setup"
and contains the machine architecture, which is
followed by the string "poky-linux".
Here is an example that sources a script from the
default SDK installation directory that uses the
32-bit Intel x86 Architecture and the
&DISTRO_NAME; Yocto Project release:
<literallayout class='monospaced'>
AC_CONFIG_FILES(Makefile)
AC_OUTPUT
</literallayout>
</para></listitem>
<listitem><para>
<emphasis><filename>Makefile.am</filename>:</emphasis>
<literallayout class='monospaced'>
bin_PROGRAMS = hello
hello_SOURCES = hello.c
</literallayout>
</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
<emphasis>Source the Cross-Toolchain
Environment Setup File:</emphasis>
As described earlier in the manual, installing the
cross-toolchain creates a cross-toolchain
environment setup script in the directory that the SDK
was installed.
Before you can use the tools to develop your project,
you must source this setup script.
The script begins with the string "environment-setup"
and contains the machine architecture, which is
followed by the string "poky-linux".
For this example, the command sources a script from the
default SDK installation directory that uses the
32-bit Intel x86 Architecture and the
&DISTRO_NAME; Yocto Project release:
<literallayout class='monospaced'>
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Generate the Local <filename>aclocal.m4</filename>
Files and Create the Configure Script:</emphasis>
The following GNU Autotools generate the local
<filename>aclocal.m4</filename> files and create the
configure script:
<literallayout class='monospaced'>
$ aclocal
$ autoconf
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Generate Files Needed by GNU Coding
Standards:</emphasis>
GNU coding standards require certain files in order
for the project to be compliant.
This command creates those files:
<literallayout class='monospaced'>
$ touch NEWS README AUTHORS ChangeLog
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Generate the Configure File:</emphasis>
This command generates the
<filename>configure</filename>:
<literallayout class='monospaced'>
$ automake -a
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Cross-Compile the Project:</emphasis>
This command compiles the project using the
cross-compiler.
The
<ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIGURE_FLAGS'><filename>CONFIGURE_FLAGS</filename></ulink>
environment variable provides the minimal arguments for
GNU configure:
<literallayout class='monospaced'>
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Create the <filename>configure</filename> Script:</emphasis>
Use the <filename>autoreconf</filename> command to
generate the <filename>configure</filename> script.
<literallayout class='monospaced'>
$ autoreconf
</literallayout>
The <filename>autoreconf</filename> tool takes care
of running the other Autotools such as
<filename>aclocal</filename>,
<filename>autoconf</filename>, and
<filename>automake</filename>.
<note>
If you get errors from
<filename>configure.ac</filename>, which
<filename>autoreconf</filename> runs, that indicate
missing files, you can use the "-i" option, which
ensures missing auxiliary files are copied to the build
host.
</note>
</para></listitem>
<listitem><para>
<emphasis>Cross-Compile the Project:</emphasis>
This command compiles the project using the
cross-compiler.
The
<ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIGURE_FLAGS'><filename>CONFIGURE_FLAGS</filename></ulink>
environment variable provides the minimal arguments for
GNU configure:
<literallayout class='monospaced'>
$ ./configure ${CONFIGURE_FLAGS}
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Make and Install the Project:</emphasis>
These two commands generate and install the project
into the destination directory:
<literallayout class='monospaced'>
</literallayout>
For an Autotools-based project, you can use the
cross-toolchain by just passing the appropriate host
option to <filename>configure.sh</filename>.
The host option you use is derived from the name of the
environment setup script found in the directory in which
you installed the cross-toolchain.
For example, the host option for an ARM-based target that
uses the GNU EABI is
<filename>armv5te-poky-linux-gnueabi</filename>.
You will notice that the name of the script is
<filename>environment-setup-armv5te-poky-linux-gnueabi</filename>.
Thus, the following command works to update your project
and rebuild it using the appropriate cross-toolchain tools:
<literallayout class='monospaced'>
$ ./configure --host=armv5te-poky-linux-gnueabi --with-libtool-sysroot=<replaceable>sysroot_dir</replaceable>
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Make and Install the Project:</emphasis>
These two commands generate and install the project
into the destination directory:
<literallayout class='monospaced'>
$ make
$ make install DESTDIR=./tmp
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Verify the Installation:</emphasis>
This command is a simple way to verify the installation
of your project.
Running the command prints the architecture on which
the binary file can run.
This architecture should be the same architecture that
the installed cross-toolchain supports.
<literallayout class='monospaced'>
$ file ./tmp/usr/local/bin/hello
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Execute Your Project:</emphasis>
To execute the project in the shell, simply enter
the name.
You could also copy the binary to the actual target
hardware and run the project there as well:
<literallayout class='monospaced'>
$ ./hello
</literallayout>
As expected, the project displays the "Hello World!"
message.
</para></listitem>
</orderedlist>
</para>
</section>
<section id='passing-host-options'>
<title>Passing Host Options</title>
<para>
For an Autotools-based project, you can use the cross-toolchain
by just passing the appropriate host option to
<filename>configure.sh</filename>.
The host option you use is derived from the name of the
environment setup script found in the directory in which you
installed the cross-toolchain.
For example, the host option for an ARM-based target that uses
the GNU EABI is <filename>armv5te-poky-linux-gnueabi</filename>.
You will notice that the name of the script is
<filename>environment-setup-armv5te-poky-linux-gnueabi</filename>.
Thus, the following command works to update your project and
rebuild it using the appropriate cross-toolchain tools:
<literallayout class='monospaced'>
$ ./configure --host=armv5te-poky-linux-gnueabi \
--with-libtool-sysroot=<replaceable>sysroot_dir</replaceable>
</literallayout>
<note>
If the <filename>configure</filename> script results in
problems recognizing the
<filename>--with-libtool-sysroot=</filename><replaceable>sysroot-dir</replaceable>
option, regenerate the script to enable the support by
doing the following and then run the script again:
<literallayout class='monospaced'>
$ libtoolize --automake
$ aclocal -I ${OECORE_TARGET_SYSROOT}/usr/share/aclocal [-I <replaceable>dir_containing_your_project-specific_m4_macros</replaceable>]
$ autoconf
$ autoheader
$ automake -a
</literallayout>
</note>
</para>
</section>
<note>
To learn about environment variables established
when you run the cross-toolchain environment setup
script and how they are used or overridden when
the Makefile, see the
"<link linkend='makefile-based-projects'>Makefile-Based Projects</link>"
section.
</note>
This next command is a simple way to verify the
installation of your project.
Running the command prints the architecture on which
the binary file can run.
This architecture should be the same architecture that
the installed cross-toolchain supports.
<literallayout class='monospaced'>
$ file ./tmp/usr/local/bin/hello
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Execute Your Project:</emphasis>
To execute the project, you would need to run it on your
target hardware.
If your target hardware happens to be your build host,
you could run the project as follows:
<literallayout class='monospaced'>
$ ./tmp/usr/local/bin/hello
</literallayout>
As expected, the project displays the "Hello World!"
message.
</para></listitem>
</orderedlist>
</para>
</section>
<section id='makefile-based-projects'>
<title>Makefile-Based Projects</title>
<para>
For Makefile-based projects, the cross-toolchain environment
variables established by running the cross-toolchain environment
setup script are subject to general <filename>make</filename>
rules.
Simple Makefile-based projects use and interact with the
cross-toolchain environment variables established when you run
the cross-toolchain environment setup script.
The environment variables are subject to general
<filename>make</filename> rules.
</para>
<para>
To illustrate this, consider the following four cross-toolchain
environment variables:
<literallayout class='monospaced'>
<ulink url='&YOCTO_DOCS_REF_URL;#var-CC'>CC</ulink>=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/&DISTRO;/sysroots/i586-poky-linux
<ulink url='&YOCTO_DOCS_REF_URL;#var-LD'>LD</ulink>=i586-poky-linux-ld --sysroot=/opt/poky/&DISTRO;/sysroots/i586-poky-linux
<ulink url='&YOCTO_DOCS_REF_URL;#var-CFLAGS'>CFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
<ulink url='&YOCTO_DOCS_REF_URL;#var-CXXFLAGS'>CXXFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
</literallayout>
Now, consider the following three cases:
This section presents a simple Makefile development flow and
provides an example that lets you see how you can use
cross-toolchain environment variables and Makefile variables
during development.
<imagedata fileref="figures/sdk-makefile-flow.png" width="6in" height="7in" align="center" />
</para>
<para>
The main point of this section is to explain the following three
cases regarding variable behavior:
<itemizedlist>
<listitem><para>
<emphasis>Case 1 - No Variables Set in the
<filename>Makefile</filename>:</emphasis>
Because these variables are not specifically set in the
<filename>Makefile</filename> Map to Equivalent
Environment Variables Set in the SDK Setup Script:</emphasis>
Because matching variables are not specifically set in the
<filename>Makefile</filename>, the variables retain their
values based on the environment.
values based on the environment setup script.
</para></listitem>
<listitem><para>
<emphasis>Case 2 - Variables Set in the
<filename>Makefile</filename>:</emphasis>
Specifically setting variables in the
<emphasis>Case 2 - Variables Are Set in the Makefile that
Map to Equivalent Environment Variables from the SDK
Setup Script:</emphasis>
Specifically setting matching variables in the
<filename>Makefile</filename> during the build results in
the environment settings of the variables being
overwritten.
In this case, the variables you set in the
<filename>Makefile</filename> are used.
</para></listitem>
<listitem><para>
<emphasis>Case 3 - Variables Set when the
<filename>Makefile</filename> is Executed from the
Command Line:</emphasis>
<emphasis>Case 3 - Variables Are Set Using the Command Line
that Map to Equivalent Environment Variables from the
SDK Setup Script:</emphasis>
Executing the <filename>Makefile</filename> from the
command-line results in the variables being overwritten
with command-line content regardless of what is being set
in the <filename>Makefile</filename>.
In this case, environment variables are not considered
unless you use the "-e" flag during the build:
<literallayout class='monospaced'>
$ make -e <replaceable>file</replaceable>
</literallayout>
If you use this flag, then the environment values of the
variables override any variables specifically set in the
<filename>Makefile</filename>.
command line results in the environment variables being
overwritten.
In this case, the command-line content is used.
</para></listitem>
</itemizedlist>
<note>
For the list of variables set up by the cross-toolchain
environment setup script, see the
"<link linkend='sdk-running-the-sdk-environment-setup-script'>Running the SDK Environment Setup Script</link>"
section.
Regardless of how you set your variables, if you use
the "-e" option with <filename>make</filename>, the
variables from the SDK setup script take precedence:
<literallayout class='monospaced'>
$ make -e <replaceable>target</replaceable>
</literallayout>
</note>
</para>
<para>
The remainder of this section presents a simple Makefile example
that demonstrates these variable behaviors.
</para>
<para>
In a new shell environment variables are not established for the
SDK until you run the setup script.
For example, the following commands show a null value for the
compiler variable (i.e.
<ulink url='&YOCTO_DOCS_REF_URL;#var-CC'><filename>CC</filename></ulink>).
<literallayout class='monospaced'>
$ echo ${CC}
$
</literallayout>
Running the SDK setup script for a 64-bit build host and an
i586-tuned target architecture for a
<filename>core-image-sato</filename> image using the current
&DISTRO; Yocto Project release and then echoing that variable
shows the value established through the script:
<literallayout class='monospaced'>
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
$ echo ${CC}
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux
</literallayout>
</para>
<para>
To illustrate variable use, work through this simple "Hello World!"
example:
<orderedlist>
<listitem><para>
<emphasis>Create a Working Directory and Populate It:</emphasis>
Create a clean directory for your project and then make
that directory your working location.
<literallayout class='monospaced'>
$ mkdir $HOME/helloworld
$ cd $HOME/helloworld
</literallayout>
After setting up the directory, populate it with files
needed for the flow.
You need a <filename>main.c</filename> file from which you
call your function, a <filename>module.h</filename> file
to contain headers, and a <filename>module.c</filename>
that defines your function.
</para>
<para>Create the three files as follows:
<itemizedlist>
<listitem><para>
<emphasis><filename>main.c</filename>:</emphasis>
<literallayout class='monospaced'>
#include "module.h"
void sample_func();
int main()
{
sample_func();
return 0;
}
</literallayout>
</para></listitem>
<listitem><para>
<emphasis><filename>module.h</filename>:</emphasis>
<literallayout class='monospaced'>
#include &lt;stdio.h&gt;
void sample_func();
</literallayout>
</para></listitem>
<listitem><para>
<emphasis><filename>module.c</filename>:</emphasis>
<literallayout class='monospaced'>
#include "module.h"
void sample_func()
{
printf("Hello World!");
printf("\n");
}
</literallayout>
</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
<emphasis>Source the Cross-Toolchain Environment Setup File:</emphasis>
As described earlier in the manual, installing the
cross-toolchain creates a cross-toolchain environment setup
script in the directory that the SDK was installed.
Before you can use the tools to develop your project,
you must source this setup script.
The script begins with the string "environment-setup"
and contains the machine architecture, which is
followed by the string "poky-linux".
For this example, the command sources a script from the
default SDK installation directory that uses the
32-bit Intel x86 Architecture and the
&DISTRO_NAME; Yocto Project release:
<literallayout class='monospaced'>
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Create the <filename>Makefile</filename>:</emphasis>
For this example, the Makefile contains two lines that
can be used to set the <filename>CC</filename> variable.
One line is identical to the value that is set when you
run the SDK environment setup script, and the other line
sets <filename>CC</filename> to "gcc", the default GNU
compiler on the build host:
<literallayout class='monospaced'>
# CC=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux
# CC="gcc"
all: main.o module.o
${CC} main.o module.o -o target_bin
main.o: main.c module.h
${CC} -I . -c main.c
module.o: module.c module.h
${CC} -I . -c module.c
clean:
rm -rf *.o
rm target_bin
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Make the Project:</emphasis>
Use the <filename>make</filename> command to create the
binary output file.
Because variables are commented out in the Makefile,
the value used for <filename>CC</filename> is the value
set when the SDK environment setup file was run:
<literallayout class='monospaced'>
$ make
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux -I . -c main.c
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux -I . -c module.c
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux main.o module.o -o target_bin
</literallayout>
From the results of the previous command, you can see that
the compiler used was the compiler established through
the <filename>CC</filename> variable defined in the
setup script.</para>
<para>You can override the <filename>CC</filename>
environment variable with the same variable as set from
the Makefile by uncommenting the line in the Makefile
and running <filename>make</filename> again.
<literallayout class='monospaced'>
$ make clean
rm -rf *.o
rm target_bin
#
# Edit the Makefile by uncommenting the line that sets CC to "gcc"
#
$ make
gcc -I . -c main.c
gcc -I . -c module.c
gcc main.o module.o -o target_bin
</literallayout>
As shown in the previous example, the cross-toolchain
compiler is not used.
Rather, the default compiler is used.</para>
<para>This next case shows how to override a variable
by providing the variable as part of the command line.
Go into the Makefile and re-insert the comment character
so that running <filename>make</filename> uses
the established SDK compiler.
However, when you run <filename>make</filename>, use a
command-line argument to set <filename>CC</filename>
to "gcc":
<literallayout class='monospaced'>
$ make clean
rm -rf *.o
rm target_bin
#
# Edit the Makefile to comment out the line setting CC to "gcc"
#
$ make
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux -I . -c main.c
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux -I . -c module.c
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux main.o module.o -o target_bin
$ make clean
rm -rf *.o
rm target_bin
$ make CC="gcc"
gcc -I . -c main.c
gcc -I . -c module.c
gcc main.o module.o -o target_bin
</literallayout>
In the previous case, the command-line argument overrides
the SDK environment variable.</para>
<para>In this last case, edit Makefile again to use the
"gcc" compiler but then use the "-e" option on the
<filename>make</filename> command line:
<literallayout class='monospaced'>
$ make clean
rm -rf *.o
rm target_bin
#
# Edit the Makefile to use "gcc"
#
$ make
gcc -I . -c main.c
gcc -I . -c module.c
gcc main.o module.o -o target_bin
$ make clean
rm -rf *.o
rm target_bin
$ make -e
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux -I . -c main.c
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux -I . -c module.c
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux main.o module.o -o target_bin
</literallayout>
In the previous case, the "-e" option forces
<filename>make</filename> to use the SDK environment
variables regardless of the values in the Makefile.
</para></listitem>
<listitem><para>
<emphasis>Execute Your Project:</emphasis>
To execute the project (i.e.
<filename>target_bin</filename>), use the following
command:
<literallayout class='monospaced'>
$ ./target_bin
Hello World!
</literallayout>
<note>
If you used the cross-toolchain compiler to build
<filename>target_bin</filename> and your build host
differs in architecture from that of the target
machine, you need to run your project on the target
device.
</note>
As expected, the project displays the "Hello World!"
message.
</para></listitem>
</orderedlist>
</para>
</section>
</chapter>
<!--

View File

@@ -24,7 +24,9 @@ SCONF_VERSION = "1"
#or
#ALL_PROXY ?= "https://proxy.example.com:8080"
# If you wish to use certain hosts without the proxy, specify them in NO_PROXY.
# See the script for details on syntax.
# See the script for details on syntax. The script oe-git-proxy uses some tools
# that may not be included on HOSTTOOLS, thus add them manually through
# HOSTTOOLS += "getent seq"
# Uncomment this to use a shared download directory
#DL_DIR = "/some/shared/download/directory/"

View File

@@ -28,5 +28,8 @@ FILES_${PN} = "${bindir}/aspell"
FILES_libpspell = "${libdir}/libpspell.so.*"
FILES_libpspell-dev = "${libdir}/libpspell* ${bindir}/pspell-config ${includedir}/pspell"
ARM_INSTRUCTION_SET = "arm"
ARM_INSTRUCTION_SET_armv4 = "arm"
ARM_INSTRUCTION_SET_armv5 = "arm"
ARM_INSTRUCTION_SET_armv6 = "arm"
inherit autotools gettext

View File

@@ -15,7 +15,7 @@ SERIAL_CONSOLE = "115200 ttyS0"
MACHINE_FEATURES = "keyboard pci ext2 ext3 serial"
PREFERRED_VERSION_linux-yocto ?= "4.15%"
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
XSERVER ?= "xserver-xorg \
@@ -32,4 +32,4 @@ JFFS2_ERASEBLOCK = "0x4000"
IMAGE_FSTYPES += "wic wic.bmap"
WKS_FILE ?= 'mpc8315e-rdb.wks'
IMAGE_BOOT_FILES ?= "u-boot.bin uImage uImage-mpc8315erdb.dtb;dtb"
IMAGE_BOOT_FILES ?= "u-boot.bin uImage mpc8315erdb.dtb;dtb"

View File

@@ -44,7 +44,7 @@ class Systemdboot(OESelftestTestCase):
# Ensure we're actually testing that this gets built and not that
# it was around from an earlier build
bitbake('-c cleansstate systemd-boot')
bitbake('-c clean systemd-boot')
runCmd('rm -f %s' % systemdbootfile)
self._common_build()

View File

@@ -0,0 +1,15 @@
KBRANCH_genericx86 = "standard/base"
KBRANCH_genericx86-64 = "standard/base"
KBRANCH_edgerouter = "standard/edgerouter"
KBRANCH_beaglebone-yocto = "standard/beaglebone"
KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
KMACHINE_genericx86 ?= "common-pc"
KMACHINE_genericx86-64 ?= "common-pc-64"
KMACHINE_beaglebone-yocto ?= "beaglebone"
COMPATIBLE_MACHINE_genericx86 = "genericx86"
COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
COMPATIBLE_MACHINE_edgerouter = "edgerouter"
COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto"
COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"

View File

@@ -10,7 +10,7 @@ KMACHINE_beaglebone-yocto ?= "beaglebone"
SRCREV_machine_genericx86 ?= "2bf00ed1aee9c26b48c26b10c731c2f8970d50c2"
SRCREV_machine_genericx86-64 ?= "2bf00ed1aee9c26b48c26b10c731c2f8970d50c2"
SRCREV_machine_edgerouter ?= "65d1c849534179bbfa494f77947f8be615e9871a"
SRCREV_machine_edgerouter ?= "04043b48eb792c8baa310840307d480a28a43053"
SRCREV_machine_beaglebone-yocto ?= "d62ddfa26a59c83f6128790b7aa2baadc04d2960"
SRCREV_machine_mpc8315e-rdb ?= "80a106ecf737b69864e07b955eccb62f809cf120"

View File

@@ -10,7 +10,7 @@ KMACHINE_beaglebone-yocto ?= "beaglebone"
SRCREV_machine_genericx86 ?= "51273ff79f4ad930f4a788257f58e1266cb236e3"
SRCREV_machine_genericx86-64 ?= "51273ff79f4ad930f4a788257f58e1266cb236e3"
SRCREV_machine_edgerouter ?= "e25dbfe95302eeaa1a03a828d05c09479574488a"
SRCREV_machine_edgerouter ?= "3373c0cf71f2812eeb9694839456df6f67fd32ac"
SRCREV_machine_beaglebone-yocto ?= "e25dbfe95302eeaa1a03a828d05c09479574488a"
SRCREV_machine_mpc8315e-rdb ?= "0b32edc46dfe7c40bf5451e9b7533c823bb2c6c4"

View File

@@ -77,6 +77,7 @@ python buildhistory_emit_pkghistory() {
import re
import json
import shlex
import errno
pkghistdir = d.getVar('BUILDHISTORY_DIR_PACKAGE')
@@ -244,7 +245,7 @@ python buildhistory_emit_pkghistory() {
key = item[0]
if key.endswith('_' + pkg):
key = key[:-len(pkg)-1]
pkgdata[key] = item[1]
pkgdata[key] = item[1].encode('latin-1').decode('unicode_escape')
pkge = pkgdata.get('PKGE', '0')
pkgv = pkgdata['PKGV']
@@ -287,7 +288,7 @@ python buildhistory_emit_pkghistory() {
dictval = json.loads(val)
filelist = list(dictval.keys())
filelist.sort()
pkginfo.filelist = " ".join(filelist)
pkginfo.filelist = " ".join([shlex.quote(x) for x in filelist])
pkginfo.size = int(pkgdata['PKGSIZE'])

View File

@@ -54,8 +54,6 @@ EXTRA_OECMAKE_BUILD_prepend_task-install = "${PARALLEL_MAKEINST} "
OECMAKE_TARGET_COMPILE ?= "all"
OECMAKE_TARGET_INSTALL ?= "install"
FILES_${PN}-dev += "${libdir}/cmake ${datadir}/cmake"
# CMake expects target architectures in the format of uname(2),
# which do not always match TARGET_ARCH, so all the necessary
# conversions should happen here.

View File

@@ -30,7 +30,7 @@ cpan_build_do_configure () {
}
cpan_build_do_compile () {
perl Build verbose=1
perl Build --perl "${bindir}/perl" verbose=1
}
cpan_build_do_install () {

View File

@@ -30,7 +30,7 @@ python () {
if d.getVar("MODIFYTOS") != "1":
return
if d.getVar("TCLIBC") == "baremetal":
if d.getVar("TCLIBC") in [ 'baremetal', 'newlib' ]:
return
tos = d.getVar("TARGET_OS")

View File

@@ -8,6 +8,12 @@ DISTUTILS_STAGE_ALL_ARGS ?= "--prefix=${STAGING_DIR_HOST}${prefix} \
DISTUTILS_INSTALL_ARGS ?= "--prefix=${D}/${prefix} \
--install-data=${D}/${datadir}"
distutils3_do_configure() {
if [ "${CLEANBROKEN}" != "1" ] ; then
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py clean ${DISTUTILS_BUILD_ARGS}
fi
}
distutils3_do_compile() {
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
@@ -71,6 +77,6 @@ distutils3_do_install() {
}
distutils3_do_install[vardepsexclude] = "MACHINE"
EXPORT_FUNCTIONS do_compile do_install
EXPORT_FUNCTIONS do_configure do_compile do_install
export LDSHARED="${CCLD} -shared"

View File

@@ -17,7 +17,7 @@ FONTCONFIG_CACHE_PARAMS ?= "-v"
FONTCONFIG_CACHE_ENV ?= "FC_DEBUG=1"
fontcache_common() {
if [ -n "$D" ] ; then
$INTERCEPT_DIR/postinst_intercept update_font_cache ${PKG} mlprefix=${MLPREFIX} \
$INTERCEPT_DIR/postinst_intercept update_font_cache ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} \
'bindir="${bindir}"' \
'libdir="${libdir}"' \
'base_libdir="${base_libdir}"' \

View File

@@ -33,9 +33,13 @@ COMPATIBLE_HOST_linux-muslx32 = "null"
COMPATIBLE_HOST_powerpc = "null"
COMPATIBLE_HOST_powerpc64 = "null"
COMPATIBLE_HOST_mipsarchn32 = "null"
ARM_INSTRUCTION_SET = "arm"
ARM_INSTRUCTION_SET_armv4 = "arm"
ARM_INSTRUCTION_SET_armv5 = "arm"
ARM_INSTRUCTION_SET_armv6 = "arm"
TUNE_CCARGS_remove = "-march=mips32r2"
SECURITY_CFLAGS_mips = "${SECURITY_NOPIE_CFLAGS}"
SECURITY_CFLAGS_mipsarch = "${SECURITY_NOPIE_CFLAGS}"
SECURITY_NOPIE_CFLAGS ??= ""
def go_map_arch(a, d):

View File

@@ -10,53 +10,39 @@ GTKIMMODULES_PACKAGES ?= "${PN}"
gtk_immodule_cache_postinst() {
if [ "x$D" != "x" ]; then
if [ -x $D${bindir}/gtk-query-immodules-2.0 ]; then
IMFILES=$(ls $D${libdir}/gtk-2.0/*/immodules/*.so)
${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-2.0')} \
$IMFILES > $D${libdir}/gtk-2.0/2.10.0/immodules.cache 2>/dev/null &&
sed -i -e "s:$D::" $D${libdir}/gtk-2.0/2.10.0/immodules.cache
fi
if [ -x $D${bindir}/gtk-query-immodules-3.0 ]; then
IMFILES=$(ls $D${libdir}/gtk-3.0/*/immodules/*.so)
${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-3.0')} \
$IMFILES > $D${libdir}/gtk-3.0/3.0.0/immodules.cache 2>/dev/null &&
sed -i -e "s:$D::" $D${libdir}/gtk-3.0/3.0.0/immodules.cache
fi
[ $? -ne 0 ] && exit 1
exit 0
fi
if [ ! -z `which gtk-query-immodules-2.0` ]; then
gtk-query-immodules-2.0 > ${libdir}/gtk-2.0/2.10.0/immodules.cache
fi
if [ ! -z `which gtk-query-immodules-3.0` ]; then
gtk-query-immodules-3.0 > ${libdir}/gtk-3.0/3.0.0/immodules.cache
$INTERCEPT_DIR/postinst_intercept update_gtk_immodules_cache ${PKG} \
mlprefix=${MLPREFIX} \
binprefix=${MLPREFIX} \
libdir=${libdir} \
libexecdir=${libexecdir} \
base_libdir=${base_libdir} \
bindir=${bindir}
else
if [ ! -z `which gtk-query-immodules-2.0` ]; then
gtk-query-immodules-2.0 > ${libdir}/gtk-2.0/2.10.0/immodules.cache
fi
if [ ! -z `which gtk-query-immodules-3.0` ]; then
gtk-query-immodules-3.0 > ${libdir}/gtk-3.0/3.0.0/immodules.cache
fi
fi
}
gtk_immodule_cache_postrm() {
if [ "x$D" != "x" ]; then
if [ -x $D${bindir}/gtk-query-immodules-2.0 ]; then
IMFILES=$(ls $D${libdir}/gtk-2.0/*/immodules/*.so)
${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-2.0')} \
$IMFILES > $D${libdir}/gtk-2.0/2.10.0/immodules.cache 2>/dev/null &&
sed -i -e "s:$D::" $D${libdir}/gtk-2.0/2.10.0/immodules.cache
fi
if [ -x $D${bindir}/gtk-query-immodules-3.0 ]; then
IMFILES=$(ls $D${libdir}/gtk-3.0/*/immodules/*.so)
${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-3.0')} \
$IMFILES > $D${libdir}/gtk-3.0/3.0.0/immodules.cache 2>/dev/null &&
sed -i -e "s:$D::" $D${libdir}/gtk-3.0/3.0.0/immodules.cache
fi
[ $? -ne 0 ] && exit 1
exit 0
fi
if [ ! -z `which gtk-query-immodules-2.0` ]; then
gtk-query-immodules-2.0 > ${libdir}/gtk-2.0/2.10.0/immodules.cache
fi
if [ ! -z `which gtk-query-immodules-3.0` ]; then
gtk-query-immodules-3.0 > ${libdir}/gtk-3.0/3.0.0/immodules.cache
$INTERCEPT_DIR/postinst_intercept update_gtk_immodules_cache ${PKG} \
mlprefix=${MLPREFIX} \
binprefix=${MLPREFIX} \
libdir=${libdir} \
libexecdir=${libexecdir} \
base_libdir=${base_libdir} \
bindir=${bindir}
else
if [ ! -z `which gtk-query-immodules-2.0` ]; then
gtk-query-immodules-2.0 > ${libdir}/gtk-2.0/2.10.0/immodules.cache
fi
if [ ! -z `which gtk-query-immodules-3.0` ]; then
gtk-query-immodules-3.0 > ${libdir}/gtk-3.0/3.0.0/immodules.cache
fi
fi
}

View File

@@ -19,8 +19,6 @@
# External variables (also used by syslinux.bbclass)
# ${INITRD} - indicates a list of filesystem images to concatenate and use as an initrd (optional)
# ${NOISO} - skip building the ISO image if set to 1
# ${NOHDD} - skip building the HDD image if set to 1
# ${HDDIMG_ID} - FAT image volume-id
# ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional)
@@ -80,8 +78,8 @@ populate_live() {
}
build_iso() {
# Only create an ISO if we have an INITRD and NOISO was not set
if [ -z "${INITRD}" ] || [ "${NOISO}" = "1" ]; then
# Only create an ISO if we have an INITRD and the live or iso image type was selected
if [ -z "${INITRD}" ] || [ "${@bb.utils.contains_any('IMAGE_FSTYPES', 'live iso', '1', '0', d)}" != "1" ]; then
bbnote "ISO image will not be created."
return
fi
@@ -217,7 +215,7 @@ build_fat_img() {
build_hddimg() {
# Create an HDD image
if [ "${NOHDD}" != "1" ] ; then
if [ "${@bb.utils.contains_any('IMAGE_FSTYPES', 'live hddimg', '1', '0', d)}" = "1" ] ; then
populate_live ${HDDDIR}
if [ "${PCBIOS}" = "1" ]; then
@@ -232,11 +230,11 @@ build_hddimg() {
if [ -f ${HDDDIR}/rootfs.img ]; then
rootfs_img_size=`stat -c '%s' ${HDDDIR}/rootfs.img`
max_size=`expr 4 \* 1024 \* 1024 \* 1024`
if [ $rootfs_img_size -gt $max_size ]; then
bberror "${HDDDIR}/rootfs.img execeeds 4GB,"
bberror "this doesn't work on FAT filesystem, you can try either of:"
bberror "1) Reduce the size of rootfs.img"
bbfatal "2) Use iso, vmdk or vdi to instead of hddimg\n"
if [ $rootfs_img_size -ge $max_size ]; then
bberror "${HDDDIR}/rootfs.img rootfs size is greather than or equal to 4GB,"
bberror "and this doesn't work on a FAT filesystem. You can either:"
bberror "1) Reduce the size of rootfs.img, or,"
bbfatal "2) Use wic, vmdk or vdi instead of hddimg\n"
fi
fi

View File

@@ -1,9 +1,20 @@
inherit rootfs_${IMAGE_PKGTYPE}
IMAGE_CLASSES ??= ""
# rootfs bootstrap install
# warning - image-container resets this
ROOTFS_BOOTSTRAP_INSTALL = "run-postinsts"
# Handle inherits of any of the image classes we need
IMGCLASSES = "rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}"
# Only Linux SDKs support populate_sdk_ext, fall back to populate_sdk_base
# in the non-Linux SDK_OS case, such as mingw32
SDKEXTCLASS ?= "${@['populate_sdk_base', 'populate_sdk_ext']['linux' in d.getVar("SDK_OS")]}"
inherit ${SDKEXTCLASS}
IMGCLASSES += "${@['populate_sdk_base', 'populate_sdk_ext']['linux' in d.getVar("SDK_OS")]}"
IMGCLASSES += "${@bb.utils.contains_any('IMAGE_FSTYPES', 'live iso hddimg', 'image-live', '', d)}"
IMGCLASSES += "${@bb.utils.contains('IMAGE_FSTYPES', 'container', 'image-container', '', d)}"
IMGCLASSES += "image_types_wic"
IMGCLASSES += "rootfs-postcommands"
inherit ${IMGCLASSES}
TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}"
TOOLCHAIN_TARGET_TASK_ATTEMPTONLY += "${PACKAGE_INSTALL_ATTEMPTONLY}"
@@ -11,25 +22,21 @@ POPULATE_SDK_POST_TARGET_COMMAND += "rootfs_sysroot_relativelinks; "
LICENSE ?= "MIT"
PACKAGES = ""
DEPENDS += "${MLPREFIX}qemuwrapper-cross depmodwrapper-cross"
DEPENDS += "${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross depmodwrapper-cross"
RDEPENDS += "${PACKAGE_INSTALL} ${LINGUAS_INSTALL}"
RRECOMMENDS += "${PACKAGE_INSTALL_ATTEMPTONLY}"
PATH_prepend = "${@":".join(all_multilib_tune_values(d, 'STAGING_BINDIR_CROSS').split())}:"
INHIBIT_DEFAULT_DEPS = "1"
TESTIMAGECLASS = "${@oe.utils.conditional('TEST_IMAGE', '1', 'testimage-auto', '', d)}"
inherit ${TESTIMAGECLASS}
# IMAGE_FEATURES may contain any available package group
IMAGE_FEATURES ?= ""
IMAGE_FEATURES[type] = "list"
IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs empty-root-password allow-empty-password post-install-logging"
IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging"
# Generate companion debugfs?
IMAGE_GEN_DEBUGFS ?= "0"
# rootfs bootstrap install
ROOTFS_BOOTSTRAP_INSTALL = "run-postinsts"
# These packages will be removed from a read-only rootfs after all other
# packages have been installed
@@ -126,23 +133,6 @@ do_rootfs[vardeps] += "${@rootfs_variables(d)}"
do_build[depends] += "virtual/kernel:do_deploy"
def build_live(d):
if bb.utils.contains("IMAGE_FSTYPES", "live", "live", "0", d) == "0": # live is not set but hob might set iso or hddimg
d.setVar('NOISO', bb.utils.contains('IMAGE_FSTYPES', "iso", "0", "1", d))
d.setVar('NOHDD', bb.utils.contains('IMAGE_FSTYPES', "hddimg", "0", "1", d))
if d.getVar('NOISO') == "0" or d.getVar('NOHDD') == "0":
return "image-live"
return ""
return "image-live"
IMAGE_TYPE_live = "${@build_live(d)}"
inherit ${IMAGE_TYPE_live}
IMAGE_TYPE_container = '${@bb.utils.contains("IMAGE_FSTYPES", "container", "image-container", "", d)}'
inherit ${IMAGE_TYPE_container}
IMAGE_TYPE_wic = "image_types_wic"
inherit ${IMAGE_TYPE_wic}
python () {
def extraimage_getdepends(task):
@@ -151,7 +141,6 @@ python () {
deps += " %s:%s" % (dep, task)
return deps
d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_populate_lic'))
d.appendVarFlag('do_image_complete', 'depends', extraimage_getdepends('do_populate_sysroot'))
deps = " " + imagetypes_getdepends(d)
@@ -177,9 +166,6 @@ python () {
check_image_features(d)
}
IMAGE_CLASSES += "image_types"
inherit ${IMAGE_CLASSES}
IMAGE_POSTPROCESS_COMMAND ?= ""
# some default locales
@@ -191,8 +177,6 @@ LINGUAS_INSTALL ?= "${@" ".join(map(lambda s: "locale-base-%s" % s, d.getVar('IM
# aren't yet available.
PSEUDO_PASSWD = "${IMAGE_ROOTFS}:${STAGING_DIR_NATIVE}"
inherit rootfs-postcommands
PACKAGE_EXCLUDE ??= ""
PACKAGE_EXCLUDE[type] = "list"
@@ -666,7 +650,7 @@ POPULATE_SDK_PRE_TARGET_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usr
reproducible_final_image_task () {
if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then
REPRODUCIBLE_TIMESTAMP_ROOTFS=`git log -1 --pretty=%ct`
REPRODUCIBLE_TIMESTAMP_ROOTFS=`git -C "${COREBASE}" log -1 --pretty=%ct`
fi
# Set mtime of all files to a reproducible value
bbnote "reproducible_final_image_task: mtime set to $REPRODUCIBLE_TIMESTAMP_ROOTFS"

View File

@@ -71,6 +71,7 @@ def package_qa_get_machine_dict(d):
"microblaze": (189, 0, 0, False, 32),
"microblazeeb":(189, 0, 0, False, 32),
"microblazeel":(189, 0, 0, True, 32),
"powerpc": (20, 0, 0, False, 32),
"riscv32": (243, 0, 0, True, 32),
"riscv64": (243, 0, 0, True, 64),
},
@@ -534,9 +535,9 @@ def package_qa_check_buildpaths(path, name, d, elf, messages):
if path.find(name + "/CONTROL/") != -1 or path.find(name + "/DEBIAN/") != -1:
return
tmpdir = d.getVar('TMPDIR')
tmpdir = bytes(d.getVar('TMPDIR'), encoding="utf-8")
with open(path, 'rb') as f:
file_content = f.read().decode('utf-8', errors='ignore')
file_content = f.read()
if tmpdir in file_content:
package_qa_add_message(messages, "buildpaths", "File %s in package contained reference to tmpdir" % package_qa_clean_path(path,d))
@@ -599,7 +600,7 @@ python populate_lic_qa_checksum() {
return
if not lic_files and d.getVar('SRC_URI'):
sane = package_qa_handle_error("license-checksum", pn + ": Recipe file fetches files and does not have license file information (LIC_FILES_CHKSUM)", d)
sane &= package_qa_handle_error("license-checksum", pn + ": Recipe file fetches files and does not have license file information (LIC_FILES_CHKSUM)", d)
srcdir = d.getVar('S')
corebase_licensefile = d.getVar('COREBASE') + "/LICENSE"
@@ -607,11 +608,11 @@ python populate_lic_qa_checksum() {
try:
(type, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)
except bb.fetch.MalformedUrl:
sane = package_qa_handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM contains an invalid URL: " + url, d)
sane &= package_qa_handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM contains an invalid URL: " + url, d)
continue
srclicfile = os.path.join(srcdir, path)
if not os.path.isfile(srclicfile):
package_qa_handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM points to an invalid file: " + srclicfile, d)
sane &= package_qa_handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM points to an invalid file: " + srclicfile, d)
continue
if (srclicfile == corebase_licensefile):
@@ -695,7 +696,7 @@ python populate_lic_qa_checksum() {
else:
msg = pn + ": LIC_FILES_CHKSUM is not specified for " + url
msg = msg + "\n" + pn + ": The md5 checksum is " + md5chksum
sane = package_qa_handle_error("license-checksum", msg, d)
sane &= package_qa_handle_error("license-checksum", msg, d)
if not sane:
bb.fatal("Fatal QA errors found, failing task.")
@@ -732,14 +733,14 @@ def package_qa_check_staged(path,d):
file_content = file_content.replace(recipesysroot, "")
if workdir in file_content:
error_msg = "%s failed sanity test (workdir) in path %s" % (file,root)
sane = package_qa_handle_error("la", error_msg, d)
sane &= package_qa_handle_error("la", error_msg, d)
elif file.endswith(".pc"):
with open(path) as f:
file_content = f.read()
file_content = file_content.replace(recipesysroot, "")
if pkgconfigcheck in file_content:
error_msg = "%s failed sanity test (tmpdir) in path %s" % (file,root)
sane = package_qa_handle_error("pkgconfig", error_msg, d)
sane &= package_qa_handle_error("pkgconfig", error_msg, d)
return sane

View File

@@ -0,0 +1,19 @@
KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
# Don't include the DATETIME variable in the sstate package signatures
KERNEL_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME"
KERNEL_IMAGE_SYMLINK_NAME ?= "${MACHINE}"
KERNEL_DTB_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
KERNEL_DTB_BASE_NAME[vardepsexclude] = "DATETIME"
KERNEL_DTB_SYMLINK_NAME ?= "${MACHINE}"
MODULE_IMAGE_BASE_NAME ?= "modules-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
MODULE_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME"
MODULE_TARBALL_BASE_NAME ?= "${MODULE_IMAGE_BASE_NAME}.tgz"
MODULE_TARBALL_SYMLINK_NAME ?= "modules-${MACHINE}.tgz"
MODULE_TARBALL_DEPLOY ?= "1"
INITRAMFS_BASE_NAME ?= "initramfs-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
INITRAMFS_BASE_NAME[vardepsexclude] = "DATETIME"
INITRAMFS_SYMLINK_NAME ?= "initramfs-${MACHINE}"

View File

@@ -10,21 +10,21 @@ FILES_${KERNEL_PACKAGE_NAME}-image-zimage-bundle = "/${KERNEL_IMAGEDEST}/zImage-
KERNEL_DEVICETREE_BUNDLE ?= "0"
normalize_dtb () {
DTB="$1"
if echo ${DTB} | grep -q '/dts/'; then
bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used."
DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
dtb="$1"
if echo $dtb | grep -q '/dts/'; then
bbwarn "$dtb contains the full path to the the dts file, but only the dtb name should be used."
dtb=`basename $dtb | sed 's,\.dts$,.dtb,g'`
fi
echo "${DTB}"
echo "$dtb"
}
get_real_dtb_path_in_kernel () {
DTB="$1"
DTB_PATH="${B}/arch/${ARCH}/boot/dts/${DTB}"
if [ ! -e "${DTB_PATH}" ]; then
DTB_PATH="${B}/arch/${ARCH}/boot/${DTB}"
dtb="$1"
dtb_path="${B}/arch/${ARCH}/boot/dts/$dtb"
if [ ! -e "$dtb_path" ]; then
dtb_path="${B}/arch/${ARCH}/boot/$dtb"
fi
echo "${DTB_PATH}"
echo "$dtb_path"
}
do_configure_append() {
@@ -50,61 +50,44 @@ do_configure_append() {
}
do_compile_append() {
for DTB in ${KERNEL_DEVICETREE}; do
DTB=`normalize_dtb "${DTB}"`
oe_runmake ${DTB}
for dtbf in ${KERNEL_DEVICETREE}; do
dtb=`normalize_dtb "$dtbf"`
oe_runmake $dtb
done
}
do_install_append() {
for DTB in ${KERNEL_DEVICETREE}; do
DTB=`normalize_dtb "${DTB}"`
DTB_EXT=${DTB##*.}
DTB_PATH=`get_real_dtb_path_in_kernel "${DTB}"`
DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
install -m 0644 ${DTB_PATH} ${D}/${KERNEL_IMAGEDEST}/${DTB_BASE_NAME}.${DTB_EXT}
for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
symlink_name=${type}"-"${KERNEL_IMAGE_SYMLINK_NAME}
DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
ln -sf ${DTB_BASE_NAME}.${DTB_EXT} ${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT}
if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then
cat ${D}/${KERNEL_IMAGEDEST}/$type \
${D}/${KERNEL_IMAGEDEST}/${DTB_BASE_NAME}.${DTB_EXT} \
> ${D}/${KERNEL_IMAGEDEST}/$type-${DTB_BASE_NAME}.${DTB_EXT}.bin
fi
done
for dtbf in ${KERNEL_DEVICETREE}; do
dtb=`normalize_dtb "$dtbf"`
dtb_ext=${dtb##*.}
dtb_base_name=`basename $dtb .$dtb_ext`
dtb_path=`get_real_dtb_path_in_kernel "$dtb"`
install -m 0644 $dtb_path ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext
done
}
do_deploy_append() {
for DTB in ${KERNEL_DEVICETREE}; do
DTB=`normalize_dtb "${DTB}"`
DTB_EXT=${DTB##*.}
DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
for dtbf in ${KERNEL_DEVICETREE}; do
dtb=`normalize_dtb "$dtbf"`
dtb_ext=${dtb##*.}
dtb_base_name=`basename $dtb .$dtb_ext`
install -d ${DEPLOYDIR}
install -m 0644 ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_BASE_NAME}.$dtb_ext
ln -sf $dtb_base_name-${KERNEL_DTB_BASE_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name.$dtb_ext
ln -sf $dtb_base_name-${KERNEL_DTB_BASE_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_SYMLINK_NAME}.$dtb_ext
for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
base_name=${type}"-"${KERNEL_IMAGE_BASE_NAME}
symlink_name=${type}"-"${KERNEL_IMAGE_SYMLINK_NAME}
DTB_NAME=`echo ${base_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
DTB_PATH=`get_real_dtb_path_in_kernel "${DTB}"`
install -d ${DEPLOYDIR}
install -m 0644 ${DTB_PATH} ${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT}
ln -sf ${DTB_NAME}.${DTB_EXT} ${DEPLOYDIR}/${DTB_SYMLINK_NAME}.${DTB_EXT}
ln -sf ${DTB_NAME}.${DTB_EXT} ${DEPLOYDIR}/${DTB_BASE_NAME}.${DTB_EXT}
if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then
cat ${DEPLOYDIR}/$type \
${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT} \
> ${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT}.bin
ln -sf ${DTB_NAME}.${DTB_EXT}.bin ${DEPLOYDIR}/$type-${DTB_BASE_NAME}.${DTB_EXT}.bin
cat ${D}/${KERNEL_IMAGEDEST}/$type \
${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_BASE_NAME}.$dtb_ext \
> ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_BASE_NAME}.$dtb_ext.bin
ln -sf $type-$dtb_base_name-${KERNEL_DTB_BASE_NAME}.$dtb_ext.bin \
${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_SYMLINK_NAME}.$dtb_ext.bin
if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then
cat ${KERNEL_OUTPUT_DIR}/${type}.initramfs \
${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT} \
> ${DEPLOYDIR}/${type}-${INITRAMFS_BASE_NAME}-${DTB_BASE_NAME}.${DTB_EXT}.bin
ln -sf ${type}-${INITRAMFS_BASE_NAME}-${DTB_BASE_NAME}.${DTB_EXT}.bin \
${DEPLOYDIR}/${type}-initramfs-${DTB_BASE_NAME}.${DTB_EXT}-${MACHINE}.bin
${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_BASE_NAME}.$dtb_ext
> ${DEPLOYDIR}/${type}-${INITRAMFS_BASE_NAME}-$dtb_base_name-${KERNEL_DTB_BASE_NAME}.$dtb_ext.bin
ln -sf ${type}-${INITRAMFS_BASE_NAME}-$dtb_base_name-${KERNEL_DTB_BASE_NAME}.$dtb_ext.bin \
${DEPLOYDIR}/${type}-${INITRAMFS_BASE_NAME}-$dtb_base_name-${KERNEL_DTB_SYMLINK_NAME}.$dtb_ext.bin
fi
fi
done

View File

@@ -135,6 +135,15 @@ fitimage_emit_section_dtb() {
dtb_csum="sha1"
dtb_loadline=""
dtb_ext=${DTB##*.}
if [ "${dtb_ext}" = "dtbo" ]; then
if [ -n "${UBOOT_DTBO_LOADADDRESS}" ]; then
dtb_loadline="load = <${UBOOT_DTBO_LOADADDRESS}>;"
fi
elif [ -n "${UBOOT_DTB_LOADADDRESS}" ]; then
dtb_loadline="load = <${UBOOT_DTB_LOADADDRESS}>;"
fi
cat << EOF >> ${1}
fdt@${2} {
description = "Flattened Device Tree blob";
@@ -142,6 +151,7 @@ fitimage_emit_section_dtb() {
type = "flat_dt";
arch = "${UBOOT_ARCH}";
compression = "none";
${dtb_loadline}
hash@1 {
algo = "${dtb_csum}";
};
@@ -248,25 +258,34 @@ fitimage_emit_section_config() {
fi
# Test if we have any DTBs at all
conf_desc="Linux kernel"
kernel_line="kernel = \"kernel@${2}\";"
sep=""
conf_desc=""
kernel_line=""
fdt_line=""
ramdisk_line=""
setup_line=""
default_line=""
if [ -n "${2}" ]; then
conf_desc="Linux kernel"
sep=", "
kernel_line="kernel = \"kernel@${2}\";"
fi
if [ -n "${3}" ]; then
conf_desc="${conf_desc}, FDT blob"
conf_desc="${conf_desc}${sep}FDT blob"
sep=", "
fdt_line="fdt = \"fdt@${3}\";"
fi
if [ -n "${4}" ]; then
conf_desc="${conf_desc}, ramdisk"
conf_desc="${conf_desc}${sep}ramdisk"
sep=", "
ramdisk_line="ramdisk = \"ramdisk@${4}\";"
fi
if [ -n "${5}" ]; then
conf_desc="${conf_desc}, setup"
conf_desc="${conf_desc}${sep}setup"
setup_line="setup = \"setup@${5}\";"
fi
@@ -289,18 +308,26 @@ EOF
if [ ! -z "${conf_sign_keyname}" ] ; then
sign_line="sign-images = \"kernel\""
sign_line="sign-images = "
sep=""
if [ -n "${2}" ]; then
sign_line="${sign_line}${sep}\"kernel\""
sep=", "
fi
if [ -n "${3}" ]; then
sign_line="${sign_line}, \"fdt\""
sign_line="${sign_line}${sep}\"fdt\""
sep=", "
fi
if [ -n "${4}" ]; then
sign_line="${sign_line}, \"ramdisk\""
sign_line="${sign_line}${sep}\"ramdisk\""
sep=", "
fi
if [ -n "${5}" ]; then
sign_line="${sign_line}, \"setup\""
sign_line="${sign_line}${sep}\"setup\""
fi
sign_line="${sign_line};"
@@ -377,7 +404,7 @@ fitimage_assemble() {
#
if [ "x${ramdiskcount}" = "x1" ] ; then
# Find and use the first initramfs image archive type we find
for img in cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.gz cpio; do
for img in cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.gz ext2.gz cpio; do
initramfs_path="${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.${img}"
echo "Using $initramfs_path"
if [ -e "${initramfs_path}" ]; then
@@ -403,7 +430,12 @@ fitimage_assemble() {
if [ -n "${DTBS}" ]; then
i=1
for DTB in ${DTBS}; do
fitimage_emit_section_config ${1} "${kernelcount}" "${DTB}" "${ramdiskcount}" "${setupcount}" "`expr ${i} = ${dtbcount}`"
dtb_ext=${DTB##*.}
if [ "${dtb_ext}" = "dtbo" ]; then
fitimage_emit_section_config ${1} "" "${DTB}" "" "" "`expr ${i} = ${dtbcount}`"
else
fitimage_emit_section_config ${1} "${kernelcount}" "${DTB}" "${ramdiskcount}" "${setupcount}" "`expr ${i} = ${dtbcount}`"
fi
i=`expr ${i} + 1`
done
fi
@@ -427,7 +459,7 @@ fitimage_assemble() {
uboot-mkimage \
${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
-F -k "${UBOOT_SIGN_KEYDIR}" \
-K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}" \
${@'-K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}"' if len('${UBOOT_DTB_BINARY}') else ''} \
-r arch/${ARCH}/boot/${2}
fi
}

View File

@@ -229,8 +229,6 @@ copy_initramfs() {
echo "Finished copy of initramfs into ./usr"
}
INITRAMFS_BASE_NAME ?= "initramfs-${PV}-${PR}-${MACHINE}-${DATETIME}"
INITRAMFS_BASE_NAME[vardepsexclude] = "DATETIME"
do_bundle_initramfs () {
if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" = x1 ]; then
echo "Creating a kernel image with a bundled initramfs..."
@@ -288,7 +286,7 @@ kernel_do_compile() {
if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
# kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not
# be set....
if [ "$SOURCE_DATE_EPOCH" = "0" ]; then
if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = "0" ]; then
olddir=`pwd`
cd ${S}
SOURCE_DATE_EPOCH=`git log -1 --pretty=%ct`
@@ -659,16 +657,7 @@ do_sizecheck[dirs] = "${B}"
addtask sizecheck before do_install after do_strip
KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
# Don't include the DATETIME variable in the sstate package signatures
KERNEL_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME"
KERNEL_IMAGE_SYMLINK_NAME ?= "${MACHINE}"
MODULE_IMAGE_BASE_NAME ?= "modules-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
MODULE_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME"
MODULE_TARBALL_BASE_NAME ?= "${MODULE_IMAGE_BASE_NAME}.tgz"
# Don't include the DATETIME variable in the sstate package signatures
MODULE_TARBALL_SYMLINK_NAME ?= "modules-${MACHINE}.tgz"
MODULE_TARBALL_DEPLOY ?= "1"
inherit kernel-artifact-names
kernel_do_deploy() {
deployDir="${DEPLOYDIR}"
@@ -694,17 +683,14 @@ kernel_do_deploy() {
ln -sf ${base_name}.bin $deployDir/${type}
done
cd ${B}
# Update deploy directory
for type in ${KERNEL_IMAGETYPES} ; do
if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then
echo "Copying deploy ${type} kernel-initramfs image and setting up links..."
if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" = x1 ]; then
for type in ${KERNEL_IMAGETYPES} ; do
initramfs_base_name=${type}-${INITRAMFS_BASE_NAME}
initramfs_symlink_name=${type}-initramfs-${MACHINE}
initramfs_symlink_name=${type}-${INITRAMFS_SYMLINK_NAME}
install -m 0644 ${KERNEL_OUTPUT_DIR}/${type}.initramfs $deployDir/${initramfs_base_name}.bin
ln -sf ${initramfs_base_name}.bin $deployDir/${initramfs_symlink_name}.bin
fi
done
done
fi
}
do_deploy[cleandirs] = "${DEPLOYDIR}"
do_deploy[dirs] = "${DEPLOYDIR} ${B}"

View File

@@ -16,284 +16,6 @@ addtask populate_lic after do_patch before do_build
do_populate_lic[dirs] = "${LICSSTATEDIR}/${PN}"
do_populate_lic[cleandirs] = "${LICSSTATEDIR}"
python write_package_manifest() {
# Get list of installed packages
license_image_dir = d.expand('${LICENSE_DIRECTORY}/${IMAGE_NAME}')
bb.utils.mkdirhier(license_image_dir)
from oe.rootfs import image_list_installed_packages
from oe.utils import format_pkg_list
pkgs = image_list_installed_packages(d)
output = format_pkg_list(pkgs)
open(os.path.join(license_image_dir, 'package.manifest'),
'w+').write(output)
}
python write_deploy_manifest() {
license_deployed_manifest(d)
}
python license_create_manifest() {
import oe.packagedata
from oe.rootfs import image_list_installed_packages
build_images_from_feeds = d.getVar('BUILD_IMAGES_FROM_FEEDS')
if build_images_from_feeds == "1":
return 0
pkg_dic = {}
for pkg in sorted(image_list_installed_packages(d)):
pkg_info = os.path.join(d.getVar('PKGDATA_DIR'),
'runtime-reverse', pkg)
pkg_name = os.path.basename(os.readlink(pkg_info))
pkg_dic[pkg_name] = oe.packagedata.read_pkgdatafile(pkg_info)
if not "LICENSE" in pkg_dic[pkg_name].keys():
pkg_lic_name = "LICENSE_" + pkg_name
pkg_dic[pkg_name]["LICENSE"] = pkg_dic[pkg_name][pkg_lic_name]
rootfs_license_manifest = os.path.join(d.getVar('LICENSE_DIRECTORY'),
d.getVar('IMAGE_NAME'), 'license.manifest')
write_license_files(d, rootfs_license_manifest, pkg_dic)
}
def write_license_files(d, license_manifest, pkg_dic):
import re
bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE") or "").split()
bad_licenses = map(lambda l: canonical_license(d, l), bad_licenses)
bad_licenses = expand_wildcard_licenses(d, bad_licenses)
with open(license_manifest, "w") as license_file:
for pkg in sorted(pkg_dic):
if bad_licenses:
try:
(pkg_dic[pkg]["LICENSE"], pkg_dic[pkg]["LICENSES"]) = \
oe.license.manifest_licenses(pkg_dic[pkg]["LICENSE"],
bad_licenses, canonical_license, d)
except oe.license.LicenseError as exc:
bb.fatal('%s: %s' % (d.getVar('P'), exc))
else:
pkg_dic[pkg]["LICENSES"] = re.sub('[|&()*]', ' ', pkg_dic[pkg]["LICENSE"])
pkg_dic[pkg]["LICENSES"] = re.sub(' *', ' ', pkg_dic[pkg]["LICENSES"])
pkg_dic[pkg]["LICENSES"] = pkg_dic[pkg]["LICENSES"].split()
if not "IMAGE_MANIFEST" in pkg_dic[pkg]:
# Rootfs manifest
license_file.write("PACKAGE NAME: %s\n" % pkg)
license_file.write("PACKAGE VERSION: %s\n" % pkg_dic[pkg]["PV"])
license_file.write("RECIPE NAME: %s\n" % pkg_dic[pkg]["PN"])
license_file.write("LICENSE: %s\n\n" % pkg_dic[pkg]["LICENSE"])
# If the package doesn't contain any file, that is, its size is 0, the license
# isn't relevant as far as the final image is concerned. So doing license check
# doesn't make much sense, skip it.
if pkg_dic[pkg]["PKGSIZE_%s" % pkg] == "0":
continue
else:
# Image manifest
license_file.write("RECIPE NAME: %s\n" % pkg_dic[pkg]["PN"])
license_file.write("VERSION: %s\n" % pkg_dic[pkg]["PV"])
license_file.write("LICENSE: %s\n" % pkg_dic[pkg]["LICENSE"])
license_file.write("FILES: %s\n\n" % pkg_dic[pkg]["FILES"])
for lic in pkg_dic[pkg]["LICENSES"]:
lic_file = os.path.join(d.getVar('LICENSE_DIRECTORY'),
pkg_dic[pkg]["PN"], "generic_%s" %
re.sub('\+', '', lic))
# add explicity avoid of CLOSED license because isn't generic
if lic == "CLOSED":
continue
if not os.path.exists(lic_file):
bb.warn("The license listed %s was not in the "\
"licenses collected for recipe %s"
% (lic, pkg_dic[pkg]["PN"]))
# Two options here:
# - Just copy the manifest
# - Copy the manifest and the license directories
# With both options set we see a .5 M increase in core-image-minimal
copy_lic_manifest = d.getVar('COPY_LIC_MANIFEST')
copy_lic_dirs = d.getVar('COPY_LIC_DIRS')
if copy_lic_manifest == "1":
rootfs_license_dir = os.path.join(d.getVar('IMAGE_ROOTFS'),
'usr', 'share', 'common-licenses')
bb.utils.mkdirhier(rootfs_license_dir)
rootfs_license_manifest = os.path.join(rootfs_license_dir,
os.path.split(license_manifest)[1])
if not os.path.exists(rootfs_license_manifest):
os.link(license_manifest, rootfs_license_manifest)
if copy_lic_dirs == "1":
for pkg in sorted(pkg_dic):
pkg_rootfs_license_dir = os.path.join(rootfs_license_dir, pkg)
bb.utils.mkdirhier(pkg_rootfs_license_dir)
pkg_license_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
pkg_dic[pkg]["PN"])
pkg_manifest_licenses = [canonical_license(d, lic) \
for lic in pkg_dic[pkg]["LICENSES"]]
licenses = os.listdir(pkg_license_dir)
for lic in licenses:
rootfs_license = os.path.join(rootfs_license_dir, lic)
pkg_license = os.path.join(pkg_license_dir, lic)
pkg_rootfs_license = os.path.join(pkg_rootfs_license_dir, lic)
if re.match("^generic_.*$", lic):
generic_lic = canonical_license(d,
re.search("^generic_(.*)$", lic).group(1))
# Do not copy generic license into package if isn't
# declared into LICENSES of the package.
if not re.sub('\+$', '', generic_lic) in \
[re.sub('\+', '', lic) for lic in \
pkg_manifest_licenses]:
continue
if oe.license.license_ok(generic_lic,
bad_licenses) == False:
continue
if not os.path.exists(rootfs_license):
os.link(pkg_license, rootfs_license)
if not os.path.exists(pkg_rootfs_license):
os.symlink(os.path.join('..', lic), pkg_rootfs_license)
else:
if (oe.license.license_ok(canonical_license(d,
lic), bad_licenses) == False or
os.path.exists(pkg_rootfs_license)):
continue
os.link(pkg_license, pkg_rootfs_license)
def license_deployed_manifest(d):
"""
Write the license manifest for the deployed recipes.
The deployed recipes usually includes the bootloader
and extra files to boot the target.
"""
dep_dic = {}
man_dic = {}
lic_dir = d.getVar("LICENSE_DIRECTORY")
dep_dic = get_deployed_dependencies(d)
for dep in dep_dic.keys():
man_dic[dep] = {}
# It is necessary to mark this will be used for image manifest
man_dic[dep]["IMAGE_MANIFEST"] = True
man_dic[dep]["PN"] = dep
man_dic[dep]["FILES"] = \
" ".join(get_deployed_files(dep_dic[dep]))
with open(os.path.join(lic_dir, dep, "recipeinfo"), "r") as f:
for line in f.readlines():
key,val = line.split(": ", 1)
man_dic[dep][key] = val[:-1]
lic_manifest_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
d.getVar('IMAGE_NAME'))
bb.utils.mkdirhier(lic_manifest_dir)
image_license_manifest = os.path.join(lic_manifest_dir, 'image_license.manifest')
write_license_files(d, image_license_manifest, man_dic)
def get_deployed_dependencies(d):
"""
Get all the deployed dependencies of an image
"""
deploy = {}
# Get all the dependencies for the current task (rootfs).
# Also get EXTRA_IMAGEDEPENDS because the bootloader is
# usually in this var and not listed in rootfs.
# At last, get the dependencies from boot classes because
# it might contain the bootloader.
taskdata = d.getVar("BB_TASKDEPDATA", False)
depends = list(set([dep[0] for dep
in list(taskdata.values())
if not dep[0].endswith("-native")]))
extra_depends = d.getVar("EXTRA_IMAGEDEPENDS")
boot_depends = get_boot_dependencies(d)
depends.extend(extra_depends.split())
depends.extend(boot_depends)
depends = list(set(depends))
# To verify what was deployed it checks the rootfs dependencies against
# the SSTATE_MANIFESTS for "deploy" task.
# The manifest file name contains the arch. Because we are not running
# in the recipe context it is necessary to check every arch used.
sstate_manifest_dir = d.getVar("SSTATE_MANIFESTS")
archs = list(set(d.getVar("SSTATE_ARCHS").split()))
for dep in depends:
# Some recipes have an arch on their own, so we try that first.
special_arch = d.getVar("PACKAGE_ARCH_pn-%s" % dep)
if special_arch:
sstate_manifest_file = os.path.join(sstate_manifest_dir,
"manifest-%s-%s.deploy" % (special_arch, dep))
if os.path.exists(sstate_manifest_file):
deploy[dep] = sstate_manifest_file
continue
for arch in archs:
sstate_manifest_file = os.path.join(sstate_manifest_dir,
"manifest-%s-%s.deploy" % (arch, dep))
if os.path.exists(sstate_manifest_file):
deploy[dep] = sstate_manifest_file
break
return deploy
get_deployed_dependencies[vardepsexclude] = "BB_TASKDEPDATA"
def get_boot_dependencies(d):
"""
Return the dependencies from boot tasks
"""
depends = []
taskdepdata = d.getVar("BB_TASKDEPDATA", False)
# Only bootimg includes the depends flag
boot_depends_string = d.getVarFlag("do_bootimg", "depends") or ""
boot_depends = [dep.split(":")[0] for dep
in boot_depends_string.split()
if not dep.split(":")[0].endswith("-native")]
for dep in boot_depends:
info_file = os.path.join(d.getVar("LICENSE_DIRECTORY"),
dep, "recipeinfo")
# If the recipe and dependency name is the same
if os.path.exists(info_file):
depends.append(dep)
# We need to search for the provider of the dependency
else:
for taskdep in taskdepdata.values():
# The fifth field contains what the task provides
if dep in taskdep[4]:
info_file = os.path.join(
d.getVar("LICENSE_DIRECTORY"),
taskdep[0], "recipeinfo")
if os.path.exists(info_file):
depends.append(taskdep[0])
break
return depends
get_boot_dependencies[vardepsexclude] = "BB_TASKDEPDATA"
def get_deployed_files(man_file):
"""
Get the files deployed from the sstate manifest
"""
dep_files = []
excluded_files = []
with open(man_file, "r") as manifest:
all_files = manifest.read()
for f in all_files.splitlines():
if ((not (os.path.islink(f) or os.path.isdir(f))) and
not os.path.basename(f) in excluded_files):
dep_files.append(os.path.basename(f))
return dep_files
python do_populate_lic() {
"""
Populate LICENSE_DIRECTORY with licenses.
@@ -340,6 +62,9 @@ def add_package_and_files(d):
# first in PACKAGES to be sure that nothing else gets LICENSE_FILES_DIRECTORY
d.setVar('PACKAGES', "%s %s" % (pn_lic, packages))
d.setVar('FILES_' + pn_lic, files)
for pn in packages.split():
if pn == pn_lic:
continue
rrecommends_pn = d.getVar('RRECOMMENDS_' + pn)
if rrecommends_pn:
d.setVar('RRECOMMENDS_' + pn, "%s %s" % (pn_lic, rrecommends_pn))
@@ -672,11 +397,7 @@ SSTATETASKS += "do_populate_lic"
do_populate_lic[sstate-inputdirs] = "${LICSSTATEDIR}"
do_populate_lic[sstate-outputdirs] = "${LICENSE_DIRECTORY}/"
ROOTFS_POSTPROCESS_COMMAND_prepend = "write_package_manifest; license_create_manifest; "
do_rootfs[recrdeptask] += "do_populate_lic"
IMAGE_POSTPROCESS_COMMAND_prepend = "write_deploy_manifest; "
do_image[recrdeptask] += "do_populate_lic"
IMAGE_CLASSES_append = " license_image"
python do_populate_lic_setscene () {
sstate_setscene(d)

View File

@@ -0,0 +1,238 @@
python write_package_manifest() {
# Get list of installed packages
license_image_dir = d.expand('${LICENSE_DIRECTORY}/${IMAGE_NAME}')
bb.utils.mkdirhier(license_image_dir)
from oe.rootfs import image_list_installed_packages
from oe.utils import format_pkg_list
pkgs = image_list_installed_packages(d)
output = format_pkg_list(pkgs)
open(os.path.join(license_image_dir, 'package.manifest'),
'w+').write(output)
}
python license_create_manifest() {
import oe.packagedata
from oe.rootfs import image_list_installed_packages
build_images_from_feeds = d.getVar('BUILD_IMAGES_FROM_FEEDS')
if build_images_from_feeds == "1":
return 0
pkg_dic = {}
for pkg in sorted(image_list_installed_packages(d)):
pkg_info = os.path.join(d.getVar('PKGDATA_DIR'),
'runtime-reverse', pkg)
pkg_name = os.path.basename(os.readlink(pkg_info))
pkg_dic[pkg_name] = oe.packagedata.read_pkgdatafile(pkg_info)
if not "LICENSE" in pkg_dic[pkg_name].keys():
pkg_lic_name = "LICENSE_" + pkg_name
pkg_dic[pkg_name]["LICENSE"] = pkg_dic[pkg_name][pkg_lic_name]
rootfs_license_manifest = os.path.join(d.getVar('LICENSE_DIRECTORY'),
d.getVar('IMAGE_NAME'), 'license.manifest')
write_license_files(d, rootfs_license_manifest, pkg_dic)
}
def write_license_files(d, license_manifest, pkg_dic):
import re
bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE") or "").split()
bad_licenses = map(lambda l: canonical_license(d, l), bad_licenses)
bad_licenses = expand_wildcard_licenses(d, bad_licenses)
with open(license_manifest, "w") as license_file:
for pkg in sorted(pkg_dic):
if bad_licenses:
try:
(pkg_dic[pkg]["LICENSE"], pkg_dic[pkg]["LICENSES"]) = \
oe.license.manifest_licenses(pkg_dic[pkg]["LICENSE"],
bad_licenses, canonical_license, d)
except oe.license.LicenseError as exc:
bb.fatal('%s: %s' % (d.getVar('P'), exc))
else:
pkg_dic[pkg]["LICENSES"] = re.sub('[|&()*]', ' ', pkg_dic[pkg]["LICENSE"])
pkg_dic[pkg]["LICENSES"] = re.sub(' *', ' ', pkg_dic[pkg]["LICENSES"])
pkg_dic[pkg]["LICENSES"] = pkg_dic[pkg]["LICENSES"].split()
if not "IMAGE_MANIFEST" in pkg_dic[pkg]:
# Rootfs manifest
license_file.write("PACKAGE NAME: %s\n" % pkg)
license_file.write("PACKAGE VERSION: %s\n" % pkg_dic[pkg]["PV"])
license_file.write("RECIPE NAME: %s\n" % pkg_dic[pkg]["PN"])
license_file.write("LICENSE: %s\n\n" % pkg_dic[pkg]["LICENSE"])
# If the package doesn't contain any file, that is, its size is 0, the license
# isn't relevant as far as the final image is concerned. So doing license check
# doesn't make much sense, skip it.
if pkg_dic[pkg]["PKGSIZE_%s" % pkg] == "0":
continue
else:
# Image manifest
license_file.write("RECIPE NAME: %s\n" % pkg_dic[pkg]["PN"])
license_file.write("VERSION: %s\n" % pkg_dic[pkg]["PV"])
license_file.write("LICENSE: %s\n" % pkg_dic[pkg]["LICENSE"])
license_file.write("FILES: %s\n\n" % pkg_dic[pkg]["FILES"])
for lic in pkg_dic[pkg]["LICENSES"]:
lic_file = os.path.join(d.getVar('LICENSE_DIRECTORY'),
pkg_dic[pkg]["PN"], "generic_%s" %
re.sub('\+', '', lic))
# add explicity avoid of CLOSED license because isn't generic
if lic == "CLOSED":
continue
if not os.path.exists(lic_file):
bb.warn("The license listed %s was not in the "\
"licenses collected for recipe %s"
% (lic, pkg_dic[pkg]["PN"]))
# Two options here:
# - Just copy the manifest
# - Copy the manifest and the license directories
# With both options set we see a .5 M increase in core-image-minimal
copy_lic_manifest = d.getVar('COPY_LIC_MANIFEST')
copy_lic_dirs = d.getVar('COPY_LIC_DIRS')
if copy_lic_manifest == "1":
rootfs_license_dir = os.path.join(d.getVar('IMAGE_ROOTFS'),
'usr', 'share', 'common-licenses')
bb.utils.mkdirhier(rootfs_license_dir)
rootfs_license_manifest = os.path.join(rootfs_license_dir,
os.path.split(license_manifest)[1])
if not os.path.exists(rootfs_license_manifest):
os.link(license_manifest, rootfs_license_manifest)
if copy_lic_dirs == "1":
for pkg in sorted(pkg_dic):
pkg_rootfs_license_dir = os.path.join(rootfs_license_dir, pkg)
bb.utils.mkdirhier(pkg_rootfs_license_dir)
pkg_license_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
pkg_dic[pkg]["PN"])
pkg_manifest_licenses = [canonical_license(d, lic) \
for lic in pkg_dic[pkg]["LICENSES"]]
licenses = os.listdir(pkg_license_dir)
for lic in licenses:
rootfs_license = os.path.join(rootfs_license_dir, lic)
pkg_license = os.path.join(pkg_license_dir, lic)
pkg_rootfs_license = os.path.join(pkg_rootfs_license_dir, lic)
if re.match("^generic_.*$", lic):
generic_lic = canonical_license(d,
re.search("^generic_(.*)$", lic).group(1))
# Do not copy generic license into package if isn't
# declared into LICENSES of the package.
if not re.sub('\+$', '', generic_lic) in \
[re.sub('\+', '', lic) for lic in \
pkg_manifest_licenses]:
continue
if oe.license.license_ok(generic_lic,
bad_licenses) == False:
continue
if not os.path.exists(rootfs_license):
os.link(pkg_license, rootfs_license)
if not os.path.exists(pkg_rootfs_license):
os.symlink(os.path.join('..', lic), pkg_rootfs_license)
else:
if (oe.license.license_ok(canonical_license(d,
lic), bad_licenses) == False or
os.path.exists(pkg_rootfs_license)):
continue
os.link(pkg_license, pkg_rootfs_license)
def license_deployed_manifest(d):
"""
Write the license manifest for the deployed recipes.
The deployed recipes usually includes the bootloader
and extra files to boot the target.
"""
dep_dic = {}
man_dic = {}
lic_dir = d.getVar("LICENSE_DIRECTORY")
dep_dic = get_deployed_dependencies(d)
for dep in dep_dic.keys():
man_dic[dep] = {}
# It is necessary to mark this will be used for image manifest
man_dic[dep]["IMAGE_MANIFEST"] = True
man_dic[dep]["PN"] = dep
man_dic[dep]["FILES"] = \
" ".join(get_deployed_files(dep_dic[dep]))
with open(os.path.join(lic_dir, dep, "recipeinfo"), "r") as f:
for line in f.readlines():
key,val = line.split(": ", 1)
man_dic[dep][key] = val[:-1]
lic_manifest_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
d.getVar('IMAGE_NAME'))
bb.utils.mkdirhier(lic_manifest_dir)
image_license_manifest = os.path.join(lic_manifest_dir, 'image_license.manifest')
write_license_files(d, image_license_manifest, man_dic)
def get_deployed_dependencies(d):
"""
Get all the deployed dependencies of an image
"""
deploy = {}
# Get all the dependencies for the current task (rootfs).
# Also get EXTRA_IMAGEDEPENDS because the bootloader is
# usually in this var and not listed in rootfs.
# At last, get the dependencies from boot classes because
# it might contain the bootloader.
taskdata = d.getVar("BB_TASKDEPDATA", False)
depends = list(set([dep[0] for dep
in list(taskdata.values())
if not dep[0].endswith("-native")]))
# To verify what was deployed it checks the rootfs dependencies against
# the SSTATE_MANIFESTS for "deploy" task.
# The manifest file name contains the arch. Because we are not running
# in the recipe context it is necessary to check every arch used.
sstate_manifest_dir = d.getVar("SSTATE_MANIFESTS")
archs = list(set(d.getVar("SSTATE_ARCHS").split()))
for dep in depends:
for arch in archs:
sstate_manifest_file = os.path.join(sstate_manifest_dir,
"manifest-%s-%s.deploy" % (arch, dep))
if os.path.exists(sstate_manifest_file):
deploy[dep] = sstate_manifest_file
break
return deploy
get_deployed_dependencies[vardepsexclude] = "BB_TASKDEPDATA"
def get_deployed_files(man_file):
"""
Get the files deployed from the sstate manifest
"""
dep_files = []
excluded_files = []
with open(man_file, "r") as manifest:
all_files = manifest.read()
for f in all_files.splitlines():
if ((not (os.path.islink(f) or os.path.isdir(f))) and
not os.path.basename(f) in excluded_files):
dep_files.append(os.path.basename(f))
return dep_files
ROOTFS_POSTPROCESS_COMMAND_prepend = "write_package_manifest; license_create_manifest; "
do_rootfs[recrdeptask] += "do_populate_lic"
python do_populate_lic_deploy() {
license_deployed_manifest(d)
}
addtask populate_lic_deploy before do_build after do_image_complete
do_populate_lic_deploy[recrdeptask] += "do_populate_lic do_deploy"

View File

@@ -3,3 +3,35 @@
# tends to pull in the entire XML stack and other tools, so it's not enabled
# by default.
PACKAGECONFIG_append_class-target = " ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'manpages', '', d)}"
inherit qemu
# usually manual files are packaged to ${PN}-doc except man-pages
MAN_PKG ?= "${PN}-doc"
# only add man-db to RDEPENDS when manual files are built and installed
RDEPENDS_${MAN_PKG} += "${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'man-db', '', d)}"
pkg_postinst_append_${MAN_PKG} () {
# only update manual page index caches when manual files are built and installed
if ${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'true', 'false', d)}; then
if test -n "$D"; then
if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true','false', d)}; then
sed "s:\(\s\)/:\1$D/:g" $D${sysconfdir}/man_db.conf | ${@qemu_run_binary(d, '$D', '${bindir}/mandb')} -C - -u -q $D${mandir}
mkdir -p $D${localstatedir}/cache/man
mv $D${mandir}/index.db $D${localstatedir}/cache/man
else
$INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
fi
else
mandb -q
fi
fi
}
pkg_postrm_append_${MAN_PKG} () {
# only update manual page index caches when manual files are built and installed
if ${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'true', 'false', d)}; then
mandb -q
fi
}

View File

@@ -35,14 +35,29 @@ MESON_LINK_ARGS = "${MESON_TOOLCHAIN_ARGS} ${LDFLAGS}"
MESON_HOST_ENDIAN = "bogus-endian"
MESON_TARGET_ENDIAN = "bogus-endian"
EXTRA_OEMESON += "${PACKAGECONFIG_CONFARGS}"
EXTRA_OEMESON_append = " ${PACKAGECONFIG_CONFARGS}"
MESON_CROSS_FILE = ""
MESON_CROSS_FILE_class-target = "--cross-file ${WORKDIR}/meson.cross"
MESON_CROSS_FILE_class-nativesdk = "--cross-file ${WORKDIR}/meson.cross"
def meson_array(var, d):
return "', '".join(d.getVar(var).split()).join(("'", "'"))
items = d.getVar(var).split()
return repr(items[0] if len(items) == 1 else items)
# Map our ARCH values to what Meson expects:
# http://mesonbuild.com/Reference-tables.html#cpu-families
def meson_cpu_family(var, d):
import re
arch = d.getVar(var)
if arch == 'powerpc':
return 'ppc'
elif arch == 'mipsel':
return 'mips'
elif re.match(r"i[3-6]86", arch):
return "x86"
else:
return arch
addtask write_config before do_configure
do_write_config[vardeps] += "MESON_C_ARGS MESON_CPP_ARGS MESON_LINK_ARGS CC CXX LD AR NM STRIP READELF"
@@ -50,32 +65,32 @@ do_write_config() {
# This needs to be Py to split the args into single-element lists
cat >${WORKDIR}/meson.cross <<EOF
[binaries]
c = [${@meson_array('CC', d)}]
cpp = [${@meson_array('CXX', d)}]
ar = [${@meson_array('AR', d)}]
nm = [${@meson_array('NM', d)}]
ld = [${@meson_array('LD', d)}]
strip = [${@meson_array('STRIP', d)}]
readelf = [${@meson_array('READELF', d)}]
c = ${@meson_array('CC', d)}
cpp = ${@meson_array('CXX', d)}
ar = ${@meson_array('AR', d)}
nm = ${@meson_array('NM', d)}
ld = ${@meson_array('LD', d)}
strip = ${@meson_array('STRIP', d)}
readelf = ${@meson_array('READELF', d)}
pkgconfig = 'pkg-config'
[properties]
needs_exe_wrapper = true
c_args = [${@meson_array('MESON_C_ARGS', d)}]
c_link_args = [${@meson_array('MESON_LINK_ARGS', d)}]
cpp_args = [${@meson_array('MESON_CPP_ARGS', d)}]
cpp_link_args = [${@meson_array('MESON_LINK_ARGS', d)}]
c_args = ${@meson_array('MESON_C_ARGS', d)}
c_link_args = ${@meson_array('MESON_LINK_ARGS', d)}
cpp_args = ${@meson_array('MESON_CPP_ARGS', d)}
cpp_link_args = ${@meson_array('MESON_LINK_ARGS', d)}
gtkdoc_exe_wrapper = '${B}/gtkdoc-qemuwrapper'
[host_machine]
system = '${HOST_OS}'
cpu_family = '${HOST_ARCH}'
cpu_family = '${@meson_cpu_family('HOST_ARCH', d)}'
cpu = '${HOST_ARCH}'
endian = '${MESON_HOST_ENDIAN}'
[target_machine]
system = '${TARGET_OS}'
cpu_family = '${TARGET_ARCH}'
cpu_family = '${@meson_cpu_family('TARGET_ARCH', d)}'
cpu = '${TARGET_ARCH}'
endian = '${MESON_TARGET_ENDIAN}'
EOF
@@ -84,6 +99,7 @@ EOF
CONFIGURE_FILES = "meson.build"
meson_do_configure() {
bbnote Executing meson ${EXTRA_OEMESON}...
if ! meson ${MESONOPTS} "${MESON_SOURCEPATH}" "${B}" ${MESON_CROSS_FILE} ${EXTRA_OEMESON}; then
cat ${B}/meson-logs/meson-log.txt
bbfatal_log meson failed
@@ -117,11 +133,11 @@ meson_do_configure_prepend_class-native() {
do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+"
meson_do_compile() {
ninja ${PARALLEL_MAKE}
ninja -v ${PARALLEL_MAKE}
}
meson_do_install() {
DESTDIR='${D}' ninja ${PARALLEL_MAKEINST} install
DESTDIR='${D}' ninja -v ${PARALLEL_MAKEINST} install
}
EXPORT_FUNCTIONS do_configure do_compile do_install

View File

@@ -1,4 +1,5 @@
MIRRORS += "\
${DEBIAN_MIRROR} http://snapshot.debian.org/archive/debian/20180310T215105Z/pool \n \
${DEBIAN_MIRROR} http://snapshot.debian.org/archive/debian-archive/20120328T092752Z/debian/pool \n \
${DEBIAN_MIRROR} http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool \n \
${DEBIAN_MIRROR} http://snapshot.debian.org/archive/debian-archive/20090802T004153Z/debian/pool \n \

View File

@@ -35,6 +35,10 @@ python multilib_virtclass_handler () {
return
if bb.data.inherits_class('cross-canadian', e.data):
# Multilib cross-candian should use the same nativesdk sysroot without MLPREFIX
e.data.setVar("RECIPE_SYSROOT", "${WORKDIR}/recipe-sysroot")
e.data.setVar("STAGING_DIR_TARGET", "${WORKDIR}/recipe-sysroot")
e.data.setVar("STAGING_DIR_HOST", "${WORKDIR}/recipe-sysroot")
e.data.setVar("MLPREFIX", variant + "-")
override = ":virtclass-multilib-" + variant
e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override)
@@ -115,6 +119,7 @@ python __anonymous () {
clsextend.map_variable("INITSCRIPT_PACKAGES")
clsextend.map_variable("USERADD_PACKAGES")
clsextend.map_variable("SYSTEMD_PACKAGES")
clsextend.map_variable("UPDATERCPN")
}
PACKAGEFUNCS_append = " do_package_qa_multilib"

View File

@@ -345,8 +345,16 @@ def parse_debugsources_from_dwarfsrcfiles_output(dwarfsrcfiles_output):
return debugfiles.keys()
def append_source_info(file, sourcefile, d, fatal=True):
cmd = "'dwarfsrcfiles' '%s'" % (file)
(retval, output) = oe.utils.getstatusoutput(cmd)
import subprocess
cmd = ["dwarfsrcfiles", file]
try:
output = subprocess.check_output(cmd, universal_newlines=True, stderr=subprocess.STDOUT)
retval = 0
except subprocess.CalledProcessError as exc:
output = exc.output
retval = exc.returncode
# 255 means a specific file wasn't fully parsed to get the debug file list, which is not a fatal failure
if retval != 0 and retval != 255:
msg = "dwarfsrcfiles failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")
@@ -359,10 +367,12 @@ def append_source_info(file, sourcefile, d, fatal=True):
# of rpm's debugedit, which was writing them out that way, and the code elsewhere
# is still assuming that.
debuglistoutput = '\0'.join(debugsources) + '\0'
lf = bb.utils.lockfile(sourcefile + ".lock")
open(sourcefile, 'a').write(debuglistoutput)
bb.utils.unlockfile(lf)
def splitdebuginfo(file, debugfile, debugsrcdir, sourcefile, d):
def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, sourcefile, d):
# Function to split a single file into two components, one is the stripped
# target system binary, the other contains any debugging information. The
# two files are linked to reference each other.
@@ -371,6 +381,15 @@ def splitdebuginfo(file, debugfile, debugsrcdir, sourcefile, d):
import stat
src = file[len(dvar):]
dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend
debugfile = dvar + dest
# Split the file...
bb.utils.mkdirhier(os.path.dirname(debugfile))
#bb.note("Split %s -> %s" % (file, debugfile))
# Only store off the hard link reference if we successfully split!
dvar = d.getVar('PKGD')
objcopy = d.getVar("OBJCOPY")
@@ -411,6 +430,7 @@ def copydebugsources(debugsrcdir, d):
# and copied to the destination here.
import stat
import subprocess
sourcefile = d.expand("${WORKDIR}/debugsources.list")
if debugsrcdir and os.path.isfile(sourcefile):
@@ -447,23 +467,20 @@ def copydebugsources(debugsrcdir, d):
processdebugsrc += "(cd '%s' ; cpio -pd0mlL --no-preserve-owner '%s%s' 2>/dev/null)"
cmd = processdebugsrc % (sourcefile, workbasedir, localsrc_prefix, workparentdir, dvar, debugsrcdir)
(retval, output) = oe.utils.getstatusoutput(cmd)
# Can "fail" if internal headers/transient sources are attempted
#if retval:
# bb.fatal("debug source copy failed with exit code %s (cmd was %s)" % (retval, cmd))
try:
subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
except subprocess.CalledProcessError:
# Can "fail" if internal headers/transient sources are attempted
pass
# cpio seems to have a bug with -lL together and symbolic links are just copied, not dereferenced.
# Work around this by manually finding and copying any symbolic links that made it through.
cmd = "find %s%s -type l -print0 -delete | sed s#%s%s/##g | (cd '%s' ; cpio -pd0mL --no-preserve-owner '%s%s' 2>/dev/null)" % (dvar, debugsrcdir, dvar, debugsrcdir, workparentdir, dvar, debugsrcdir)
(retval, output) = oe.utils.getstatusoutput(cmd)
if retval:
bb.fatal("debugsrc symlink fixup failed with exit code %s (cmd was %s)" % (retval, cmd))
subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
# The copy by cpio may have resulted in some empty directories! Remove these
cmd = "find %s%s -empty -type d -delete" % (dvar, debugsrcdir)
(retval, output) = oe.utils.getstatusoutput(cmd)
if retval:
bb.fatal("empty directory removal failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else ""))
subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
# Also remove debugsrcdir if its empty
for p in nosuchdir[::-1]:
@@ -624,6 +641,8 @@ python package_do_split_locales() {
}
python perform_packagecopy () {
import subprocess
dest = d.getVar('D')
dvar = d.getVar('PKGD')
@@ -631,9 +650,7 @@ python perform_packagecopy () {
# files to operate on
# Preserve sparse files and hard links
cmd = 'tar -cf - -C %s -p . | tar -xf - -C %s' % (dest, dvar)
(retval, output) = oe.utils.getstatusoutput(cmd)
if retval:
bb.fatal("file copy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else ""))
subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
# replace RPATHs for the nativesdk binaries, to make them relocatable
if bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('cross-canadian', d):
@@ -880,6 +897,7 @@ python fixup_perms () {
python split_and_strip_files () {
import stat, errno
import subprocess
dvar = d.getVar('PKGD')
pn = d.getVar('PN')
@@ -916,43 +934,6 @@ python split_and_strip_files () {
sourcefile = d.expand("${WORKDIR}/debugsources.list")
bb.utils.remove(sourcefile)
# Return type (bits):
# 0 - not elf
# 1 - ELF
# 2 - stripped
# 4 - executable
# 8 - shared library
# 16 - kernel module
def isELF(path):
type = 0
ret, result = oe.utils.getstatusoutput("file -b '%s'" % path)
if ret:
msg = "split_and_strip_files: 'file %s' failed" % path
package_qa_handle_error("split-strip", msg, d)
return type
# Not stripped
if "ELF" in result:
type |= 1
if "not stripped" not in result:
type |= 2
if "executable" in result:
type |= 4
if "shared" in result:
type |= 8
return type
def isStaticLib(path):
if path.endswith('.a') and not os.path.islink(path):
with open(path, 'rb') as fh:
# The magic must include the first slash to avoid
# matching golang static libraries
magic = b'!<arch>\x0a/'
start = fh.read(len(magic))
return start == magic
return False
#
# First lets figure out all of the files we may have to process ... do this only once!
#
@@ -966,13 +947,15 @@ python split_and_strip_files () {
skipfiles = (d.getVar("INHIBIT_PACKAGE_STRIP_FILES") or "").split()
if (d.getVar('INHIBIT_PACKAGE_STRIP') != '1' or \
d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT') != '1'):
checkelf = {}
checkelflinks = {}
for root, dirs, files in cpath.walk(dvar):
for f in files:
file = os.path.join(root, f)
if file.endswith(".ko") and file.find("/lib/modules/") != -1:
kernmods.append(file)
continue
if isStaticLib(file):
if oe.package.is_static_lib(file):
staticlibs.append(file)
continue
@@ -999,59 +982,63 @@ python split_and_strip_files () {
# Check its an executable
if (s[stat.ST_MODE] & stat.S_IXUSR) or (s[stat.ST_MODE] & stat.S_IXGRP) or (s[stat.ST_MODE] & stat.S_IXOTH) \
or ((file.startswith(libdir) or file.startswith(baselibdir)) and (".so" in f or ".node" in f)):
# If it's a symlink, and points to an ELF file, we capture the readlink target
if cpath.islink(file):
target = os.readlink(file)
if isELF(ltarget):
#bb.note("Sym: %s (%d)" % (ltarget, isELF(ltarget)))
symlinks[file] = target
checkelflinks[file] = ltarget
continue
# Use a reference of device ID and inode number to identify files
file_reference = "%d_%d" % (s.st_dev, s.st_ino)
checkelf[file] = (file, file_reference)
# It's a file (or hardlink), not a link
# ...but is it ELF, and is it already stripped?
elf_file = isELF(file)
if elf_file & 1:
if elf_file & 2:
if 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn) or "").split():
bb.note("Skipping file %s from %s for already-stripped QA test" % (file[len(dvar):], pn))
else:
msg = "File '%s' from %s was already stripped, this will prevent future debugging!" % (file[len(dvar):], pn)
package_qa_handle_error("already-stripped", msg, d)
continue
results = oe.utils.multiprocess_launch(oe.package.is_elf, checkelflinks.values(), d)
results_map = {}
for (ltarget, elf_file) in results:
results_map[ltarget] = elf_file
for file in checkelflinks:
ltarget = checkelflinks[file]
# If it's a symlink, and points to an ELF file, we capture the readlink target
if results_map[ltarget]:
target = os.readlink(file)
#bb.note("Sym: %s (%d)" % (ltarget, results_map[ltarget]))
symlinks[file] = target
# At this point we have an unstripped elf file. We need to:
# a) Make sure any file we strip is not hardlinked to anything else outside this tree
# b) Only strip any hardlinked file once (no races)
# c) Track any hardlinks between files so that we can reconstruct matching debug file hardlinks
results = oe.utils.multiprocess_launch(oe.package.is_elf, checkelf.keys(), d)
for (file, elf_file) in results:
# It's a file (or hardlink), not a link
# ...but is it ELF, and is it already stripped?
if elf_file & 1:
if elf_file & 2:
if 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn) or "").split():
bb.note("Skipping file %s from %s for already-stripped QA test" % (file[len(dvar):], pn))
else:
msg = "File '%s' from %s was already stripped, this will prevent future debugging!" % (file[len(dvar):], pn)
package_qa_handle_error("already-stripped", msg, d)
continue
# Use a reference of device ID and inode number to identify files
file_reference = "%d_%d" % (s.st_dev, s.st_ino)
if file_reference in inodes:
os.unlink(file)
os.link(inodes[file_reference][0], file)
inodes[file_reference].append(file)
else:
inodes[file_reference] = [file]
# break hardlink
bb.utils.copyfile(file, file)
elffiles[file] = elf_file
# Modified the file so clear the cache
cpath.updatecache(file)
# At this point we have an unstripped elf file. We need to:
# a) Make sure any file we strip is not hardlinked to anything else outside this tree
# b) Only strip any hardlinked file once (no races)
# c) Track any hardlinks between files so that we can reconstruct matching debug file hardlinks
# Use a reference of device ID and inode number to identify files
file_reference = checkelf[file]
if file_reference in inodes:
os.unlink(file)
os.link(inodes[file_reference][0], file)
inodes[file_reference].append(file)
else:
inodes[file_reference] = [file]
# break hardlink
bb.utils.copyfile(file, file)
elffiles[file] = elf_file
# Modified the file so clear the cache
cpath.updatecache(file)
#
# First lets process debug splitting
#
if (d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT') != '1'):
for file in elffiles:
src = file[len(dvar):]
dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend
fpath = dvar + dest
# Split the file...
bb.utils.mkdirhier(os.path.dirname(fpath))
#bb.note("Split %s -> %s" % (file, fpath))
# Only store off the hard link reference if we successfully split!
splitdebuginfo(file, fpath, debugsrcdir, sourcefile, d)
oe.utils.multiprocess_launch(splitdebuginfo, list(elffiles), d, extraargs=(dvar, debugdir, debuglibdir, debugappend, debugsrcdir, sourcefile, d))
if debugsrcdir and not targetos.startswith("mingw"):
for file in staticlibs:
@@ -1118,7 +1105,7 @@ python split_and_strip_files () {
for f in kernmods:
sfiles.append((f, 16, strip))
oe.utils.multiprocess_exec(sfiles, oe.package.runstrip)
oe.utils.multiprocess_launch(oe.package.runstrip, sfiles, d)
#
# End of strip
@@ -1411,9 +1398,6 @@ fi
pkgdest = d.getVar('PKGDEST')
pkgdatadir = d.getVar('PKGDESTWORK')
# Take shared lock since we're only reading, not writing
lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"), True)
data_file = pkgdatadir + d.expand("/${PN}" )
f = open(data_file, 'w')
f.write("PACKAGES: %s\n" % packages)
@@ -1518,7 +1502,6 @@ fi
if bb.data.inherits_class('allarch', d) and not bb.data.inherits_class('packagegroup', d):
write_extra_runtime_pkgs(global_variants, packages, pkgdatadir)
bb.utils.unlockfile(lf)
}
emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime ${PKGDESTWORK}/runtime-reverse ${PKGDESTWORK}/runtime-rprovides"
@@ -1558,7 +1541,7 @@ python package_do_filedeps() {
for files in chunks(pkgfiles[pkg], 100):
pkglist.append((pkg, files, rpmdeps, pkgdest))
processed = oe.utils.multiprocess_exec( pkglist, oe.package.filedeprunner)
processed = oe.utils.multiprocess_launch(oe.package.filedeprunner, pkglist, d)
provides_files = {}
requires_files = {}
@@ -1592,7 +1575,7 @@ SHLIBSWORKDIR = "${PKGDESTWORK}/${MLPREFIX}shlibs2"
python package_do_shlibs() {
import re, pipes
import subprocess as sub
import subprocess
exclude_shlibs = d.getVar('EXCLUDE_FROM_SHLIBS', False)
if exclude_shlibs:
@@ -1603,6 +1586,18 @@ python package_do_shlibs() {
libdir_re = re.compile(".*/%s$" % d.getVar('baselib'))
packages = d.getVar('PACKAGES')
shlib_pkgs = []
exclusion_list = d.getVar("EXCLUDE_PACKAGES_FROM_SHLIBS")
if exclusion_list:
for pkg in packages.split():
if pkg not in exclusion_list.split():
shlib_pkgs.append(pkg)
else:
bb.note("not generating shlibs for %s" % pkg)
else:
shlib_pkgs = packages.split()
targetos = d.getVar('TARGET_OS')
workdir = d.getVar('WORKDIR')
@@ -1617,28 +1612,28 @@ python package_do_shlibs() {
shlibswork_dir = d.getVar('SHLIBSWORKDIR')
# Take shared lock since we're only reading, not writing
lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"), True)
def linux_so(file, needed, sonames, renames, pkgver):
def linux_so(file, pkg, pkgver, d):
needs_ldconfig = False
needed = set()
sonames = set()
renames = []
ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '')
cmd = d.getVar('OBJDUMP') + " -p " + pipes.quote(file) + " 2>/dev/null"
fd = os.popen(cmd)
lines = fd.readlines()
fd.close()
rpath = []
rpath = tuple()
for l in lines:
m = re.match("\s+RPATH\s+([^\s]*)", l)
if m:
rpaths = m.group(1).replace("$ORIGIN", ldir).split(":")
rpath = list(map(os.path.normpath, rpaths))
rpath = tuple(map(os.path.normpath, rpaths))
for l in lines:
m = re.match("\s+NEEDED\s+([^\s]*)", l)
if m:
dep = m.group(1)
if dep not in needed[pkg]:
needed[pkg].append((dep, file, rpath))
if dep not in needed:
needed.add((dep, file, rpath))
m = re.match("\s+SONAME\s+([^\s]*)", l)
if m:
this_soname = m.group(1)
@@ -1646,12 +1641,12 @@ python package_do_shlibs() {
if not prov in sonames:
# if library is private (only used by package) then do not build shlib for it
if not private_libs or this_soname not in private_libs:
sonames.append(prov)
sonames.add(prov)
if libdir_re.match(os.path.dirname(file)):
needs_ldconfig = True
if snap_symlinks and (os.path.basename(file) != this_soname):
renames.append((file, os.path.join(os.path.dirname(file), this_soname)))
return needs_ldconfig
return (needs_ldconfig, needed, sonames, renames)
def darwin_so(file, needed, sonames, renames, pkgver):
if not os.path.exists(file):
@@ -1679,10 +1674,10 @@ python package_do_shlibs() {
for combo in combos:
if not combo in sonames:
prov = (combo, ldir, pkgver)
sonames.append(prov)
sonames.add(prov)
if file.endswith('.dylib') or file.endswith('.so'):
rpath = []
p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-l', file],stdout=sub.PIPE,stderr=sub.PIPE)
p = subprocess.Popen([d.expand("${HOST_PREFIX}otool"), '-l', file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
# If returned successfully, process stdout for results
if p.returncode == 0:
@@ -1691,7 +1686,7 @@ python package_do_shlibs() {
if l.startswith('path '):
rpath.append(l.split()[1])
p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', file],stdout=sub.PIPE,stderr=sub.PIPE)
p = subprocess.Popen([d.expand("${HOST_PREFIX}otool"), '-L', file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
# If returned successfully, process stdout for results
if p.returncode == 0:
@@ -1703,7 +1698,7 @@ python package_do_shlibs() {
continue
name = os.path.basename(l.split()[0]).rsplit(".", 1)[0]
if name and name not in needed[pkg]:
needed[pkg].append((name, file, []))
needed[pkg].add((name, file, tuple()))
def mingw_dll(file, needed, sonames, renames, pkgver):
if not os.path.exists(file):
@@ -1711,18 +1706,18 @@ python package_do_shlibs() {
if file.endswith(".dll"):
# assume all dlls are shared objects provided by the package
sonames.append((os.path.basename(file), os.path.dirname(file).replace(pkgdest + "/" + pkg, ''), pkgver))
sonames.add((os.path.basename(file), os.path.dirname(file).replace(pkgdest + "/" + pkg, ''), pkgver))
if (file.endswith(".dll") or file.endswith(".exe")):
# use objdump to search for "DLL Name: .*\.dll"
p = sub.Popen([d.expand("${HOST_PREFIX}objdump"), "-p", file], stdout = sub.PIPE, stderr= sub.PIPE)
p = subprocess.Popen([d.expand("${HOST_PREFIX}objdump"), "-p", file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
# process the output, grabbing all .dll names
if p.returncode == 0:
for m in re.finditer("DLL Name: (.*?\.dll)$", out.decode(), re.MULTILINE | re.IGNORECASE):
dllname = m.group(1)
if dllname:
needed[pkg].append((dllname, file, []))
needed[pkg].add((dllname, file, tuple()))
if d.getVar('PACKAGE_SNAP_LIB_SYMLINKS') == "1":
snap_symlinks = True
@@ -1732,9 +1727,13 @@ python package_do_shlibs() {
use_ldconfig = bb.utils.contains('DISTRO_FEATURES', 'ldconfig', True, False, d)
needed = {}
shlib_provider = oe.package.read_shlib_providers(d)
for pkg in packages.split():
# Take shared lock since we're only reading, not writing
lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"), True)
shlib_provider = oe.package.read_shlib_providers(d)
bb.utils.unlockfile(lf)
for pkg in shlib_pkgs:
private_libs = d.getVar('PRIVATE_LIBS_' + pkg) or d.getVar('PRIVATE_LIBS') or ""
private_libs = private_libs.split()
needs_ldconfig = False
@@ -1746,9 +1745,10 @@ python package_do_shlibs() {
if not pkgver:
pkgver = ver
needed[pkg] = []
sonames = list()
renames = list()
needed[pkg] = set()
sonames = set()
renames = []
linuxlist = []
for file in pkgfiles[pkg]:
soname = None
if cpath.islink(file):
@@ -1758,8 +1758,17 @@ python package_do_shlibs() {
elif targetos.startswith("mingw"):
mingw_dll(file, needed, sonames, renames, pkgver)
elif os.access(file, os.X_OK) or lib_re.match(file):
ldconfig = linux_so(file, needed, sonames, renames, pkgver)
needs_ldconfig = needs_ldconfig or ldconfig
linuxlist.append(file)
if linuxlist:
results = oe.utils.multiprocess_launch(linux_so, linuxlist, d, extraargs=(pkg, pkgver, d))
for r in results:
ldconfig = r[0]
needed[pkg] |= r[1]
sonames |= r[2]
renames.extend(r[3])
needs_ldconfig = needs_ldconfig or ldconfig
for (old, new) in renames:
bb.note("Renaming %s to %s" % (old, new))
os.rename(old, new)
@@ -1788,8 +1797,6 @@ python package_do_shlibs() {
d.setVar('pkg_postinst_%s' % pkg, postinst)
bb.debug(1, 'LIBNAMES: pkg %s sonames %s' % (pkg, sonames))
bb.utils.unlockfile(lf)
assumed_libs = d.getVar('ASSUME_SHLIBS')
if assumed_libs:
libdir = d.getVar("libdir")
@@ -1806,7 +1813,7 @@ python package_do_shlibs() {
libsearchpath = [d.getVar('libdir'), d.getVar('base_libdir')]
for pkg in packages.split():
for pkg in shlib_pkgs:
bb.debug(2, "calculating shlib requirements for %s" % pkg)
private_libs = d.getVar('PRIVATE_LIBS_' + pkg) or d.getVar('PRIVATE_LIBS') or ""
@@ -1827,7 +1834,7 @@ python package_do_shlibs() {
for k in shlib_provider[n[0]].keys():
shlib_provider_path.append(k)
match = None
for p in n[2] + shlib_provider_path + libsearchpath:
for p in list(n[2]) + shlib_provider_path + libsearchpath:
if p in shlib_provider[n[0]]:
match = p
break
@@ -1902,9 +1909,6 @@ python package_do_pkgconfig () {
if hdr == 'Requires':
pkgconfig_needed[pkg] += exp.replace(',', ' ').split()
# Take shared lock since we're only reading, not writing
lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"), True)
for pkg in packages.split():
pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist")
if pkgconfig_provided[pkg] != []:
@@ -1913,6 +1917,9 @@ python package_do_pkgconfig () {
f.write('%s\n' % p)
f.close()
# Take shared lock since we're only reading, not writing
lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"), True)
# Go from least to most specific since the last one found wins
for dir in reversed(shlibs_dirs):
if not os.path.exists(dir):
@@ -1928,6 +1935,8 @@ python package_do_pkgconfig () {
for l in lines:
pkgconfig_provided[pkg].append(l.rstrip())
bb.utils.unlockfile(lf)
for pkg in packages.split():
deps = []
for n in pkgconfig_needed[pkg]:
@@ -1945,8 +1954,6 @@ python package_do_pkgconfig () {
for dep in deps:
fd.write(dep + '\n')
fd.close()
bb.utils.unlockfile(lf)
}
def read_libdep_files(d):

View File

@@ -41,32 +41,6 @@ def debian_arch_map(arch, tune):
return arch
python do_package_deb () {
import multiprocessing
import traceback
class DebianWritePkgProcess(multiprocessing.Process):
def __init__(self, *args, **kwargs):
multiprocessing.Process.__init__(self, *args, **kwargs)
self._pconn, self._cconn = multiprocessing.Pipe()
self._exception = None
def run(self):
try:
multiprocessing.Process.run(self)
self._cconn.send(None)
except Exception as e:
tb = traceback.format_exc()
self._cconn.send((e, tb))
@property
def exception(self):
if self._pconn.poll():
self._exception = self._pconn.recv()
return self._exception
oldcwd = os.getcwd()
packages = d.getVar('PACKAGES')
if not packages:
bb.debug(1, "PACKAGES not defined, nothing to package")
@@ -76,30 +50,7 @@ python do_package_deb () {
if os.access(os.path.join(tmpdir, "stamps", "DEB_PACKAGE_INDEX_CLEAN"),os.R_OK):
os.unlink(os.path.join(tmpdir, "stamps", "DEB_PACKAGE_INDEX_CLEAN"))
max_process = int(d.getVar("BB_NUMBER_THREADS") or os.cpu_count() or 1)
launched = []
error = None
pkgs = packages.split()
while not error and pkgs:
if len(launched) < max_process:
p = DebianWritePkgProcess(target=deb_write_pkg, args=(pkgs.pop(), d))
p.start()
launched.append(p)
for q in launched:
# The finished processes are joined when calling is_alive()
if not q.is_alive():
launched.remove(q)
if q.exception:
error, traceback = q.exception
break
for p in launched:
p.join()
os.chdir(oldcwd)
if error:
raise error
oe.utils.multiprocess_launch(deb_write_pkg, packages.split(), d, extraargs=(d,))
}
do_package_deb[vardeps] += "deb_write_pkg"
do_package_deb[vardepsexclude] = "BB_NUMBER_THREADS"

View File

@@ -17,32 +17,6 @@ OPKG_ARGS += "${@['', '--add-exclude ' + ' --add-exclude '.join((d.getVar('PACKA
OPKGLIBDIR = "${localstatedir}/lib"
python do_package_ipk () {
import multiprocessing
import traceback
class IPKWritePkgProcess(multiprocessing.Process):
def __init__(self, *args, **kwargs):
multiprocessing.Process.__init__(self, *args, **kwargs)
self._pconn, self._cconn = multiprocessing.Pipe()
self._exception = None
def run(self):
try:
multiprocessing.Process.run(self)
self._cconn.send(None)
except Exception as e:
tb = traceback.format_exc()
self._cconn.send((e, tb))
@property
def exception(self):
if self._pconn.poll():
self._exception = self._pconn.recv()
return self._exception
oldcwd = os.getcwd()
workdir = d.getVar('WORKDIR')
outdir = d.getVar('PKGWRITEDIRIPK')
tmpdir = d.getVar('TMPDIR')
@@ -61,30 +35,7 @@ python do_package_ipk () {
if os.access(os.path.join(tmpdir, "stamps", "IPK_PACKAGE_INDEX_CLEAN"), os.R_OK):
os.unlink(os.path.join(tmpdir, "stamps", "IPK_PACKAGE_INDEX_CLEAN"))
max_process = int(d.getVar("BB_NUMBER_THREADS") or os.cpu_count() or 1)
launched = []
error = None
pkgs = packages.split()
while not error and pkgs:
if len(launched) < max_process:
p = IPKWritePkgProcess(target=ipk_write_pkg, args=(pkgs.pop(), d))
p.start()
launched.append(p)
for q in launched:
# The finished processes are joined when calling is_alive()
if not q.is_alive():
launched.remove(q)
if q.exception:
error, traceback = q.exception
break
for p in launched:
p.join()
os.chdir(oldcwd)
if error:
raise error
oe.utils.multiprocess_launch(ipk_write_pkg, packages.split(), d, extraargs=(d,))
}
do_package_ipk[vardeps] += "ipk_write_pkg"
do_package_ipk[vardepsexclude] = "BB_NUMBER_THREADS"

View File

@@ -33,7 +33,7 @@ python patch_task_patch_prefunc() {
if (testsrcdir + os.sep).startswith(workdir + os.sep):
# Double-check that either workdir or S or some directory in-between is a git repository
found = False
while testsrcdir != '/':
while testsrcdir != workdir:
if os.path.exists(os.path.join(testsrcdir, '.git')):
found = True
break

View File

@@ -12,7 +12,7 @@ PACKAGE_WRITE_DEPS += "qemu-native gdk-pixbuf-native"
pixbufcache_common() {
if [ "x$D" != "x" ]; then
$INTERCEPT_DIR/postinst_intercept update_pixbuf_cache ${PKG} mlprefix=${MLPREFIX} libdir=${libdir} \
$INTERCEPT_DIR/postinst_intercept update_pixbuf_cache ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} libdir=${libdir} \
bindir=${bindir} base_libdir=${base_libdir}
else

View File

@@ -46,7 +46,8 @@ TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= ""
TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
SDK_DEPENDS = "virtual/fakeroot-native xz-native cross-localedef-native ${MLPREFIX}qemuwrapper-cross"
SDK_DEPENDS = "virtual/fakeroot-native xz-native cross-localedef-native nativesdk-qemuwrapper-cross ${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross"
PATH_prepend = "${STAGING_DIR_HOST}${SDKPATHNATIVE}${bindir}/crossscripts:${@":".join(all_multilib_tune_values(d, 'STAGING_BINDIR_CROSS').split())}:"
SDK_DEPENDS_append_libc-glibc = " nativesdk-glibc-locale"
# We want the MULTIARCH_TARGET_SYS to point to the TUNE_PKGARCH, not PACKAGE_ARCH as it
@@ -62,8 +63,8 @@ SDK_PRE_INSTALL_COMMAND ?= ""
SDK_POST_INSTALL_COMMAND ?= ""
SDK_RELOCATE_AFTER_INSTALL ?= "1"
SDKEXTPATH ?= "~/${@d.getVar('DISTRO')}_sdk"
SDK_TITLE ?= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk"
SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
SDK_TARGET_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
SDK_HOST_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"

View File

@@ -200,15 +200,9 @@ python copy_buildsystem () {
workspace_name = 'orig-workspace'
else:
workspace_name = None
layers_copied = buildsystem.copy_bitbake_and_layers(baseoutpath + '/layers', workspace_name)
sdkbblayers = []
corebase = os.path.basename(d.getVar('COREBASE'))
for layer in layers_copied:
if corebase == os.path.basename(layer):
conf_bbpath = os.path.join('layers', layer, 'bitbake')
else:
sdkbblayers.append(layer)
corebase, sdkbblayers = buildsystem.copy_bitbake_and_layers(baseoutpath + '/layers', workspace_name)
conf_bbpath = os.path.join('layers', corebase, 'bitbake')
for path in os.listdir(baseoutpath + '/layers'):
relpath = os.path.join('layers', path, oe_init_env_script)
@@ -325,8 +319,9 @@ python copy_buildsystem () {
f.write('TCLIBCAPPEND = ""\n')
f.write('DL_DIR = "${TOPDIR}/downloads"\n')
f.write('INHERIT += "%s"\n' % 'uninative')
f.write('UNINATIVE_CHECKSUM[%s] = "%s"\n\n' % (d.getVar('BUILD_ARCH'), uninative_checksum))
if bb.data.inherits_class('uninative', d):
f.write('INHERIT += "%s"\n' % 'uninative')
f.write('UNINATIVE_CHECKSUM[%s] = "%s"\n\n' % (d.getVar('BUILD_ARCH'), uninative_checksum))
f.write('CONF_VERSION = "%s"\n\n' % d.getVar('CONF_VERSION', False))
# Some classes are not suitable for SDK, remove them from INHERIT

View File

@@ -47,59 +47,60 @@ do_rm_work () {
cd `dirname ${STAMP}`
for i in `basename ${STAMP}`*
do
for j in ${SSTATETASKS} do_shared_workdir
do
case $i in
*do_setscene*)
break
;;
*_setscene*)
i=dummy
break
;;
*sigdata*|*sigbasedata*)
i=dummy
break
;;
*do_package_write*)
i=dummy
break
;;
*do_image_complete*)
mv $i `echo $i | sed -e "s#do_image_complete#do_image_complete_setscene#"`
i=dummy
break
;;
*do_rootfs*|*do_image*|*do_bootimg*|*do_write_qemuboot_conf*)
i=dummy
break
;;
*do_build*)
i=dummy
break
;;
*do_addto_recipe_sysroot*)
# Preserve recipe-sysroot-native if do_addto_recipe_sysroot has been used
excludes="$excludes recipe-sysroot-native"
i=dummy
break
;;
# By default we'll delete the stamp, unless $i is changed by the inner loop
# (i=dummy does this)
case $i in
*sigdata*|*sigbasedata*)
# Save/skip anything that looks like a signature data file.
i=dummy
;;
*do_image_complete_setscene*)
# Ensure we don't 'stack' setscene extensions to this stamp with the section below
i=dummy
;;
*do_image_complete*)
# Promote do_image_complete stamps to setscene versions (ahead of *do_image* below)
mv $i `echo $i | sed -e "s#do_image_complete#do_image_complete_setscene#"`
i=dummy
;;
*do_package_write*|*do_rootfs*|*do_image*|*do_bootimg*|*do_write_qemuboot_conf*|*do_build*)
i=dummy
;;
*do_addto_recipe_sysroot*)
# Preserve recipe-sysroot-native if do_addto_recipe_sysroot has been used
excludes="$excludes recipe-sysroot-native"
i=dummy
;;
*do_package|*do_package.*|*do_package_setscene.*)
# We remove do_package entirely, including any
# sstate version since otherwise we'd need to leave 'plaindirs' around
# such as 'packages' and 'packages-split' and these can be large. No end
# of chain tasks depend directly on do_package anymore.
*do_package|*do_package.*|*do_package_setscene.*)
rm -f $i;
i=dummy
rm -f $i;
i=dummy
;;
*_setscene*)
# Skip stamps which are already setscene versions
i=dummy
;;
esac
for j in ${SSTATETASKS} do_shared_workdir
do
case $i in
dummy)
break
;;
*$j|*$j.*)
# Promote the stamp to a setscene version
mv $i `echo $i | sed -e "s#${j}#${j}_setscene#"`
i=dummy
break
;;
;;
esac
done
rm -f $i
done

View File

@@ -2,9 +2,12 @@
# Zap the root password if debug-tweaks feature is not enabled
ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'empty-root-password' ], "", "zap_empty_root_password ; ",d)}'
# Allow dropbear/openssh to accept logins from accounts with an empty password string if debug-tweaks is enabled
# Allow dropbear/openssh to accept logins from accounts with an empty password string if debug-tweaks or allow-empty-password is enabled
ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'allow-empty-password' ], "ssh_allow_empty_password; ", "",d)}'
# Allow dropbear/openssh to accept root logins if debug-tweaks or allow-root-login is enabled
ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'allow-root-login' ], "ssh_allow_root_login; ", "",d)}'
# Enable postinst logging if debug-tweaks is enabled
ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'post-install-logging' ], "postinst_enable_logging; ", "",d)}'
@@ -36,11 +39,6 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "systemd"
ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;'
# Disable DNS lookups, the SSH_DISABLE_DNS_LOOKUP can be overridden to allow
# distros to choose not to take this change
SSH_DISABLE_DNS_LOOKUP ?= " ssh_disable_dns_lookup ; "
ROOTFS_POSTPROCESS_COMMAND_append_qemuall = "${SSH_DISABLE_DNS_LOOKUP}"
# Sort the user and group entries in /etc by ID in order to make the content
# deterministic. Package installs are not deterministic, causing the ordering
# of entries to change between builds. In case that this isn't desired,
@@ -143,12 +141,11 @@ zap_empty_root_password () {
}
#
# allow dropbear/openssh to accept root logins and logins from accounts with an empty password string
# allow dropbear/openssh to accept logins from accounts with an empty password string
#
ssh_allow_empty_password () {
for config in sshd_config sshd_config_readonly; do
if [ -e ${IMAGE_ROOTFS}${sysconfdir}/ssh/$config ]; then
sed -i 's/^[#[:space:]]*PermitRootLogin.*/PermitRootLogin yes/' ${IMAGE_ROOTFS}${sysconfdir}/ssh/$config
sed -i 's/^[#[:space:]]*PermitEmptyPasswords.*/PermitEmptyPasswords yes/' ${IMAGE_ROOTFS}${sysconfdir}/ssh/$config
fi
done
@@ -171,9 +168,20 @@ ssh_allow_empty_password () {
fi
}
ssh_disable_dns_lookup () {
if [ -e ${IMAGE_ROOTFS}${sysconfdir}/ssh/sshd_config ]; then
sed -i -e 's:#UseDNS yes:UseDNS no:' ${IMAGE_ROOTFS}${sysconfdir}/ssh/sshd_config
#
# allow dropbear/openssh to accept root logins
#
ssh_allow_root_login () {
for config in sshd_config sshd_config_readonly; do
if [ -e ${IMAGE_ROOTFS}${sysconfdir}/ssh/$config ]; then
sed -i 's/^[#[:space:]]*PermitRootLogin.*/PermitRootLogin yes/' ${IMAGE_ROOTFS}${sysconfdir}/ssh/$config
fi
done
if [ -e ${IMAGE_ROOTFS}${sbindir}/dropbear ] ; then
if grep -q DROPBEAR_EXTRA_ARGS ${IMAGE_ROOTFS}${sysconfdir}/default/dropbear 2>/dev/null ; then
sed -i '/^DROPBEAR_EXTRA_ARGS=/ s/-w//' ${IMAGE_ROOTFS}${sysconfdir}/default/dropbear
fi
fi
}

View File

@@ -1,6 +1,6 @@
inherit distutils
DEPENDS += "python-distribute-native"
DEPENDS += "python-setuptools-native"
DISTUTILS_INSTALL_ARGS = "--root=${D} \
--prefix=${prefix} \

View File

@@ -202,18 +202,13 @@ def list_files(dir):
return
def hash_file(file_name):
try:
with open(file_name, 'rb') as f:
data_string = f.read()
sha1 = hash_string(data_string)
return sha1
except:
return None
from bb.utils import sha1_file
return sha1_file(file_name)
def hash_string(data):
import hashlib
sha1 = hashlib.sha1()
sha1.update(data)
sha1.update(data.encode('utf-8'))
return sha1.hexdigest()
def run_fossology(foss_command, full_spdx):
@@ -226,7 +221,7 @@ def run_fossology(foss_command, full_spdx):
except subprocess.CalledProcessError as e:
return None
foss_output = string.replace(foss_output, '\r', '')
foss_output = foss_output.replace('\r', '')
# Package info
package_info = {}
@@ -289,7 +284,8 @@ def create_spdx_doc(file_info, scanned_files):
def get_ver_code(dirname):
chksums = []
for f_dir, f in list_files(dirname):
hash = hash_file(os.path.join(dirname, f_dir, f))
path = os.path.join(dirname, f_dir, f)
hash = hash_file(path)
if not hash is None:
chksums.append(hash)
else:

View File

@@ -300,7 +300,7 @@ def sstate_installpkg(ss, d):
sstatepkg = d.getVar('SSTATE_PKG') + '_' + ss['task'] + ".tgz"
if not os.path.exists(sstatepkg):
pstaging_fetch(sstatefetch, sstatepkg, d)
pstaging_fetch(sstatefetch, d)
if not os.path.isfile(sstatepkg):
bb.note("Staging package %s does not exist" % sstatepkg)
@@ -407,7 +407,7 @@ python sstate_hardcode_path_unpack () {
bb.note("Replacing fixme paths in sstate package: %s" % (sstate_hardcode_cmd))
subprocess.check_call(sstate_hardcode_cmd, shell=True)
# Need to remove this or we'd copy it into the target directory and may
# Need to remove this or we'd copy it into the target directory and may
# conflict with another writer
os.remove(fixmefn)
}
@@ -635,7 +635,7 @@ def sstate_package(ss, d):
return
def pstaging_fetch(sstatefetch, sstatepkg, d):
def pstaging_fetch(sstatefetch, d):
import bb.fetch2
# Only try and fetch if the user has configured a mirror
@@ -715,17 +715,24 @@ sstate_task_postfunc[dirs] = "${WORKDIR}"
#
sstate_create_package () {
TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
# Use pigz if available
OPT="-cz"
if [ -x "$(command -v pigz)" ]; then
OPT="-I pigz -c"
fi
# Need to handle empty directories
if [ "$(ls -A)" ]; then
set +e
tar -czf $TFILE *
tar $OPT -f $TFILE *
ret=$?
if [ $ret -ne 0 ] && [ $ret -ne 1 ]; then
exit 1
fi
set -e
else
tar -cz --file=$TFILE --files-from=/dev/null
tar $OPT --file=$TFILE --files-from=/dev/null
fi
chmod 0664 $TFILE
mv -f $TFILE ${SSTATE_PKG}

View File

@@ -70,7 +70,7 @@ sysroot_stage_all() {
python sysroot_strip () {
inhibit_sysroot = d.getVar('INHIBIT_SYSROOT_STRIP')
if inhibit_sysroot and oe.types.boolean(inhibit_sysroot):
return 0
return
dstdir = d.getVar('SYSROOT_DESTDIR')
pn = d.getVar('PN')
@@ -79,7 +79,7 @@ python sysroot_strip () {
qa_already_stripped = 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn) or "").split()
strip_cmd = d.getVar("STRIP")
oe.package.strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir,
oe.package.strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, d,
qa_already_stripped=qa_already_stripped)
}
@@ -383,8 +383,6 @@ python extend_recipe_sysroot() {
lock = bb.utils.lockfile(recipesysroot + "/sysroot.lock")
fixme = {}
fixme[''] = []
fixme['native'] = []
seendirs = set()
postinsts = []
multilibs = {}
@@ -471,7 +469,14 @@ python extend_recipe_sysroot() {
os.symlink(c + "." + taskhash, depdir + "/" + c)
manifest, d2 = oe.sstatesig.find_sstate_manifest(c, setscenedeps[dep][2], "populate_sysroot", d, multilibs)
if d2 is not d:
# If we don't do this, the recipe sysroot will be placed in the wrong WORKDIR for multilibs
# We need a consistent WORKDIR for the image
d2.setVar("WORKDIR", d.getVar("WORKDIR"))
destsysroot = d2.getVar("RECIPE_SYSROOT")
# We put allarch recipes into the default sysroot
if manifest and "allarch" in manifest:
destsysroot = d.getVar("RECIPE_SYSROOT")
native = False
if c.endswith("-native") or "-cross-" in c or "-crosssdk" in c:
@@ -479,12 +484,13 @@ python extend_recipe_sysroot() {
if manifest:
newmanifest = collections.OrderedDict()
targetdir = destsysroot
if native:
fm = fixme['native']
targetdir = recipesysrootnative
else:
fm = fixme['']
targetdir = destsysroot
if targetdir not in fixme:
fixme[targetdir] = []
fm = fixme[targetdir]
with open(manifest, "r") as f:
manifests[dep] = manifest
for l in f:
@@ -542,12 +548,7 @@ python extend_recipe_sysroot() {
bb.note("Skipping as already exists in sysroot: %s" % str(msg_exists))
for f in fixme:
if f == '':
staging_processfixme(fixme[f], recipesysroot, recipesysroot, recipesysrootnative, d)
elif f == 'native':
staging_processfixme(fixme[f], recipesysrootnative, recipesysroot, recipesysrootnative, d)
else:
staging_processfixme(fixme[f], multilibs[f].getVar("RECIPE_SYSROOT"), recipesysroot, recipesysrootnative, d)
staging_processfixme(fixme[f], f, recipesysroot, recipesysrootnative, d)
for p in postinsts:
subprocess.check_output(p, shell=True, stderr=subprocess.STDOUT)

View File

@@ -34,10 +34,10 @@ if type systemctl >/dev/null 2>/dev/null; then
systemctl daemon-reload
fi
systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE}
systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE_ESCAPED}
if [ -z "$D" -a "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then
systemctl --no-block restart ${SYSTEMD_SERVICE}
systemctl --no-block restart ${SYSTEMD_SERVICE_ESCAPED}
fi
fi
}
@@ -51,10 +51,10 @@ fi
if type systemctl >/dev/null 2>/dev/null; then
if [ -z "$D" ]; then
systemctl stop ${SYSTEMD_SERVICE}
systemctl stop ${SYSTEMD_SERVICE_ESCAPED}
fi
systemctl $OPTS disable ${SYSTEMD_SERVICE}
systemctl $OPTS disable ${SYSTEMD_SERVICE_ESCAPED}
fi
}
@@ -65,6 +65,7 @@ systemd_populate_packages[vardepsexclude] += "OVERRIDES"
python systemd_populate_packages() {
import re
import shlex
if not bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d):
return
@@ -85,6 +86,9 @@ python systemd_populate_packages() {
def systemd_generate_package_scripts(pkg):
bb.debug(1, 'adding systemd calls to postinst/postrm for %s' % pkg)
paths_escaped = ' '.join(shlex.quote(s) for s in d.getVar('SYSTEMD_SERVICE_' + pkg, True).split())
d.setVar('SYSTEMD_SERVICE_ESCAPED_' + pkg, paths_escaped)
# Add pkg to the overrides so that it finds the SYSTEMD_SERVICE_pkg
# variable.
localdata = d.createCopy()
@@ -130,7 +134,7 @@ python systemd_populate_packages() {
systemd_add_files_and_parse(pkg_systemd, path, service_base + '@.service', keys)
for key in keys.split():
# recurse all dependencies found in keys ('Also';'Conflicts';..) and add to files
cmd = "grep %s %s | sed 's,%s=,,g' | tr ',' '\\n'" % (key, fullpath, key)
cmd = "grep %s %s | sed 's,%s=,,g' | tr ',' '\\n'" % (key, shlex.quote(fullpath), key)
pipe = os.popen(cmd, 'r')
line = pipe.readline()
while line:

View File

@@ -1,23 +0,0 @@
# Copyright (C) 2013 Intel Corporation
#
# Released under the MIT license (see COPYING.MIT)
# Run tests automatically on an image after the image is constructed
# (as opposed to testimage.bbclass alone where tests must be called
# manually using bitbake -c testimage <image>).
#
# NOTE: to use this class, simply set TEST_IMAGE = "1" - no need to
# inherit it since that will be done in image.bbclass when this variable
# has been set.
#
# See testimage.bbclass for the test implementation.
inherit testimage
python do_testimage_auto() {
testimage_main(d)
}
addtask testimage_auto before do_build after do_image_complete
do_testimage_auto[depends] += "${TESTIMAGEDEPENDS}"
do_testimage_auto[lockfiles] += "${TESTIMAGELOCK}"

View File

@@ -10,6 +10,11 @@
# - first add IMAGE_CLASSES += "testimage" in local.conf
# - build a qemu core-image-sato
# - then bitbake core-image-sato -c testimage. That will run a standard suite of tests.
#
# The tests can be run automatically each time an image is built if you set
# TESTIMAGE_AUTO = "1"
TESTIMAGE_AUTO ??= "0"
# You can set (or append to) TEST_SUITES in local.conf to select the tests
# which you want to run for your target.
@@ -382,4 +387,9 @@ def package_extraction(d, test_suites):
testimage_main[vardepsexclude] += "BB_ORIGENV DATETIME"
python () {
if oe.types.boolean(d.getVar("TESTIMAGE_AUTO") or "False"):
bb.build.addtask("testimage", "do_build", "do_image_complete", d)
}
inherit testsdk

View File

@@ -24,8 +24,6 @@ def testsdk_main(d):
from oeqa.sdk.context import OESDKTestContext, OESDKTestContextExecutor
from oeqa.utils import make_logger_bitbake_compatible
bb.event.enable_threadlock()
pn = d.getVar("PN")
logger = make_logger_bitbake_compatible(logging.getLogger("BitBake"))
@@ -44,6 +42,8 @@ def testsdk_main(d):
host_pkg_manifest = OESDKTestContextExecutor._load_manifest(
d.expand("${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"))
processes = d.getVar("TESTIMAGE_NUMBER_THREADS") or d.getVar("BB_NUMBER_THREADS")
sdk_dir = d.expand("${WORKDIR}/testimage-sdk/")
bb.utils.remove(sdk_dir, True)
bb.utils.mkdirhier(sdk_dir)
@@ -67,7 +67,10 @@ def testsdk_main(d):
import traceback
bb.fatal("Loading tests failed:\n%s" % traceback.format_exc())
result = tc.runTests()
if processes:
result = tc.runTests(processes=int(processes))
else:
result = tc.runTests()
component = "%s %s" % (pn, OESDKTestContextExecutor.name)
context_msg = "%s:%s" % (os.path.basename(tcname), os.path.basename(sdk_env))
@@ -99,8 +102,6 @@ def testsdkext_main(d):
from oeqa.utils import avoid_paths_in_environ, make_logger_bitbake_compatible, subprocesstweak
from oeqa.sdkext.context import OESDKExtTestContext, OESDKExtTestContextExecutor
bb.event.enable_threadlock()
pn = d.getVar("PN")
logger = make_logger_bitbake_compatible(logging.getLogger("BitBake"))
@@ -157,6 +158,7 @@ def testsdkext_main(d):
f.write('SSTATE_MIRRORS += " \\n file://.* file://%s/PATH"\n' % test_data.get('SSTATE_DIR'))
f.write('SOURCE_MIRROR_URL = "file://%s"\n' % test_data.get('DL_DIR'))
f.write('INHERIT += "own-mirrors"\n')
f.write('PREMIRRORS_prepend = " git://git.yoctoproject.org/.* git://%s/git2/git.yoctoproject.org.BASENAME \\n "\n' % test_data.get('DL_DIR'))
# We need to do this in case we have a minimal SDK
subprocess.check_output(". %s > /dev/null; devtool sdk-install meta-extsdk-toolchain" % \
@@ -194,3 +196,8 @@ python do_testsdkext() {
addtask testsdkext
do_testsdkext[nostamp] = "1"
python () {
if oe.types.boolean(d.getVar("TESTIMAGE_AUTO") or "False"):
bb.build.addtask("testsdk", None, "do_populate_sdk", d)
bb.build.addtask("testsdkext", None, "do_populate_sdk_ext", d)
}

View File

@@ -58,7 +58,7 @@
#
# The kernel has an internal default console, which you can override with
# a console=...some_tty...
UBOOT_EXTLINUX_CONSOLE ??= "console=${console}"
UBOOT_EXTLINUX_CONSOLE ??= "console=${console},${baudrate}"
UBOOT_EXTLINUX_LABELS ??= "linux"
UBOOT_EXTLINUX_FDT ??= ""
UBOOT_EXTLINUX_FDTDIR ??= "../"

View File

@@ -328,16 +328,11 @@ def get_multilib_datastore(variant, d):
def all_multilib_tune_values(d, var, unique = True, need_split = True, delim = ' '):
"""Return a string of all ${var} in all multilib tune configuration"""
values = []
value = d.getVar(var) or ""
if value != "":
if need_split:
for item in value.split(delim):
values.append(item)
else:
values.append(value)
variants = d.getVar("MULTILIB_VARIANTS") or ""
for item in variants.split():
variants = (d.getVar("MULTILIB_VARIANTS") or "").split() + ['']
for item in variants:
localdata = get_multilib_datastore(item, d)
# We need WORKDIR to be consistent with the original datastore
localdata.setVar("WORKDIR", d.getVar("WORKDIR"))
value = localdata.getVar(var) or ""
if value != "":
if need_split:

View File

@@ -308,7 +308,8 @@ FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
FILES_${PN}-dev = "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la \
${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \
${datadir}/aclocal ${base_libdir}/*.o \
${libdir}/${BPN}/*.la ${base_libdir}/*.la"
${libdir}/${BPN}/*.la ${base_libdir}/*.la \
${libdir}/cmake ${datadir}/cmake"
SECTION_${PN}-dev = "devel"
ALLOW_EMPTY_${PN}-dev = "1"
RDEPENDS_${PN}-dev = "${PN} (= ${EXTENDPKGV})"
@@ -318,7 +319,6 @@ SECTION_${PN}-staticdev = "devel"
RDEPENDS_${PN}-staticdev = "${PN}-dev (= ${EXTENDPKGV})"
FILES_${PN}-dbg = "/usr/lib/debug /usr/src/debug"
SECTION_${PN}-dbg = "devel"
ALLOW_EMPTY_${PN}-dbg = "1"
@@ -487,10 +487,10 @@ HOSTTOOLS += " \
"
# Tools needed to run testimage runtime image testing
HOSTTOOLS += "${@'ip ping ps scp ssh stty' if (bb.data.inherits_class('testimage', d) or d.getVar('TEST_IMAGE') == '1') else ''}"
HOSTTOOLS += "${@'ip ping ps scp ssh stty' if (bb.utils.contains_any('IMAGE_CLASSES', 'testimage testsdk', True, False, d) or any(x in (d.getVar("BBINCLUDED") or "") for x in ["testimage.bbclass", "testsdk.bbclass"])) else ''}"
# Link to these if present
HOSTTOOLS_NONFATAL += "aws ccache gcc-ar gpg ld.bfd ld.gold nc sftp socat ssh sudo"
HOSTTOOLS_NONFATAL += "aws ccache gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo"
# Temporary add few more detected in bitbake world
HOSTTOOLS_NONFATAL += "join nl size yes zcat"

View File

@@ -2,6 +2,6 @@
# Default preferred versions
#
PREFERRED_VERSION_openssl = "1.0.%"
PREFERRED_VERSION_openssl-native = "1.0.%"
PREFERRED_VERSION_nativesdk-openssl = "1.0.%"
PREFERRED_VERSION_openssl ?= "1.0.%"
PREFERRED_VERSION_openssl-native ?= "1.0.%"
PREFERRED_VERSION_nativesdk-openssl ?= "1.0.%"

View File

@@ -87,7 +87,6 @@ DISTRO_PN_ALIAS_pn-encodings = "Ubuntu=xfonts-encodings Mandriva=x11-font-encodi
DISTRO_PN_ALIAS_pn-font-alias = "Fedora=xorg-x11-fonts-base Mandriva=x11-font-alias Meego=xorg-x11-fonts"
DISTRO_PN_ALIAS_pn-font-util = "Meego=xorg-x11-font-utils Fedora=xorg-x11-font-utils Ubuntu=xfonts-utils Mandriva=x11-font-util Debian=xfonts-utils"
DISTRO_PN_ALIAS_pn-formfactor = "OE-Core"
DISTRO_PN_ALIAS_pn-fstests = "OpenedHand"
DISTRO_PN_ALIAS_pn-gcc-cross-initial = "OE-Core"
DISTRO_PN_ALIAS_pn-gcc-cross-initial-i586 = "OE-Core"
DISTRO_PN_ALIAS_pn-gcc-crosssdk-initial = "OE-Core"
@@ -141,7 +140,6 @@ DISTRO_PN_ALIAS_pn-initscripts = "Fedora=initscripts Mandravia=initscripts"
DISTRO_PN_ALIAS_pn-iproute2 = "OSPDT"
DISTRO_PN_ALIAS_pn-jpeg = "OpenSuSE=libjpeg Ubuntu=libjpeg62"
DISTRO_PN_ALIAS_pn-kernel-devsrc = "Debian=linux-base Ubuntu=linux"
DISTRO_PN_ALIAS_pn-kernelshark = "Mandriva=kernelshark Ubuntu=kernelshark"
DISTRO_PN_ALIAS_pn-kern-tools-native = "Windriver"
DISTRO_PN_ALIAS_pn-keymaps = "OE-Core"
DISTRO_PN_ALIAS_pn-kf = "OSPDT"
@@ -244,7 +242,6 @@ DISTRO_PN_ALIAS_pn-mini-x-session = "OSPDT"
DISTRO_PN_ALIAS_pn-mkelfimage = "Ubuntu=mkelfimage Fedora=mkelfimage"
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-mmc-utils = "OE-Core"
DISTRO_PN_ALIAS_pn-modutils-initscripts = "OE-Core"
DISTRO_PN_ALIAS_pn-mtd-utils = "Debian=mtd-utils Ubuntu=mtd-utils"
@@ -308,14 +305,12 @@ DISTRO_PN_ALIAS_pn-ptest-runner = "OE-Core"
DISTRO_PN_ALIAS_pn-pulseaudio-client-conf-sato = "OE-Core"
DISTRO_PN_ALIAS_pn-puzzles = "Debian=sgt-puzzles Fedora=puzzles"
DISTRO_PN_ALIAS_pn-python3 = "Fedora=python3 Debian=python3.2"
DISTRO_PN_ALIAS_pn-python3-distribute = "Debian=python3-setuptools Fedora=python3-setuptools"
DISTRO_PN_ALIAS_pn-python3-iniparse = "Fedora=python-iniparse Debian=python-iniparse"
DISTRO_PN_ALIAS_pn-python3-pip = "OpenSuSE=python3-pip Debian=python3-pip"
DISTRO_PN_ALIAS_pn-python3-pycurl = "Fedora=python-pycurl Debian=pycurl"
DISTRO_PN_ALIAS_pn-python3-pygpgme = "Fedora=python-pygpgme Debian=pygpgme"
DISTRO_PN_ALIAS_pn-python3-setuptools = "OpenSuSE=python3-setuptools Debian=python3-setuptools"
DISTRO_PN_ALIAS_pn-python-dbus = "Ubuntu=python-dbus Debian=python-dbus Mandriva=python-dbus"
DISTRO_PN_ALIAS_pn-python-distribute = "Opensuse=python-setuptools Fedora=python-setuptools"
DISTRO_PN_ALIAS_pn-python-git = "Debian=python-git Fedora=GitPython"
DISTRO_PN_ALIAS_pn-python-mako = "Fedora=python-mako Opensuse=python-Mako"
DISTRO_PN_ALIAS_pn-python-pycairo = "Meego=pycairo Fedora=pycairo Ubuntu=pycairo Debian=pycairo"
@@ -357,7 +352,6 @@ DISTRO_PN_ALIAS_pn-tar-replacement = "Fedora=tar Ubuntu=tar"
DISTRO_PN_ALIAS_pn-tcf-agent = "Windriver upstream=http://www.eclipse.org/dsdp/tm/"
DISTRO_PN_ALIAS_pn-texinfo-dummy-native = "OE-Core"
DISTRO_PN_ALIAS_pn-tiny-init = "OSPDT"
DISTRO_PN_ALIAS_pn-trace-cmd = "Mandriva=trace-cmd Ubuntu=trace-cmd"
DISTRO_PN_ALIAS_pn-tremor = "OSPDT upstream=http://www.xiph.org/vorbis/"
DISTRO_PN_ALIAS_pn-ttf-bitstream-vera = "Debian=ttf-bitstream-vera Ubuntu=ttf-bitstream-vera"
DISTRO_PN_ALIAS_pn-tzcode = "OSPDT"

View File

@@ -30,7 +30,6 @@
RECIPE_MAINTAINER_pn-acl = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-acpica = "Fathi Boudra <fathi.boudra@linaro.org>"
RECIPE_MAINTAINER_pn-acpid = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-acpitests = "Fathi Boudra <fathi.boudra@linaro.org>"
RECIPE_MAINTAINER_pn-adwaita-icon-theme = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-alsa-lib = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-alsa-plugins = "Tanu Kaskinen <tanuk@iki.fi>"
@@ -45,7 +44,7 @@ RECIPE_MAINTAINER_pn-apt = "Aníbal Limón <limon.anibal@gmail.com>"
RECIPE_MAINTAINER_pn-apt-native = "Aníbal Limón <limon.anibal@gmail.com>"
RECIPE_MAINTAINER_pn-argp-standalone = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-asciidoc = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-aspell = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-aspell = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-assimp = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-at = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-at-spi2-atk = "Maxin B. John <maxin.john@intel.com>"
@@ -54,17 +53,15 @@ RECIPE_MAINTAINER_pn-atk = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-attr = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-autoconf = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-autoconf-archive = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-autogen-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-automake = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-avahi = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-avahi-ui = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-babeltrace = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-base-files = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-base-passwd = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-base-files = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-base-passwd = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-bash = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-bash-completion = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bc = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-bdwgc = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bc = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-bind = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-binutils = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-binutils-cross = "Khem Raj <raj.khem@gmail.com>"
@@ -75,17 +72,17 @@ RECIPE_MAINTAINER_pn-bjam-native = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-blktool = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-blktrace = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bluez5 = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-bmap-tools = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-bmap-tools = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-boost = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bootchart2 = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bsd-headers = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-btrfs-tools = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-build-appliance-image = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-build-compare = "Randy Witt <randy.e.witt@linux.intel.com>"
RECIPE_MAINTAINER_pn-build-compare = "Paul Eggleton <paul.eggleton@linux.intel.com>"
RECIPE_MAINTAINER_pn-build-sysroots = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-builder = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-buildtools-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-busybox = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-busybox = "Andrej Valek <andrej.valek@siemens.com>"
RECIPE_MAINTAINER_pn-busybox-inittab = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-bzip2 = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-ca-certificates = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -131,8 +128,6 @@ RECIPE_MAINTAINER_pn-desktop-file-utils-native = "Alexander Kanavin <alex.kanavi
RECIPE_MAINTAINER_pn-dhcp = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-diffstat = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-diffutils = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-directfb = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-directfb-examples = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-distcc = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-distcc-config = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-dmidecode = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -147,16 +142,14 @@ RECIPE_MAINTAINER_pn-dwarfsrcfiles = "Alexander Kanavin <alex.kanavin@gmail.com>
RECIPE_MAINTAINER_pn-e2fsprogs = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-ed = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-eee-acpi-scripts = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-efilinux = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-eglinfo-fb = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-eglinfo-x11 = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-efilinux = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-elfutils = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-enchant = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-encodings = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-epiphany = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-ethtool = "Changhyeok Bae <changhyeok.bae@lge.com>"
RECIPE_MAINTAINER_pn-eudev = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-eudev = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-expat = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-expect = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-ffmpeg = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -170,7 +163,6 @@ RECIPE_MAINTAINER_pn-fontconfig = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-foomatic-filters = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-formfactor = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-freetype = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-fstests = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-fts = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gawk = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-gcc = "Khem Raj <raj.khem@gmail.com>"
@@ -204,9 +196,7 @@ RECIPE_MAINTAINER_pn-glibc-mtrace = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-glibc-scripts = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-glide = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-gmp = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gnome-common = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-gnome-desktop-testing = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-gnome-doc-utils = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-gnome-themes-standard = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-gnu-config = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-gnu-efi = "Yi Zhao <yi.zhao@windriver.com>"
@@ -243,11 +233,7 @@ RECIPE_MAINTAINER_pn-gstreamer1.0-vaapi = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-gtk+ = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-gtk+3 = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-gtk-doc = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-gtk-engines = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-gtk-icon-utils-native = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-gtk-sato-engine = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-guilt-native = "Bruce Ashfield <bruce.ashfield@windriver.com>"
RECIPE_MAINTAINER_pn-gummiboot = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-gzip = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-harfbuzz = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-hdparm = "Denys Dmytriyenko <denys@ti.com>"
@@ -262,13 +248,13 @@ RECIPE_MAINTAINER_pn-ifupdown = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-init-ifupdown = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-boot = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-initramfs-framework = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-initramfs-live-boot = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-boot-tiny = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-install = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-install-efi = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-install-efi-testfs = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-install-testfs = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-initscripts = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-boot = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-boot-tiny = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-install = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-install-efi = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-install-efi-testfs = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-install-testfs = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initscripts = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-intltool = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-iproute2 = "Changhyeok Bae <changhyeok.bae@lge.com>"
RECIPE_MAINTAINER_pn-iptables = "Changhyeok Bae <changhyeok.bae@lge.com>"
@@ -280,9 +266,7 @@ RECIPE_MAINTAINER_pn-libjpeg-turbo = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-json-c = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-json-glib = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-kbd = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-kconfig-frontends = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-kern-tools-native = "Bruce Ashfield <bruce.ashfield@windriver.com>"
RECIPE_MAINTAINER_pn-kernelshark = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-kernel-devsrc = "Bruce Ashfield <bruce.ashfield@windriver.com>"
RECIPE_MAINTAINER_pn-kexec-tools = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-keymaps = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -306,7 +290,7 @@ RECIPE_MAINTAINER_pn-libcap-ng = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-libcgroup = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libcheck = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-libcomps = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libconvert-asn1-perl = "Tim Orling <timothy.t.orling@intel.com>"
RECIPE_MAINTAINER_pn-libconvert-asn1-perl = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-libcroco = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libdaemon = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libdmx = "Armin Kuster <akuster808@gmail.com>"
@@ -327,23 +311,21 @@ RECIPE_MAINTAINER_pn-libgcc = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libgcc-initial = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libgcrypt = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-libgfortran = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libgloss = "Alejandro Hernandez <aehs29@gmail.com>"
RECIPE_MAINTAINER_pn-libglu = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libgpg-error = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-libgudev = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libical = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libice = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libiconv = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libid3tag = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-libidn = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libinput = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libjson = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libksba = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libmatchbox = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libmnl = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libmpc = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libnewt = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-libnewt-python = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-libnfsidmap = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libnl = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libnotify = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libnsl2 = "Khem Raj <raj.khem@gmail.com>"
@@ -351,16 +333,13 @@ RECIPE_MAINTAINER_pn-libnss-mdns = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libnss-nis = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libogg = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libomxil = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libowl = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libpam = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libpcap = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libpciaccess = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libpcre = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-libpcre2 = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libpfm4 = "Matthew McClintock <msm@freescale.com>"
RECIPE_MAINTAINER_pn-libpipeline = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libpng = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libpng12 = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libproxy = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libpthread-stubs = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-librepo = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -394,7 +373,6 @@ RECIPE_MAINTAINER_pn-libwebp = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libx11 = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libx11-diet = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxau = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxcalibrate = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxcb = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxcomposite = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxcursor = "Armin Kuster <akuster808@gmail.com>"
@@ -422,7 +400,6 @@ RECIPE_MAINTAINER_pn-libxrandr = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxrender = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxres = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxscrnsaver = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxsettings-client = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libxshmfence = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxslt = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libxt = "Armin Kuster <akuster808@gmail.com>"
@@ -445,7 +422,7 @@ RECIPE_MAINTAINER_pn-llvm = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-logrotate = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-lrzsz = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-lsb = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-lsbinitscripts = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-lsbinitscripts = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-lsbtest = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-lsof = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-ltp = "Yi Zhao <yi.zhao@windriver.com>"
@@ -466,7 +443,6 @@ RECIPE_MAINTAINER_pn-man-db = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-man-pages = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-matchbox-config-gtk = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-matchbox-desktop = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-matchbox-desktop-sato = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-matchbox-keyboard = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-matchbox-panel-2 = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-matchbox-session = "Maxin B. John <maxin.john@intel.com>"
@@ -490,11 +466,9 @@ RECIPE_MAINTAINER_pn-meta-world-pkgdata = "Richard Purdie <richard.purdie@linuxf
RECIPE_MAINTAINER_pn-mingetty = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-mini-x-session = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-minicom = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-mkelfimage = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-mkfontdir = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-mkfontscale = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-mklibs-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-mktemp = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-mmc-utils = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-mobile-broadband-provider-info = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-modutils-initscripts = "Yi Zhao <yi.zhao@windriver.com>"
@@ -513,9 +487,9 @@ RECIPE_MAINTAINER_pn-nativesdk-buildtools-perl-dummy = "Richard Purdie <richard.
RECIPE_MAINTAINER_pn-nativesdk-libtool = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-nativesdk-packagegroup-sdk-host = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-nativesdk-qemu-helper = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-newlib = "Alejandro Hernandez <aehs29@gmail.com>"
RECIPE_MAINTAINER_pn-ncurses = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-neard = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-neon = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-net-tools = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-netbase = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-nettle = "Armin Kuster <akuster808@gmail.com>"
@@ -527,14 +501,12 @@ RECIPE_MAINTAINER_pn-nspr = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-nss = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-nss-myhostname = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-ofono = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-oh-puzzles = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-openssh = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-openssl = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-opkg = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
RECIPE_MAINTAINER_pn-opkg-arch-config = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
RECIPE_MAINTAINER_pn-opkg-keyrings = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
RECIPE_MAINTAINER_pn-opkg-utils = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
RECIPE_MAINTAINER_pn-oprofile = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-orc = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-os-release = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-ossp-uuid = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -608,14 +580,12 @@ RECIPE_MAINTAINER_pn-quilt-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-quota = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-re2c = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-readline = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-remake = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-resolvconf = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-rgb = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-rpcbind = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-rng-tools = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-rpcsvc-proto = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-rpm = "Mark Hatle <mark.hatle@windriver.com>"
RECIPE_MAINTAINER_pn-rpmresolve = "Mark Hatle <mark.hatle@windriver.com>"
RECIPE_MAINTAINER_pn-rsync = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-rt-tests = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-ruby = "Maxin B. John <maxin.john@intel.com>"
@@ -646,7 +616,6 @@ RECIPE_MAINTAINER_pn-strace = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-stress = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-subversion = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-sudo = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-swabber-native = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-swig = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-sysfsutils = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-sysklogd = "Chen Qi <Qi.Chen@windriver.com>"
@@ -660,13 +629,13 @@ RECIPE_MAINTAINER_pn-systemd-bootconf = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-compat-units = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-serialgetty = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-systemctl-native = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemtap = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-systemtap-uprobes = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-sysvinit = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-sysvinit-inittab = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-systemtap = "Victor Kamensky <kamensky@cisco.com>"
RECIPE_MAINTAINER_pn-systemtap-uprobes = "Victor Kamensky <kamensky@cisco.com>"
RECIPE_MAINTAINER_pn-sysvinit = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-sysvinit-inittab = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-taglib = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-tar = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-tcf-agent = "Randy Witt <randy.e.witt@linux.intel.com>"
RECIPE_MAINTAINER_pn-tcf-agent = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-tcl = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-tcp-wrappers = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-testexport-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -675,21 +644,18 @@ RECIPE_MAINTAINER_pn-texinfo = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-texinfo-dummy-native = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-tiff = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-time = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-tiny-init = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-trace-cmd = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-ttf-bitstream-vera = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-tzcode-native = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-tzdata = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-u-boot = "Marek Vasut <marek.vasut@gmail.com>"
RECIPE_MAINTAINER_pn-u-boot-fw-utils = "Marek Vasut <marek.vasut@gmail.com>"
RECIPE_MAINTAINER_pn-u-boot-mkimage = "Marek Vasut <marek.vasut@gmail.com>"
RECIPE_MAINTAINER_pn-ubootchart = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-udev-extraconf = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-unfs3 = "Randy Witt <randy.e.witt@linux.intel.com>"
RECIPE_MAINTAINER_pn-unfs3 = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-unifdef = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-uninative-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-unzip = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-update-rc.d = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-update-rc.d = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-usbinit = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-usbutils = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-util-linux = "Chen Qi <Qi.Chen@windriver.com>"
@@ -711,9 +677,8 @@ RECIPE_MAINTAINER_pn-weston = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-weston-init = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-wget = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-which = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-wic-tools = "Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>"
RECIPE_MAINTAINER_pn-wic-tools = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-wpa-supplicant = "Changhyeok Bae <changhyeok.bae@lge.com>"
RECIPE_MAINTAINER_pn-x11-common = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-x11perf = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-x264 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-xauth = "Armin Kuster <akuster808@gmail.com>"
@@ -737,8 +702,6 @@ RECIPE_MAINTAINER_pn-xf86-input-vmmouse = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xf86-video-cirrus = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xf86-video-fbdev = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xf86-video-intel = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xf86-video-omap = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xf86-video-omapfb = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xf86-video-vesa = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xf86-video-vmware = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xhost = "Armin Kuster <akuster808@gmail.com>"

View File

@@ -0,0 +1,44 @@
#
# Newlib configuration
#
LIBCEXTENSION = "-newlib"
LIBCOVERRIDE = ":libc-newlib"
PREFERRED_PROVIDER_virtual/libc ?= "newlib"
PREFERRED_PROVIDER_virtual/libiconv ?= "newlib"
PREFERRED_PROVIDER_virtual/libintl ?= "newlib"
PREFERRED_PROVIDER_virtual/nativesdk-libintl ?= "nativesdk-glibc"
PREFERRED_PROVIDER_virtual/nativesdk-libiconv ?= "nativesdk-glibc"
DISTRO_FEATURES_BACKFILL_CONSIDERED += "ldconfig"
#USE_NLS ?= "no"
IMAGE_LINGUAS = ""
LIBC_DEPENDENCIES = "\
newlib-dbg \
newlib-dev \
libgloss \
libgloss-dev \
libgloss-dbg \
libgcc-dev \
libgcc-dbg \
"
# compilerlibs defaults to gcc-runtime, but we get runtime from libgloss
# we set ASSUME_PROVIDED because we cant set PREFERRED_PROVIDER
# for compilerlibs since its overridden by tcmode-default
ASSUME_PROVIDED += "virtual/${TARGET_PREFIX}compilerlibs virtual/crypt"
# Its useful to be able to extend newlib, but we dont provide a native variant of libgloss
NEWLIB_EXTENDED ?= "libgloss libgcc"
BASE_DEFAULT_DEPS_append_class-target = " ${NEWLIB_EXTENDED}"
TARGET_OS = "elf"
TARGET_OS_arm = "eabi"
TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE}"
TOOLCHAIN_TARGET_TASK ?= "${LIBC_DEPENDENCIES}"
TOOLCHAIN_NEED_CONFIGSITE_CACHE_remove = "zlib ncurses"

View File

@@ -8,6 +8,6 @@
UNINATIVE_MAXGLIBCVERSION = "2.27"
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/1.9/"
UNINATIVE_CHECKSUM[i686] ?= "83a4f927da81d9889ef0cbe5c12cb782e21c6cc11e6155600b94ff0c99576dce"
UNINATIVE_CHECKSUM[x86_64] ?= "c26622a1f27dbf5b25de986b11584b5c5b2f322d9eb367f705a744f58a5561ec"
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.1/"
UNINATIVE_CHECKSUM[i686] ?= "a90db17d8845ece764aaac19348cd78504c0e554cb998da39ebad03aeef76185"
UNINATIVE_CHECKSUM[x86_64] ?= "d43555df8d5a056ef5b20c7d8e0287207974e09df1e969a3e19302c8b4ea6b4b"

View File

@@ -288,8 +288,6 @@ MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that yo
NATIVELSBSTRING[doc] = "A string identifying the host distribution."
NO_RECOMMENDATIONS[doc] = "When set to '1', no recommended packages will be installed. Realize that some recommended packages might be required for certain system functionality, such as kernel-modules. It is up to the user to add packages to IMAGE_INSTALL as needed."
NOHDD[doc] = "Causes the OpenEmbedded build system to skip building the .hddimg image."
NOISO[doc] = "Causes the OpenEmbedded build system to skip building the ISO image."
#O
@@ -417,7 +415,7 @@ TARGET_PREFIX[doc] = "The prefix for the cross-compile toolchain (e.g. arm-linux
TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
TCLIBC[doc] = "Specifies C library (libc) variant to use during the build process. You can select 'baremetal', 'glibc' or 'musl'."
TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
TEST_IMAGE[doc] = "Enables test booting of virtual machine images under the QEMU emulator after any root filesystems are created and runs tests against those images."
TESTIMAGE_AUTO[doc] = "Enables test booting of virtual machine images under the QEMU emulator after any root filesystems are created and runs tests against those images each time an image is built."
TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
TEST_POWERCONTROL_CMD[doc] = "For automated hardware testing, specifies the command to use to control the power of the target machine under test"

View File

@@ -16,7 +16,7 @@ SRC_DISTRIBUTE_LICENSES += "CC-BY-SA-1.0 CC-BY-SA-2.0 CC-BY-SA-2.5 CC-BY-SA-3.0"
SRC_DISTRIBUTE_LICENSES += "CDDL-1.0 CECILL-1.0 CECILL-2.0 CECILL-B CECILL-C"
SRC_DISTRIBUTE_LICENSES += "ClArtistic CPAL-1.0 CPL-1.0 CUA-OPL-1.0 DSSSL"
SRC_DISTRIBUTE_LICENSES += "ECL-1.0 ECL-2.0 eCos-2.0 EDL-1.0 EFL-1.0 EFL-2.0"
SRC_DISTRIBUTE_LICENSES += "Elfutils-Exception Entessa EPL-1.0 ErlPL-1.1"
SRC_DISTRIBUTE_LICENSES += "Elfutils-Exception Entessa EPL-1.0 EPL-2.0 ErlPL-1.1"
SRC_DISTRIBUTE_LICENSES += "EUDatagrid EUPL-1.0 EUPL-1.1 Fair Frameworx-1.0"
SRC_DISTRIBUTE_LICENSES += "FreeType GFDL-1.1 GFDL-1.2 GFDL-1.3 GPL-1.0"
SRC_DISTRIBUTE_LICENSES += "GPL-2.0 GPL-2.0-with-autoconf-exception"

View File

@@ -1,4 +1,5 @@
DEFAULTTUNE ?= "armv7athf"
ARM_INSTRUCTION_SET ?= "thumb"
TUNEVALID[armv7a] = "Enable instructions for ARMv7-a"
TUNECONFLICTS[armv7a] = "armv4 armv5 armv6 armv7"

View File

@@ -10,8 +10,7 @@ MACHINE_FEATURES += "screen keyboard pci usbhost ext2 ext3 x86 \
MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
IMAGE_FSTYPES ?= "live"
NOISO ?= "1"
IMAGE_FSTYPES ?= "hddimg"
KERNEL_IMAGETYPE ?= "bzImage"

View File

@@ -12,6 +12,8 @@ DEFAULTTUNE ?= "core2-64"
require conf/machine/include/tune-core2.inc
require conf/machine/include/qemuboot-x86.inc
UBOOT_MACHINE ?= "qemu-x86_64_defconfig"
KERNEL_IMAGETYPE = "bzImage"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1"

View File

@@ -11,6 +11,8 @@ require conf/machine/include/qemu.inc
require conf/machine/include/tune-i586.inc
require conf/machine/include/qemuboot-x86.inc
UBOOT_MACHINE ?= "qemu-x86_defconfig"
KERNEL_IMAGETYPE = "bzImage"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1"

View File

@@ -0,0 +1,277 @@
Eclipse Public License - v 2.0
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
"Contribution" means:
a) in the case of the initial Contributor, the initial content
Distributed under this Agreement, and
b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from
and are Distributed by that particular Contributor. A Contribution
"originates" from a Contributor if it was added to the Program by
such Contributor itself or anyone acting on such Contributor's behalf.
Contributions do not include changes or additions to the Program that
are not Modified Works.
"Contributor" means any person or entity that Distributes the Program.
"Licensed Patents" mean patent claims licensable by a Contributor which
are necessarily infringed by the use or sale of its Contribution alone
or when combined with the Program.
"Program" means the Contributions Distributed in accordance with this
Agreement.
"Recipient" means anyone who receives the Program under this Agreement
or any Secondary License (as applicable), including Contributors.
"Derivative Works" shall mean any work, whether in Source Code or other
form, that is based on (or derived from) the Program and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship.
"Modified Works" shall mean any work in Source Code or other form that
results from an addition to, deletion from, or modification of the
contents of the Program, including, for purposes of clarity any new file
in Source Code form that contains any contents of the Program. Modified
Works shall not include works that contain only declarations,
interfaces, types, classes, structures, or files of the Program solely
in each case in order to link to, bind by name, or subclass the Program
or Modified Works thereof.
"Distribute" means the acts of a) distributing or b) making available
in any manner that enables the transfer of a copy.
"Source Code" means the form of a Program preferred for making
modifications, including but not limited to software source code,
documentation source, and configuration files.
"Secondary License" means either the GNU General Public License,
Version 2.0, or any later versions of that license, including any
exceptions or additional permissions as identified by the initial
Contributor.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free copyright
license to reproduce, prepare Derivative Works of, publicly display,
publicly perform, Distribute and sublicense the Contribution of such
Contributor, if any, and such Derivative Works.
b) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free patent
license under Licensed Patents to make, use, sell, offer to sell,
import and otherwise transfer the Contribution of such Contributor,
if any, in Source Code or other form. This patent license shall
apply to the combination of the Contribution and the Program if, at
the time the Contribution is added by the Contributor, such addition
of the Contribution causes such combination to be covered by the
Licensed Patents. The patent license shall not apply to any other
combinations which include the Contribution. No hardware per se is
licensed hereunder.
c) Recipient understands that although each Contributor grants the
licenses to its Contributions set forth herein, no assurances are
provided by any Contributor that the Program does not infringe the
patent or other intellectual property rights of any other entity.
Each Contributor disclaims any liability to Recipient for claims
brought by any other entity based on infringement of intellectual
property rights or otherwise. As a condition to exercising the
rights and licenses granted hereunder, each Recipient hereby
assumes sole responsibility to secure any other intellectual
property rights needed, if any. For example, if a third party
patent license is required to allow Recipient to Distribute the
Program, it is Recipient's responsibility to acquire that license
before distributing the Program.
d) Each Contributor represents that to its knowledge it has
sufficient copyright rights in its Contribution, if any, to grant
the copyright license set forth in this Agreement.
e) Notwithstanding the terms of any Secondary License, no
Contributor makes additional grants to any Recipient (other than
those set forth in this Agreement) as a result of such Recipient's
receipt of the Program under the terms of a Secondary License
(if permitted under the terms of Section 3).
3. REQUIREMENTS
3.1 If a Contributor Distributes the Program in any form, then:
a) the Program must also be made available as Source Code, in
accordance with section 3.2, and the Contributor must accompany
the Program with a statement that the Source Code for the Program
is available under this Agreement, and informs Recipients how to
obtain it in a reasonable manner on or through a medium customarily
used for software exchange; and
b) the Contributor may Distribute the Program under a license
different than this Agreement, provided that such license:
i) effectively disclaims on behalf of all other Contributors all
warranties and conditions, express and implied, including
warranties or conditions of title and non-infringement, and
implied warranties or conditions of merchantability and fitness
for a particular purpose;
ii) effectively excludes on behalf of all other Contributors all
liability for damages, including direct, indirect, special,
incidental and consequential damages, such as lost profits;
iii) does not attempt to limit or alter the recipients' rights
in the Source Code under section 3.2; and
iv) requires any subsequent distribution of the Program by any
party to be under a license that satisfies the requirements
of this section 3.
3.2 When the Program is Distributed as Source Code:
a) it must be made available under this Agreement, or if the
Program (i) is combined with other material in a separate file or
files made available under a Secondary License, and (ii) the initial
Contributor attached to the Source Code the notice described in
Exhibit A of this Agreement, then the Program may be made available
under the terms of such Secondary Licenses, and
b) a copy of this Agreement must be included with each copy of
the Program.
3.3 Contributors may not remove or alter any copyright, patent,
trademark, attribution notices, disclaimers of warranty, or limitations
of liability ("notices") contained within the Program from any copy of
the Program which they Distribute, provided that Contributors may add
their own appropriate notices.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities
with respect to end users, business partners and the like. While this
license is intended to facilitate the commercial use of the Program,
the Contributor who includes the Program in a commercial product
offering should do so in a manner which does not create potential
liability for other Contributors. Therefore, if a Contributor includes
the Program in a commercial product offering, such Contributor
("Commercial Contributor") hereby agrees to defend and indemnify every
other Contributor ("Indemnified Contributor") against any losses,
damages and costs (collectively "Losses") arising from claims, lawsuits
and other legal actions brought by a third party against the Indemnified
Contributor to the extent caused by the acts or omissions of such
Commercial Contributor in connection with its distribution of the Program
in a commercial product offering. The obligations in this section do not
apply to any claims or Losses relating to any actual or alleged
intellectual property infringement. In order to qualify, an Indemnified
Contributor must: a) promptly notify the Commercial Contributor in
writing of such claim, and b) allow the Commercial Contributor to control,
and cooperate with the Commercial Contributor in, the defense and any
related settlement negotiations. The Indemnified Contributor may
participate in any such claim at its own expense.
For example, a Contributor might include the Program in a commercial
product offering, Product X. That Contributor is then a Commercial
Contributor. If that Commercial Contributor then makes performance
claims, or offers warranties related to Product X, those performance
claims and warranties are such Commercial Contributor's responsibility
alone. Under this section, the Commercial Contributor would have to
defend claims against the other Contributors related to those performance
claims and warranties, and if a court requires any other Contributor to
pay any damages as a result, the Commercial Contributor must pay
those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. Each Recipient is solely responsible for determining the
appropriateness of using and distributing the Program and assumes all
risks associated with its exercise of rights under this Agreement,
including but not limited to the risks and costs of program errors,
compliance with applicable laws, damage to or loss of data, programs
or equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this Agreement, and without further
action by the parties hereto, such provision shall be reformed to the
minimum extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against any entity
(including a cross-claim or counterclaim in a lawsuit) alleging that the
Program itself (excluding combinations of the Program with other software
or hardware) infringes such Recipient's patent(s), then such Recipient's
rights granted under Section 2(b) shall terminate as of the date such
litigation is filed.
All Recipient's rights under this Agreement shall terminate if it
fails to comply with any of the material terms or conditions of this
Agreement and does not cure such failure in a reasonable period of
time after becoming aware of such noncompliance. If all Recipient's
rights under this Agreement terminate, Recipient agrees to cease use
and distribution of the Program as soon as reasonably practicable.
However, Recipient's obligations under this Agreement and any licenses
granted by Recipient relating to the Program shall continue and survive.
Everyone is permitted to copy and distribute copies of this Agreement,
but in order to avoid inconsistency the Agreement is copyrighted and
may only be modified in the following manner. The Agreement Steward
reserves the right to publish new versions (including revisions) of
this Agreement from time to time. No one other than the Agreement
Steward has the right to modify this Agreement. The Eclipse Foundation
is the initial Agreement Steward. The Eclipse Foundation may assign the
responsibility to serve as the Agreement Steward to a suitable separate
entity. Each new version of the Agreement will be given a distinguishing
version number. The Program (including Contributions) may always be
Distributed subject to the version of the Agreement under which it was
received. In addition, after a new version of the Agreement is published,
Contributor may elect to Distribute the Program (including its
Contributions) under the new version.
Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
receives no rights or licenses to the intellectual property of any
Contributor under this Agreement, whether expressly, by implication,
estoppel or otherwise. All rights in the Program not expressly granted
under this Agreement are reserved. Nothing in this Agreement is intended
to be enforceable by any entity that is not a Contributor or Recipient.
No third-party beneficiary rights are created under this Agreement.
Exhibit A - Form of Secondary Licenses Notice
"This Source Code may also be made available under the following
Secondary Licenses when the conditions for such availability set forth
in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
version(s), and exceptions or additional permissions here}."
Simply including a copy of this Agreement, including this Exhibit A
is not sufficient to license the Source Code under Secondary Licenses.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to
look for such a notice.
You may add additional accurate notices of copyright ownership.

View File

@@ -30,8 +30,10 @@ class CreatePlugin(LayerPlugin):
conf = os.path.join(layerdir, 'conf')
bb.utils.mkdirhier(conf)
layername = os.path.basename(os.path.normpath(args.layerdir))
# Create the README from templates/README
readme_template = read_template('README') % (args.layerdir, args.layerdir, args.layerdir, args.layerdir, args.layerdir, args.layerdir)
readme_template = read_template('README').format(layername=layername)
readme = os.path.join(layerdir, 'README')
with open(readme, 'w') as fd:
fd.write(readme_template)
@@ -43,8 +45,12 @@ class CreatePlugin(LayerPlugin):
license_dst = os.path.join(layerdir, copying)
shutil.copy(license_src, license_dst)
# Get the compat value for core layer.
compat = self.tinfoil.config_data.getVar('LAYERSERIES_COMPAT_core') or ""
# Create the layer.conf from templates/layer.conf
layerconf_template = read_template('layer.conf') % (args.layerdir, args.layerdir, args.layerdir, args.priority)
layerconf_template = read_template('layer.conf').format(
layername=layername, priority=args.priority, compat=compat)
layerconf = os.path.join(conf, 'layer.conf')
with open(layerconf, 'w') as fd:
fd.write(layerconf_template)
@@ -53,7 +59,7 @@ class CreatePlugin(LayerPlugin):
example_template = read_template('example.bb')
example = os.path.join(layerdir, 'recipes-' + args.examplerecipe, args.examplerecipe)
bb.utils.mkdirhier(example)
with open(os.path.join(example, args.examplerecipe + '.bb'), 'w') as fd:
with open(os.path.join(example, args.examplerecipe + '_%s.bb') % args.version, 'w') as fd:
fd.write(example_template)
logger.plain('Add your new layer with \'bitbake-layers add-layer %s\'' % args.layerdir)
@@ -63,4 +69,5 @@ class CreatePlugin(LayerPlugin):
parser_create_layer.add_argument('layerdir', help='Layer directory to create')
parser_create_layer.add_argument('--priority', '-p', default=6, help='Layer directory to create')
parser_create_layer.add_argument('--example-recipe-name', '-e', dest='examplerecipe', default='example', help='Filename of the example recipe')
parser_create_layer.add_argument('--example-recipe-version', '-v', dest='version', default='0.1', help='Version number for the example recipe')

View File

@@ -1,4 +1,4 @@
This README file contains information on the contents of the %s layer.
This README file contains information on the contents of the {layername} layer.
Please see the corresponding sections below for details.
@@ -18,7 +18,7 @@ Dependencies
Patches
=======
Please submit any patches against the %s layer to the xxxx mailing list (xxxx@zzzz.org)
Please submit any patches against the {layername} layer to the xxxx mailing list (xxxx@zzzz.org)
and cc: the maintainer:
Maintainer: XXX YYYYYY <xxx.yyyyyy@zzzzz.com>
@@ -26,16 +26,16 @@ Maintainer: XXX YYYYYY <xxx.yyyyyy@zzzzz.com>
Table of Contents
=================
I. Adding the %s layer to your build
I. Adding the {layername} layer to your build
II. Misc
I. Adding the %s layer to your build
I. Adding the {layername} layer to your build
=================================================
Run 'bitbake-layers add-layer %s'
Run 'bitbake-layers add-layer {layername}'
II. Misc
========
--- replace with specific information about the %s layer ---
--- replace with specific information about the {layername} layer ---

View File

@@ -1,10 +1,13 @@
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
BBPATH .= ":${{LAYERDIR}}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILES += "${{LAYERDIR}}/recipes-*/*/*.bb \
${{LAYERDIR}}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "%s"
BBFILE_PATTERN_%s = "^${LAYERDIR}/"
BBFILE_PRIORITY_%s = "%s"
BBFILE_COLLECTIONS += "{layername}"
BBFILE_PATTERN_{layername} = "^${{LAYERDIR}}/"
BBFILE_PRIORITY_{layername} = "{priority}"
LAYERDEPENDS_{layername} = "core"
LAYERSERIES_COMPAT_{layername} = "{compat}"

View File

@@ -13,6 +13,7 @@ import os.path
import difflib
import git
import re
import shlex
import hashlib
import collections
import bb.utils
@@ -31,13 +32,6 @@ ver_monitor_fields = ['PKGE', 'PKGV', 'PKGR']
monitor_numeric_threshold = 10
# Image files to monitor (note that image-info.txt is handled separately)
img_monitor_files = ['installed-package-names.txt', 'files-in-image.txt']
# Related context fields for reporting (note: PE, PV & PR are always reported for monitored package fields)
related_fields = {}
related_fields['RDEPENDS'] = ['DEPENDS']
related_fields['RRECOMMENDS'] = ['DEPENDS']
related_fields['FILELIST'] = ['FILES']
related_fields['files-in-image.txt'] = ['installed-package-names.txt', 'USER_CLASSES', 'IMAGE_CLASSES', 'ROOTFS_POSTPROCESS_COMMAND', 'IMAGE_POSTPROCESS_COMMAND']
related_fields['installed-package-names.txt'] = ['IMAGE_FEATURES', 'IMAGE_LINGUAS', 'IMAGE_INSTALL', 'BAD_RECOMMENDATIONS', 'NO_RECOMMENDATIONS', 'PACKAGE_EXCLUDE']
colours = {
'colour_default': '',
@@ -67,7 +61,6 @@ class ChangeRecord:
self.oldvalue = oldvalue
self.newvalue = newvalue
self.monitored = monitored
self.related = []
self.filechanges = None
def __str__(self):
@@ -123,10 +116,13 @@ class ChangeRecord:
aitems = pkglist_combine(depvera)
bitems = pkglist_combine(depverb)
else:
aitems = self.oldvalue.split()
bitems = self.newvalue.split()
if self.fieldname == 'FILELIST':
aitems = shlex.split(self.oldvalue)
bitems = shlex.split(self.newvalue)
renamed_dirs, aitems, bitems = detect_renamed_dirs(aitems, bitems)
else:
aitems = self.oldvalue.split()
bitems = self.newvalue.split()
removed = list(set(aitems) - set(bitems))
added = list(set(bitems) - set(aitems))
@@ -206,13 +202,6 @@ class ChangeRecord:
else:
out = '{} changed from "{colour_remove}{}{colour_default}" to "{colour_add}{}{colour_default}"'.format(self.fieldname, self.oldvalue, self.newvalue, **colours)
if self.related:
for chg in self.related:
if not outer and chg.fieldname in ['PE', 'PV', 'PR']:
continue
for line in chg._str_internal(False).splitlines():
out += '\n * %s' % line
return '%s%s' % (prefix, out) if out else ''
class FileChange:
@@ -424,9 +413,13 @@ def compare_dict_blobs(path, ablob, bblob, report_all, report_ver):
(depvera, depverb) = compare_pkg_lists(astr, bstr)
if depvera == depverb:
continue
alist = astr.split()
if key == 'FILELIST':
alist = shlex.split(astr)
blist = shlex.split(bstr)
else:
alist = astr.split()
blist = bstr.split()
alist.sort()
blist = bstr.split()
blist.sort()
# We don't care about the removal of self-dependencies
if pkgname in alist and not pkgname in blist:
@@ -635,17 +628,6 @@ def process_changes(repopath, revision1, revision2='HEAD', report_all=False, rep
chg = ChangeRecord(path, filename[7:], d.a_blob.data_stream.read().decode('utf-8'), '', True)
changes.append(chg)
# Link related changes
for chg in changes:
if chg.monitored:
for chg2 in changes:
# (Check dirname in the case of fields from recipe info files)
if chg.path == chg2.path or os.path.dirname(chg.path) == chg2.path:
if chg2.fieldname in related_fields.get(chg.fieldname, []):
chg.related.append(chg2)
elif chg.path == chg2.path and chg.path.startswith('packages/') and chg2.fieldname in ['PE', 'PV', 'PR']:
chg.related.append(chg2)
# filter out unwanted paths
if exclude_path:
for chg in changes:

View File

@@ -1,5 +1,12 @@
# This class should provide easy access to the different aspects of the
# buildsystem such as layers, bitbake location, etc.
#
# SDK_LAYERS_EXCLUDE: Layers which will be excluded from SDK layers.
# SDK_LAYERS_EXCLUDE_PATTERN: The simiar to SDK_LAYERS_EXCLUDE, this supports
# python regular expression, use space as separator,
# e.g.: ".*-downloads closed-.*"
#
import stat
import shutil
@@ -23,9 +30,12 @@ class BuildSystem(object):
self.context = context
self.layerdirs = [os.path.abspath(pth) for pth in d.getVar('BBLAYERS').split()]
self.layers_exclude = (d.getVar('SDK_LAYERS_EXCLUDE') or "").split()
self.layers_exclude_pattern = d.getVar('SDK_LAYERS_EXCLUDE_PATTERN')
def copy_bitbake_and_layers(self, destdir, workspace_name=None):
import re
# Copy in all metadata layers + bitbake (as repositories)
copied_corebase = None
layers_copied = []
bb.utils.mkdirhier(destdir)
layers = list(self.layerdirs)
@@ -40,8 +50,17 @@ class BuildSystem(object):
# Exclude layers
for layer_exclude in self.layers_exclude:
if layer_exclude in layers:
bb.note('Excluded %s from sdk layers since it is in SDK_LAYERS_EXCLUDE' % layer_exclude)
layers.remove(layer_exclude)
if self.layers_exclude_pattern:
layers_cp = layers[:]
for pattern in self.layers_exclude_pattern.split():
for layer in layers_cp:
if re.match(pattern, layer):
bb.note('Excluded %s from sdk layers since matched SDK_LAYERS_EXCLUDE_PATTERN' % layer)
layers.remove(layer)
workspace_newname = workspace_name
if workspace_newname:
layernames = [os.path.basename(layer) for layer in layers]
@@ -84,17 +103,18 @@ class BuildSystem(object):
layer_relative = os.path.relpath(layerdestpath,
destdir)
layers_copied.append(layer_relative)
# Treat corebase as special since it typically will contain
# build directories or other custom items.
if corebase == layer:
copied_corebase = layer_relative
bb.utils.mkdirhier(layerdestpath)
for f in corebase_files:
f_basename = os.path.basename(f)
destname = os.path.join(layerdestpath, f_basename)
_smart_copy(f, destname)
else:
layers_copied.append(layer_relative)
if os.path.exists(os.path.join(layerdestpath, 'conf/layer.conf')):
bb.note("Skipping layer %s, already handled" % layer)
else:
@@ -140,7 +160,7 @@ class BuildSystem(object):
layers_copied.remove(layer)
break
return layers_copied
return copied_corebase, layers_copied
def generate_locked_sigs(sigfile, d):
bb.utils.mkdirhier(os.path.dirname(sigfile))

View File

@@ -1,15 +1,17 @@
import stat
import mmap
import subprocess
def runstrip(arg):
# Function to strip a single file, called from split_and_strip_files below
# A working 'file' (one which works on the target architecture)
#
# The elftype is a bit pattern (explained in split_and_strip_files) to tell
# The elftype is a bit pattern (explained in is_elf below) to tell
# us what type of file we're processing...
# 4 - executable
# 8 - shared library
# 16 - kernel module
import stat, subprocess
(file, elftype, strip) = arg
newmode = None
@@ -34,18 +36,51 @@ def runstrip(arg):
stripcmd.append(file)
bb.debug(1, "runstrip: %s" % stripcmd)
try:
output = subprocess.check_output(stripcmd, stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
bb.error("runstrip: '%s' strip command failed with %s (%s)" % (stripcmd, e.returncode, e.output))
output = subprocess.check_output(stripcmd, stderr=subprocess.STDOUT)
if newmode:
os.chmod(file, origmode)
return
# Detect .ko module by searching for "vermagic=" string
def is_kernel_module(path):
with open(path) as f:
return mmap.mmap(f.fileno(), 0, prot=mmap.PROT_READ).find(b"vermagic=") >= 0
# Return type (bits):
# 0 - not elf
# 1 - ELF
# 2 - stripped
# 4 - executable
# 8 - shared library
# 16 - kernel module
def is_elf(path):
exec_type = 0
result = subprocess.check_output(["file", "-b", path], stderr=subprocess.STDOUT).decode("utf-8")
def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, qa_already_stripped=False):
if "ELF" in result:
exec_type |= 1
if "not stripped" not in result:
exec_type |= 2
if "executable" in result:
exec_type |= 4
if "shared" in result:
exec_type |= 8
if "relocatable" in result:
if path.endswith(".ko") and path.find("/lib/modules/") != -1 and is_kernel_module(path):
exec_type |= 16
return (path, exec_type)
def is_static_lib(path):
if path.endswith('.a') and not os.path.islink(path):
with open(path, 'rb') as fh:
# The magic must include the first slash to avoid
# matching golang static libraries
magic = b'!<arch>\x0a/'
start = fh.read(len(magic))
return start == magic
return False
def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, d, qa_already_stripped=False):
"""
Strip executable code (like executables, shared libraries) _in_place_
- Based on sysroot_strip in staging.bbclass
@@ -56,39 +91,7 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, qa_already_stripped=
:param qa_already_stripped: Set to True if already-stripped' in ${INSANE_SKIP}
This is for proper logging and messages only.
"""
import stat, errno, oe.path, oe.utils, mmap
# Detect .ko module by searching for "vermagic=" string
def is_kernel_module(path):
with open(path) as f:
return mmap.mmap(f.fileno(), 0, prot=mmap.PROT_READ).find(b"vermagic=") >= 0
# Return type (bits):
# 0 - not elf
# 1 - ELF
# 2 - stripped
# 4 - executable
# 8 - shared library
# 16 - kernel module
def is_elf(path):
exec_type = 0
ret, result = oe.utils.getstatusoutput("file -b '%s'" % path)
if ret:
bb.error("split_and_strip_files: 'file %s' failed" % path)
return exec_type
if "ELF" in result:
exec_type |= 1
if "not stripped" not in result:
exec_type |= 2
if "executable" in result:
exec_type |= 4
if "shared" in result:
exec_type |= 8
if "relocatable" in result and is_kernel_module(path):
exec_type |= 16
return exec_type
import stat, errno, oe.path, oe.utils
elffiles = {}
inodes = {}
@@ -98,6 +101,8 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, qa_already_stripped=
#
# First lets figure out all of the files we may have to process
#
checkelf = []
inodecache = {}
for root, dirs, files in os.walk(dstdir):
for f in files:
file = os.path.join(root, f)
@@ -123,7 +128,11 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, qa_already_stripped=
# It's a file (or hardlink), not a link
# ...but is it ELF, and is it already stripped?
elf_file = is_elf(file)
checkelf.append(file)
inodecache[file] = s.st_ino
results = oe.utils.multiprocess_launch(is_elf, checkelf, d)
for (file, elf_file) in results:
#elf_file = is_elf(file)
if elf_file & 1:
if elf_file & 2:
if qa_already_stripped:
@@ -132,12 +141,12 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, qa_already_stripped=
bb.warn("File '%s' from %s was already stripped, this will prevent future debugging!" % (file[len(dstdir):], pn))
continue
if s.st_ino in inodes:
if inodecache[file] in inodes:
os.unlink(file)
os.link(inodes[s.st_ino], file)
os.link(inodes[inodecache[file]], file)
else:
# break hardlinks so that we do not strip the original.
inodes[s.st_ino] = file
inodes[inodecache[file]] = file
bb.utils.copyfile(file, file)
elffiles[file] = elf_file
@@ -149,8 +158,7 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, qa_already_stripped=
elf_file = int(elffiles[file])
sfiles.append((file, elf_file, strip_cmd))
oe.utils.multiprocess_exec(sfiles, runstrip)
oe.utils.multiprocess_launch(runstrip, sfiles, d)
def file_translate(file):

View File

@@ -3,7 +3,6 @@ import os
import glob
import subprocess
import shutil
import multiprocessing
import re
import collections
import bb
@@ -177,7 +176,7 @@ class OpkgIndexer(Indexer):
bb.note("There are no packages in %s!" % self.deploy_dir)
return
oe.utils.multiprocess_exec(index_cmds, create_index)
oe.utils.multiprocess_launch(create_index, index_cmds, self.d)
if signer:
feed_sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE')
@@ -258,7 +257,7 @@ class DpkgIndexer(Indexer):
bb.note("There are no packages in %s" % self.deploy_dir)
return
oe.utils.multiprocess_exec(index_cmds, create_index)
oe.utils.multiprocess_launch(create_index, index_cmds, self.d)
if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
raise NotImplementedError('Package feed signing not implementd for dpkg')
@@ -370,7 +369,7 @@ class PackageManager(object, metaclass=ABCMeta):
self._handle_intercept_failure(registered_pkgs)
def run_intercepts(self):
def run_intercepts(self, populate_sdk=None):
intercepts_dir = self.intercepts_dir
bb.note("Running intercept scripts:")
@@ -382,7 +381,8 @@ class PackageManager(object, metaclass=ABCMeta):
if script == "postinst_intercept" or not os.access(script_full, os.X_OK):
continue
if script == "delay_to_first_boot":
# we do not want to run any multilib variant of this
if script.startswith("delay_to_first_boot"):
self._postpone_to_first_boot(script_full)
continue
@@ -392,9 +392,22 @@ class PackageManager(object, metaclass=ABCMeta):
output = subprocess.check_output(script_full, stderr=subprocess.STDOUT)
if output: bb.note(output.decode("utf-8"))
except subprocess.CalledProcessError as e:
bb.warn("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
bb.note("Exit code %d. Output:\n%s" % (e.returncode, e.output.decode("utf-8")))
self._postpone_to_first_boot(script_full)
if populate_sdk == 'host':
bb.warn("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
elif populate_sdk == 'target':
if "qemuwrapper: qemu usermode is not supported" in e.output.decode("utf-8"):
bb.warn("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s"
% (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
else:
bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
else:
if "qemuwrapper: qemu usermode is not supported" in e.output.decode("utf-8"):
bb.note("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s"
% (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
self._postpone_to_first_boot(script_full)
else:
bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
@abstractmethod
def update(self):

View File

@@ -259,3 +259,37 @@ def is_path_parent(possible_parent, *paths):
if not path_abs.startswith(possible_parent_abs):
return False
return True
def which_wild(pathname, path=None, mode=os.F_OK, *, reverse=False, candidates=False):
"""Search a search path for pathname, supporting wildcards.
Return all paths in the specific search path matching the wildcard pattern
in pathname, returning only the first encountered for each file. If
candidates is True, information on all potential candidate paths are
included.
"""
paths = (path or os.environ.get('PATH', os.defpath)).split(':')
if reverse:
paths.reverse()
seen, files = set(), []
for index, element in enumerate(paths):
if not os.path.isabs(element):
element = os.path.abspath(element)
candidate = os.path.join(element, pathname)
globbed = glob.glob(candidate)
if globbed:
for found_path in sorted(globbed):
if not os.access(found_path, mode):
continue
rel = os.path.relpath(found_path, element)
if rel not in seen:
seen.add(rel)
if candidates:
files.append((found_path, [os.path.join(p, rel) for p in paths[:index+1]]))
else:
files.append(found_path)
return files

Some files were not shown because too many files have changed in this diff Show More