summaryrefslogtreecommitdiffstats
path: root/meta/classes
Commit message (Collapse)AuthorAgeFilesLines
* testimage.bbclass: define ptest suite variableArmin Kuster2018-10-251-0/+1
| | | | | | | | | | | Ptest has dependencies on other tests so contain them in a variable. This allows layers to not worry about maintaining the depends themselves. (From OE-Core rev: c5c5ad9030ec7ddaa6387e2ba52e9e37b9ea76a2) Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel.bbclass: allow custom KERNEL_IMAGEDESTIoan-Adrian Ratiu2018-10-251-1/+1
| | | | | | | | | | | Some distros want to install the kernel in a custom location other than /boot and have it properly packaged, so it's useful to use a weaker assignment. (From OE-Core rev: cadd91655a336eb6d65ca43dc1231bbe5271e1cf) Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* npm.bbclass: allow overriding NPM_INSTALL_DEVJef Driesen2018-10-251-1/+1
| | | | | | | | | | | Commit b1f10b18eaf6c8009e86863ca4a26f429de97082 added the NPM_INSTALL_DEV variable. But due to the use of simple assignment, a recipe can't override its value. (From OE-Core rev: b53d5094d5e05f9c1955c8565d777ad74f668f7e) Signed-off-by: Jef Driesen <jef.driesen@niko.eu> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* npm: change install directory to upstream defaultRichard Purdie2018-10-251-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The node binary searches for packages in a number of locations, the last of which is $PREFIX/lib/node (here: /usr/lib/node) from the list of GLOBAL_FOLDERS [1]. So change the installation directory for all packages depending on npm.bbclass to that location. This removes the need to define the NODE_PATH variable to the non-standard /usr/lib/node_modules value. While the Tips for Package Managers [2] discusses installing packages to /usr/lib/node_modules/<name>/<version>, this has several drawbacks: * it does not work for the REPL as mentioned in the documentation * it also does not work for any code _not_ installed as a global package under /usr/lib/node_modules (e.g. /usr/share/foo.js will not find any packages below /usr/lib) * using the non-default location and then having to set NODE_PATH barely saves any time: there are only two file-system lookups (to the legacy $HOME/.node_modules and $HOME/.node_libraries) directories before the library would be found And the suggestion was made in the context of deduping the node_modules tree by installing all packages in a flat hierarchy and using symlinks to the correct version of each dependency. This is not what OpenEmbedded does, so none of those benefits (deduping, cleaner packages) are being had by shifting the installation directory to /usr/lib/node_modules. The choice of a "proper" installation path is not helped by npm installing to /usr/lib/node_modules if asked to install globally. Still, using the location expected by nodejs (/usr/lib/node) seems the right choice. [1]: https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders [2]: https://nodejs.org/api/modules.html#modules_addenda_package_manager_tips (From OE-Core rev: c73bc49038effd64f2c2542c1f4da8b6a4168477) Signed-off-by: Olaf Mandel <o.mandel@menlosystems.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* npm: change install directory to upstream defaultOlaf Mandel2018-10-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The node binary searches for packages in a number of locations, the last of which is $PREFIX/lib/node (here: /usr/lib/node) from the list of GLOBAL_FOLDERS [1]. Change the installation directory for all packages depending on npm.bbclass to that location. This removes the need to define the NODE_PATH variable to the non-standard /usr/lib/node_modules value. While the Tips for Package Managers [2] discusses installing packages to /usr/lib/node_modules/<name>/<version>, this has several drawbacks: * it does not work for the REPL as mentioned in the documentation * it also does not work for any code _not_ installed as a global package under /usr/lib/node_modules (e.g. /usr/share/foo.js will not find any packages below /usr/lib) * using the non-default location and then having to set NODE_PATH barely saves any time: there are only two file-system lookups (to the legacy $HOME/.node_modules and $HOME/.node_libraries) directories before the library would be found And the suggestion was made in the context of deduping the node_modules tree by installing all packages in a flat hierarchy and using symlinks to the correct version of each dependency. This is not what OpenEmbedded does, so none of those benefits (deduping, cleaner packages) are being had by shifting the installation directory to /usr/lib/node_modules. [1]: https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders [2]: https://nodejs.org/api/modules.html#modules_addenda_package_manager_tips (From OE-Core rev: 2036137151929b541293154ff529475071cd92b0) Signed-off-by: Olaf Mandel <o.mandel@menlosystems.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool-source.bbclass: Only create each patch branch onceOlof Johansson2018-10-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | For conditonally applied patches based on SRC_URI overrides, the devtool-source class would try to create a new branch for each override assignment as a postfunc to do_patch, but if the same override was used multiple times, it would try to create the same branch multiple times, causing errors like > Exception: bb.process.ExecutionError: Execution of \ 'git checkout f0f0f0f0f0ff0f0f0f0f0f0f0f0f0f0f0ff0f0f0 -b devtool-override-foo' \ failed with exit code 128: > fatal: A branch named 'devtool-override-foo' already exists. This change makes sure that the devtool-source bbclass will only create one branch per override. (From OE-Core rev: 95a921959d340f74b5604df57737c1eeaad0023e) Signed-off-by: Olof Johansson <olofjn@axis.com> Reviewed-by: Peter Kjellerstedt <pkj@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image_types: Fix a shell syntax error in do_image_ubiRichard Purdie2018-10-201-1/+1
| | | | | | | | | | DEBUG: Executing shell function do_image_ubi | /home/pokybuild/yocto-worker/nightly-oe-selftest/build/build-st-31289/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/temp/run.do_image_ubi.7928: 123: [: missing ] (From OE-Core rev: e1c6442872c9361b6b61a83adcce9cade2f2ecd2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/classes/testexport: Remove __pycache__ from exported testsAníbal Limón2018-10-181-0/+5
| | | | | | | | | | The __pycache__ is created based on python3 version in the build machine and isn't a garantee to be useful on the system that runs exported tests. (From OE-Core rev: 405e822e9da4b53ec9ee8019364fdcb13ccc2587) Signed-off-by: Aníbal Limón <anibal.limon@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs: possibility to add packages to debug rootfsAndrej Valek2018-10-182-2/+4
| | | | | | | | | | | Static libraries are not included in rootfs, it means, that sources are not going into debug rootfs. This option enables to install additional packages even if the standard package is not installed. (From OE-Core rev: 708fe1df3d3e22dd693ae7bbfdd3e5af1a1b0bdc) Signed-off-by: Andrej Valek <andrej.valek@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* update-rc.d: add -f into postinst OPTChangqing Li2018-10-161-2/+2
| | | | | | | | | | | | | | | | | | add -f into postinst OPT to fix run postinst scriptlet fail problem during do rootfs, while INITSCRIPT_PARAMS set to remove. + type update-rc.d + '[' -n qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs ']' + OPT='-r qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs' + update-rc.d -r work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs keepalived remove update-rc.d: work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs/etc/init.d/keepalived exists during rc.d purge (use -f to force) D: %post(keepalived-1.4.2-r0.core2_64): waitpid(305974) rc 305974 status 100 (From OE-Core rev: 45224526edbe65012a846c066d2b539a360f0c51) 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>
* gobject-introspection.bbclass: fix gir installed but not shipped in any ↵Hongxu Jia2018-10-161-1/+1
| | | | | | | | | | | | | | | | package while multilib enabled Since commit [9524330 gobject-introspection: fix multilib install file conflicts] applied in oe-core, while multilib enabled, gir files will be installed to `${libdir}'. Refer above commit, modify gobject-introspection.bbclass to split gir to package correctly. (From OE-Core rev: e0cc1dc6f1c14babe29a29a7211dc1c69d782b95) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* useradd_base.bbclass: Make perform_groupmems handle overlapping usernamesPeter Kjellerstedt2018-10-161-2/+2
| | | | | | | | | | | | | If the name of the last user being part of the group had a name that was a prefix of the user being added, then perform_groupmems() would treat it as if the user already existed in the list of users and not add it. Reported-by: Peter Henricsson <peter.henricsson@axis.com> (From OE-Core rev: 3bab0416f20366e75444be9b65fb1369643f103a) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meson.bbclass: Fix build issues with /tmp mounted with noexecMark Asselstine2018-10-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit d297f7ebf3f6 [fribidi: use Meson instead of autotools] build failures have been observed with this package. The immediate issue was related to improperly named #defines per https://github.com/fribidi/fribidi/commit/46f52d588ab5, however, the root cause was FRIBIDI_SIZEOF_INT getting a value of "-1". After searching the meson logs the following was found: Could not run: /tmp/tmp2fxe6ha1/output.exe (error: [Errno 13] Permission denied) Checking for size of "int": -1 Which pointed to the real root cause being /tmp mounted with noexec, a common configuration on Redhat and other distros. This issues has been raised in the meson community: https://github.com/mesonbuild/meson/issues/2972 but is yet to be addressed. Using the discussion from issue#2972 and the fact that the underlying code makes use of python 'tempfile' we can simply create a 'tmp' directory and make use of TMPDIR to avoid this issue. (From OE-Core rev: 9800daf59d2235bc492d1aeb600e46ad62303510) Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* testimage: Ensure opkg/apt test suites are runRichard Purdie2018-10-121-6/+10
| | | | | | | | | | Currently only the dnf package manager tests are automatically added to the list of tests to run. Improve the code to handle automatic addition of the apt and opkg tests too. (From OE-Core rev: c9169e4d1fa67289d5beb0e1f8fb5c54153c4242) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* testimage: Ensure package-index is triggered for opkg/apt testsRichard Purdie2018-10-111-2/+2
| | | | | | | | | If the opkg/apt tests are run without a package-index they will fail. Trigger this here for now as a dependency until the code can be improved. (From OE-Core rev: 7805eec0f522da2d2b6a08c8a07a9243e26c014a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* testimage: Ensure TESTIMAGEDEPENDS is appended to for qemuall overrideRichard Purdie2018-10-111-3/+3
| | | | | | | | | The current qemuall override overwrites other dependencies unintentionally. Tweak the code to avoid this by appending to the variable. (From OE-Core rev: fc8df45e6b27dd7a26b7bf88a06ffa831fcf075c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/utils: add eol to format_pkg_list()grygorii tertychnyi via Openembedded-core2018-10-111-1/+0
| | | | | | | | | | | | | | | | | Append '\n' to the non-empty formatted string before return. If you write it to the (manifest) file, it will ensure file ends with a newline. Many GNU utilities have problems processing the last line of a file if it is not '\n' terminated. E.g. if the last line is not terminated by a newline character, then "read" will read it but return false, leaving the broken partial line in the read variable(s). It can also break or adversely affect some text processing tools, that operate on the file. (From OE-Core rev: ee4d0c879713ba50dc6cc3300f44647faebee2e0) Signed-off-by: grygorii tertychnyi <gtertych@cisco.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver: remove left-over debuggingRoss Burton2018-10-101-1/+0
| | | | | | | (From OE-Core rev: 6fe833611f985198e3ca038e5095f0d03249ce82) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_ext.bbclass: avoid populating tools twiceJens Rehsack2018-10-101-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running `bitbake -c populate_sdk_ext ...` for an image recipe inheriting populate_sdk_qt5, `nativesdk-qemu-helper` is deployed via `nativesdk-packagegroup-sdk-host`, which already contains some of the tools (by name: "oe-find-native-sysroot runqemu*"). To avoid error like: Configuring nativesdk-packagegroup-qt5-toolchain-host. NOTE: Running intercept scripts: NOTE: > Executing update_gio_module_cache-nativesdk intercept ... NOTE: + [ True = False ] + qemu-x86_64 -r 3.2.0 -E LD_LIBRARY_PATH=/home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image/opt/mops/2.5+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib:/home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image/opt/mops/2.5+snapshot/sysroots/x86_64-pokysdk-linux/lib -L /home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image /home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image/opt/mops/2.5+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/nativesdk-gio-querymodules /home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image/opt/mops/2.5+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/gio/modules/ NOTE: Executing copy_buildsystem ... DEBUG: Executing python function copy_buildsystem NOTE: Generating sstate task list... NOTE: Generating sstate-cache... NOTE: Generating sstate-cache... DEBUG: Python function copy_buildsystem finished NOTE: Executing install_tools ... DEBUG: Executing shell function install_tools Traceback (most recent call last): File "/home/sno/gpw-community-bsp/sources/poky/scripts/lnr", line 21, in <module> os.symlink(target, linkname) FileExistsError: [Errno 17] File exists: '../../../../layers/poky/scripts/oe-find-native-sysroot' -> '/home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image//opt/mops/2.5+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/oe-find-native-sysroot' WARNING: exit code 1 from a shell command. DEBUG: Python function do_populate_sdk_ext finished only add those tools unpackaged to the deployment which are still missing. (From OE-Core rev: 3274819ce3bb64316853c6f0bb7840c38635c26c) Signed-off-by: Jens Rehsack <sno@netbsd.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_base: move template files location to variablesAndrej Valek2018-10-101-4/+7
| | | | | | | | | | Let users to use custom toolchain template files instead of overloading the whole function. (From OE-Core rev: d4d5fdadaf2f671559326ab594fb596995846ca4) Signed-off-by: Andrej Valek <andrej.valek@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs_*: Also depend on do_package_qaTom Rini2018-10-093-3/+3
| | | | | | | | | | Make sure that we don't create images that have QA problems with their package files by adding do_package_qa to do_rootfs[recrdeptask]. (From OE-Core rev: 4ee2f87f0c9540c7e2c866dbc9739e21a618bddf) Signed-off-by: Tom Rini <trini@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* externalsrc.bbclass: Set BB_DONT_CACHE for non-target recipesOla x Nilsson2018-10-081-2/+2
| | | | | | | | | | | BB_DONT_CACHE was not set for non-virtual recipes where PN != BPN, such as quilt-native. Recipes that do not set BBCLASSEXTEND should always have BB_DONT_CACHE set by externalsrc. (From OE-Core rev: 4eff427a0ee629a1541a420a9591411648569a97) Signed-off-by: Ola x Nilsson <olani@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-arch.bbclass: add m68k to kernel arch mapAngelo Dureghello2018-10-081-0/+1
| | | | | | | (From OE-Core rev: 69be35a58ce4122763c833e13cdbcc8e7fb9c52d) Signed-off-by: Angelo Dureghello <angelo@sysam.it> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* siteinfo: define data for m68kAngelo Dureghello2018-10-081-0/+1
| | | | | | | (From OE-Core rev: d8c2a5fa7d59580dd70b7ec57450e3b7c9a7d048) Signed-off-by: Angelo Dureghello <angelo@sysam.it> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go.bbclass: Add -buildmode=pie for non mips archRobert Yang2018-10-011-0/+10
| | | | | | | | | | Fixed QA issue like: WARNING: runc-docker do_package_qa: QA Issue: ELF binary '/path/to/runc-docker/usr/bin/runc' has relocations in .text [textrel] (From OE-Core rev: 8dcd4e6e791c3a8b8bf5e69dca9bb9c887231d69) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver: generalise task running when in configured modeRoss Burton2018-10-011-13/+19
| | | | | | | | | | | | | | | When in configured mode the archive will re-run configure itself, but that doesn't work if there are other tasks that need to run such as cmake's generate_toolchain_file. Instead of hard-coding a list of classes and tasks, obtain the list of tasks preceeding do_configure, filter out ones we don't want to re-run such as do_patch and do_prepare_recipe_sysroot, and run those too. (From OE-Core rev: fe26382f94d8cb7d2453d9937aee451b757252b8) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver: check tasks exist before adding dependenciesRoss Burton2018-10-011-2/+5
| | | | | | | | | | | | Some recipes don't have do_configure, or have them but are marked as noexec. Check for their existance before hooking up dependencies. [ YOCTO #12868 ] (From OE-Core rev: 5c8aa1f41f04519a8ba3997c0d8e3a71fe270fae) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* multilib: avoid expanding grub and grub-efi to multilibRobert Yang2018-10-012-3/+10
| | | | | | | | | | | | | | | | | | | | | | It doesn't make much sense to expand them to multilib, and there is an error on qemuarm64 since grub-efi supports arm64, but doesn't support armv7a or armv7ve: * Fixed: MACHINE = "qemuarm64" require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "armv7a" MACHINE_FEATURES_append = " efi" $ bitbake lib32-core-image-minimal Also introduced a variable NON_MULTILIB_RECIPES in multilib.conf, so that we can easily add other recipes, such as syslinux if needed. (From OE-Core rev: 25f7c6c329038b443d36074fff45a30ba3712f7a) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* mime.bbclass: fix do_package_qa_multilib error of lib32-fltkChangqing Li2018-10-011-1/+1
| | | | | | | | | | | | | | | fltk.bb inherit mime.bbclass, mime.bbclass add RDEPEND during populate_package, so need add mlprefix manually. ERROR: QA Issue: lib32-fltk package lib32-fltk-dev - suspicious values 'shared-mime-info-data-dev' in RRECOMMENDS [multilib] ERROR: QA Issue: lib32-fltk package lib32-fltk-bin - suspicious values 'shared-mime-info-data' in RDEPENDS [multilib] (From OE-Core rev: 5a26b03c9f73822554ea969e42bca82217dfd3f8) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* multilib.bbclass: fix do_package_qa_multilib errorChangqing Li2018-10-011-1/+2
| | | | | | | | | | | | | | lib32-packagegroup-anaconda-support have RDEPENDS to kernel-image, but kernel-image don't have lib32, so skip it. ERROR: QA Issue: lib32-packagegroup-anaconda-support package lib32-packagegroup-anaconda-support - suspicious values 'kernel-image' in RDEPENDS [multilib] (From OE-Core rev: 24b8c61bf7dd13f7f371d3a910947a1fac062c6b) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto.bbclass: fix "referenced before assignment" errorMax Kellermann2018-09-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | If "scc --configs" fails, do_kernel_configcheck() crashes like this: 0338: try: 0339: configs = subprocess.check_output(['scc', '--configs', '-o', s + '/.kernel-meta'], env=env).decode('utf-8') 0340: except subprocess.CalledProcessError: *** 0341: bb.fatal( "Cannot gather config fragments for audit: %s" % configs) 0342: 0343: try: 0344: subprocess.check_call(['kconf_check', '--report', '-o', 0345: '%s/%s/cfg' % (s, kmeta), d.getVar('B') + '/.config', s, configs], cwd=s, env=env) Exception: UnboundLocalError: local variable 'configs' referenced before assignment This crash bug was introduced by commit 21de5cc43cfedc703e5bc0515507a6dae36afb74 (From OE-Core rev: 9602c03e8701c972f544001415efa92877622f57) Signed-off-by: Max Kellermann <max.kellermann@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* nativesdk.bbclass: set consistent staging dirs regardless of multilibChen Qi2018-09-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For now, the RECIPE_SYSROOT of nativesdk recipes is ${WORKDIR}/recipe-sysroot if multilib is disabled and ${WORKDIR}/nativesdk-recipe-sysroot if multilib is enabled. And it's causing chaos. Problems I've met include: 1) 'File Exists' error when doing extend_recipe_sysroot 2) Rebuilding failure about cmake based nativesdk recipes if toggling multilib In nativesdk.bbclass, We've set MULTILIBS to be "", and we've changed MLPREFIX to be 'nativesdk-', I think we should also set consistent RECIPE_SYSROOT to be ${WORKDIR}/recipe-sysroot. Below is an example showing why previous settings will cause do_prepare_recipe_sysroot failure. e.g. A -> C B -> C A's RECIPE_SYSROOT is .../recipe-sysroot and B's RECIPE_SYSROOT is .../nativesdk-recipe-sysroot. As extend_recipe_sysroot function uses shared manifest, i.e., the same manifest of C for both A and B, then there must be one of them having the wrong manifest. And the wrong manifest results in RECIPE_SYSROOT not cleaned up before installing new components, thus the following error. Exception: FileExistsError: [Errno 17] File exists: xxx -> xxx This happens when toggling multilib and also between nativesdk recipes and crosssdk, cross-canadian recipes. The latter situation also explains why choosing ${WORKDIR}/recipe-sysroot instead of ${WORKDIR}/nativesdk-recipe-sysroot. If we use 'nativesdk-recipe-sysroot', we still need to modify the extend_recipe_sysroot function to treat crosssdk and cross-canadian as special cases. Using 'recipe-sysroot' does not have this problem. (From OE-Core rev: 665934a506cc560bfbc469f5ed095e7d54e353a5) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* siteinfo: generalise siteinfoRoss Burton2018-09-251-8/+9
| | | | | | | | | | Add a function siteinfo_data_for_machine to look up the data for any arch/os pair, not just HOST_ARCH-HOST_OS. (From OE-Core rev: 7429ed8d2a6e48cb3415113ef62348ae211aa189) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meson: stop Meson using target CFLAGS in native buildsRoss Burton2018-09-251-5/+10
| | | | | | | | | | | | | | | | With the goal of autoconf-compatibility Meson respects $CFLAGS et al in builds. In cross-compiled build the cross file is the one true source of flags and the environment isn't used, but in a native build the environment will still be respected. As this can lead to target flags being used in the build for native binaries (including a single native binary inside a target recipe), export CFLAGS=${BUILD_CFLAGS) et al. (From OE-Core rev: 4ca0002860dca771836c0ce1c7a92b79a5f2db3f) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meson: pass correct endian in the cross fileRoss Burton2018-09-251-7/+13
| | | | | | | | | | | | Meson doesn't care for the value of the endian field, but packages may want to use it and Meson master now validates the value. Use siteinfo to obtain the endianism and write the correct value. (From OE-Core rev: 2f9adf05efdddf8dae9c58976ae56cf32d9e57f0) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel.bbclass: Avoid iterating over KERNEL_IMAGETYPES twiceAlex Kiernan2018-09-221-7/+4
| | | | | | | | | | | During deploy we iterate over KERNEL_IMAGETYPES twice, with no consumer of our changes in the interim. Collapse these two loops into one. (From OE-Core rev: 8d3139640ed4cd4e196dc2d1f6ae02d612fb9564) 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>
* kernel: Fix modules tarball generation with usrmergeAlex Kiernan2018-09-221-2/+2
| | | | | | | | | | | | When usrmerge is enabled the kernel modules aren't under /lib, but /usr/lib; ensure we fetch the modules from the correct location so we don't have a tarball which consists of a single symlink. (From OE-Core rev: 62d2d7d12dda69d6019a1a2d5492450487e41bfd) 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>
* kernel-fitimage: Fix dangling symlink to image tree sourceAlex Kiernan2018-09-221-1/+1
| | | | | | | | | | | When deploying the its file, the target of the symlink is missing the its extension, add it here. (From OE-Core rev: df72761760d453b2dfc7cc2fa1344bb016df9712) 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>
* Revert "kernel.bbclass: do not deploy fitImage; kernel-fitimage.bbclass does ↵Alex Kiernan2018-09-221-12/+6
| | | | | | | | | | | | | | | | that." This reverts commit 65cded55fa96b1ba72149a31689c081ac27af7f7. The fitImage deployed here is the one generated in kernel-fitimage.bbclass, whereas the one deployed by kernel-fitimage.bbclass is a raw image, so we need the one deployed here keeping. (From OE-Core rev: 798d2acc0141b13da7ddd18875a417b2df9d57b3) 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>
* kernel-uimage.bbclass: Dependency on u-boot-mkimage-native for all uImagesReto Schneider2018-09-221-1/+1
| | | | | | | | | | | | | | | | | u-boot-mkimage-native is needed to build any type of uImages, be it the uImage target itself or for example uImage.lzma. The dependency however gets only added when at least one of KERNEL_IMAGETYPE and KERNEL_ALT_IMAGETYPE is exactly uImage. Building uImage.bin and uImage.lzma is not possible this way. This patch adds a dependency to u-boot-mkimage-native for all imagetypes which contains the string uImage. (From OE-Core rev: ac4ce0b07b2742c64d44f988ecb27e7200b5a0bc) Signed-off-by: Reto Schneider <code@reto-schneider.ch> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* siteinfo.bbclass: Add LatticeMico32 architecture site infoNathan Rossi2018-09-211-0/+1
| | | | | | | | | | | Add the basic architecture site info targets for the LatticeMico32 architecture. This architecture does not target Linux. (From OE-Core rev: 216f8ea907c8ac7e580e33dcbd12c0f30608bf74) Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-arch.bbclass: Add ARC to kernel arch mapAlexey Brodkin2018-09-211-0/+1
| | | | | | | | (From OE-Core rev: d53b0b885fcf038d26d3f8aa8c5b46ec86649cea) Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* siteinfo: Define data for ARCAlexey Brodkin2018-09-211-0/+2
| | | | | | | | (From OE-Core rev: a66834f63e190377c3464ea180ccdc0262226049) Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clutter: simplify SRC_URIRoss Burton2018-09-211-6/+1
| | | | | | | | | | The Clutter class's ability to switch between tarballs and git isn't really useful, so remove it. If it comes back, it should use the devupstream class. (From OE-Core rev: 6150ec737bad895b9fb62f711449a259887ebd1b) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* distutils{, 3}.bbclass: improve error messagesJens Rehsack2018-09-212-8/+8
| | | | | | | | | | | | | For non-python developers it's difficult to identify where start searching in case of errors. Fixing and marking the string to grep for might help finding some root causes of issues slightly quicker. (From OE-Core rev: 44fff749ee7bfe47e88286aec1e8a22e63079ca7) Signed-off-by: Jens Rehsack <sno@netbsd.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* reproducible: Consistent debug loggingDouglas Royds2018-09-211-8/+11
| | | | | | | | | | | | | | | Log both the source of the source_date_epoch and the resulting source_date_epoch in all cases. Also, now that we are determining the source_date_epoch successfully for both yocto and non-yocto kernels, remove the inherits_class('kernel') exception. We will log a failure to find a source_date_epoch for kernels as well. (From OE-Core rev: 48fe0e83435f9fb53b1e5b37d5d9f1c2caccd22d) Signed-off-by: Douglas Royds <douglas.royds@taitradio.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* reproducible: Don't enforce existence of ${S} dirDouglas Royds2018-09-211-5/+1
| | | | | | | | | | Unnecessary. (From OE-Core rev: 75d5a9d72566aca7a9f08bea21523b3c66bddeae) Signed-off-by: Douglas Royds <douglas.royds@taitradio.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* reproducible: Find the git repo in WORKDIR/git or S firstDouglas Royds2018-09-211-12/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the search regime for find_git_folder(): 1. WORKDIR/git: This is the default git fetcher unpack path 2. ${S} 3. Go looking for .git/ under the WORKDIR as a last resort. linux-yocto: We had an existing (silent) defect. The linux-yocto recipes all specify two git SRC_URIs, one for the kernel source itself, the other for the kmeta data (config fragments and friends). find_git_folder() was finding the git checkout for the kmeta data, but due to a typo in the git log -1 --pretty=%ct line, we were (silently) reading the source_date_epoch from the ${S} directory = STAGING_KERNEL_DIR, which is empty. If your build/ happened to be inside a git checkout, git would walk up the directory tree, and silently read the commit timestamp from this other git checkout. The correct path to read the git commit timestamp from is the "gitpath", being that found by find_git_folder(), though this function was incorrectly finding the kmeta data checkout, not the kernel source tree. Non-kernel git recipes: The default git fetcher clones and checks out the sources at WORKDIR/git/ regardless of the setting of S (unless subpath or destsuffix is set). find_git_folder() now looks for the WORKDIR/git/.git/ directory first. Non-yocto linux kernels: Kernel recipes that don't inherit kernel-yocto should always set S = ${WORKDIR}/git, so that when base_do_unpack_append() in kernel.bbclass moves the checkout down to the STAGING_KERNEL_DIR and symlinks it as WORKDIR/git, the build can still work by following the symlink. We were previously failing to follow the symlink in the os.walk(), but we now look first for WORKDIR/git/.git/, and find it due to the symlink. If none of the above mechanisms work for finding the git checkout, perhaps there was a subpath or destsuffix specified in the SRC_URI. We go looking for the git checkout under the WORKDIR as a last resort. (From OE-Core rev: b0ddb141d36853447f85ecaac07dbc9c5779627f) Signed-off-by: Douglas Royds <douglas.royds@taitradio.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* reproducible: Rename ambiguous "path" var to sourcedir or workdir as appropriateDouglas Royds2018-09-211-18/+19
| | | | | | | | (From OE-Core rev: 01358d6a89623a38e66969daa431d2eecb1ce8a2) Signed-off-by: Douglas Royds <douglas.royds@taitradio.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* reproducible: Refactor: get_source_date_epoch_from_youngest_file()Douglas Royds2018-09-211-33/+40
| | | | | | | | (From OE-Core rev: 2c8baf6c50e5a266a1e9ac939415bd481668e17e) Signed-off-by: Douglas Royds <douglas.royds@taitradio.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>