Ross Burton [Fri, 16 Oct 2015 22:02:26 +0000 (23:02 +0100)]
file: don't replace host file when built natively
To avoid races over the file binaries being replaced mid-build we made
file-native an assume-provided binary and check for it at startup, but target
file still needs a native file binary of the same version to compile the magic
data.
The least invasive way of doing this is to build a native file don't put it on
PATH, and tell the target build where to find the native binary. We do however
want the native libmagic to be installed normally (as for example rpm and
subversion need it) so we can't use NATIVE_PACKAGE_PATH_SUFFIX as that change
libdir.
Ross Burton [Fri, 16 Oct 2015 21:49:26 +0000 (22:49 +0100)]
bitbake: add file-native to ASSUME_PROVIDED
Various key parts of the core classes (for example, do_package and
do_populate_sysroot) currently require file. As it's not possible to build a
file-native without invoking do_populate_sysroot mark file-native as
ASSUME_PROVIDED and expect to use the host's binary.
Richard Purdie [Fri, 23 Oct 2015 03:30:36 +0000 (20:30 -0700)]
populate_sdk_base: Ensure PKGDATA_DIR exists
The code assumes that PKG_DATADIR exists and will fail if an image has not been
generated which creates it. This occurs when something like buildtools-tarball
is built which doesn't have target packages, only nativesdk ones.
Since this shouldn't be fatal, workaround this by creating the missing
directory.
Jeremy Puhlman [Fri, 23 Oct 2015 17:18:07 +0000 (10:18 -0700)]
Perl: Use CC version not $Config(gccversion)
Get version data from querying $CC rather then
$Config(gccversion) which comes from running version of
perl. Since perl-native is not likely compiled by gcc
5 at this point, it will never trigger the required
fixes for gcc 5.
Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Randy Witt [Fri, 23 Oct 2015 02:53:56 +0000 (19:53 -0700)]
wic/utils/oe/misc.py: Preserve PATH when running native tools
Previously exec_native_cmd() would remove all items from PATH except for
the native sysroot. This can cause issues for the tools that are created
using create_wrapper().
Now instead of wiping out the PATH, run a sanity check to check if the
command is in the native sysroot.
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Randy Witt [Fri, 23 Oct 2015 02:46:11 +0000 (19:46 -0700)]
mtools_4.0.18.bb: Use create_wrapper() for mcopy
mcopy uses the IBM850 codepage from gconv. The default install location
for gconv will not match the actual install location since it can be
pulled from sstate. This patch overrides the default location when
running by adding GCONV_PATH to the environment for mcopy.
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Robert Yang [Fri, 23 Oct 2015 11:22:04 +0000 (04:22 -0700)]
e2fsprogs: backport a patch to fix filetype for hardlink
Backport a patch to fix hardlinks filetype:
IMAGE_INSTALL_append = " e2fsprogs"
$ ./tmp/sysroots/x86_64-linux/sbin/fsck.ext4 tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4 -f
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Setting filetype for entry 'fsck.ext2' in /sbin (80) to 1.
Setting filetype for entry 'mkfs.ext4' in /sbin (80) to 1.
Setting filetype for entry 'fsck.ext4' in /sbin (80) to 1.
Setting filetype for entry 'mkfs.ext4dev' in /sbin (80) to 1.
Setting filetype for entry 'fsck.ext3' in /sbin (80) to 1.
Setting filetype for entry 'mkfs.ext2' in /sbin (80) to 1.
Setting filetype for entry 'mkfs.ext3' in /sbin (80) to 1.
Setting filetype for entry 'e2fsck' in /sbin (80) to 1.
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
test.img: ***** FILE SYSTEM WAS MODIFIED *****
test.img: 799/65536 files (0.1% non-contiguous), 14652/262144 blocks
Now when run it again, we may get:
[snip]
Pass 3A: Optimizing directories
[snip]
test.img: ***** FILE SYSTEM WAS MODIFIED *****
test.img: 799/65536 files (0.1% non-contiguous), 14652/262144 blocks
This is fine since it is optimizing, from "man e2fsck":
e2fsck may sometimes optimize a few directories --- for example, if
directory indexing is enabled and a directory is not indexed and would
benefit from being indexed, or if the index structures are corrupted
and need to be rebuilt.
Signed-off-by: Daniel Istrate <daniel.alexandrux.istrate@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mariano Lopez [Thu, 22 Oct 2015 13:39:20 +0000 (13:39 +0000)]
runqemu-ifup: Check if the tap interface is set up correctly
The process to set up a tap interface is as follows:
- tap interface is created
- An IP address is assigned to the tap interface
- The interface is bring up
- A route is added to the target using the tap
interface
Of all the previous steps, only the first one is
check if it was sucessful. The status of the others
are ignored and all of them are required to have
basic connectivity in the target.
This patch adds the checks for the rest of the stpes
needed to set up the tap interface.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mike Looijmans [Tue, 20 Oct 2015 06:43:47 +0000 (08:43 +0200)]
initscripts/sysfs.sh: Mount devtmpfs on /dev/ if needed
When booting from an initrd disk, or when the kernel config option
DEVTMPFS_MOUNT isn't provided, /dev/ will not be mounted at boot.
This small addition will check if /dev/ is "useful", and if not, will
mount devtmpfs if the kernel provides it.
With this change, it is possible to set an initscripts style image type
to "cpio.gz" and boot it as initrd. Without this change, the image won't
work properly because of the missing devices.
Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jian Liu [Thu, 8 Oct 2015 06:47:51 +0000 (14:47 +0800)]
base.bbclass: considering multilib when setting LICENSE_EXCLUSION
The PACKAGES is not mapped with MLPREFIX when setting LICENSE_EXCLUSION
in base.bbclass. For example,
For libgcc-dev,
LICENSE_EXCLUSION-libgcc-dev=1
but for lib32-libgcc-dev,
LICENSE_EXCLUSION-libgcc-dev=1
Obviously it is wrong for lib32-libgcc-dev.
Add MLPREFIX before the package name during setting LICENSE_EXCLUSION
Signed-off-by: Jian Liu <jian.liu@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mark Hatle [Tue, 20 Oct 2015 16:29:37 +0000 (11:29 -0500)]
gcc-target.inc: Add support for executable thats may have a suffix
In the past GCC has used a wildcard to permit generating executables
that may have a suffix, such as .exe. This wild card was lost in one
of the updates. Adding the wild card back in fixes a number of issues
when generating a mingw gcc.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andre McCurdy [Wed, 21 Oct 2015 03:20:35 +0000 (20:20 -0700)]
cairo: backport fix for compatibility with OpenGL ES 2.0
To maintain compatibility with OpenGL ES 2.0, the matrix in
_cairo_gl_shader_bind_matrix() should be manually transposed,
and GL_FALSE passed as the transpose argument to the
glUniformMatrix3fv() call as it is the only valid value for
that parameter in OpenGL ES 2.0.
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Wenzong Fan [Wed, 14 Oct 2015 02:55:17 +0000 (22:55 -0400)]
bzip2: fix bunzip2 -qt returns 0 for corrupt archives
"bzip2 -t FILE" returns 2 if FILE exists, but is not a valid bzip2 file.
"bzip2 -qt FILE" returns 0 when this happens, although it does print out
an error message as is does so.
This has been fix by Debian, just port changes from Debian patch file
"20-legacy.patch".
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jussi Kukkonen [Wed, 21 Oct 2015 13:25:31 +0000 (16:25 +0300)]
gtk+3: Do not try to initialize GL without libgl
Gdk initialization ends up calling epoxy GLX api, which calls exit()
if libGL.so.1 is not present. In practice this prevents all GTK+
applications from starting if GLX is not present.
If opengl and x11 distro features are set, make gtk+3 RDEPEND on libgl.
If opengl and x11 distro features are not set, use #ifdef to prevent
the GL initialization.
Remove libgl dependency from gtk3-demo: it can now run without
libgl (although trying to run the glarea demo will exit in that case).
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Thu, 15 Oct 2015 00:43:12 +0000 (17:43 -0700)]
uclibc: Fix build with gcc5
An agressive optimization in gcc5 meant that we get linking errors
with uclibc build, this patch fixes the issue by letting gcc know
that these funcitons are used.
scripts/oe-publish-sdk: create directory before making git repo
This patch fixes a small bug that prevents seting a git repo in exported SDK
layers dir. Before setting a git repo, that directory needs to be created.
Signed-off-by: Costin Constantin <costin.c.constantin@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ed Bartosh [Wed, 21 Oct 2015 16:18:08 +0000 (16:18 +0000)]
rootfs.py: add more info to the warning message
Since the log_check_regex can potentially be false positive it
makes sense to print the whole line where error is found.
This way user will be able to see the error and understand
if it's valid or not.
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>
Markus Lehtonen [Fri, 16 Oct 2015 10:37:32 +0000 (13:37 +0300)]
package signing: automatically export public keys
Automatically export public key(s) of the signing key(s) from the gpg
keyring. Adds a new simple recipe that does the actual task of exporting
the keys. This patch makes the RPM_GPG_PUBKEY and PACKAGE_FEED_GPG
PUBKEY settings obsolete.
Markus Lehtonen [Thu, 15 Oct 2015 11:35:20 +0000 (14:35 +0300)]
sign_rpm.bbclass: make RPM_GPG_NAME a mandatory setting
Simplifies the configuration. Makes way for the removal of
RPM_GPG_PUBKEY setting and possible future implementation of a separate
signing server support. Also, moves the configuration sanity checking
into a separate function.
Markus Lehtonen [Wed, 14 Oct 2015 13:54:42 +0000 (16:54 +0300)]
package_manager: support GPG_PATH variable
If defined, use GPG_PATH as the gpg home directory when signing package
feeds. This setting is only used by package_manager if package feed
singning has been enabled, i.e. PACKAGE_FEED_SIGN="1".
If ccache is enabled, compiling apr-utils fails with the following error
messages because libtool is confused by the "ccache gcc" appearing on
the command line. Disable ccache for apr, so that ccache don't get
enabled in all software using apr's rules.mk.
Bruce Ashfield [Fri, 23 Oct 2015 20:18:32 +0000 (16:18 -0400)]
linux-yocto: skip kernel meta data branches when finding machine branch
Before the fetcher validated the specified SRCREV was reachable on a
specified branch, linux-yocto style kernel's were comparing the value
of KBRANCH and branch on the SRC_URI and then allowing a SRC_URI
specified branch to override KBRANCH.
With the introduction of kernel meta data on the SRC_URI, this routine
is incorrectly picking up a kernel-cache repository and then attempting
to apply that branch information to the kernel repository.
The rationalization of the branch specification is largely no longer
required, and will may be removed in the future. But for now, to keep
changes minimal, we can simply not return branch information that comes
from kernel meta data by checking the 'type' parameter and skipping
if it is of type 'kmeta'.
Bruce Ashfield [Fri, 23 Oct 2015 20:18:29 +0000 (16:18 -0400)]
linux-yocto/4.1: drm/i915: Fix the VBT child device parsing for BSW
Updating the 4.1 SRCREVs to integrate the following fix:
[
drm/i915: Fix the VBT child device parsing for BSW
Recent BSW VBT has a VBT child device size 37 bytes instead of the 33
bytes our code assumes. This means we fail to parse the VBT and thus
fail to detect eDP ports properly and just register them as DP ports
instead.
Fix it up by using the reported child device size from the VBT instead
of assuming it matches out struct defintions.
The latest spec I have shows that the child device size should be 36
bytes for rev >= 195, however on my BSW the size is actually 37 bytes.
And our current struct definition is 33 bytes.
Feels like the entire VBT parses would need to be rewritten to handle
changes in the layout better, but for now I've decided to do just the
bare minimum to get my eDP port back.
Cc: Vijay Purushothaman <vijay.a.purushothaman@linux.intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
(cherry picked from commit 90e4f1592bb6e82f6690f0e05a8aadcf04d7bce7) Signed-off-by: abdul arif abdul muttalib
<abdul.arif.b.abdul.muttalib@intel.com> Signed-off-by: Tan Jui Nee <jui.nee.tan@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
]
ref-manual: Updated the MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS variable
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS won't always grab your
out-of-tree module recipe since the kernel recipe's
PACKAGES_DYNAMIC variable provides kernel-module-*. This
patch documents that your out-of-tree module needs to explicitly
set its PACKAGES variable to avoid this behavior.
Scott Rifenbark [Thu, 15 Oct 2015 17:32:40 +0000 (10:32 -0700)]
dev-manual: Added notes to clarify use of pkg-config
Fixed [YOCTO #8168]
I placed a couple notes in the "Configuration" and "Compilation"
sections within the "Writing a New Recipe" section. These notes
point out that the build system (as of release 1.7) now disables
several *-config scripts. The user should be using "pkg-config"
to ensure proper pathname construction and location of these
types of scripts.
Scott Rifenbark [Tue, 13 Oct 2015 17:00:54 +0000 (10:00 -0700)]
ref-manual, dev-manual: Applied feedback to edit several classes
Fixes [YOCTO #8298]
Updated several classes with feedback from Jose Lamego of Intel.
The feedback fixed some class groupings so that previously isolated
classes could be bundled under common classes (e.g.
autotools*.bbclass).
I scrubbed the cross-references for cases where a particular
class became "undocumented." The cross-references now point to
the bundled class entry in the ref-manual.
Scott Rifenbark [Tue, 6 Oct 2015 17:18:05 +0000 (10:18 -0700)]
ref-manual: Added three PACKAGE_FEED_* variable descriptions
Fixes [YOCOT #8301]
Added descriptions for PACKAGE_FEED_ARCHS,
PACKAGE_FEED_BASE_PATHS, and PACKAGE_FEED_URIS variables.
The build system uses these three variables to construct a
set of final package feed URIs.
Scott Rifenbark [Tue, 6 Oct 2015 15:19:18 +0000 (08:19 -0700)]
toaster-manual: New section on PREFERRED_VERSION
Added a new section in the interface use area that describes
how to build a version of a recipe that is not the default
version. Four new figures were added to support the
description.
Scott Rifenbark [Thu, 1 Oct 2015 15:16:55 +0000 (08:16 -0700)]
adt-manual: Fixed PMS typo
Fixes [YOCTO #8419]
There was a typo in the section that indicated the file extensions
for various Package Management Systems. The one for RPM used a
file extension of ".rms". I fixed it to ".rpm".
Scott Rifenbark [Wed, 30 Sep 2015 19:55:13 +0000 (12:55 -0700)]
ref-manual: Updates to clarify Fetcher URL directory parameters
Updated the SRC_URI variable description to cross-reference
the "Fetchers" section in the BitBake User Manual and added
some more Fetcher URL parameters specific to certain fetchers.
This was done to help clarify how to put fetched code into
specific directories.
Also updated the bin_packages.bbclass description to have a
better example. Used a git:// fetcher example and provided
Scott Rifenbark [Fri, 25 Sep 2015 17:28:47 +0000 (10:28 -0700)]
documentation: Updated files to support 2.0 release.
These updates included editing the poky.ent file so that
DISTRO and related variables are now 2.0. Also updated all
the title pages to have the manual revision table correct.
Finally, used my email for the manuals.
Scott Rifenbark [Tue, 22 Sep 2015 17:32:52 +0000 (10:32 -0700)]
adt-manual: Updated the build toolchain section with more detail.
Fixes [YOCTO #8368]
Apparently there is confusion on how to build a cross-toolchain
using Eclipse and the Yocto plug-in. Specifically on setting
the MACHINE variable, the bblayers.conf stuff, and the
preferences in Eclipse to find things. I added a couple key
things to the section that describes using the OpenEmbedded
build system to build out the toolchain.
Scott Rifenbark [Fri, 18 Sep 2015 14:30:17 +0000 (07:30 -0700)]
ref-manual: Updated distrodata.bbclass example
Fixes [YOCTO #8237]
The use of this class no longer requires including the laundry
list of files that was provided in the section. It just needs
the INHERIT statement now. Removed the include statements.
Scott Rifenbark [Wed, 16 Sep 2015 18:09:54 +0000 (11:09 -0700)]
yocto-project-qs, ref-manual: Replaced "yum" with "dnf"
Fixes [YOCTO #8159]
Fedora and CentOS have deprecated "yum" and have come up with
"dnf" as the package manager. This happened at the end of
2014. I have replaced the occurrences in the manual
appropritely.
Scott Rifenbark [Wed, 16 Sep 2015 17:14:45 +0000 (10:14 -0700)]
ref-manual: Added cross-reference phrase to some variables
Fixes [YOCTO #8233]
The IMAGE_POSTPROCESS_COMMAND and IMAGE_PREPROCESS_COMMAND
variables were missing a linked cross-reference to the
IMAGE_ROOTFS variable. I added the linked references.
archiver.bbclass: Fixes and improves archiver class for kernel and gcc packages
gcc packages use a shared source directory, this causes an issue since the archiver will
try to patch the same source several times (one for each gcc package), producing an error,
the archiver class used stamp-base to check this, nonetheless our gcc packages no longer
use stamp-base, they use gcc-shared instead, which is what broke this functionality.
This patch adds a check to see whether or not the source should be patched,
avoiding patching the source when it shouldn't.
Also, we dont need to create multiple identical tarballs for all gcc packages,
this patch fixes this and creates a single source tarball for gcc.
When requesting patched sources, a race condition is created for linux-yocto tasks,
unpack_and_patch is executed along with kernel_configme, which most of the time
causes errors during configure, since kernel_configme task is specific to the kernel,
simply modifying the tasks order by creating a dependency to kernel_configme was impossible,
causing errors on all other packages that didnt use kernel_configme, this is fixed by
creating a special case for the kernel, adding tasks with correct dependencies,
avoiding the race condition and behaving the way it should for all other packages as well.
Ross Burton [Fri, 16 Oct 2015 10:44:49 +0000 (11:44 +0100)]
oeqa/selftest: clean up selftest.inc in teardown
Test cases may want to do call bitbake in setUpClass() but at that point the
previous selftest.inc is still present which could change the build
configuration and result in any built artifacts being removed in the next
bitbake invocation as part of the sysroot clean up.
Resolve this by cleaning selftest.inc in the tearDown, the clean in setUp should
be considered a safety net.
Ross Burton [Thu, 15 Oct 2015 15:53:47 +0000 (16:53 +0100)]
oeqa/selftest/wic: fix cleaning
In some situations the native tools built in setUpClass() are wiped from the
sysroot by the time the tests are executed, likely due to the cleanup performed
in the base setUp() method.
Avoid this by doing all of the preparatory building in setUpLocal.