start_getty: Over added SERIAL_CONSOLE cause error in userspace log
Error log will be logged into /var/log/message.
Added in more condition checking on the script. Check
/proc/tty/drivers and /proc/tty/driver/*
file system to retrieve active targeted serial.
Only establish getty with active serial in runtime.
Mikko Rapeli [Thu, 1 Jun 2017 15:52:59 +0000 (18:52 +0300)]
scripts: Fix return value checks from subprocess.call()'s
Python function subprocess.call() returns the return value of the
executed process. If return values are not checked, errors may
go unnoticed and bad things can happen.
Change all callers of subprocess.call() which do not check for
the return value to use subprocess.check_call() which raises
CalledProcessError if the subprocess returns with non-zero value.
Ed Bartosh [Wed, 17 May 2017 12:49:12 +0000 (12:49 +0000)]
isoimage-isohybrid: don't use TRANSLATED_TARGET_ARCH
isoimage-isohybrid plugin fails with this error when
trying to find initrd image:
initrd = glob.glob('%s/%s*%s.%s' % (initrd_dir, image_name, target_arch, image_type))[0]
IndexError: list index out of range
as it uses TRANSLATED_TARGET_ARCH value as part of the image.
This approach stopped to work due to changes in oe core code.
initrd file name is made using MACHINE variable. wic can't get value
of this variable as it's not included into bitbake -e output.
Used basename of deploy dir as MACHINE value to fix the breakage.
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
insane.bbclass: fix override handling in RDEPENDS QA
The package_qa_check_rdepends() in insane.bbclass has
incorrectly replace its localdata OVERRIDES value with
the package name. Fixing it by appending the package name
to the existing OVERRIDES value. This resolves RDEPENDS QA
error when setting PACKAGECONFIG using a pn- override at
local.conf.
[YOCTO #11374]
Signed-off-by: Gan, Yau Wai <yau.wai.gan@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Daniel Lublin [Tue, 30 May 2017 11:17:59 +0000 (13:17 +0200)]
devtool: deploy-target: Let script continue even if rm fails
The remote script is run with `set -e`, so doing rm without -f on a
$file that is already gone will exit the whole script, failing any
redeployment. Assume a use case where packages sometimes produces
certain test binaries stored on volatile media (tmpfs), and where the
system is occasionally rebooted.
Signed-off-by: Daniel Lublin <daniel@lublin.se> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ola x Nilsson [Tue, 30 May 2017 10:16:31 +0000 (12:16 +0200)]
devtool: Compare abspath of both B and S
Either both or none of the paths must be passed through
os.path.abspath or things like 'A//B', 'A/./B/', and 'A/B/' in S will
cause unintentional mismatches even when B = "${S}".
Using os.path.abspath for both seems more likely to be correct as that
will also handle the case where ${B} != ${S} but the abspaths are
equal.
Signed-off-by: Ola x Nilsson <olani@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Paul Eggleton [Thu, 1 Jun 2017 01:42:25 +0000 (13:42 +1200)]
classes/buildhistory: make a single commit per build
Way back in OE-Core commit fba198ac7efe476a25c5761878ef2fcee97bf9f1 in
2012 we split committing to the repository, making a commit per
top-level directory. However, as we add more information it becomes
harder to see which commits belong to which build. Switch back to a
single commit per build to keep the history tidier.
To address the original concern, if you do want to see just the changes
for a particular subdirectory, git can filter that for you - just
specify that subdirectory as the last parameter on the git show / git
diff command line and that's all you will see.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
oeqa/core/context: Omit docstring output on XMLResult
By default, the xml runner class prints out the docstring for every
unit test but it order to keep the same format as the standard
runner, avoid docstring output setting descriptions to False.
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/core/context: Use a default iterable modules object
The OETestLoader.modules must be an iterable object, otherwise
checking presence of specific modules with the 'in' operator fails
with the following command/error:
% oe-test core
.. - core - INFO - Running bitbake -p
Traceback (most recent call last):
File "..poky2/scripts/oe-test", line 108, in <module>
ret = main()
File "..poky2/scripts/oe-test", line 93, in main
results = args.func(logger, args)
File "..poky2/meta/lib/oeqa/core/context.py", line 235, in run
self.tc.loadTests(self.module_paths, **self.tc_kwargs['load'])
File "..poky2/meta/lib/oeqa/core/context.py", line 53, in loadTests
self.suites = self.loader.discover()
File "..poky2/meta/lib/oeqa/core/loader.py", line 204, in discover
pattern='*.py', top_level_dir=path)
File "/usr/lib64/python3.4/unittest/loader.py", line 275, in discover
tests = list(self._find_tests(start_dir, pattern))
File "/usr/lib64/python3.4/unittest/loader.py", line 339, in _find_tests
yield self.loadTestsFromModule(module)
File "..poky2/meta/lib/oeqa/core/loader.py", line 266, in loadTestsFromModule
and module.__name__ in self.modules \
TypeError: argument of type 'NoneType' is not iterable
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Aníbal Limón [Fri, 26 May 2017 20:37:43 +0000 (15:37 -0500)]
oeqa/sdk: Enable usage of OEQA thread mode
oeqa/sdk/context.py - Use OETestContextThreaded.
classes/testsdk.bbclass - Enable bb event thread mode to avoid
corrupt the PIPE when multiple threads writes.
[YOCTO #11450]
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Aníbal Limón [Fri, 26 May 2017 20:37:41 +0000 (15:37 -0500)]
oeqa/core/tests: Add tests of OEQA Threaded mode
Add needed tests to validate the OEQA Threaded mode, the remaining
parts are tested by the OEQA without Threaded mode.
- test_loader.py: Add a test to validate rules when creating the
list of test suites.
- test_decorators.py: Add oetimeout test because the threaded mode
uses Timer instead of signal.
[YOCTO #11450]
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Aníbal Limón [Fri, 26 May 2017 20:37:40 +0000 (15:37 -0500)]
oeqa/core/decorator/oetimeout: Add support for OEQA threaded mode
In python signals are only allowed to delivery into the main thread,
to support the threading mode test if the runner is threaded and
use threading.Timer instead.
There are some considerations like SIGALRM interrupts the execution
after N seconds but the Timer only starts a Thread to notice the
timeout and the exception will be raised when the test run ends.
[YOCTO #11450]
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The OETestResultThreadedInternal extends OETestResult to stores
results by Thread.
The OETestResultThreaded is a simple class that provides the
implementation of interfaces needed by outside like wasSuccesful,
stop, logSummary, logDetails.
[YOCTO #11450]
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Aníbal Limón [Fri, 26 May 2017 20:37:34 +0000 (15:37 -0500)]
oeqa/core/threaded: Add OEStreamLoggerThreaded class
The OEStreamLoggerThreaded overrides OEStreamLogger to redirect
the PyUnit output to a logger.
Instead of log every line when comes the OEStreamLoggerThreaded
will buffer the PyUnit output and write everything at end of every
suite execution to don't have mixed suite outputs.
[YOCTO #11450]
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Aníbal Limón [Fri, 26 May 2017 20:37:33 +0000 (15:37 -0500)]
oeqa/core/threaded: Add new module with OETestLoaderThreaded
The threded module will implement Thread support into the OEQA
framework.
The OETestLoaderThreaded overrides discover to return a list of
suites every suite will be run by a separate Thread.
Some design considerations are:
- All the tests of a certain module needs to be run at one thread
because unittest framework needs to keep track of setUp{Module,
Class,} and tearDown{Module, Class,}.
- Tests that depends on other needs to be run at the same thread
because OEQA framework look at the status of dependant test to
decide if skip or not, this constraint can be change in the future
but a sync mechanishm is needed to implement between the Threads.
[YOCTO #11450]
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Aníbal Limón [Fri, 26 May 2017 20:37:30 +0000 (15:37 -0500)]
oeqa/core: Don't expose OEStreamLogger in OETestContext
The OEStreamLogger class is used for redirect PyUnit output
to a certain logger so there is not need to expose at level
of OETestContext because only OETestRunner needs to know.
[YOCTO #11450]
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Empty descriptions lines are set with a space following by a dot and
the multiline ones require a leading space. Also, for non-empty lines,
there is no need for formating with textwrap, so remove the logic for
the latter. The documentation for multiline description was taken from [1].
Daniel Díaz [Thu, 18 May 2017 18:22:37 +0000 (13:22 -0500)]
piglit: add patches for unbuildable surfaceless Mesa test
Some EGL implementations do not actually ship all Khronos-
extensions. As it turns out, the Mali 450 driver does not
include any of the following symbols, used by the
egl_mesa_platform_surfaceless.c spec test:
* eglGetPlatformDisplay
* eglCreatePlatformPixmapSurface
* eglCreatePlatformWindowSurface
The Right Thing To Do was to obtain the implementation of
these functions (via eglGetProcAddress), as is provided
by their EXT counterparts. These are guaranteed to exist
since they are required by EGL_EXT_platform_base.
When linking against Mali 450 r6, errors like the following
can be seen:
../../../../lib/libpiglitutil_gl.so.0: undefined reference to `gbm_bo_unmap'
../../../../lib/libpiglitutil_gl.so.0: undefined reference to `gbm_bo_map'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/point-sprite] Error 1
This is due to gbm_bo_map() and gbm_bo_unmap() being recently
added but not yet implemented by all graphics drivers.
Instead of relying on GBM's version, actually try to link
against those symbols.
Daniel Díaz [Thu, 18 May 2017 18:22:35 +0000 (13:22 -0500)]
piglit: depend on virtual/egl
While building for Hikey using Mali 450 driver (r6p0), an
error like the following appears while linking:
[ 1%] Linking C shared library ../../../../lib/libpiglitutil.so
[...]
[...]/aarch64-linaro-linux/gcc/aarch64-linaro-linux/6.3.1/ld: cannot find -lEGL
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libpiglitutil.so.0] Error 1
Mesa generally provides virtual/egl (along with virtual/libgl,
which satisfies Piglit's current DEPENDS) but that is not the
implementation to use with Mali.
Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Maxin B. John [Mon, 29 May 2017 14:27:42 +0000 (17:27 +0300)]
mmc-utils: Upgrade to latest git version
Updates in the new version:
37c86e6 : mmc-utils: Check for ext_csd_rev only once c22a92f : mmc-utils: feature spec 5.0+, Pre EOL information 34a954b : mmc-utils: feature spec 5.0+, device life time estimation for MLC
and pSLC mode
Signed-off-by: Maxin B. John <maxin.john@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ghostscript before 9.21 might allow remote attackers to bypass the SAFER
mode protection mechanism and consequently read arbitrary files via the
use of the .libfile operator in a crafted postscript document.
Use-after-free vulnerability in Ghostscript 9.20 might allow remote
attackers to execute arbitrary code via vectors related to a reference
leak in .setdevice.
Ghostscript before 9.21 might allow remote attackers to bypass the SAFER
mode protection mechanism and consequently execute arbitrary code by
leveraging type confusion in .initialize_dsc_parser.
libjbig2dec.a in Artifex jbig2dec 0.13, as used in MuPDF and Ghostscript,
has a NULL pointer dereference in the jbig2_huffman_get function in
jbig2_huffman.c. For example, the jbig2dec utility will
crash (segmentation fault) when parsing an invalid file.
Kai Kang [Fri, 19 May 2017 08:52:46 +0000 (16:52 +0800)]
bind: build with threads and update configure options
Build without threads for bind is inherited from legacy openembedded.
All libc's support proper threading on Linux now, so enable threads
support for bind.
It is also need to disable static library build which cause package dhcp
fail to build after enable bind threads support.
Options devpoll and epoll are configured to choose most preferable
multiplex method for unix socket. The priorities are: epoll > poll >
select. When set '--enable-epoll', it just defines a var and include
header file that is available for cross compile. So use epoll for bind.
Add PACKAGECONFIG 'urandom' that could use /dev/urandom as random device.
Update file/directory ownerships to fix daemon start failure.
Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Fri, 26 May 2017 13:37:13 +0000 (14:37 +0100)]
gstreamer1.0-omx: delete broken m4 files
These m4 files need to be deleted so that the versions in the sysroot that we've
patched are used. Specifically, building documentation fails as the gtk-doc
checks fail.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Romain Perier [Sun, 28 May 2017 06:59:40 +0000 (08:59 +0200)]
busybox: make SYSLOGD optionnal
Some distros might choose another syslogd provider like rsyslogd.
update-alternative will update the link from syslogd to the right
provider. However the syslogd feature is still present and enabled
in busybox.
This commit adds a new configuration fragment to make syslogd
optionnal in busybox.
Signed-off-by: Romain Perier <romain.perier@collabora.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Li Zhou [Sat, 27 May 2017 09:46:15 +0000 (17:46 +0800)]
python3: Use _sysconfigdata.py to initialize distutils.sysconfig
Porting patch from
<https://github.com/python/cpython/commit/409482251b06fe75c4ee56e85ffbb4b23d934159>
to use _sysconfigdata.py to initialize distutils.sysconfig.
This patch makes that distutils.sysconfig doesn't need config-*/Makefile
in libdir any more. Next we can move it from python3-misc to python3-dev
package.
Signed-off-by: Li Zhou <li.zhou@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Kai Kang [Sat, 27 May 2017 07:45:03 +0000 (15:45 +0800)]
lsof: clear setuid
Having 'lsof' as a +s (setuid) binary could lead to security issues if
a compromise in the binary is found. It is better that it be -s by
default as a precaution.
Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Gna! project announced that the download site from gna.org HTTP server
will soon be closing down. We have verified that the site is no longer
accessible without network proxy cache. We need to update SRC_URI to
point to new alternative (nwl.cc HTTP server) in order to avoid fetcher
issues in future.
[YOCTO #11575]
Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
PR binutils/21156: Fix illegal memory accesses in readelf when
ing a corrupt binary.
PR binutils/21156: Fix another memory access error in readelf when
parsing a corrupt binary.
Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Khem Raj [Tue, 23 May 2017 23:47:43 +0000 (16:47 -0700)]
xkeyboard-config: Drop explicit dep on virtual/gettext
let gettext.bbclass provide the defaults they
are good for it.
What it needs it a dep on gettext-native for intltool-native
which now intltool-native expresses correctly
Helps compile when distros disable NLS
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
When setting USE_NLS="no" and building systemd-boot
(which DEPENDS on intltool), configure fails,
complaining about missing gettext:
configure: error: GNU gettext tools not found; required for intltool
This is caused because USE_NLS="no" makes the gettext class
add gettext-minimal-native to BASEDEPENDS instead of adding
gettext-native.
Since we still would like to set USE_NLS="no" and build systemd-boot,
we add gettext-native as a dependency to intltool-native, which makes it
available for the configure script of systemd-boot fixing the problem.
tcmode-default: use SDK_SYS suffix instead of SDK_ARCH for binutils-crosssdk
Commit d2eccccb70e809d482c493922f23aef4409cfd82 has changed suffixes for
all -crosssdk packages from SDK_ARCH to SDK_SYS, but missed one line with
binutils-crosssdk. This change fixes that omission.
Signed-off-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Khem Raj [Mon, 22 May 2017 05:00:28 +0000 (22:00 -0700)]
musl: Update to latest master
* f9f686b7 have posix_spawnattr_setflags check for supported flags
* 77e895dc add no-op POSIX_SPAWN_USEVFORK to spawn.h
* 55550416 s390x: provide sigcontext struct definition
* bb439bb1 implement new posix_spawn flag POSIX_SPAWN_SETSID
* 58e2396a remove va_arg hacks in printf core with undefined behavior
* e1232f5b make ttyname[_r] return ENODEV rather than ENOENT
* 1a7fa5e5 fix regression in support for resolv.conf attempts option
* 8c44a060 fix scalbn when result is in the subnormal range
* 2577b1bc allow full-range file offsets to mmap on archs with 64-bit syscall args
* b3751c32 fix dl_iterate_phdr in static PIE binaries
* 1ca59755 fix read past end of buffer in getaddrinfo backend
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Saul Wold [Fri, 19 May 2017 23:18:46 +0000 (16:18 -0700)]
devtool/standard.py: Enable perf to be buildable
Perf is a tool build from the kernel source, which is normally available
in /work-shared/..., but when devtool is used to modify the kernel
source code, perf is not buildable since it gets an error about being unable
to add a depends to a non-exisit task do_patch.
This patch removes do_patch from the SRCTREECOVEREDTASKS and creates an empty
do_patch task to enable the VarFlags code to have someplace to attach depends
information to.
[YOCT #11120]
Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
This is a demo application that draws a three-dimensional spinning cube
using EGL on top of KMS, via Mesa's GBM library. A rough counterpart to
glxgears, it is a useful tool for BSP makers to try the 3D rendering
functionality based on EGL and OpenGL ES in a KMS environment, without
having to set up Wayland or X11.
It is also interesting for Yocto-based projects that do not need any
windowing environment and instead render their visual output fullscreen
to KMS directly, since they can use it as a reference.
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
Yeoh Ee Peng [Sun, 21 May 2017 18:22:22 +0000 (11:22 -0700)]
base.py: add assertExists and assertNotExists to oeselftest
Current osselftest print confusing assertion message when using
self.assertTrue(os.path.exists(filepath)) to test file path,
example of confusing assertion message:
AssertionError: False is not true
Add the assertExists and assertNotExists to improve assertion
message and simplify coding, using selft.assertExists(filepath),
will print meaningful assertion message:
AssertionError: <filepath> does not exist
[YOCTO #11356]
Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Joshua Lock [Fri, 19 May 2017 15:53:06 +0000 (16:53 +0100)]
kernel: predefine KBUILD_BUILD_USER and KBUILD_BUILD_HOST
By exporting KBUILD_BUILD_USER with a pre-defined value we improve the
reproducibility of the kernel and remove the requirement for whoami in the
HOSTTOOLS.
KBUILD_BUILD_HOST also helps improve the reproducibility of the kernel.
For more kernel reproducibility options see:
https://lwn.net/Articles/437864/
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Paul Eggleton [Fri, 19 May 2017 04:11:48 +0000 (16:11 +1200)]
scriptutils: fix fetch_uri() to work with RSS
Since recipe-specific sysroots were implemented, devtool add and devtool
upgrade operations that fetch from a URL that requires native sysroot
dependencies will fail to work as there is no recipe-specific sysroot
set up for them during fetching. An example was any URL pointing to a
tarball compressed with xz, e.g. devtool upgrade on gnutls.
The most expedient way to fix this is to set up a dummy recipe-specific
sysroot to use for the fetch/unpack operations. We do this in the same
manner as bitbake -b does, so we're just taking all of the sysroot
components available and creating a sysroot from those rather than
ensuring the correct dependencies are there - this means that we're
still going to have problems if e.g. xz-native hasn't been built yet,
but that issue will be trickier to solve and is tracked separately.
Fixes [YOCTO #11474].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>