Particularly, one test is disabled as it is failing everywhere,
two patches that actually cause failures are dropped and
some binaries are prevented from being stripped where that is
expected.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 24 Oct 2019 18:09:33 +0000 (13:09 -0500)]
reproducible: Allow configuration of saved debug output
If OEQA_DEBUGGING_SAVED_OUTPUT is set in the environment, use this location
to store reproducibile build failure output. This aids debugging on the
YP autobuilder in particular.
Use a date in the directory name to make it easier to find failure output.
Also clean up empty directories as they're unnecessary distracting noise.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 27 Jan 2020 21:54:13 +0000 (21:54 +0000)]
grep: Fix shell after autotools changes
After changing autotools.bbclass, CONFIG_SHELL setting no longer works
resulting in:
grep-3.4-r0 do_package_qa: QA Issue: /bin/fgrep.grep contained in package grep requires /bin/bash, but no providers found in RDEPENDS_grep? [file-rdeps]
The script can use /bin/sh so set this specifically using sed since we
want to use a consistent shell for the rest of the build but not have
the specific bash dependency.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 27 Jan 2020 17:37:16 +0000 (17:37 +0000)]
autotools: Give in and force CONFIG_SHELL to bash
At present, CONFIG_SHELL becomes /bin/sh if its bash and /bin/bash if not. This
isn't deterministic and leads to changes in ptest packages which include Makefiles.
At first glance you'd think we'd hardcode to /bin/sh since most system shells are sane.
Sadly the dash vs. bash leads to quoting differences in configure.
The bash default is probably the safest option since configure tries to find bash
and this is what most systems would end up using.
The end result is a more consisent build environment.
[YOCTO #13752]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Here are some highlights:
- DRM hardware planes should be used more effectively
- The DRM backend now supports HDCP
- Headless backend now supports OpenGL
- DRM backend can now be built without GBM
- EGL_KHR_partial_update is now used when available, reducing memory
bandwidth usage on some GPUs
- Logging framework improvements
- Documentation for weston can now be built
https://lists.freedesktop.org/archives/wayland-devel/2020-January/041147.html
Signed-off-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Mon, 27 Jan 2020 15:43:30 +0000 (16:43 +0100)]
nspr, nss: use ${includedir}/nspr like e.g. ubuntu does
* instead of installing all 51 nspr header files directly in ${includedir}
* ubuntu uses /usr/include/nspr as well as shown in:
https://packages.ubuntu.com/xenial/amd64/libnspr4-dev/filelist
and some components assume the same path
* update nss configure to find them, similar change might be needed in
mozjs and ecryptfs-utils
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 27 Jan 2020 11:42:32 +0000 (11:42 +0000)]
distrodata/maintainers: Add PARSE_ALL_RECIPES flag to fix test issues
Currently the test depends on which DISTRO_FEATURES and targets are selected.
Similar to SOURCE_MIRROR_FETCH, add PARSE_ALL_RECIPES to allow the test to see
a much wider range of them. This avoids issues added by the new ucontext musl
specific recipe and allows the current whitelist to be cleared out a bit (more
cleanup can follow).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Sun, 26 Jan 2020 19:27:41 +0000 (11:27 -0800)]
perf: Pass LDSHARED and CCLD via EXTRA_OEMAKE
python code underneath is smart and pokes at python installation in
sysroot for compile environment, the overrides from EXTRA_OEMAKE are
ofcourse preferred but it falls back to python3's distutils/sysconfig
for rest of them, and it does use CCLD and LDSHARED for linking, when we
use clang to compile python3 then it encodes these variables to be clang
however, when building perf we inherit kernel which forces gcc to be
used for compiling perf, which then mixes both compilers due to CCLD and
LDSHARED demands. Therefore override CCLD and LDSHARED in make
environment helps python/distutils to use right linker
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Sun, 26 Jan 2020 19:27:40 +0000 (11:27 -0800)]
ruby: Remove __has_include and __has_include_next from preprocessed header file
one of the build steps ruby has is that it generated rb_mjit_header.h
during configure using gcc preprocessor using -dD which emits built-in
defines as well, problem happens when this header is later included in
subsequent compiles, where compiler errors out stating that an existing
internal define is redefined
| /tmp/20200123-2021083-2c601q.h:13849:9: error: "__has_include" cannot be used as a macro name
| 13849 | #define __has_include __has_include
| | ^~~~~~~~~~~~~
| compilation terminated due to -Wfatal-errors.
Since compiler already will take care of it internally we can edit it
out from this header file
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Sun, 26 Jan 2020 19:27:39 +0000 (11:27 -0800)]
nss: Pass NSS_USE_ARM_HW_CRYPTO as define in CFLAGS
Use NSS_USE_ARM_HW_CRYPTO to detect USE_ARM_GCM, since there are
dependent, without this we control the crypto code function inclusion in
build but do not control the call sites, which can result in undefined
symbols e.g.
Linux_SINGLE_SHLIB/gcm.o: in function `gcmHash_InitContext':
/usr/src/debug/nss/3.49.1-r0/nss-3.49.1/nss/lib/freebl/gcm.c:112: undefined reference to `gcm_HashInit_hw'
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This should address ARM64 specific failures in particular.
eu-objdump is now installed on all architectures;
ptests fail in its absence and pass when it is present, so it's
useful at least in some scenarios in non-x86 architectures and
fails gracefully otherwise.
The original decision to exclude it was here:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=5283
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
mdadm: correctly set up testing location for ptests
1. Do not clutter /, create a special-purpose dir
2. Clean up the dir after tests are done (if this is not
performed, disk will overflow later in ptesting).
3. Fix up more locations in ptests to use the dir.
Upstream default /var/tmp is not suitable as it is not
big enough (mdadm needs about 500 Mb)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Unset LD, and do not set ld in cross file from LD as
new version of meson passes that value directly
to -fuse-ld=... which requires one of lld, bfd, gold.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
recipetool/create: npm: remove the 'noverify' url parameter
This commit removes the 'noverify' parameter which was added to the url
to fix warnings with the shrinkwrap / lockdown file generation. This is
not needed anymore with the new npm fetcher.
Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When creating a recipe using devtool, a workspace is created to store
the new recipe, the recipe source and some append files. These append
files are used by devtool to build the recipe using externalsrc (to use
the source which are in the workspace). They can also have some
additional actions according to the class of the recipe.
This commit updates the append file for the npm recipes. The
devtool / externalsrc files are removed in the npm package directory
instead of the install directory.
Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
recipetool/create_npm: handle the licenses of the dependencies
As usual the 'LICENSE' and the 'LIC_FILES_CHKSUM' values reflects all
the license files discovered in the source tree (including the
dependencies).
For npm recipes the 'LIC_FILES_CHKSUM' value contains also the status of
the 'package.json' file of every packages as it contains license
informations.
Finally each package has a separate 'LICENSE_${PN}-package-name' value
which describes its license.
Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
recipetool/create_npm: refactor the npm recipe creation handler
This commit refactors the npm recipe creation handler to use the new npm
behavior. The process is kept as simple as possible and only generates
the shrinkwrap file.
To avoid naming issues the recipe name is now extracted from the npm
package name and not directly mapped.
Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When building addons, the node headers are needed to be able to compile
properly. Usually they are downloaded by npm but network access in the
do_compile task are unauthorized. Hopefully the local node headers are
available in the native sysroot so lets use them.
Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
After the do_fetch task, every other tasks must not access the network.
In order to ensure this point every npm command must use the offline
configuration. In addition setting an invalid proxy is used as a safety.
Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
1. With the new npmsw fetcher, the sources and dependencies of the
package have been fetched and unpacked. As sources can also be
patched, a local cache must be configured to use these modified
sources.
2. Next, the installation process is run using the local cache only.
Some packages may need to be compiled.
3. The final installation filters the previously installed files to
avoid unnecessary files.
This new version also fixes multiple issues related to npm dependencies
badly handled: package names, scope packages, installation directories
Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Luca Ceresoli [Wed, 22 Jan 2020 16:34:23 +0000 (17:34 +0100)]
busybox: udhcpc: fix 'ip route add' with multiple interfaces on the same network
The udhcpc script fails to properly set a default route when:
- 'ip' is present ($have_bin_ip -eq 1)
- there are 2 or more interfaces connected to the same network
(e.g. ethernet + wifi on the same home LAN / same DHCP server)
In this case, when the first interface gets an address from DHCP
(e.g. eth0), a default route is set correctly. When the second interface
(e.g. wlan0) gets its address, 'ip route add' without 'dev $interface' sets
the route on the other interface. The result looks like:
# ip route
default via 192.168.1.1 dev eth0 metric 5
default via 192.168.1.1 dev eth0 metric 10 # wrong dev here
192.168.1.0/24 dev eth0 scope link src 192.168.1.20
192.168.1.0/24 dev wlan0 scope link src 192.168.1.30
#
The situation might go unnoticed until eth0 is disconnected, because only
wlan0 is present but there is no route through wlan0.
Fix by explicitly passing "dev $interface" to 'ip route add'. Note that all
other 'ip' invocations already have "dev $interface" passed.
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
`DATADIR` and `ABS_DATADIR` are compile flags defined in
./kbd/tests/Makefile.am. `DATADIR` is the relative directory of
kbd, i.e `./kbd/ptest/tests` whereas `ABS_DATADIR` is the full
directory path, i.e `/usr/lib/kbd/ptest/tests`. The latter has a
problem when building ptests for a 64-bit image, because the tests
folder is located at `/usr/lib64/kbd/ptest/tests` instead.
Therefore `ABS_DATADIR` is changed to `DATADIR`, also consistent with
what *every other* kbd test is doing.
The test searches DATADIR recursively for a file named `test0.map`,
but it finds the wrong file at
`/findfile/test_0/keymaps/test0.map`,
while it actually needs
`/findfile/test_0/keymaps/i386/qwerty/test0.map`.
Thus appending `/i386` to `dirpath` so that `libkbdfile-test08.c`
finds the right test file.
Signed-off-by: Matthew Zeng<Matthew.Zeng@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Wed, 22 Jan 2020 17:37:48 +0000 (17:37 +0000)]
libx11: squash whitespace in generated files
The locale data in the recipe is generated using cpp, which results in
differing amounts of whitespace depending on what compiler is used.
This means that the files may differ in just whitespace, which is
sufficient for RPM's multilib code to consider them different and not
allow lib32-libx11-locale and lib64-libx11-locale to be installed at the
same time.
[ YOCTO #13647 ]
Signed-off-by: Ross Burton <ross.burton@intel.com>
sstate.bbclass: Only show sstate mirror progress bar for >= 100 objects
With the introduction of the hash equivalence server, the progress bar
for "Checking sstate mirror object availability" is shown
repeatedly. Most of the times the number of objects scanned is very
low and the progress bar completes almost immediately. To avoid all
these unnecessary progress bars, set the minimum number of objects to
100 before the progress bar is shown.
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Chen Qi [Tue, 14 Jan 2020 05:56:08 +0000 (13:56 +0800)]
enchant2: fix qa issue about staticdev
staticdev package defaults to include ${libdir}/${BPN}/*.a, but
for enchant2, the file locates under ${libdir}/echant-2/. So fix
it to avoid the following QA issue.
Alex Kiernan [Thu, 9 Jan 2020 14:45:59 +0000 (14:45 +0000)]
manpages.bbclass: Fix rootfs host corruption
When running mandb we end up with files owned by the build user, correct
this. Also pick up non-default locales and relocate their index.db files
to /var/cache.
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ming Liu [Sat, 28 Dec 2019 13:18:02 +0000 (14:18 +0100)]
systemd: fix a test-seccomp build issue
Fix a following compiling issue when seccomp is enabled by
PACKAGECONFIG:
| ../test-seccomp.c: In function 'test_protect_sysctl':
| ../test-seccomp.c:307:5: error: "__NR__sysctl" is not defined, evaluates to 0 [-Werror=undef]
| 307 | #if __NR__sysctl > 0
| | ^~~~~~~~~~~~
Ross Burton [Wed, 13 Mar 2019 00:37:33 +0000 (00:37 +0000)]
meson.bbclass: warn if cross property defaults are used
The Meson idiom for checks which require running code on the target
(which isn't possible in cross compilation) is to use a cross property,
which the user can set in the cross file:
if cc_can_run
rres = cc.run(test_foo_code)
have_foo = rres.compiled() and rres.returncode() == 0
else
have_foo = meson.get_cross_property('have_foo', false)
endif
The default value may be overly conservative so we should review every
property and explicitly set them as apppropriate. oe-core 669ddaf added
a log message when the default value is used, so look for this message
and emit a warning that the user will see.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Richard Purdie [Fri, 17 Jan 2020 17:21:39 +0000 (17:21 +0000)]
binutils: Fix relocation of ld.so.conf in nativesdk builds
We need binutils to look at our ld.so.conf file within the SDK to ensure
we search the SDK's libdirs as well as those from the host system.
There add a patch which passes in the directory to the code using a define,
then add it to a section we relocate in a similar way to the way we relocate
the gcc internal paths. This ensures that ld works correctly in our buildtools
tarball.
Standard sysroot relocation doesn't work since we're not in a sysroot,
we want to use both the host system and SDK libs.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jens Rehsack [Tue, 21 Jan 2020 16:46:41 +0000 (17:46 +0100)]
perl: support cpan versions of core modules
Most of perl core modules are dual-life modules which exists on CPAN
as well as they do in perl core. Sometime, fixes are uploaded to CPAN
before a new perl is released which contains the fix of the core
module. Also, some modules recent releases aren't fully backported
to earlier releases (out of support, lack of specific feature, ...),
which makes it up to the distribution build to choose between core
or CPAN version, respectively.
Signed-off-by: Jens Rehsack <sno@netbsd.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Joshua Watt [Sun, 19 Jan 2020 18:59:57 +0000 (12:59 -0600)]
oeqa/reproducible: Add flag for building from sstate
Adds a flag to control if the reproducible QA test should allow building
from sstate or not. Building from sstate may not be reproducible
depending on how the sstate is populated.
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefan Agner [Mon, 14 May 2018 14:44:15 +0000 (16:44 +0200)]
busybox: udhcpc: fix IPv6 support when using udhcpc
The udhcpc script calls ip addr flush .. which flushes addresses
of any address family, including IPv6. However, busybox udhcpc is
IPv4 only and should not influence IPv6 addressing. Hence use ip
addr flush with family constrait.
The script particularly broke IPv6 SLAAC: Typically when udhcpc
calls the script the kernel already assigned the IPv6 link-local
address. The flush removes the link-local IPv6 address again and
prohibits proper IPv6 operation such as SLAAC since neighbor
discovery protocol relies on IPv6 link-local addressing.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Mon, 20 Jan 2020 17:52:27 +0000 (09:52 -0800)]
mesa: Help compile with clang/mips
meson is detecting it does not support 64bit attomics but then when
defining local suppliments confused clang
../mesa-19.3.1/src/util/u_atomic.c:38:1: error: cannot redeclare builtin function '__sync_add_and_fetch_8'
__sync_add_and_fetch_8(uint64_t *ptr, uint64_t val)
^
../mesa-19.3.1/src/util/u_atomic.c:38:1: note: '__sync_add_and_fetch_8' is a builtin with type 'long long (volatile long long *, long long, ...)'
../mesa-19.3.1/src/util/u_atomic.c:38:1: error: definition of builtin function '__sync_add_and_fetch_8'
__sync_add_and_fetch_8(uint64_t *ptr, uint64_t val)
^
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>