aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-04-16oeqa: add selftest for python pgomarquiz/fixes-9338Markus Lehtonen
Check that we're able to run python profile task on qemu and that python builds when pgo is enabled. [YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16python3: add python3-tools subpackageMarkus Lehtonen
Useful in developing Python, e.g. in benchmarking. [YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16python3: fix profile-optimized build of modulesMarkus Lehtonen
Without this the pgo-related compiler flags are not used in cross-builds. [YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16python3: support profile optimized buildMarkus Lehtonen
This patch makes it possible to build python3 with profile directed optimization. That is, feed python build process with profile data to guide optimization. This is the third (and the last) step in profile directed optimization for Python 3.x. In order to do a profile-optimized build you need to specify PYTHON3_PROFILE_OPT = "1" in your local.conf, and, have profile data available in the location pointed to by PYTHON3_PROFILE_DIR. Profile data can be obtainen e.g. by running bitbake python-pgo-image -c profile3. [YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16devtools/images: add python-pgo-imageMarkus Lehtonen
This is a special image for profiling Python 3.x in order to utilize profile-guided-optimization. Profile data can be obtained by by running bitbake python-pgo-image -c profile. Profile data will be copied into a directory pointed by PYTHON3_PROFILE_DIR on the host system. The profile task may be specified with PYTHON3_PROFILE_TASK. The default profile task is pybench, although an example for using test.regrtest is included in the recipe. [YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16oeqa/targetcontrol: add missing arg to SimpleRemoteTarget.__init__Markus Lehtonen
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16oeqa/targetcontrol: re-introduce get_target_controller()Markus Lehtonen
This function was dropped in f352ef37a27cb0871c87cf9991d8ad2e1d560fde as unused, but, python-pgo-image needs it for running profile task on target hw. [YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16iproute2: enable nativeMarkus Lehtonen
[YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16iptables: enable nativeMarkus Lehtonen
[YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16openssh: extend to -nativeMarkus Lehtonen
[YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16python3-profile-opt: rename libpython3Markus Lehtonen
Prevents soname clash with "normal" libpython3. The python library needs to be renamed so that the automatic ndency generation/checking mechanism in bitbake does not get confused. Otherwise python3-profile-opt will depend on libpython3 from the "normal" python3 package. [YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16python3: add python3-profile-opt recipeMarkus Lehtonen
This patch adds a new recipe that builds a special version of python3 that produces profile data used for optimization. The new recipe directly includes the base python recipe so that they are build in as similar way as possible and this hopefully decreases the recipe maintenance burden, too. Also, its files clash with the "normal" python3 so they cannot be installed in an image at the same time. Normally, profile-guided-optimization in Python is done simply by doing "make profile-opt" which first builds python with profile instrumentation enabled, then runs a profile task to get the profile data, and last, re-builds python with profile data guiding the optimization. However, in our cross-build environment this gets a lot trickier. We need to split out the steps as building is done on the build host but we need to run the second step (i.e. run the profile task) on the target hardware. This patch enables the first step, i.e. building python with profile instrumentation enabled [YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16python3: fix depends of python3-testsMarkus Lehtonen
Similar to an earlier fix for Python 2.7. Make the tests subpackage depend on all modules as test.regrtest uses most (if not all) of them. [YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-16python3-native: support profile optimized buildMarkus Lehtonen
Make it possible to build python3-native with profile directed optimization enabled. The feature is enabled by specifying PYTHON3_NATIVE_PROFILE_OPT = "1" in local.conf. The profile task to be run may be specified with PYTHON3_NATIVE_PROFILE_TASK variable in local.conf, e.g. PYTHON3_NATIVE_PROFILE_TASK = "${S}/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck" [YOCTO #9338] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2018-04-13scripts/test-dependencies.sh: removeMartin Jansa
* with RSS used in pyro this script isn't very useful anymore * RSS makes sure that the dependencies are almost always deterministic the only case known to me where dependencies are different based on what was already built in TMPDIR are runtime dependencies resolved by shlibs code in package.bbclass (which is using global pkgdata, not specific to given recipe and its RSS) as described here: https://bugzilla.yoctoproject.org/show_bug.cgi?id=9217#c4 but for this case it's not worth running complete test-dependencies.sh runs Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13xserver-nodm-init: Respawn service in case of failureRamon Fried
It appears that sometimes xserver-nodm.service is starting before display driver finished loading causing the following failure in Xorg log: (EE) open /dev/dri/card0: No such file or directory The introduced by this patch is to restart the service, hopefully the display driver will finish loading. Signed-off-by: Ramon Fried <rfried@codeaurora.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13valgrind: fix the shared object issue while prelink ptestZhixiong Chi
If valgrind-ptest is installed, we will get the some prelink error like below at do_image: .../usr/sbin/prelink: /usr/lib64/valgrind/ptest/memcheck/tests/wrap7:\ Could not find one of the dependencies: \ .../usr/sbin//prelink-rtld: error \ while loading shared libraries: wrap7so.so: cannot open shared \ object file: No such file or directory The wrap7 needs to link the shared object in the path /usr/lib64/valgrind/ptest/memcheck/tests, but it fails. So we correct the path for ptest. Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13distro: default: Change Go default version to 1.9Otavio Salvador
For the time being, there is a serious bug[1] in Go 1.10 when it comes to use the shared runtime support which cases problems in multiple projects. 1. https://github.com/golang/go/issues/24640 It is still unclear if the problem arises from a bug inside the compiler itself or it makes a real problem more visible. Either way, using 1.10 as default seems to be a risk so we are changing back to 1.9 for now. Refs: [YOCTO: #12631] Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13patch: fix CVE-2018-1000156Jackie Huang
* CVE detail: https://nvd.nist.gov/vuln/detail/CVE-2018-1000156 * upstream tracking: https://savannah.gnu.org/bugs/index.php?53566 * Fix arbitrary command execution in ed-style patches: - src/pch.c (do_ed_script): Write ed script to a temporary file instead of piping it to ed: this will cause ed to abort on invalid commands instead of rejecting them and carrying on. - tests/ed-style: New test case. - tests/Makefile.am (TESTS): Add test case. Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13patch: fix CVE-2018-6951Jackie Huang
* CVE detail: https://nvd.nist.gov/vuln/detail/CVE-2018-6951 * upstream tracking: http://savannah.gnu.org/bugs/?53132 * Fix segfault with mangled rename patch - src/pch.c (intuit_diff_type): Ensure that two filenames are specified for renames and copies (fix the existing check). Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13icecc.bbclass: Bump version numberJoshua Watt
Bump the version number for force remotes to use a newly generated environment, since the old one potentially had a few bugs Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13icecc.bbclass: Improve error reportingJoshua Watt
Improve reporting when the icecream environment cannot be created by assigning the flock call a specific error number when the lock fails so it can be distinguished from environment creation errors. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13icecc.bbclass: Add ICECC_ENV_DEBUG variableJoshua Watt
The ICECC_ENV_DEBUG variable can be set in local.conf to pass additional debugging options to the Icecream toolchain creation script. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13icecc-create-env: Add extra tools optionJoshua Watt
It can often be useful to include additional debugging tools the toolchain such as strace. Add an option to include an arbitrary path. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13icecc-create-env: Fix library interpreter usageJoshua Watt
Shared libraries sometimes (frequently?) don't have a program interpreter specified. The previous code would fail to find the library dependencies in these cases because no interpreter could be found. Commonly, this meant that if a library depends on another library, it might not be included toolchain because dependency scanning stops with the first one. Instead, capture the program interpreter from the program or library that starts the dependency chain and use that interpreter to get all of the dependencies in the chain, recursively. Additionally, if no interpreter can be found, fallback to using ldd Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13icecc-create-env: Fix RUNPATH filesJoshua Watt
Some newer libraries and programs use RUNPATH to specify the library search path. These executables were being skipped by the rpath fixup code because it was grepping the ELF header for RPATH only. A more correct solution is to ask patchelf to report the rpath, as that tool will properly report either RPATH or RUNPATH as appropriate. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13icecc-create-env: Allow logging to a fileJoshua Watt
Modifies the icecc-create-env script so that it can log output to a log file. In addition, a --debug flag is added that allows verbose logging. Finally, the silent flag was removed since it was never used in icecc.bbclass Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13dhcp: Security Advisory - CVE-2017-3144Yue Tao
Fix CVE-2017-3144 References: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3144 https://kb.isc.org/article/AA-01541 Patch from: https://source.isc.org/cgi-bin/gitweb.cgi?p=dhcp.git;a=commitdiff;h=5097bc0559f592683faac1f67bf350e1bddf6ed4 Signed-off-by: Yue Tao <Yue.Tao@windriver.com> Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13gconf: fix saving of settings when config folder doesnt existJaewon Lee
In some circumstances, gconf isn't able to save configurations because ~/.config folder aka root_dir doesn't exist. For example when saving settings using matchbox-appearance, the following error is shown: GConf Error: Configuration server couldn't be contacted: D-BUS error: Can't overwrite existing read-only value: Value for `/desktop/poky/interface/font_name' set in a read-only source at the front of your configuration path This issue was not seen before because ~/.config directory is shared between several packages and one of those packages usually creates it by the time gconf wants to use it. This patch makes sure that gconf creates the .config directory if it doesn't exist, along with the gconf directory inside it. [YOCTO #12632] Signed-off-by: Alejandro Hernandez <alejandr@xilinx.com> Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13bootchart2: update canonical git URLRoss Burton
/mmeeks/bootchart.git is redirecting to /xrmx/bootchart.git so update SRC_URI to match. Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13python3: Add recommended modules to nativesdk installTom Hochstein
The python3 installation in the SDK did not include the minimum set of modules to be functional, particularly in the case where Python is brought in through dependencies. Rather than requiring the user to explicitly add the modules, it's better to pull in the modules through RRECOMMENDS. Note that the Python 2 recipe already does this. Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13meta: add missing Signed-off-by and Upstream-Status tagsRoss Burton
Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13linux-yocto/4.14/4.15: deterministic srcversionBruce Ashfield
Author: Juro Bystricky <juro.bystricky@intel.com> Date: Fri Mar 30 10:14:05 2018 -0700 modpost: srcversion sometimes incorrect "srcversion" field inserted into module modinfo section contains a sum of the source files which made it. However, this field can be incorrect. Building the same module can end up having inconsistent srcversion field eventhough the sources remain the same. This can be reproduced by building modules in a deeply nested directory, but other factors contribute as well. The reason for incorrect srcversion is that some source files can be simply silently skipped from the checksum calculation due to limited buffer space for line parsing. This patch addresses two issues: 1. Allocates a larger line buffer (32k vs 4k). 2. Issues a warning if a line length exceeds the line buffer. Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13linux-yocto-tiny/4.14: fix recipe nameBruce Ashfield
I guess not many people are building linux-yocto-tiny for v4.15, given that I managed to mangle the name of the recipe when I introduced it. [YOCTO #12640] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13linux-yocto/4.14: add elfutils, util-linux and openssl dependenciesBruce Ashfield
4.15+ already has the following dependencies: DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" Updates to 4.14 via the -stable releases have also introduced the same dependencies to 4.14's "make scripts". As such, we bring the same lines into 4.14 to restore the ability to build scripts. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13populate_sdk_base: use xz -T instead of pixzRoss Burton
xz has native support for threaded compression now and SDK creation was the only part of oe-core which is using pixz instead of xz. Not only does this remove pixz-native from the SDK dependencies, but in my limited testing xz -T0 is slightly faster and produces smaller archives than pixz for the same input. Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13image_types: use pigz to create .gz filesRoss Burton
Since pigz is no longer a drop-in replacement for gzip (oe-core 1624b7b) the image creation has been using gzip instead of pigz, despite still depending on pigz-native. Fix this by invoking pigz explicitly. Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-09license.bbclass: be a bit more strict when searching ↵Martin Jansa
${PN}-${LICENSE_PACKAGE_SUFFIX} in packages * linux-firmware contains ${PN}-license package since this commit: commit 1ee083da0730408fffdbbf5f29abc299c0e61be9 Author: Jackie Huang <jackie.huang@windriver.com> Date: Mon Apr 13 10:17:21 2015 +0800 linux-firmware: fix the mess of licenses * LICENSE_CREATE_PACKAGE functionality in license.bbclass when enabled adds new package with suffix: LICENSE_PACKAGE_SUFFIX ??= "-lic" but then it checks if ${PN}-${LICENSE_PACKAGE_SUFFIX} is included in PACKAGES before adding it and when found it shows: WARNING: linux-firmware-1_0.0+gitAUTOINC+4c0bf113a5-r0 do_package: linux-firmware-lic package already existed in linux-firmware. and doesn't add the ${PN}-lic to PACKAGES and causes another warning: WARNING: linux-firmware-1_0.0+gitAUTOINC+4c0bf113a5-r0 do_package: QA Issue: linux-firmware: Files/directories were installed but not shipped in any package: /usr /usr/share /usr/share/licenses /usr/share/licenses/linux-firmware that's because it was searching ${PN}-lic in PACKAGES as a string so it found ${PN}-lic as a substring of ${PN}-license, add a split to search in an list Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-09libxcrypt: add -std=gnu99 to BUILD_CPPFLAGSMartin Jansa
* add it to allow older distributions e.g. Ubuntu 14.04 with gcc 4.8 to build this, otherwise it fails with: ../git/gen-des-tables.c: In function 'write_table_u8': ../git/gen-des-tables.c:307:3: error: 'for' loop initial declarations are only allowed in C99 mode for (size_t i = 0; i < m; i++) ^ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-09rpm: build without dbus for rpm-nativeChen Qi
Add option for dbus in configure.ac, and explicitly build without dbus for rpm-native. Previously, the rpm recipe tries to prevent rpm-native from attempting to inhibit shutdown via session dbus by appending '--disable-plugins' to EXTRA_OECONF in case of native. However, some layer may need some functionality via plugin support. And when it enables it, we would meet the following warning at rootfs time. Unable to get systemd shutdown inhibition lock: Socket name too long As plugins/systemd_inhibit.c is the only place that's related to this dependency, we can be sure that dbus is really not needed for rpm-native. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-09yocto-check-layer: add a test for correct setting of ↵Alexander Kanavin
LAYERSERIES_COMPAT_collection [YOCTO #12661] Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-07license.bbclass: Minor simplification of get_deployed_dependencies()Peter Kjellerstedt
Since ${SSTATE_ARCHS} now contains ${PACKAGE_EXTRA_ARCHS} there is no longer any need to add those extra architectures to the list of architectures handled in get_deployed_dependencies(). Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-07sstate.bbclass: Add ${PACKAGE_EXTRA_ARCHS} to SSTATE_ARCHSPeter Kjellerstedt
This makes sure files provided by packages that use any of the extra architectures defined using ${PACKAGE_EXTRA_ARCHS} are cleaned from tmp/sysroot-components when sstate_eventhandler2() executes. Without this, changing a package from using one of the extra architectures to another architecture would lead to files being leftover in tmp/sysroot-components, which could later be picked up when creating the RSS for another package rather than the files that belonged to the updated package. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-07classes: Use ${MACHINE_ARCH} instead of ${MACHINE} for stamp-extra-info task ↵Peter Kjellerstedt
flag Without this change, there will be two sstate index files in tmp/sstate-control for any machine that contains a dash in the name. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-07nativesdk-glibc: Split glibc and libcrypt to use libxcrypt insteadRichard Purdie
Fedora28[1] has decided to go ahead and use libxcrypt to replace libcrypt from glibc despite the change not having merged into glibc upstream yet. This breaks the use of uninative in OE on fedora28 since binaries there are now using new symbols only found in libxcrypt. libxcrypt is meant to be backwards compatible with libcrypt but not the reverse. Since this will impact OE in the next release cycle, this changes nativesdk only to use this new model and adds libxcrypt to work in that case. This allows us to build a uninative which is compatible with fedora28 and previous other OSes. In order to work, recipes will now need to depend on virtual/crypt where they use libcrypt since its now a separate library and we can't depend on it from glibc to preseve backwards compatibility since glibc needs to build first. For now, only the problematic nativesdk recipes have been fixed up. For target use, the default provider remains glibc for now. Assuming this change is merged into upstream glibc, we will need to roll this change out for the target but we will do this in the next release cycle when we can better deal with the resulting bugs. [1] https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt Original patch from Charles-Antoine Couret <charles-antoine.couret@essensium.com>, tweaked by RP to add virtual provides, SkipRecipe for libxcrypt and other minor tweaks. Signed-off-by: Charles-Antoine Couret <charles-antoine.couret@essensium.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-07devtool: Ensure added layer sets LAYERSERIES_COMPATRichard Purdie
Now that we see warnings if LAYERSERIES_COMPAT is unset, the auto generated code from devtool needs to set this to avoid warnings which break various tests. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-07devtool/oeqa: Ensure added layers set LAYERSERIES_COMPATRichard Purdie
Now that we see warnings if LAYERSERIES_COMPAT is unset, the auto generated code from devtool/oeqa needs to set this to avoid warnings which break various tests. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-07Revert "python3: fix create_manifest to handle pycache folders"Richard Purdie
Alejandro asked this be reverted as the patch causes more problems than it solves. This reverts commit 5d288d286e0adb221649d896c132a607ecddc490.
2018-04-07perl: add patch to solve libcrypt incompatibilityCharles-Antoine Couret
Add Perl's patch submitted to upstream to be compiled along with glibc with libcrypt split. Signed-off-by: Charles-Antoine Couret <charles-antoine.couret@essensium.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-06hello-mod_0.1.bb: add RPROVIDESJuro Bystricky
Although the package will get an automatic prefix "kernel-module", so the package kernel-module-hello does exist, populating rootfs can generate an error: - nothing provides kernel-module-hello ... This is quite unfortunate, as this recipe is used as a sample. Adding RPROVIDES_${PN} += "kernel-module-hello" to the recipe fixes the problem. [YOCTO #12641] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>