André Draszik [Wed, 20 Sep 2017 09:41:56 +0000 (10:41 +0100)]
kernel-uboot: support compressed kernel on MIPS
MIPS generates vmlinuz.bin when compression in the kernel build is
enabled, including any necessary objcopy so we can leverage that
and skip our manual invocation of objcopy here. We just have to
put the file into the right place for the rest of the build to
find it.
Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
André Draszik [Wed, 20 Sep 2017 09:41:53 +0000 (10:41 +0100)]
kernel-fitimage: sanitize dtb section name (unbreak MIPS)
We can't build fitImages for MIPS any more:
| Error: fit-image.its:21.27-28 syntax error
| FATAL ERROR: Unable to parse input tree
| uboot-mkimage: Can't read arch/mips/boot/fitImage.tmp: Invalid argument
Since commit cd2ed7f80b555add07795cc0cbaee866e6c193a3
("kernel-fitimage: dtb sections named by their filenames
and one config section for each dtb"), commit 1ec405ef5df82884c8997878bbe6c66d924b5127 in yocto, dtb
sections are named by the DTB filename, but the filename
can legally be in a subdirectory below
arch/$arch/boot/dts/, and on MIPS all DTBs are actually
in a subdirectory.
If so, mkimage fails with the above error message.
Unbreak this by replacing the offending character
(directory separator /)
Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Set RCONFLICTS to disallow multiple syslog daemon providers to be installed
on the target, and remove codes that deal with such situation.
Also, set ALTERNATIVE_PRIORITY back to 100. It was set to '10' in case of
systemd because sysklogd didn't have systemd support. For now, if we disallow
multiple syslog daemons to be installed, and it stays '10', then if sysklogd
is installed on target, the /sbin/syslogd would link to /bin/busybox.nosuid,
causing sysklogd service files using busybox's utility.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Set RCONFLICTS to disallow multiple syslog daemon providers to be installed
on the target at the same time, and remove codes which dealt with such
situation.
Supporting multiple syslog daemons on the same image doesn't have much sense.
rsyslog and syslog-ng in meta-oe have set RCONFLICTS to disallow this. And
we do the same for busybox.
Also, remove the line of creating a meaningless symlink of
/lib/systemd/syslog.service to /dev/null.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
106b59d9 broke SSH host key generation when systemd and a read-only root file
system are in use because there isn't a way for systemd to get the optional
weak assigment of SYSCONFDIR from /etc/default/sshd and still provide a default
value if it is not specified. Instead, move the logic for determining if keys
need to be created to a helper script that both the SysV init script and the
systemd unit file can reference.
This does mean that the systemd unit file can't check for file existence to
know if it should start the service, but it wasn't able to do that correctly
anyway anymore. This should be a problem since the serivce is only run once per
power cycle by systemd, and should exit quickly if the keys already exist
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
wic: allow multiple /boot partitions with different content
It can be useful to have multiple partitions with '--source bootimg-partition'
but different content.
E.g. for TI AM335x, one boot partition can contain an first stage
bootloader ("MLO"), while the real bootloader and kernel plus devicetree
are in another one.
Patch allows to specify multiple IMAGE_BOOT_FILES with optional "_label-XXX"
or "_uuid-XXX" overrides.
E.g. with this patch, a .wks file with
| part --source bootimg-partition ... --label=mlo --active
| part --source bootimg-partition ... --label=boot0
| part --source bootimg-partition ... --label=boot1
Yi Zhao [Thu, 21 Sep 2017 00:34:36 +0000 (08:34 +0800)]
qemu: remove unused patches
Remove the following patches since they are unused after qemu update to
2.10:
0001-replace-struct-ucontext-with-ucontext_t-type.patch
CVE-2016-9908.patch
CVE-2016-9912.patch
configure-fix-Darwin-target-detection.patch
Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Yi Zhao [Thu, 21 Sep 2017 03:18:31 +0000 (11:18 +0800)]
ptest-runner: fix segfault with -t option
The ptest-runner would segfault with -t option:
root@qemux86-64:~# ptest-runner -d /usr/lib test_pkg -t 5
[ 237.234112] ptest-runner[810]: segfault at 0 ip 000000382e638060 sp 00007fff9130f400 error 4 in libc-2.26.so[382e600000+1a7000]
It is safe to bump SRCREV to latest upstream commit to fix this issue
because there is only one commit since the last update:
core-image-tiny-initramfs: Enable running poky-tiny on qemux86-64
Building poky-tiny for x86-64 seems fine, but when executing qemu
it complains during boot time about not being able to execute init:
[ 5.409730] Failed to execute /init (error -8)
And then it drops to a login prompt (which it should't do on tiny)
This is supposed to be complaining about init's format, it only happens
on x86-64 architectures so perhaps is a 32/64 bit issue, but since
core-image-tiny-initramfs does not actually provide a traditional init,
the script is simply meant to drop to shell, we can workaround the issue
by specifying the kernel to run the init script via busybox's sh,
dropping to shell correctly on x86-64 leaving x86 unaffected.
Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Yi Zhao [Thu, 21 Sep 2017 07:54:58 +0000 (15:54 +0800)]
ltp: fix hanging issue for gdb01 case
If gdb01 testcase runs as background process, gdb can receive SIGTTOU
and then the case gets stuck. Replace stdin with /dev/null to fix this
issue. The patch is backported from upstream.
Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/lib/oe/rootfs.py: clean up dnf cache after creating an image
It contains cached metadata for a transient repository that is used
only when creating images on the host, and so is of no use on target
images. Dnf will recreate the cache on target when needed.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ross Burton [Wed, 20 Sep 2017 12:57:33 +0000 (13:57 +0100)]
sanity: check that path variables don't use ~
The core path variables (TMPDIR, DL_DIR, SSTATE_DIR) don't use tilde expansion
but if the user does then the errors are very mysterious, so check on startup.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Paul Eggleton [Tue, 19 Sep 2017 03:57:07 +0000 (15:57 +1200)]
scripts: rename yocto-compat-layer to remove "compatible" nomenclature
"Yocto Project Compatible" [1] is a programme which requires you meet
specific criteria including going through an application process - it is
not sufficient simply to run the script we have created here and have it
produce no warnings/errors. To avoid people being confused by the fact
that this script uses the term "compatible" or variations thereof,
substitute usage of that word with "check" instead. The functionality of
the script is unchanged.
There is an illegal address access in the function dump_uses() in progs/dump_entry.c
in ncurses 6.0 that might lead to a remote denial of service attack.
There is an illegal address access in the _nc_safe_strcat function in
strings.c in ncurses 6.0 that will lead to a remote denial of service attack.
There is an illegal address access in the function _nc_read_entry_source()
in progs/tic.c in ncurses 6.0 that might lead to a remote denial of service attack.
There is an illegal address access in the _nc_save_str function in
alloc_entry.c in ncurses 6.0. It will lead to a remote denial of service attack.
There is an infinite loop in the next_char function in comp_scan.c in
ncurses 6.0, related to libtic. A crafted input will lead to a remote denial of service attack.
There is an illegal address access in the function postprocess_termcap()
in parse_entry.c in ncurses 6.0 that will lead to a remote denial of service attack.
Wenzong Fan [Wed, 20 Sep 2017 08:17:05 +0000 (01:17 -0700)]
kernel.bbclass: build host programs with native sysroots
Allow to search header files and libs from native sysroots.
For example, an expanded BUILD_CFLAGS includes:
'-isystem/builddir/to/linux-yocto/recipe-sysroot-native/usr/include'
And an expanded BUILD_LDFLAGS includes:
'-L/builddir/to/linux-yocto/recipe-sysroot-native/usr/lib
-Wl,-rpath-link,/builddir/to/linux-yocto/recipe-sysroot-native/usr/lib
-Wl,-rpath,/builddir/to/linux-yocto/recipe-sysroot-native/usr/lib'
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
image.bbclass: Sorted ctypes to avoid basehash error
When selected multiple subimages a similar error could happend:
Variable do_image_cpio[subimages] value changed \
from 'cpio.gz.u-boot cpio.gz' to 'cpio.gz cpio.gz.u-boot'
To avoid this, 'ctypes' should be sorted at 'gen_conversion_cmds'.
This garantee that 'CONVERSION_CMD_xxx' are always written in tha same
order and consequently 'do_image_cpio' have the same hash.
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Otavio Salvador [Tue, 19 Sep 2017 13:19:41 +0000 (10:19 -0300)]
u-boot-fw-utils: Fix cross and target builds
- The environment tools target has change to envtools;
- The HOSTCC variable must be used to set CC for cross;
- Drop ARCH variable as it is set on config;
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
classes/image_live: fix using squashfs as image filesystem
Different squashfs versions have IMAGE_TYPE with hyphen (eg squashfs-lz4).
Tasks on the other hand have names with underscore (eg do_image_squashfs_lz4).
Signed-off-by: Tomasz Meresiński <tomasz.meresinski@comarch.pl> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ming Liu [Sun, 17 Sep 2017 09:53:43 +0000 (11:53 +0200)]
cross-canadian.bbclass: drop TARGET_* flags overrides
A regression was introduced by me in commit 767335c9:
[ cross-canadian.bbclass: override TARGET_* flags ]
it causes BUILDSDK_C/CXXFLAGS being exported in environment-setup
script built from meta-environment recipe, which is wrong, restore to
TARGET_C/CXXFLAGS.
Signed-off-by: Ming Liu <liu.ming50@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
By setting systemd-serialgetty to rdepend on systemd, we are making
configuration files have runtime dependency on the main utility that
uses those configuration files. Applied with the same logic, we should
make any package that provides service files under /etc/init.d/ to have
runtime dependency on sysvinit. And this is not right.
So we should remove systemd from RDEPENDS of systemd-serialgetty.
Besides, as we have changed systemd to have systemd-serialgetty in its
RDEPENDS by default, we should avoid circular dependency issue.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Set NO_RECOMMENDATIONS to "1", build and start a systemd image, and we
could not get serial getty spawned, thus causing the user not able to
login via serial port.
E.g.
MACHINE=qemux86-64 bitbake core-image-minimal
runqemu qemux86-64 nographic
And we cannot login onto the system.
Move util-linux-agetty and systemd-serialgetty (determined by PACKAGECONFIG)
from RRECOMMENDS to RDEPENDS to fix the above problem.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Paul Eggleton [Mon, 18 Sep 2017 04:54:42 +0000 (16:54 +1200)]
classes/externalsrc: delete symlinks at start of do_buildclean
To help users find the work and log directories (especially within the
eSDK) we create symlinks to these from the source tree. However during
do_buildclean we call "make clean", and some project Makefiles which
delete something like "*/*/lib" which will match files underneath the
oe-workdir symlink and fail. do_buildclean is called from do_clean which
is in turn called by devtool reset by default, and thus devtool reset is
blocked. An example of a recipe where this is visible is the openssl-qat
recipe in meta-intel.
In order to fix this, delete the symlinks at the start of do_buildclean
since we shouldn't need them at that point anyway, and thus make clean
won't be able to trip over them.
Fixes [YOCTO #11036].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
To improve binary reproducibility, only the
relevent part of the Makefile in bzip2-ptest
package that run-ptest needs are copied to
the destination directory.
bzip2-ptest requires Makefile. The original
Makefile contains references to build host.
By copying only the relevent part,
we avoid those references making their way
into the target system
Used Makefile.am as the source to extract
the revelent part instead of Makefile as
it is easier to parse than Makefile.
A redundant command in do_install_ptest()
that repeat the copying of Makefile that
was already copied by Makefile's install-ptest
step is removed because it now interfers with
the creation of the new Makefile by
make's install-ptest.
[YOCTO #11596]
Signed-off-by: Ooi Cinly <cinly.ooi@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Having only this utility is useful for tiny initramfs'es which don't
need the whole util-linux package (and neither the busybox binary
which is much bigger than switch_root) to do operations like decrypt
a rootfs & switch to it in the init file.
Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
core-image-tiny-initramfs: initramfs recipes should not generate an actual image file
core-image-tiny-initramfs was used to generate a wic image, which was conceptually wrong
since initrafms recipes should only generate the boot artifacts that can later be used
by another recipe to generate an image using the tool of their choice.
Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
QEMU version 2.11 will remove the pixman submodule. This means users are
always required to supply pixman from the system if building softmmu
support in QEMU.
Without specifying a pixman configure option QEMU will default to using
the system pixman if it is avaliable. In which case let's remove the
config option as it is no longer supported in recent commits and is not
required in older builds as the configure system defaults are already
using system pixman.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Matt Madison [Thu, 14 Sep 2017 19:22:30 +0000 (16:22 -0300)]
go.bbclass: set TMPDIR during compilation
The go build tool creates working directories under
$TMPDIR for all of its processing. Create a directory
under ${WORKDIR} for this and point TMPDIR at it during
compilation, so that systems that have a relatively
small /tmp filesystems can still compile larger Go
packages.
Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
Matt Madison [Thu, 14 Sep 2017 19:22:29 +0000 (16:22 -0300)]
go: fixes for cross-canadian builds
* Add patch for go's make script to allow for
build system != host system
* Add dependencies on the appropriate crosssdk recipes,
and use the crosssdk C compiler and linker
* Remove bashism in the wrapper script
* Restrict installation to only the tool binaries
to address some packaging errors
Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
Matt Madison [Thu, 14 Sep 2017 19:22:28 +0000 (16:22 -0300)]
go: fix linking issues for nativesdk builds
Switch to using an external linker for nativesdk
go, go-runtime, and go package builds, which works
more reliably when building 32-bit SDKs.
Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
Matt Madison [Thu, 14 Sep 2017 19:22:27 +0000 (16:22 -0300)]
go-crosssdk: fix host/target references and cleanup
* The _FOR_TARGET variables need to include SDKNATIVEPATH
* Install tools (cmd) only, and for the build host
* Remove unnecessary FILES setting
Corrects some errors when the build host architecture
is different from the SDKMACHINE's.
Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
binutils: apply mingw fix only for binutils-cross-canadian
Whenever SDKMACHINE is set to mingw32, sdkmingw32 override is defined
everywhere. This meant that value of LDGOLD was different also for
binutils and binutils-cross depending whether SDKMACHINE was set or not.
Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Fri, 15 Sep 2017 13:04:40 +0000 (16:04 +0300)]
scripts/oe-build-perf-report: show recipe version changes in html report
If buildstats are available (for a certain measurement), show recipe
version changes between the two builds that are being compared. The
information shown includes new and dropped recipes as well as changes in
recipe version, revision or epoch.
[YOCTO #11382]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Fri, 15 Sep 2017 13:04:39 +0000 (16:04 +0300)]
scripts/buildstats-diff: move more code to lib/buildstats.py
More refactoring of buildstats-diff script. Move recipe version
comparison functionality to scripts/lib/buildstats.py. This patch also
compasses some wording changes, i.e. changing 'package' to 'recipe'.
[YOCTO #11382]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Fri, 15 Sep 2017 13:04:38 +0000 (16:04 +0300)]
scripts/oe-build-perf-report: summary of task resource usage
Utilize buildstats, if available, and show a summary of the resource
usage of bitbake tasks in the html report. The details provided are:
- total number of tasks
- top 5 resource-hungry tasks (cputime)
- top 5 increase in resource usage (cputime)
- top 5 decrease in resource usage (cputime)
[YOCTO #11381]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Fri, 15 Sep 2017 13:04:37 +0000 (16:04 +0300)]
scripts/buildstats-diff: move code to lib/buildstats.py
Move over code from buildstats-diff to new scripts/lib/buildstats.py
module in order to share code related to buildstats processing. Also,
refactor the code, introducing new classes to make the code readable,
maintainable and easier to debug.
[YOCTO #11381]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Fri, 15 Sep 2017 12:54:51 +0000 (15:54 +0300)]
scripts/oe-build-perf-report: fix handling of --history-length
Don't crash if 'left' revision is older than the range of commits
specified with '--history-length'. In this case the 'left' revision
takes precedence.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ruby through 2.2.7, 2.3.x through 2.3.4, and 2.4.x through 2.4.1 can expose
arbitrary memory during a JSON.generate call. The issues lies in using
strdup in ext/json/ext/generator/generator.c, which will stop after
encountering a '\0' byte, returning a pointer to a string of length zero,
which is not the length stored in space_len.
Use ucontext_t not struct ucontext in linux-unwind.h files.
Current glibc no longer gives the ucontext_t type the tag struct
ucontext, to conform with POSIX namespace rules. This requires
various linux-unwind.h files in libgcc, that were previously using
struct ucontext, to be fixed to use ucontext_t instead. This is
similar to the removal of the struct siginfo tag from siginfo_t some
years ago.
Backport of patches by Joseph Myers, taken from
https://gcc.gnu.org/viewcvs/gcc?limit_changes=0&view=revision&revision=249957
[YOCTO #12083]
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ross Burton [Fri, 15 Sep 2017 11:15:25 +0000 (12:15 +0100)]
oeqa/selftest/recipetool: use stable tarball for recipetool create test
GitHub dynamically generates the /archive/ tarballs but we're encoding checksums
in the test suite. Change the URL to use a static tarball, and update the
checksums.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Ross Burton [Thu, 14 Sep 2017 16:32:24 +0000 (17:32 +0100)]
useradd: don't override pseudo environment
Back in the dark days before recipe-specific-sysroots the paths being passed in
this manual construction of the pseudo environment made sense, but now they're
incorrect and result in pseudo writing to two different databases during a
single build. The result is that pseudo doesn't follow changes to /etc/passwd
in the sysroot, and warns in the logs.
Remove the PSEUDO_LOCALSTATEDIR assignment and inherit the correct assignment in
FAKEROOTENV.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Robert Yang [Thu, 14 Sep 2017 09:13:18 +0000 (02:13 -0700)]
systemd-machine-units: update LIC_FILES_CHKSUM
Fixed:
WARNING: systemd-machine-units-1.0-r19 do_populate_lic: ${COREBASE}/LICENSE is not a valid license file, please use '${COMMON_LICENSE_DIR}/MIT' for a MIT License file in LIC_FILES_CHKSUM. This will become an error in the future
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Mark Hatle [Wed, 13 Sep 2017 22:40:15 +0000 (17:40 -0500)]
bitbake.conf: Add default FILESYSTEM_PERMS_TABLES
If FILESYSTEM_PERMS_TABLES was not defined, the default was selected by the
packages.bbclass. This made it difficult for a recipe or layer to 'append'
to the default.
Copy the default into the bitbake.conf, allowing future _append and += style
actions.
Default was remove from package.bbclass. If a value is not set, only the
built-in perms fixes will be used.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>