Scott Rifenbark [Thu, 19 Jul 2018 21:29:14 +0000 (14:29 -0700)]
sdk-manual: Provided better wording for sharing HTTP or HTTPS server
Step 1 of the "Providing Updates to the Extensible SDK After Installation"
section really did not do much for the reader regarding setting up a
HTTP or HTTPS directory. I added more detail on how to generally do
that.
This variable is the default installation directory for the
Extensible SDK. By default, it is "poky_sdk". You can override
this variable so it needed to be documented. The ideal place to
override it is in the distribution configuration file.
Scott Rifenbark [Mon, 16 Jul 2018 21:28:52 +0000 (14:28 -0700)]
sdk-manual: Updates to sections for updating installed Ext SDKs
There are two sections that deal with this topic. One is from the
standpoint of a user using a 3rd party published and installed
extensible SDK ("Applying Updates to an Installed Extensible SDK").
The other is from the standpoint of a person providing Extensible
SDKs for consumption ("Providing Updates to the Extensible SDK
After Installation"). These sections needed some closer examination
regarding fully describing what was going on. I provided some
re-writes to both.
Scott Rifenbark [Mon, 16 Jul 2018 20:22:10 +0000 (13:22 -0700)]
sdk-manual: Changed title to updating the SDK after install
The title for the section on how to effect changes to an installed
extensible SDK is better suited as "Providing Updates to the
Extensible SDK AFter Installation."
Scott Rifenbark [Mon, 16 Jul 2018 20:15:43 +0000 (13:15 -0700)]
sdk-manual: Fixed grammar error
In "Providing Updates After Installing the Extensible SDK" section,
Step 1 had a bit of a grammar error. Not technically, but it
could have been written better. I fixed that.
Scott Rifenbark [Wed, 11 Jul 2018 22:28:52 +0000 (15:28 -0700)]
ref-manual: Updated the SDK_INHERIT_BLACKLIST variable description
Added information on the class in which the default is set. Also,
put in a reference for more information on customizing the
extensible SDK configuration.
Scott Rifenbark [Wed, 11 Jul 2018 22:09:07 +0000 (15:09 -0700)]
ref-manual: Updated the SDK_LOCAL_CONF_WHITELIST variable description
Enhanced this description by indicating the class that it is set in
and by including a pointer back into the sdk-manual where filters
are described for extending the extensible SDK.
Scott Rifenbark [Tue, 10 Jul 2018 21:24:07 +0000 (14:24 -0700)]
sdk-manual, mega-manual: Updated standard SDK install directory figure
The figure was incorrect for the installed file and folder hierarchy
for a standard SDK. I updated it. This figure goes in both the sdk-manual
and the mega-manual.
Scott Rifenbark [Mon, 9 Jul 2018 21:05:28 +0000 (14:05 -0700)]
sdk-manual: Added note in step to set SDKMACHINE
The value of SDKMACHINE must match the architecture of the machine
on which the SDK installer is being built if you are building an
installer for an extensible SDK. I added a note to this effect.
Opening a file in binary mode and iterating it seems like the simple solution
but will still break on newlines, which for binary files isn't really useful as
the size of the chunks could be huge or tiny.
Instead, let's be a bit more clever: we'll be MD5ing lots of files, but we don't
want to fill up memory: use mmap() to open the file and read the file in 8k
blocks.
Andrej Valek [Tue, 14 Aug 2018 10:21:19 +0000 (12:21 +0200)]
systemd: fixes for the compatibility interface
Use a heap allocated string to set arg_ifname, since a stack allocated
one would be lost after the function returns. (This last one broke the
case where an interface name was suffixed with a dot, such as in
`resolvconf -a tap0.dhcp`.)
Signed-off-by: Andrej Valek <andrej.valek@siemens.com> Signed-off-by: Simon Ausserlechner <simon.ausserlechner@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This makes it more suitable to work with, e.g., devtool. It also
prepares for the update to 0.47.0 when the first patch will no longer be
needed (as it is a backport).
Khem Raj [Tue, 14 Aug 2018 16:32:42 +0000 (09:32 -0700)]
musl: Fix dirent struct alignment issue seen on armv5te
- its a general problem however observed on armv5te based boards in OE
other arches either have ways to compensate for misaligned access in hardware
or compiler does not use 8byte alignment
Khem Raj [Tue, 14 Aug 2018 18:34:40 +0000 (11:34 -0700)]
mesa: Disble TLS for musl
See https://bugs.freedesktop.org/show_bug.cgi?id=35268
mesa should infact stop using __attribute__((tls_model("initial-exec")))
until then we disale TLS in glx for musl
The problem could happen even on glibc if static TLS sizes are large enough
which would mean that additional space the glibc leaves for such rogue libraries
get consumed and then same problems show up there as well
Fixes errors seen in xorg logs e.g.
(EE) Failed to load /usr/lib/xorg/modules/extensions/libglx.so: Error relocating /usr/lib/libGL.so.1: _ITM_deregisterTMCloneTable: initial-exec TLS resolves to dynamic definition in /usr/lib/libGL.so.1
Richard Purdie [Tue, 14 Aug 2018 17:24:14 +0000 (17:24 +0000)]
selftest/package: Improve test to cover sparseness and hardlinking from sstate
The sparseness test was sometimes working and sometimes failing depending
on whether sstate was valid. This adds an explict test of sstate
to the test for both hardlinking and sparseness. Tweak the test name to
cover the fact its tests sparseness too.
Richard Purdie [Tue, 14 Aug 2018 17:20:57 +0000 (17:20 +0000)]
selftest: Replace bitbake -p with bitbake -e
Parsing all the recipes is annoying when trying to re-execute oe-selftest
and also unnecessary as its really just a sanity check. When the tests were
originally being developed the guard was useful but less so now.
Replace it with bitbake -e which is fast and checks the basic configuration
is valid.
Richard Purdie [Tue, 14 Aug 2018 14:56:00 +0000 (14:56 +0000)]
sstate: Ensure a given machine only removes things which it created
Currently if you build qemux86 and then generic86, the latter will
remove all of the former from deploy and workdir. This is because
qemux86 is i586, genericx86 is i686 and the architctures are compatible
therefore the sstate 'cleaup' code kicks in.
There was a valid reason for this to ensure i586 packages didn't get into
an i686 rootfs for example. With the rootfs creation being filtered now, this
is no longer necessary.
Instead, save out a list of stamps which a give machine has ever seen in
a given build and only clean up these things if they're no longer
"reachable".
In particular this means the autobuilder should no longer spend a load of time
deleting files when switching MACHINE, improving build times.
Richard Purdie [Tue, 14 Aug 2018 15:18:16 +0000 (15:18 +0000)]
package_manager/sdk: Use filtered copies of the deploy ipk/deb directories
Similar to rpm, use copies of the ipk/deb directories for rootfs construction.
This means the image creation code can no longer "see" recipes wich aren't in its
dependency chain which is good for a variety of reasons including determinism,
incompatible recipe (e.g. systemd/sysvinit) package conflicts and locking
performance.
Richard Purdie [Mon, 13 Aug 2018 12:44:05 +0000 (12:44 +0000)]
glibc: Fix locale archive path patch
The locale code uses the archive location in two places, ensure both are
corrected to use the environment variable which avoids nasty build
failures when archiving locales in images.
Richard Purdie [Mon, 13 Aug 2018 11:40:03 +0000 (11:40 +0000)]
image: Add locale archive optimisation
Refactor the locale archive function from the SDK to also make it work during
general image creation. This reduces the size of the locales from 900MB to 220MB
in core-image-lsb-sdk.
The exception handling around subprocess was dropped as the standard subprocess
exception printing is better handled than the catchall exception.
Richard Purdie [Sun, 12 Aug 2018 22:29:18 +0000 (22:29 +0000)]
selftest/package: Add test to ensure sparse files are preserved
Add a new element to the hardlink test to check we also preseve file
sparseness during the packing process. This should ensure we don't regress this
issue again.
Richard Purdie [Sat, 11 Aug 2018 10:30:28 +0000 (11:30 +0100)]
glibc: Add make-native depends
glibc needs make >= 4 yet some of our build workers have older versions of
make. Add a make-native dependency to work around this until all our supported
distros have a recent version of make.
Martin Jansa [Thu, 9 Aug 2018 12:16:59 +0000 (12:16 +0000)]
dropbear.inc: add dependency on virtual/crypt to fix build with glibc-2.28
configure tests crypt() existence with:
dnl We test for crypt() specially. On Linux (and others?) it resides in libcrypt
dnl but we don't want link all binaries to -lcrypt, just dropbear server.
dnl OS X doesn't need -lcrypt
AC_CHECK_FUNC(crypt, found_crypt_func=here)
AC_CHECK_LIB(crypt, crypt,
[
CRYPTLIB="-lcrypt"
found_crypt_func=here
])
AC_SUBST(CRYPTLIB)
if test "t$found_crypt_func" = there; then
AC_DEFINE(HAVE_CRYPT, 1, [crypt() function])
fi
but that silently fails with glibc-2.28 and a bit later do_compile fails with;
http://errors.yoctoproject.org/Errors/Details/185895/
Martin Jansa [Thu, 9 Aug 2018 11:44:47 +0000 (11:44 +0000)]
glide: add INSANE_SKIP for textrel
* I'm not using glide, so I'm not going to fix it proplerly,
it was just bothering me in world builds
* this is reproducible only with ptest in DISTRO_FEATUREs (for aarch64
issue) and included security_flags.inc, more specifically with the PIE
flags, so alternative work around is:
SECURITY_CFLAGS_pn-glide = "${SECURITY_NOPIE_CFLAGS}"
Martin Jansa [Thu, 9 Aug 2018 11:44:46 +0000 (11:44 +0000)]
go(-dep): add INSANE_SKIP for textrel
* I'm not using go or go-dep, so I'm not going to fix it proplerly,
it was just bothering me in world builds
* this is reproducible only with ptest in DISTRO_FEATUREs (for aarch64
issue) and included security_flags.inc, more specifically with the PIE
flags, so alternative work around is:
SECURITY_CFLAGS_pn-go = "${SECURITY_NOPIE_CFLAGS}"
SECURITY_CFLAGS_pn-go-dep = "${SECURITY_NOPIE_CFLAGS}"
Ross Burton [Mon, 13 Aug 2018 17:20:54 +0000 (18:20 +0100)]
classes: sanity-check LIC_FILES_CHKSUM
We assume that LIC_FILES_CHKSUM is a file: URI but don't actually verify this,
which can lead to problems if you have a URI that resolves to a path of / as
Bitbake will then dutifully checksum / recursively.
Ross Burton [Mon, 13 Aug 2018 23:59:39 +0000 (00:59 +0100)]
bzip2: use Yocto Project mirror for SRC_URI
The bzip.org domain expired and is now a holding site for adverts, so we can't
trust a tarball that appears on that site (luckily we have source checksums to
detect this).
For now, point SRC_URI at the tarball in the Yocto Project source mirror, but
set HOMEPAGE and UPSTREAM_CHECK_URI to the sourceware.org/bzip2/ page which
apparently will be resurrected as the new canonical home page.
Mikko Rapeli [Mon, 13 Aug 2018 09:42:17 +0000 (12:42 +0300)]
perf: fail if src path does not exist
A missing src directory from a broken kernel recipe resulted
only in a warning:
WARNING: copyfile: stat of /home/builder/src/tmp-glibc/work-shared/target/kernel-source/tools/arch failed ([Errno 2] No such file or directory: '/home/builder/src/tmp-glibc/work-shared/target/kernel-source/tools/arch')
and the build failed horribly.
With this change it's an error which can not be missed:
ERROR: perf-1.0-r9 do_configure: Path does not exist: /home/builder/src/tmp-glibc/work-shared/target/kernel-source/tools/arch. Maybe PERF_SRC does not match the kernel version.
ERROR: perf-1.0-r9 do_configure: Function failed: copy_perf_source_from_kernel
ERROR: Logfile of failure stored in: /home/builder/src/tmp-glibc/work/target-linux/perf/1.0-r9/temp/log.do_configure.21083
NOTE: recipe perf-1.0-r9: task do_configure: Failed
ERROR: Task (/home/builder/src/poky/meta/recipes-kernel/perf/perf.bb:do_configure) failed with exit code '1'
To get get perf compiling from a custom kernel, a perf.bbappend can be
created which defines PERF_SRC as list of files and directories needed
from kernel source tree to compile perf. This varies between kernel
versions.
Chen Qi [Mon, 13 Aug 2018 08:54:37 +0000 (16:54 +0800)]
parselogs.py: output correct log location
The log entry in results is altered to remove 'target_logs'. This
causes wrong log location in output.
e.g.
AssertionError: 1 != 0 : Log: /path/to/image/1.0-r0/postinstall.log
But when user wants to check the log, the user will find the log is
not present. The actual log file is /path/to/image/1.0-r0/target_logs/postinstall.log.
Chen Qi [Mon, 13 Aug 2018 09:43:23 +0000 (17:43 +0800)]
man-db: rdepend on base-passwd to ensure installation order
Make man-db rdepend on base-passwd to ensure that base-passwd is
installed before man-db at rootfs time. This is to avoid the following
warning at rootfs time.
Error: Transaction check error:
file /usr/share/pkgconfig/mobile-broadband-provider-info.pc from install of \
lib32-mobile-broadband-provider-info-dev.core2_32 conflicts with file from package \
mobile-broadband-provider-info-dev.core2_64
Zhixiong Chi [Mon, 13 Aug 2018 07:04:23 +0000 (00:04 -0700)]
libevent: fix the multilib header conflict
Error: Transaction check error:
file /usr/include/event2/event-config.h conflicts between attempted installs of libevent-dev-2.1.8-r0.skylake_64 and lib32-libevent-dev-2.1.8-r0.x86
The conflict is the size macro definition between 32bit and 64bit
such as:
< #define EVENT__SIZEOF_LONG 8
> #define EVENT__SIZEOF_LONG 4
< #define EVENT__SIZEOF_PTHREAD_T 8
> #define EVENT__SIZEOF_PTHREAD_T 4
Chen Qi [Wed, 1 Aug 2018 05:25:35 +0000 (13:25 +0800)]
base-files: fix handling of resize
The current handling of resize is incorrect. Using `resize > /dev/null
2>&1 && resize > /dev/null' will cause the second resize command to not
execute because 'resize > /dev/null 2>&1' will fail for resize utility
from busybox.
What we really should do is just to check whether ${bindir}/resize
is executable and execute it if so. Using '-x' is sufficient.
Andrej Valek [Thu, 9 Aug 2018 08:06:37 +0000 (10:06 +0200)]
libxml2: Fix CVE-2018-14404
Fix nullptr deref with XPath logic ops
If the XPath stack is corrupted, for example by a misbehaving extension
function, the "and" and "or" XPath operators could dereference NULL
pointers. Check that the XPath stack isn't empty and optimize the
logic operators slightly.
If multilib scripts handle more than one file per package, the variable
ALTERNATIVE_${PN} will be overwritten and there will be only one symbol
link file. Append to the variable to avoid this.
Jaewon Lee [Mon, 30 Jul 2018 21:21:53 +0000 (14:21 -0700)]
kernel-yocto.bbclass: Adds oe-local-files path (devtool) to include directives
The devtool-source class moves all local files specified in SRC_URI to
an oe-local-files directory. When using devtool and a recipe space kernel-meta,
devtool modify throws an error because the paths the kernel-yocto class
is looking for feature directories in, don't include the oe-local-files
directory which devtool is using.
This patch checks for feature directories in oe-local-files,
and if present, adds that path to include directives.
Jaewon Lee [Thu, 9 Aug 2018 23:41:29 +0000 (16:41 -0700)]
devtool-source.bbclass: Support kernel-fragments/patch not in SRC_URI
When using a recipe space kernel-meta, scc files are added through
SRC_URI, but they may include corresponding kernel fragments or patches
that are not necessarily in SRC_URI.
For bitbake, this is not a problem because the kernel-yocto class adds
the path where the .scc file was found to includes which consequentially
makes the .cfg, .patch file available to the kernel build.
However, when using devtool, only files specified in SRC_URI are copied
to oe-local-files in devtool's workspace. So if the cfg/patch file is not in
SRC_URI, it won't be copied, causing a kernel build failure when trying
to find it.
This fix parses local .scc files in SRC_URI, copies the corresponding
.cfg/.patch file to devtool's workdir, and also adds it to local_files
so it is available when doing a devtool build for the kernel.
[YOCTO #12858]
v2: also supporting patch not in SRC_URI
v3: fix spacing issues
then it fails due to being unable to find ccache. The references to ccache are
coded into libtool-cross but the sstate checksum doesn't reflect this due to the
way the class is coded (output should be the same regardless).
The simplest solution is to remove references to ccache from the libtool script.
The output then works regardless of whether ccache is present or not. The
libtool-cross script is only used in a handful of cases (most of the time its
dynamically generated by autoconf) so any performance issue is minor.
Richard Purdie [Thu, 9 Aug 2018 16:58:07 +0000 (16:58 +0000)]
sstate: Remove DEPLOY_DIR_IMAGE from SSTATE_DUPWHITELIST
Replace the generic whitelist entry with entries for the three specific
'problem' cases in OE-Core. This means the general DEPLOY_DIR_IMAGE entry
doesn't mask problems for others as was recently encoutered by users
reported on irc. In the whitelisted cases they occur only in multilib builds
and the files are identical.
Richard Purdie [Thu, 9 Aug 2018 12:17:39 +0000 (12:17 +0000)]
oeqa/esdk/devtool: Drop OETestDepends usage
OETestDepends doesn't work with parallelism and in this case we don't
really need this dependency, it would just short out some tests quickly
in the rare case the esdk environment was broken.
Currently this is masking tests which is a much worse problem and we
can't make OETestDepends work reliably with parallelism so drop the
dependencies.
Urs Fässler [Wed, 8 Aug 2018 07:33:52 +0000 (09:33 +0200)]
cmake: fix compiling some C++ projects with Yocto SDK and GCC
Setting CMAKE_SYSROOT in the toolchain file allows CMake to correctly
remove user-provided system include directories pointing to
<sysroot>/usr/include. The mentioned projects failed with "stdlib.h:
No such file or directory #include_next <stdlib.h>".