adt-installer: allow installation of other machines
Currently, adt-installer allows only the installation of qemu target
sysroots.
The changes in this patch do the following:
* add a new setting in adt-installer.conf (YOCTOADT_TARGET_MACHINE) for
each target architecture. For example, for arm we can choose to use a
qemuarm sysroot or a beagleboard sysroot. By default, only the qemu
target sysroots are selected (current behavior);
* change adt_installer scripts to allow installing the correct
meta-environment package for the selected machine;
* remove some left-over commented lines;
* use packagegroup-cross-canadian-${MACHINE} when installing the cross
canadian packages instead of doing it separately for each package;
* change the opkg config files in order to be able to find the
packagegroup package, which is allarch;
packagegroup-cross-canadian: change package name to include MACHINE
Since meta-environment package name was changed to contain MACHINE,
change packagegroup-cross-canadian package name too, in order to be able
to select the proper environment files for a certain machine.
Also, remove the RPROVIDES since adt-installer doesn't really need it.
meta-environment: change package name to include MACHINE
Currently, the package name contains just the TRANSLATED_TARGET_ARCH.
When compiling the toolchain for two machines, belonging to the same
architecture (for example: qemuarm and beagleboard), this package gets
overwritten and adt-installer repo will contain just one
meta-environment package... This leads to situations like installing the
toolchain for qemuarm and end up with meta-environment package with
beagleboard cpu options.
Otavio Salvador [Wed, 4 Sep 2013 21:39:11 +0000 (21:39 +0000)]
u-boot, u-boot-fw-utils-cross, u-boot-mkimage: Upgrade to 2013.07
This upgrades the U-Boot based recipes for 2013.07 release.
This removes the 2011.03, 2011.06 and 2013.01.01 versions so we keep a
single one in core. The following recipes has been upgraded:
- u-boot (remove old versions)
- u-boot-mkimage (remove old versions)
- u-boot-fw-utils -> u-boot-fw-utils-cross (renamed and reworked)
The u-boot-fw-utils-cross recipe has been reworked as it uses the
UBOOT_MACHINE to find default environment for use so it is indeed a
cross binary and not a native one.
ptest.bbclass: add cleandirs flag to do_install_ptest_base
The do_install_ptest_base task should have cleandirs flag, just like
the do_install task. The ${D}${PTEST_PATH} directory should be cleaned,
Otherwise, there would be similar errors like below if the
do_install_ptest_base task is rerun.
ln: failed to create symbolic link `xxx': File exists
The do_install_ptest_base function uses 'type -t' command to check
whether do_install_ptest is a function and acts correspondingly.
However, the 'type' command is a shell builtin and its behavior is
not all the same across Linux distros. On ubuntu, if we use #!/bin/sh
as the interpreter for the scripts, as in the case of our intermediate
scripts, the '-t' option for the 'type' command is not supported. So
the check always fails and the do_install_ptest function, even if defined,
is not run.
The same problem also applies to the do_configure_ptest_base and the
do_compile_ptest_base functions.
This patch fixes this problem by avoiding using the 'type' builtin command.
Richard Purdie [Sat, 7 Sep 2013 22:25:14 +0000 (23:25 +0100)]
cmake: set system name correctly
For unknown reasons, the cmake class is using SDK_OS as the
target system OS. This makes no sense but only shows up as a problem
when you try a different SDK OS. Fix it to use TARGET_OS which is
the correct thing to do. For the vast majority of users this will
make no difference.
package.bbclass: skip already-stripped QA test if asked for
Some packages like grub have already stripped binaries e.g.
ERROR: QA Issue: File '/boot/grub/kernel.img' from grub was already
stripped, this will prevent future debugging!
ERROR: QA run found fatal errors. Please consider fixing them.
We would like to have a possibility to skip it using something like
INSANE_SKIP_${PN} = "already-stripped"
This adds the logic to do so
it acts at PN level and not at package level. so something like
Liming Wang [Fri, 6 Sep 2013 20:58:36 +0000 (16:58 -0400)]
beagleboard: upgrade the kernel to 3.10.x
In 3.10.x linux kernel, uImage can't be compiled by default. But zImage
has been supported by the latest u-boot, so use zImage as the default kernel
image file. In u-boot command, use "bootz", instead of "bootm", to boot the kernel.
And add device tree files to support dtb in latest kernel.
Signed-off-by: Liming Wang <liming.wang@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Kevin Hao <kexin.hao@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Darren Hart [Wed, 4 Sep 2013 21:20:55 +0000 (21:20 +0000)]
genericx86: Create a genericx86-common.inc base for the x86 BSPs
The genericx86 and genericx86-64 machines share a great deal in common
in terms of machine features, required packages, etc. Use a common
include file to simplify changes to both machine definitions and avoid
accidental omissions.
Replace the hard-coded XSERVER assignment with the XSERVER_IA32*
defines from ia32-base.inc.
Signed-off-by: Darren Hart <dvhart@linux.intel.com> Cc: Ross Burton <ross.burton@intel.com> Cc: yunguo.wei@windriver.com Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Darren Hart <dvhart@linux.intel.com> Cc: yunguo.wei@windriver.com Cc: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Fri, 6 Sep 2013 19:47:29 +0000 (15:47 -0400)]
kern-tools: support no author patches
Updating the kern-toosl SRCREV to pick up the following fix:
previous versions of the kern-tools supported the ability to import a bare
patch, with no From: Subject: or other identifying fields that are typically
in a full commit.
The same type of commit with kgit-s2q will prompt for a author ID, just
as git-quilt-import does. In build system environment that leads to an
infinite loop and the commit is never pushed.
To fix this issue, we add an interactive flag (-i), that when passed the
prompt based behaviour is used. When it isn't passed (the default), the following
name and email will be used for the git author:
Bruce Ashfield [Fri, 6 Sep 2013 19:47:28 +0000 (15:47 -0400)]
kernel-yocto: improve error checking on non-git repos
While non-git kernel repos are not the preferred format for a kernel upstream,
they are supported. Depending on the creator of the archive the expanded
source directory name varies. If the recipe for the kernel doesn't properly
set S to the right value, a cryptic git error message is produced. We can
detect the situation and offer some advice on how to fix the issue.
A second check is also added in this commit for archive based kernel repos
which won't have a SRCREV to validate. If we have no SRCREV or SRCREV is
INVALID, we can exit the branch validation step immediately. This saves yet
another cryptic git error message and simplifies a custom tgz based recipe.
Bruce Ashfield [Fri, 6 Sep 2013 20:58:37 +0000 (16:58 -0400)]
linux-yocto/3.10: update meta SRCREV for beagleboard config changes
Updating the beagleboard configuration to match the 3.10 kernel changes.
With this, the beagle* boards boot out of the box, with no additional
changes required.
Signed-off-by: Liming Wang <liming.wang@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Fri, 6 Sep 2013 14:44:14 +0000 (15:44 +0100)]
systemd: split out systemd-binfmt as a separate package
If binfmt_misc was compiled as a module but isn't installed then systemd-binfmt
will put an automounter on /proc/sys/fs/binfmt_misc and when it attempts to
automount (e.g. when df is called) it can't find support for the filesystem, and
throws an error.
As binfmt_misc isn't commonly used, split this helper into it's own package, add
a dependency on kernel-module-binfmt-misc, and ensure the service gets started
when it's installed.
Richard Purdie [Fri, 6 Sep 2013 14:14:34 +0000 (14:14 +0000)]
lib/oeqa/qemurunner: Use a timeout in select() call
A 0 value to select.select() immediately returns with no timeout. This was
pegging the cpu at 100% for the python process which was bad and may be
contributing to some of the timeout problems.
Profile from -P of a core-image-minimal before:
97526792 function calls (97525652 primitive calls) in 45.189 seconds
and after:
50204 function calls (49064 primitive calls) in 17.318 seconds
Saving 97.5 million function calls has to be good :)
Jonathan Liu [Thu, 5 Sep 2013 05:24:39 +0000 (15:24 +1000)]
resolvconf: specify configuration for systemd-tmpfiles --update
Running systemd-tmpfiles --update without specifying a configuration
file results in all tmpfiles.d configuration files being processed.
/usr/lib/tmpfiles.d/systemd.conf creates /run/nologin on boot to
prevent non-root users from logging in while the system is booting.
If systemd-tmpfiles --update is run after the system has started,
it will still create /run/nologin which would prevent non-root users
from logging in with the message "System is booting up.".
Stefan Stanacar [Thu, 5 Sep 2013 10:54:43 +0000 (13:54 +0300)]
lib/oeqa/runtime: add basic scanelf test
This uses scanelf from the pax-utils package and scans the binaries in PATH
for TEXTREL and RPATH information. For a sato image with pax-utils installed
it shows no output (which is good).
Richard Purdie [Thu, 5 Sep 2013 15:17:27 +0000 (16:17 +0100)]
devshell: Don't corrupt the fakeroot variables
The devshell anonymous python fragment overwrites variables in the
datastore with their expanded versions. If this runs before the code
in allarch.bbclass which changes TARGET_OS, we can end up with different
directories in the fakeroot environment variables, some expanded with
the original TARGET_OS value.
The devshell code only needs to run before the task itself so we change
to trigger it to run at task execution time only using a flag.
run-postinsts: move script execution from S98 to S99 in rcS.d
Apparently, when opkg/dpkg and run-postinsts are installed in the same
time, opkg/dpkg postinstall overwrites the run-postinsts link in rcS.d.
This will make run-postinsts script useless and the delayed postinstalls
will not be run.
This issue happens only when 'package-management' is disabled and, in
the same time, dpkg/opkg ends up in the image: either pulled by some
dependency or manually installed.
With this patch, both opkg/dpkg and run-postinsts scripts will run but
the former will silently fail because the package metadata is removed from
the image since 'pacakge-management' is disabled.
Jukka Rissanen [Fri, 6 Sep 2013 07:23:00 +0000 (10:23 +0300)]
connman: Ignore the NFS root network interface in init script
The connman init.d script tried to ignore all the network interfaces
if NFS root is configured. We should only ignore the interface
that is used by NFS root.
useradd: Handle users from a package being used in others
If there is a package A (TUNE_PKGARCH) which is depended upon by B which
is MACHINE_ARCH and you build B for machine X, then Y, the user isn't
present in the sysroot for machine Y since the useradd code is never
triggered.
The change ensures the code does get triggered and the user is present.
Jason Wessel [Thu, 22 Aug 2013 23:04:27 +0000 (18:04 -0500)]
kernel.bbclass, image.bbclass: Implement kernel INITRAMFS dependency and bundling
This patch aims to fix the following two cases for the INITRAMFS generation.
1) Allow an image recipe to specify a paired INITRAMFS recipe such
as core-image-minimal-initramfs. This allows building a base
image which always generates the needed initramfs image in one step
2) Allow building a single binary which contains a kernel and
the initramfs.
A key requirement of the initramfs is to be able to add kernel
modules. The current implementation of the INITRAMFS_IMAGE variable
has a circular dependency when using kernel modules in the initramfs
image.bb file that is caused by kernel.bbclass trying to build the
initramfs before the kernel's do_install rule.
The solution for this problem is to have the kernel's
do_bundle_initramfs_image task depend on the do_rootfs from the
INITRAMFS_IMAGE and not some intermediate point. The image.bbclass
will also sets up dependencies to make the initramfs creation task run
last.
The code to bundle the kernel and initramfs together has been added.
At a high level, all it is doing is invoking a second compilation of
the kernel but changing the value of CONFIG_INITRAMFS_SOURCE to point
to the generated initramfs from the image recipe.
Mihai Lindner [Thu, 5 Sep 2013 15:52:42 +0000 (18:52 +0300)]
oeqa/runtime/scp: replace dd call
Use a file object to generate a our test file instead of calling `dd`;
removes dd's output from testimage.log, keeps unittest output clean.
Also remove unused imports.
Mihai Lindner [Thu, 5 Sep 2013 15:52:41 +0000 (18:52 +0300)]
oeqa/utils/sshcontrol: tweak ssh options
Add ssh_options to be used, the same, by ssh and scp:
Decrease LogLevel to ERROR, to suppress warnings (e.g. ssh host
verifications, two warnings in case of having openssh with hpn patches);
We no longer presume that the first line is a warning.
Peter A. Bigot [Sat, 31 Aug 2013 23:50:13 +0000 (18:50 -0500)]
chkconfig: remove linuxstdbase symlinks
These links were moved to the lsb package because lsbsetup was to be
removed. Subsequently an earlier patch that moved them to chkconfig was
also merged. This results in duplicate installations that generate a
warning when building core-image-lsb under DISTRO=poky-lsb which enables the
linuxstdbase feature.
Since its initial commit from the classic OpenEmbedded repository
in 43e94412c45b4b79485a64010c76d89b245bb235, serialization was
commented out, reportedly due to some issue with powerpc in the
boost version 1.36. In the classic OpenEmbedded repository,
serialization has been added again since version 1.4x.
The commit removes the outdated comment and adds serialization to
the BOOST_LIBS after testing `bitbake boost` and bitbaking some
applications using boost from the meta-ros layer for qemuppc.
sysklogd: lower the ALTERNATIVE_PRIORITY in case of systemd
The sysklogd package hasn't got systemd support yet. So in case of
a systemd based system, the commands and corresponding configuration
files should have a lower priority than that of the busybox's syslogd
and klogd utilities. These two utilities from busybox have internal
systemd support if CONFIG_FEATURE_SYSTEMD is enabled. And that config
item is enabled by default.
By default, busybox has CONFIG_FEATURE_SYSLOGD_CFG enabled, but it
doesn't ship a configuration file.
This patch adds a configuration file (/etc/syslog.conf) to the
busybox-syslog package. This configuration file mainly serves as a
placeholder now.
The advantages of this change are:
1. Make the users aware of the fact that the /etc/syslog.conf file
will actually be parsed by busybox's syslogd utility. And configuring
that file will change the logging behaviour.
2. In a systemd based system, this file will prevent the same configuration
file provided by the sysklogd package from messing things up.
If rule directory is inexist, the acpid initscript will exit with success,
but the daemon will be not running.
Print message in this case to tell user that the daemon is not running.
Peter A. Bigot [Mon, 26 Aug 2013 00:40:06 +0000 (19:40 -0500)]
pseudo: fix memory leak and missed privilege drop
qemu.bbclass adds PSEUDO_UNLOAD=1 in qemu_run_binary to avoid reference to
pseudo functions that may not exist in the target environment. This patch
detects the addition of that variable within the environment to which the
call applies, even if not present in the parent environment.
It looks like these were never actually used correctly, and were doing
more harm than good. "keepend" on bbString, for instance, prevented
proper nesting of ${@python} in strings. Similarly, a balanced pair of
{ } braces inside a shell function would force the function to terminate
early if the closing brace was on its own line.
So far I've seen absolutely no negative consequences from removing
these, but a bunch of positive consequences.
Richard Purdie [Mon, 2 Sep 2013 21:48:29 +0000 (21:48 +0000)]
bitbake: knotty: Reduce refresh of footer
When displaying larger number of events the client can get caught up in displaying
the footer, then immediately overwriting it. To avoid this, wait for pauses
in the event stream before displaying the footer to give a slightly more
friendly feel to the UI.
bitbake: bitbake: Ensure ${DATE} and ${TIME} are consistent
Due to the worker split the ${DATE} and ${TIME} variables could end up
with different values for different workers.
E.g., a task like do_rootfs that is run within a fakeroot environment
had a slightly different view of the time than another task that was not
fakerooted which made it impossible to correctly refer to the image
generated by do_rootfs from the other task.
bitbake: hob: remove custom image from the images list when not needed
Selected custom image recipes should be cleared from the combo the moment
you change your selection. The idea is to always perform the selection of
those images in the same way (i.e through the "Select from my image
recipes" option).
DISTRO_FEATURES_remove = "opengl" wasn't working as expected. The reason
turned out the be the indirect reference to opengl and the fact _remove was
operating on unexpanded data.
This patch rearranges some code to ensure we operate on expanded data
by moving the expand cache handing into getVarFlags instead of getVar.
Bruce Ashfield [Thu, 5 Sep 2013 02:20:22 +0000 (22:20 -0400)]
linux-yocto/3.10: fix YAFFS2 build issues
The 3.10 yaffs2 refresh caused several build errors. One due the single kernel
version support being incomplete, and two others due to core kernel changes
creating incompatbilies with the yaffs2 code.
The following three commits fix the issues.
b76f445 yaffs2: disable procfs support ecfe5ed yaffs2: convert to kuid_t and kgid_t fa8efc9 yaffs2: restore multi-kernel version functionality
bumping the SRCREVs for all BSPs to import the fix.
bitbake: hob: remove PACKAGE_INSTALL variable setting from hob
Before saving the packages for a custom images in a .bb file,
the packages were saved in bitbake memory. Now all the variables
are saved in conf file, so saving PACKAGE_INSTALL is not needed anymore.
Moved were LINGUAS_INSTALL is set, because both conditions are for testing
if a custom image is saved.
Paul Eggleton [Mon, 2 Sep 2013 17:26:28 +0000 (18:26 +0100)]
bitbake: bitbake-worker: ensure BUILDNAME is available during execution
BUILDNAME is set from cooker by default, so since the worker split it
will not be set when executing functions. In OpenEmbedded this results
in /etc/version (which is populated from BUILDNAME) not having any
content. Pass this variable value through to the worker explicitly to
fix the issue.
Mihai Prica [Mon, 2 Sep 2013 12:50:51 +0000 (15:50 +0300)]
scripts/runqemu: Fix MACHINE regex
When runqemu tries to determine the MACHINE variable from a
kernel or vmdk filename that doesn't contain any known machine
name, the variable gets set to the filename. It should remain
unset and cause an error.
Robert Yang [Tue, 3 Sep 2013 12:37:01 +0000 (20:37 +0800)]
glib-2.0: fix a host contamination issue
We will see the following warning by accident:
$ bitbake nativesdk-glib-2.0
WARNING: QA Issue: nativesdk-glib-2.0-dbg: found library in wrong location:
/opt/poky/0.5.5/sysroots/x86_64-pokysdk-linux/usr/share/gdb/auto-load/opt/
poky/0.5.5/sysroots/x86_64-pokysdk-linux/usr/lib/libglib-2.0.so.0.3600.4-gdb.py
There are two '/opt/poky/0.5.5/sysroots' in the path when the warning
comes, this is what we need since glib-2.0 has done this intentionally
in its configure and Makefile.
This is because the configure script uses the:
ABS_GLIB_RUNTIME_LIBDIR = "readlink -f $libdir/$with_runtime_libdir`"
to figure out the abs dir, so if
/opt/poky/0.5.5/sysroots/x86_64-pokysdk-linux/usr/lib/ exists , there
would be warning, otherwise no warning.
We can change the "readlink -f" to "readlink -m" to fix the host
contamination issue.
Richard Purdie [Wed, 4 Sep 2013 11:49:10 +0000 (12:49 +0100)]
bitbake.conf: Add SDKPKGSUFFIX to hash whitelist
The gcc recipes reference this however we account for it in the work
directory paths and we don't want recipes depending on the value changing.
This avoids unecessary rebuilds when switching SDKs.
Richard Purdie [Wed, 4 Sep 2013 11:48:27 +0000 (12:48 +0100)]
package.bbclass: Fix darwin shlib handling
shlibs dependency calculations on darwin we not functioning correctly, we
need to process the filename without the complete path. If we don't,
"." characters in the path cause problems.
Olof Johansson [Wed, 4 Sep 2013 06:30:29 +0000 (08:30 +0200)]
flex: Only use create_wrapper for native and nativesdk
The create_wrapper functions of utils.bbclass cause implicit
dependencies on bash, which may not be suitable for deployment on
target. Besides, the wrapper doesn't seem to be necessary on target.
Liming Wang [Wed, 4 Sep 2013 07:08:29 +0000 (15:08 +0800)]
beagleboard: upgrade u-boot to the latest version
Now the latest version of u-boot is 2013.07 and it depends on
its own MLO, instead of x-load, as the Second Program Loader. So remove
x-load and use u-boot's MLO.
And also replace u-boot.bin with u-boot.img as the u-boot image file.
Stefan Stanacar [Tue, 3 Sep 2013 13:01:11 +0000 (16:01 +0300)]
lib/oeqa/runtime: smart: serve repo on host ip only and increase timeout
Don't start the http server on 0.0.0.0, listen on host ip (end of tap interface) only.
Also use the timeout option (default is 300s for ssh commands) for all the commands
run in this module (mostly because smart update timeouts on mips).
Paul Eggleton [Tue, 3 Sep 2013 10:10:44 +0000 (11:10 +0100)]
poky.conf: add version-going-backwards to ERROR_QA
This restores this check after it was disabled by recent poky rev 560dac6e7db76f533f98eda969f585e4eb416e6e. This check is already in
ERROR_QA in the default value set in OE-Core.
Ross Burton [Mon, 2 Sep 2013 12:11:24 +0000 (13:11 +0100)]
pulseaudio: disable GTK+ by default
PulseAudio's GTK+ support is limited to a test case and automatic icon name
population for applications. This is too limited to enforce GTK+ 3 on all
builds, so disable it by default.
Richard Purdie [Mon, 2 Sep 2013 10:25:10 +0000 (11:25 +0100)]
elfutils: Drop do_autoreconf patches
The do-autoreconf patches only change generated files. We run autoreconf ourselves
so we don't need these patches. Worse, they cause failures since the do_patch
task can't rerun after configure since the files change and the patch is no longer
clean.
Paul Eggleton [Mon, 2 Sep 2013 10:35:14 +0000 (11:35 +0100)]
runqemu: set memory size to 256M for most qemu machines
Set memory size to 256M for qemuarm, qemux86, qemux86-64, qemumips,
qemumips64, and qemuppc.
This allows the smart automated tests to run on machines with a GUI
environment (such as Sato) running at the same time, for which 128M is
too limiting. Setting this in runqemu allows users manually using
runqemu to avoid the same out-of-memory issues under similar conditions
using smart, on-target compilation or other uses.
Richard Purdie [Sun, 1 Sep 2013 15:19:32 +0000 (16:19 +0100)]
sanity: Don't make assumptions about cwd
When using the recently fixed out of build directory bitbake invocations, I was
puzzled why bitbake seemed to be pausing. The reason was due to running the sanity
tests each and every time. This was due to current working directory assumptions
within the sanity test code. Fix this to use TOPDIR.
Richard Purdie [Sun, 1 Sep 2013 07:52:40 +0000 (08:52 +0100)]
meta: Don't use deprecated bitbake API
These have been deprecated for a long time, convert the remaining
references to the correct modules and prepare for removal of the
compatibility support from bitbake.
Alexandru DAMIAN [Sat, 31 Aug 2013 22:46:06 +0000 (23:46 +0100)]
bitbake: server/xmlrpc: stop server on client exit
If the server only expects a single client to connect (i.e.
no bind parameter set, so there is no way for the
clients to get the server port), stop the server after
the first client exits.
Richard Purdie [Sat, 31 Aug 2013 22:44:42 +0000 (23:44 +0100)]
bitbake: prserv/serv: Settle on two threads for optimal performance
Using the threading mixin class resulted in large amounts of memory
being used by the PR server for no good reason. Using a receiver thread
and a thread to do the actual database operations on a single connection
gives the same performance with a much saner memory overhead so
switch to this.
Richard Purdie [Sat, 31 Aug 2013 22:43:37 +0000 (23:43 +0100)]
bitbake: build: Fix profile file names
Using the basename of the .bb file is not unique, for example xxx-native
and xxx can overwrite each other. If this happens whilst running, you can
get odd backtraces as one file is parsed as another tries to write out
new data.
Avoid issues by using PN for the output filename instead.