Jonathan Liu [Tue, 20 Aug 2013 10:10:41 +0000 (20:10 +1000)]
mesa: enable additional drivers for gallium-llvm x86/x86-64
The additional Gallium drivers are needed for open source ATI Radeon
and NVIDIA graphics drivers.
The radeonsi and r600 drivers require LLVM 3.3 built with r600
PACKAGECONFIG so they must be explicitly enabled by adding r600 to the
mesa PACKAGECONFIG.
Signed-off-by: Jonathan Liu <net147@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Otavio Salvador [Thu, 1 Aug 2013 22:13:57 +0000 (19:13 -0300)]
distro_features_check.bbclass: Allow checking of required/conflicting features
This add support to list required/confliting distro features for a
recipe; this avoids user mistake when building recipes/images which
would not work depending on DISTRO_FEATURES option set.
Adding:
,----[ Use example ]
| inherit distro_features_check
|
| REQUIRED_DISTRO_FEATURES = "x11"
| CONFLICT_DISTRO_FEATURES_mx6 = "wayland"
`----
In the image recipe allow us to make clear to user that this image
needs X11 and /cannot/ be build with Wayland support in i.MX6
platforms, for example.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Mark Hatle [Tue, 13 Aug 2013 00:47:11 +0000 (19:47 -0500)]
package_deb: Add support for NO_RECOMMENDATIONS and PACKAGE_EXCLUDE
Add support for NO_RECOMMENDATIONS and PACKAGE_EXCLUDE. Also add a
warning that ensures users know that BAD_RECOMMENDATIONS support is
not implemented in the debian package/rootfs classes.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Mark Hatle [Tue, 13 Aug 2013 15:50:55 +0000 (10:50 -0500)]
package_deb.bbclass: Use the WORKDIR not SYSROOT for temp files
Previous debian APT configuration was using the sysroot directory.
This not only polluted the sysroot, but violates the expectation that
the sysroot is not modified by the rootfs installation.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Mark Hatle [Tue, 13 Aug 2013 00:45:48 +0000 (19:45 -0500)]
package_rpm.bbclass: NO_RECOMMENDATIONS support
Add NO_RECOMMENDATIONS support. A way to disable all recommended
packages from being installed. This will help shrink the size of
the resulting filesystem.
Add documentation on NO_RECOMMENDATIONS and BAD_RECOMMENDATIONS.
Note, using NO_RECOMMENDATIONS has side effects such that kernel-modules may
not have been installed. A user will need to manually add to their image
any kernel-modules required to be on the image for functionality.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Mark Hatle [Tue, 6 Aug 2013 15:41:33 +0000 (10:41 -0500)]
image.bbclass: Add basic support for PACKAGE_EXCLUDE
Add the foundation for the PACKAGE_EXCLUDE support.
As part of this work, it was noticed that the PACKAGE_INSTALL and
PACKAGE_INSTALL_ATTEMPTONLY were still using he 'normal' version for
dependencies. This should no longer be necessary as of the change in the way
the complementary package groups (dev, dbg, ptest and others) are defined.
By making this change the dependency tree is more correct than before, and
gives the ability for manipulating PACKAGE_INSTALL and
PACKAGE_INSTALL_ATTEMPTONLY, while adjusting the dependencies at the same
time.
Warning messages will be generated if the user is trying to exclude a
package that was previously in the PACKAGE_INSTALL or
PACKAGE_INSTALL_ATTEMPTONLY variables.
(See additional commits for package manager specific support.)
Add documentation on PACKAGE_EXCLUDE and related variables.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Florin Sarbu [Thu, 22 Aug 2013 09:56:46 +0000 (12:56 +0300)]
busybox.inc: Avoid error when SYSLOG is not enabled
Add -f to rm of ${D}${sysconfdir}/syslog-startup.conf.${BPN} so as to
not error out when the busybox config used does not have SYSLOG enabled
and DISTRO_FEATURES does not contain sysvinit.
Signed-off-by: Florin Sarbu <florin.sarbu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Otavio Salvador [Fri, 16 Aug 2013 18:34:28 +0000 (15:34 -0300)]
linux-dtb.inc: Fix dtb generation for kernels newer than 3.8
The 3.8 kernel has change the default directory where the dtb file is
stored. The change has been done at:
,----[ Quote of 3.8 kernel change ]
| commit 499cd8298628eeabf0eb5eb6525d4faa0eec80d8
| Author: Grant Likely <grant.likely@secretlab.ca>
| Date: Tue Nov 27 16:29:11 2012 -0700
|
| ARM: dt: change .dtb build rules to build in dts directory
|
| The current rules have the .dtb files build in a different directory
| from the .dts files. The only reason for this is that it was what
| PowerPC has done historically. This patch changes ARM to use the generic
| dtb rule which builds .dtb files in the same directory as the source .dts.
|
| Cc: Russell King <linux@arm.linux.org.uk>
| Cc: Arnd Bergmann <arnd@arndb.de>
| Acked-by: Olof Johansson <olof@lixom.net>
| Cc: linux-arm-kernel@lists.infradead.org
| Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
| [swarren: added rm command for old stale .dtb files]
| Signed-off-by: Stephen Warren <swarren@nvidia.com>
| Signed-off-by: Rob Herring <rob.herring@calxeda.com>
`----
This change adds support for both places to backward and forward
compatibility.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Chen Qi [Fri, 16 Aug 2013 09:36:33 +0000 (17:36 +0800)]
initscripts: remove obsolete device_table.txt
device_table.txt was once used by an init script named 'devices' to
create the basic files under /dev. However, it's no longer used now.
The devices init script has been removed, and makedevs command has been
disabled by default in busybox.
Besides, considering the device managers and devtmpfs filesystem, this
file is not likely to be used again. So we remove it.
Chen Qi [Fri, 16 Aug 2013 09:38:10 +0000 (17:38 +0800)]
init-install.sh: fix to handle the boot partition correctly
Previously, the boot partition was created for the target hard drive
but there was no corresponding entry for it in /etc/fstab. Besides,
even if the boot partition was mounted, it would just result in odd
directory hierarchy like /boot/boot/grub. However, what we really need
is /boot/grub. This patch fixes this problem.
Besides, for future maintance work, this patch also renames some of the
intermediate directories. It uses more descriptive names like /tgt_root
and /src_root. The name of /ssd is dropped.
Chen Qi [Fri, 16 Aug 2013 09:38:09 +0000 (17:38 +0800)]
init-install.sh: improve hard drive searching process
Previously, only unremovable hard drives are searched and are treated
as candidates of target disks to intall into.
However, it's possible that we're going to install the live image into
a removable media such as an USB. This patch enables this possibility.
In addition, this patch presents more information about the hard drives
so that user may have more knowledge about which hard drive they are
going to install their image into.
Paul Eggleton [Fri, 16 Aug 2013 13:33:12 +0000 (14:33 +0100)]
tslib: update to 1.1
Drop patches merged upstream. 32bitBE-support.patch wasn't merged, but
no longer applies and similar changes look to have been made; tslib 1.1
works properly on qemumips without it, so this has also been dropped.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
When making distributions based on the default distro-less config, it
is useful to be able to reuse the default DISTRO_FEATURES options
without the need of duplication. The new variable,
DISTRO_FEATURES_DEFAULT, allow this reuse and customization.
So distros can include 'default-distrovars.inc' and use:
,----[ Use example ]
| DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} myfeature"
`----
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Yang Shi [Wed, 14 Aug 2013 16:41:54 +0000 (09:41 -0700)]
Revert "hello-mod: Ensure the produced package name begins with kernel-module-"
[YOCTO #4286]
The package runtime mapping rename issue is already fixed by
commit 0bc564af07c1bae8112f834a60aea3b72af7de13, the "kernel-module-" workaround
is not necessary anymore for out-of-tree module package, so revert that commit.
Paul Eggleton [Thu, 15 Aug 2013 17:04:39 +0000 (18:04 +0100)]
buildhistory-diff: improve command-line handling
Improve command-line argument handling of buildhistory-diff to make it
easier to use.
* Default buildhistory directory to buildhistory/ under the current
directory and require an option to set it (since most users will
likely run buildhistory-diff from the build directory and keep
BUILDHISTORY_DIR at its default location)
* Default from-revision to "build-minus-1" to get the difference from
the previous build with no arguments
* Allow from/to revisions to be specified by from..to (since git accepts
this form).
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 15 Aug 2013 17:04:38 +0000 (18:04 +0100)]
classes/buildhistory: avoid mangling names in dot graphs for images
We were mangling names here to avoid characters that are invalid for dot
node names, but if you just quote all names that isn't necessary and we
retain the original naming, allowing easy searching of the graph files.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 15 Aug 2013 17:04:37 +0000 (18:04 +0100)]
classes/buildhistory: tag last 3 build revisions
This makes it easier to obtain the difference from the last three
builds particularly where a single build might account for more than one
commit in the buildhistory git repository (e.g. if package and image
changes occurred).
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Thu, 15 Aug 2013 17:04:35 +0000 (18:04 +0100)]
classes/buildhistory: record size of installed package not compressed archive
* usually it's more important to know how much space will each
package take on target device then size of compressed package
* example for libewebkit0 with 4 different architectures, interesting
that om_gta02 .ipk is bigger but it's smaller when installed
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the rootfs is read-only and the ssh keys are not available at system
start-up, the init script will generate ssh keys into /etc/ssh, thus
causing a 'read-only file system' error.
In order for Yocto based image to work correctly for read-only rootfs,
we use the following logic for openssh.
If the rootfs is read-only and there are pre-generated keys under /etc/ssh,
we use the pre-generated keys. Note the pre-generated keys are mainly for
debugging or development purpose.
If the rootfs is read-only and there are no pre-generated keys under
/etc/ssh, we use /var/run/ssh as the location for ssh keys. That is, at
system boot-up, the generated ssh keys will put into /var/run/ssh.
The init script for irda writes configuration items to /etc/sysconfig/irda
if that file is not available in system. But it's actually not necessary,
the behavior doesn't change whether the init script writes to the file or not.
Considering it issues error messages in case of a read-only rootfs, I delete
the writing process.
Chen Qi [Wed, 7 Aug 2013 07:17:15 +0000 (15:17 +0800)]
populate-volatile.sh: use 'cp -a' to avoid potential problem
Previously, dead links in target directory will not be copied.
This is incorrect as dead links are not uncommon in our rootfs.
So we use '-a' option instead.
populate-volatile.sh: don't spawn background process at rootfs time
If we're building a read-only rootfs, we'll get the following error now
and then.
tar: .: file changed as we read it
The root cause is that we spawn background process at rootfs time.
When the tar command is running, it's possible that files under rootfs
are changed by background processes, thus this error.
populate-volatile.sh: use $ROOT_DIR/var/volatile/tmp as TMPDIR
It's possible that a 'No such directory' error occurs when doing
check_requirement in populate-volatile.sh at rootfs time. This is
because the $ROOT_DIR/var/tmp might be a dead link.
Use $ROOT_DIR/var/volatile/tmp as the TMPDIR instead to avoid this
error.
At some point, the udev was modified to source the functions from
initscripts or lsbinitscripts. This dependency is actually not needed.
If we use udev in a system where initscripts from oe-core is not available,
there will be errors.
This patch fixes this problem by removing the implicit dependency.
init-live.sh: make $ROOT_MOUNT/media writable when necessary
If the live image is mounted as read-only, we cannot make necessary
directories under $ROOT_MOUNT/media, so trying to move the mount points
lead to errors.
So in case that no unification filesystem mechanism is available in kernel
and the rootfs is mounted as read-only, we mount tmpfs on $ROOT_MOUNT/media
so that it's possible to make necessary directories under it.
Chen Qi [Tue, 13 Aug 2013 06:11:50 +0000 (14:11 +0800)]
image.bbclass: create device table after package installation
Now that the makedevs supports using user/group names in the devcie
table files, and it uses passwd and group files under the rootfs which
is provided by the base-passwd package, we should let package installation
finish first, so that makedevs can get a correct mapping from user/group
names to uid/gid.
The check for existence of ${IMAGE_ROOTFS}/dev is removed. This is because
do_rootfs doesn't have 'nostamp' flag any more, so the do_rootfs task will
not be rerun for every build. Checking for the existence of ${IMAGE_ROOTFS}/dev
is not necessary any more. Besides, as base-files package also installs the
/dev directory, this checking does not serve as a good criteria.
Ross Burton [Wed, 14 Aug 2013 14:13:44 +0000 (15:13 +0100)]
wipe-sysroots: don't assume TMPDIR is under BUILDDIR
The previous code used the environment variable BUILDDIR and assumed that TMPDIR
was a subdirectory. This often isn't the case, so instead ask bitbake where the
directories we're about to delete are.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Ross Burton [Wed, 14 Aug 2013 11:40:12 +0000 (12:40 +0100)]
matchbox-wm: fix icon handling on 64-bit hosts
Xlib has a historical quirk where 32-bit values are returned in longs (but
always hidden through a cast). On 32-bit machines this doesn't matter but on
64-bit this leads to problems. Bump SRCREV to integrate a fix from upstream.
Also, drop the conditional configure_fix.patch, it was integrated long ago.
[ YOCTO #4917 ]
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Otavio Salvador [Tue, 13 Aug 2013 13:52:35 +0000 (10:52 -0300)]
linux-dtb: Use kernel build system to generate the dtb files
As the Linux kernel, unconditionally, builds the dtc application and
it is the compatible version with the DeviceTree files shipped within
the kernel it is better to use it and the kernel build system to
generate the dtb files.
Some DeviceTree files rely on CPP and kernel headers to be able to
generate the dtb binary contents and it is harder to replicate it
outside of Linux kernel build system so we /use/ it.
To comply with these assumptions we need to use the dtb file when
calling 'make' instead of pointing to the DeviceTree source file; the
code has been made backward compatible but it is advised to move to
the new definition to avoid warnings as:
,----[ Original definition ]
| KERNEL_DEVICETREE = "${S}/arch/arm/boot/dts/imx6q-sabresd.dts"
`----
Becomes:
,----[ New definition ]
| KERNEL_DEVICETREE = "imx6q-sabresd.dtb"
`----
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Saul Wold [Tue, 13 Aug 2013 18:01:50 +0000 (11:01 -0700)]
meta-skeleton: Add busybox config fragment example
This shows an example of the config fragment support that
both the linux-yocto and busybox recipes use. This example
is specific to busybox.
By adding busybox CONFIG options into a .cfg file and then
adding that .cfg file to SRC_URI the merge_config.sh script will
correctly handle these CONFIG options during the do_configure task.
The merge_config.sh script uses a last-in wins method.
For more details about this, see the Kernel Development Manual Section 2.2.3
http://www.yoctoproject.org/docs/current/kernel-dev/kernel-dev.html#changing-the-configuration
Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Kai Kang [Tue, 13 Aug 2013 09:57:49 +0000 (17:57 +0800)]
dpkg: fix include header caused compile error
Build dpkg-native on Fedora 19, it fails with:
/usr/include/c++/4.8.1/cstdlib: In function ‘long long int std::abs(long long int)’:
/usr/include/c++/4.8.1/cstdlib:174:20: error: declaration of C function ‘long long int std::abs(long long int)’ conflicts with
abs(long long __x) { return __builtin_llabs (__x); }
^
/usr/include/c++/4.8.1/cstdlib:166:3: error: previous declaration ‘long int std::abs(long int)’ here
abs(long __i) { return __builtin_labs(__i); }
^
That because header cstdlib is included in a 'extern "C"' block that gcc
4.8 doesn't support. Fix it by move the header file out of the 'extern "C"'
block.
Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Ross Burton [Mon, 12 Aug 2013 10:41:49 +0000 (11:41 +0100)]
oe-setup-builddir: substitute ##OEROOT## when using templates
oe-setup-builddir substitutes ##COREBASE## which seems like it should have the
same value as the variable ${COREBASE}. In reality it doesn't as ##COREBASE##
is substituted with the value of $OEROOT (the location of the oe-init-build-env
script), whereas ${COREBASE} is set by oe-core to the parent directory of meta/.
If oe-core's meta/ isn't a top-level directory then ##COREBASE## and ${COREBASE}
have different values, which can lead to confusion.
To resolve this, deprecate (but still substitute) ##COREBASE## and substitute
##OEROOT# for $OEROOT.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Otavio Salvador [Sat, 10 Aug 2013 20:19:30 +0000 (17:19 -0300)]
blacklist.bbclass: Avoid blacklist specific handle in base.bbclass
base.bbclass had code which handled the PNBLACKLIST in case of
multilib use. This is better to be done in the blacklist.bbclass so it
has all logic in a single place.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Paul Barker [Mon, 5 Aug 2013 21:31:00 +0000 (22:31 +0100)]
opkg: Fix possible installation of GPLv3 header
opkg is GPLv2+ licensed but it has optional support for sha256 checksums which
was GPLv3+ licensed. This code is not built unless '--enable-sha256' is passed
to the configure script, the default is equivalent to '--disable-sha256'.
However, the header 'sha256.h', which is GPLv3+ licensed, is in the list of
header files to be installed and thus could end up in the libopkg-dev package.
As this header is installed to '/usr/include/libopkg' it is very unlikely that
it will ever be used. However, if you're uncomfortable with GPLv3 code going
anywhere near your target filesystem you won't want this to happen.
The simplest solution is to replace the sha256 implementation in opkg with the
implementation from coreutils-6.9 which is licensed under GPLv2+. This is
committed to the opkg subversion repository as r652/r653.
The only intervening commit between r650 (previous SRCREV) and this is r651,
which integrates 'obsolete_automake_macros.patch' into the opkg sources. Thus
this patch isn't needed in oe-core anymore.
(Note: Before 873689bbabba25e7be5c12317c04519a7bc8d0ef, this header is only
installed if opkg is built in its source tree (ie. ${B}=${S}). After that commit
the header will always be installed)
Signed-off-by: Paul Barker <paul@paulbarker.me.uk> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Darren Hart [Fri, 9 Aug 2013 17:58:42 +0000 (10:58 -0700)]
kernel.bbclass: Correct post(inst|rm) package association
Fixes [YOCTO #4991]
The kernel image is installed as part of the kernel-image package, but
the symlink creation/removal via alternatives is being done in
pkg_post(inst|rm)_kernel-base.
Move the postinst alternatives logic into the kernel-image functions.
Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>