Richard Purdie [Thu, 22 Aug 2013 11:07:22 +0000 (11:07 +0000)]
chrpath: Add support for relocating darwin binaries
On darwin, install_name_tool can be used to relocate binaries/libraries. This
adds support for adjusting them with relative paths rather than hardcoded ones.
The Linux code is factored out into a function but is otherwise unchanged.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 22 Aug 2013 10:40:53 +0000 (10:40 +0000)]
Drop darwin8/darwin9 usage
There were darwin8/darwin9 overrides spinkled in the code from times gone
by. Lets settle on the darwin override and remove the others since its pointless
duplication. We always inject darwin into OVERRIDES if needed in the darwin8/9
cases.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 22 Aug 2013 10:24:57 +0000 (10:24 +0000)]
bitbake.conf: Work around dev symlink problems on darwin
On darwin, we have:
libxxx.dylib -> libxxx.Y.dylib
compared to Linux which has:
libxxx.so -> libxxx.so.Y
Our ordering of PACKAGES with -dev first and then ${PN} makes it impossible to
match the files correctly using simple globbing. This makes darwin targets
completely broken since both the libs and the dev symlinks end up in ${PN}-dev.
Whilst this commit is a hack, it at least puts the files into ${PN} and allows the
builds to be used. Symlinks don't take up much space so this isn't the end of
the world. I'm open to better solutions to this.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 22 Aug 2013 10:04:03 +0000 (10:04 +0000)]
gcc-cross.inc: Clean up after merge
* Remove the duplicate EXTRA_OECONF_PATHS that is overwritten
* Merge the do_compile and do_compile_prepend
* Group dependency and configuration variables together
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Hardcoding -nativesdk as the sdk package architecture is inflexible. We may have
multiple different target OS and we need a way to be able to separate them. Turning
this into a configurable value allows the flexibility we need to build different
SDKMACHINEs with different OS targets.
The commit should have no behaviour change, just makes things more configurable.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We never run nativesdk binaries so it doesn't make sense to use the relocatable
class. The chrpath calls at packaging time will ensure the binaries are relocated
in the final packages. The binaries in the sysroot are never used.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 20 Aug 2013 21:22:31 +0000 (21:22 +0000)]
gcc: Drop gcc-cross4.inc, its pointless now
The include was useful historically, its not anymore so lets remove it.
This should have no functional change except on any layers directly depending
on it or gcc-cross.inc but even then it would only impact sh4 and is easily
fixed if there was a problem.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 20 Aug 2013 21:17:55 +0000 (21:17 +0000)]
gcc-configure-sdk.inc: Don't build target-libgcc
I don't understand why we're building the target libgcc in the canadian-cross build
since it should have been built elsewhere. The compiler configuration isn't correct
to build a working target libgcc in all cases anyway.
To avoid various weird build errors, stop building it.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 20 Aug 2013 21:14:02 +0000 (21:14 +0000)]
gcc-package-sdk.inc: Allow executable extension to be overridden
On platforms like windows, executables have extensions. Whilst I'm not proposing
we wholesale support windows extensions, this small tweak allows a cross compiler
targetting mingw to be built which does seem like a good use case.
The patch therefore adds an EXEEXT which the mingw layer can set for the libexec
symlinks.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 20 Aug 2013 21:10:55 +0000 (21:10 +0000)]
gcc-package-sdk.inc: Use relative symlinks in libexec dir
We already use relative links for other gcc libexec links, this changes the sdk
do_install to match elsewhere and use relative symlinks too. This makes things
slightly easier in the SDK installation process and standardises.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 20 Aug 2013 21:02:30 +0000 (21:02 +0000)]
gcc-cross-canadian-4.8: Enable PARALLEL_MAKE
This disabling of PARALLEL_MAKE has been forward ported for gcc-cross-canadian
since at least 2009-09 and gcc 4.3.3, probably older.
I've tested this with high values of parallel make and it all seems to work and
we usually build gcc with parallel make so it seems unlikely there are issues.
Lets therefore enable it.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 20 Aug 2013 17:19:29 +0000 (17:19 +0000)]
libiconv: Extend to nativesdk and support non-linux targets
This library is currently only available when targeting non-libc. This patch
also makes it available when targetting non-linux since it is likely of use
then.
It also adds a BBCLASSEXTEND for nativesdk since again, it can be useful
in that context.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 20 Aug 2013 17:13:14 +0000 (17:13 +0000)]
gettext: Improve USE_NLS handling for nativesdk/crosssdk/cross-canadian
The gettext handling of USE_NLS has become a bit tricky to understand, or
alter from the SDK context. This patch introduces a SDKUSE_NLS which can
be set to configure a given SDK/ADT to use NLS or not. This is independent
of the target system NLS usage.
The code in gettext.bbclass is therefore simplified and the classes
themselves now set USE_NLS to appropriate values. No NLS is used
for native, cross and crosssdk since it is never used there and
would just increase build time.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 20 Aug 2013 13:01:49 +0000 (13:01 +0000)]
package.bbclass: Fix handling of symlinks in debug packages
When copying the sources for the debug source package we use cpio -Ll
which means to copy files as hardlinks and to dereference symlinks.
It appears there is a bug in cpio since -Ll will copy symlinks and
not dereference them. We therefore do a second pass over copied symlinks
resolving them into files. Ideally we would copy these as hardlinks as well
however it doesn't seem worth the extra code and effort for what amounts
to a corner case for a minor space improvement.
This means that the -dbg packages no longer contain broken symlinks.
[YOCTO #5020]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 22 Aug 2013 15:49:08 +0000 (15:49 +0000)]
mkfontscale: This no longer needs a full libx11, xproto suffices
configure just looks for xproto so we can drop the libx11 dependency and
reduce the amount we build for some small performance improvements and
less of the -native stack.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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.