Richard Purdie [Tue, 29 Jan 2013 14:10:30 +0000 (14:10 +0000)]
package: Create global package file list and use throughout PACKAGEFUNCS
Currently we do a signficant amount of tree traversal in many different places
which in inefficient. We can assume that the files don't change and cache the
file list which gives an efficiency improvement which this patch does using
a global variable.
Richard Purdie [Tue, 29 Jan 2013 13:59:35 +0000 (13:59 +0000)]
package.bbclass: Tweak PACKAGEFUNCS
Move package_rename_hook call into PACKAGEFUNCS and also move package_get_auto_pr
to a more appropriate execution point, grouping package metadata handling
functions together.
Richard Purdie [Tue, 29 Jan 2013 13:55:59 +0000 (13:55 +0000)]
package.bbclass: Split out package_fixsymlinks function
The symlink handling code doesn't need to being part of populate_packages
and is logically separate so split it out into a separate function,
package_fixsymlinks.
Richard Purdie [Tue, 29 Jan 2013 13:51:06 +0000 (13:51 +0000)]
package.bbclass: Avoid copying the datastore for FILES handling
There is no real point in adjusting overrides and creating a copy of the datastore,
just to access a single variable. We can do this just as easily with a slightly
more complicated getVar call. This improves performance.
Richard Purdie [Tue, 29 Jan 2013 13:47:17 +0000 (13:47 +0000)]
package.bbclass: Add a shortcut exit from the mkdir function
The mkdir function iterates over strings with many different operations,
even if ultimately the target already exists. This adds a check to the start
of the function so we don't waste time when the target already exists.
Richard Purdie [Tue, 29 Jan 2013 13:45:17 +0000 (13:45 +0000)]
package.bbclass: Improve kernel module handling
Currently the kernel module handling consists of several special cases
and has its own path walking. This refactors the code to handle them in
a more standardised way which is also a bit more efficient.
Richard Purdie [Tue, 29 Jan 2013 13:43:15 +0000 (13:43 +0000)]
package: Rename splitfile functions to something more descriptive
The splitfile and splitfile2 function names are confusing and the comments
are also misleading, hard to understand or plain incorrect. This tries to
improve things.
Hongxu Jia [Fri, 1 Feb 2013 02:38:17 +0000 (10:38 +0800)]
dpkg-native:fix dpkg-scanpackages error at deb image creation time on Fedora 17
Invoking dpkg-scanpackages on Fedora 17 to build deb image meets such an error:
Can't locate Dpkg.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/loc
al/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr
/lib64/perl5 /usr/share/perl5.) at tmp/sysroots/x86_64-linux/usr/bin/dpkg-sca
npackages line 27.
1. The dpkg-scanpackages is invoked at deb image creation time and it is built
by dpkg-native. The dpkg-scanpackages is a perl script and import module `Dpkg'.
2. The Dpkg.pm has been installed in perl's staging dir at dpkg-native compiling
time. Such as `tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/Dpkg.pm'
3. The dpkg-native uses create_wrapper to relocate to perl-native if perl-native
has been built. If perl-native isn't built, it will use the host Dpkg as default.
4. If dpkg-native is built on a new build envionment which means perl-native doesn't
exist before, and the build system doesn't install dpkg (such as Fedora 17), the
dpkg-scanpackages could not work correctly.
5. Modify dpkg-native's depends, change `perl-native-runtime' to `perl-native', Let
perl-native automatically be built before building dpkg-native.
[YOCTO #3817]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Otavio Salvador [Fri, 1 Feb 2013 02:36:15 +0000 (00:36 -0200)]
mini-x-session: Fix runtime when using without session contents
The script where behaving badly when the session directory does not
exist and also lacking a dependency to 'sudo'. Instead of adding a
dependency on 'sudo' we use 'su' as done in xserver-common.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ming Liu [Fri, 1 Feb 2013 02:27:40 +0000 (10:27 +0800)]
connman-gnome: Add DEPENDS on intltool-native
When 'bitbake -c configure connman-gnome' is executed from scratch, it fails
with syntax error parsing `IT_PROG_INTLTOOL(0.35.0)' in configure.in. This
is caused by its definition is not included into aclocal.m4
Adding intltool-native to DEPENDS is gonna fix it.
[YOCTO #3815]
[ CQID: WIND00401118 ]
Signed-off-by: Ming Liu <ming.liu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Phil Staub [Thu, 31 Jan 2013 16:35:25 +0000 (08:35 -0800)]
libaio: Fix MIPS system call interface
The io_syscallX wrappers in syscall-mips.h discard error return status
by overwriting the value returned in v0 from the system call with -1.
Modify this behavior by returning the negative of the return value on
error (as identified by a3 != 0). This convention is consistent with
the behavior observed in syscall-ppc.h.
For a description of the MIPS system call interface, see:
http://www.linux-mips.org/wiki/Syscall
Signed-off-by: Phil Staub <Phil.Staub@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Thu, 31 Jan 2013 18:31:04 +0000 (13:31 -0500)]
multilib: skip packages that provide virtual/kernel
Rather than keying on recipes that inherit kernel.bbclass, we should
be checking for providers of virtual/kernel when skipping kernel
recipes in multlib builds.
Not all providers of virtual/kernel inherit kernel.bbclass (notably
linux-dummy), so checking on the provider is a more complete check.
We need to be sure to check for inheritance of module-base as well, this
allows for packages that provides modules to avoid the multilib renaming.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mark Asselstine [Thu, 31 Jan 2013 18:31:03 +0000 (13:31 -0500)]
kernel: avoid copying unnecessary files during do_install
kernel_do_install() populates $kerneldir with files needed to build
external modules. To accomplish this there are several copy commands
to get source from the kernel source tree and build trees after which
a 'clean' is performed. Since we are copying from the build tree we
get about 1G of .o and .cmd files copied over only to have them
removed when we clean. This adds additional IO overhead as well as
overhead caused by pseudo. By avoiding copying these files in the
first place we get multiple gains:
* avoid initial copy
* avoid file deletes during clean
* reduce pseudo overhead
Additionally we are making use of cpio vs cp which tends to be
significantly faster at performing copies.
With these changes I observe a 15-30% decrease in the time to complete
the do_install() operation on the kernel.
[YOCTO #3517]
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* By default enable only swrast. This needs to
be here or for some reason qemuarm tries to
detect the intel dri libraries and fails.
* For x86 and x86-64 explicitly set all of
the supported drm drivers.
builds properly with qemux86 qemuarm and qemux86-64
Signed-off-by: Ian Reinhart Geiser <igeiser@devonit.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Marko Lindqvist [Fri, 25 Jan 2013 22:26:37 +0000 (00:26 +0200)]
harfbuzz: fix install of version.h
version.h is listed both in pkginclude_HEADERS (via $HBHEADERS) and
nodist_pkginclude_HEADERS. This double listing is likely cause of
the make install error:
/usr/bin/install: cannot create regular file `.../harfbuzz/0.9.10-r0/image/usr/include/harfbuzz/hb-version.h': File exists
Just remove the nodist_pkginclude_HEADERS entry. We're not creating
the tarball, and listing version.h here wouldn't prevent the other
listing from including it to tarball anyway.
Signed-off-by: Marko Lindqvist <cazfi74@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Richard Purdie [Tue, 29 Jan 2013 13:39:08 +0000 (13:39 +0000)]
insane.bbclass: Fix incorrect getVar call
On a trace I was a bit puzzled why getVar was making 180 calls to len(d).
This is an expensive operation that should be very rarely called and
certainly not by getVar. In perl's do_package it was resulting in
~1.5 million function calls from those 180 cases.
Ultimately this typo was why. Lets fix it and save the CPU cyles.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Saul Wold [Tue, 29 Jan 2013 22:38:11 +0000 (14:38 -0800)]
module.bbclass: Don't add pkg_postinst/pkg_prerm to all packages in recipe
The code in module.bbclass was appending the pkg_postinst and
pkg_prerm to all packages that are part of a given recipe, meaning
that the -lic, -dev, -doc, ... packages all got the scriptlet
This change uses only which macthes with the RDEPENDS and FILES
already used in module.bbclass.
The failure was that rootfs creation would fail due to the -lic package
being installed before the kernel and the script would fail.
[YOCTO #3803]
Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Saul Wold [Tue, 29 Jan 2013 23:04:26 +0000 (15:04 -0800)]
rootfs_rpm: Escape the backtick to ensure the ls runs on the target
This change ensures that the ls /etc/rpm-postinsts runs in the target
at first boot time, rather than at the creation time of the script on
the host.
This was causing the following error in the rootfs log:
+ install -d /srv/ssd/sgw/machines/fri2/tmp/work/fri2-poky-linux/core-image-minimal/1.0-r0/rootfs//etc/rcS.d
+ i=
+ ls /etc/rpm-postinsts/
ls: cannot access /etc/rpm-postinsts/: No such file or directory
Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andreas Müller [Fri, 18 Jan 2013 12:41:49 +0000 (13:41 +0100)]
package.bbclass: remove RRECOMMENDS on base packages for locale packages
As long as we support only one locale package per recipe this leads to unwanted
packages in images. This patch was motivated by samba (meta-oe): only wanting
libsmbclient one gets full samba server into the image. For my standard image
the follwing package were removed by this patch:
Xin Ouyang [Thu, 24 Jan 2013 11:25:33 +0000 (19:25 +0800)]
libcgroup: fix the QA issue for pam_cgroup.so*
PAM modules in ${base_libdir}/security/ should be binary .so files,
not symlinks, so fix this. Since pam_cgroup.so is installed into
${base_libdir}/security, move libcgroup.so.* to ${base_libdir} to
avoid "unsafe-references-in-binaries" QA issue.
This allows one not to install rarely used or fs specific files
As discussed in http://thread.gmane.org/gmane.comp.handhelds.openembedded.core/31744/focus=31804
Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
xorg-minimal-fonts: depend on font-alias instead of shipping fonts.alias
| Collected errors:
| * check_data_file_clashes: Package font-alias wants to install file /home/hrw/HDD/devel/canonical/aarch64/openembedded/build/tmp-eglibc/work/genericarmv8-oe-linux/core-image-lsb-dev/1.0-r0/rootfs/usr/share/fonts/X11/misc/fonts.alias
| But that file is already provided by package * xorg-minimal-fonts
| * opkg_install_cmd: Cannot install package packagegroup-core-lsb-dev.
| ERROR: Function failed: do_rootfs (see /home/hrw/HDD/devel/canonical/aarch64/openembedded/build/tmp-eglibc/work/genericarmv8-oe-linux/core-image-lsb-dev/1.0-r0/temp/log.do_rootfs.7564 for further information)
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Hongxu Jia [Thu, 17 Jan 2013 12:56:37 +0000 (20:56 +0800)]
gtk-icon-cache.bbclass:fix support postrm at image creation time
When use postrm on the build machine, it installs the hook in intercept-scripts
directory and exit 0, the hook will be later invoked and it will properly call
gtk-update-icon-cache.
Martin Jansa [Fri, 25 Jan 2013 19:42:52 +0000 (20:42 +0100)]
eglibc-scripts: don't package mtrace, RDEPEND on eglibc-mtrace instead, fix RDEPENDS
* eglibc-mtrace and eglibc-scripts provide the same mtrace script
* remove mtrace from eglibc-scripts and replace it with RDEPENDS
* mtrace also needs perl (eglibc-mtrace has correct RDEPENDS), bash is
for sotruss and xtrace
* remove invalid RDEPENDS_ldd, ldd is now using /bin/sh and is not
packaged by eglibc-scripts
* fixes error in world-image build:
* check_data_file_clashes: Package eglibc-mtrace wants to install file
rootfs/usr/bin/mtrace
But that file is already provided by package * eglibc-scripts
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Fri, 25 Jan 2013 19:42:53 +0000 (20:42 +0100)]
eglibc-package: remove infodir/dir if it exists
* fixes error in world-image build:
* check_data_file_clashes: Package eglibc-doc wants to install file
rootfs/usr/share/info/dir
But that file is already provided by package * gcc-doc
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Fri, 25 Jan 2013 15:17:06 +0000 (15:17 +0000)]
valgrind: explicitly disable MPI2 support
We don't have support for this in OE-Core, so ensure we don't pick this
up from the build host if e.g. openmpi development files happen to be
installed there.
Fixes [YOCTO #3726].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Thu, 24 Jan 2013 20:18:23 +0000 (12:18 -0800)]
gawk: Add missing dependency on readline
building from shared state often ends up with
|
/b/kraj/angstrom/build/tmp-angstrom_next-uclibc/work/i586-angstrom-linux-uclibc/gawk/4.0.1-r1/gawk-4
.0.1/debug.c:4135: undefined reference to `rl_reset_terminal'
|
/b/kraj/angstrom/build/tmp-angstrom_next-uclibc/work/i586-angstrom-linux-uclibc/gawk/4.0.1-r1/gawk-4
.0.1/debug.c:4138: undefined reference to `rl_get_screen_size'
| debug.o: In function `unserialize':
Adding the missing readline dependency to fix such cases
where readline has not been populated in sysroot via some
other dependency and gawk would then use it or bail out.
Khem Raj [Thu, 24 Jan 2013 02:29:44 +0000 (18:29 -0800)]
libpcap: Turn canusb support into PACKAGECONFIG
libpcap notices libusb in its configure if its sysrooted
and ignores it if its not. But this causes problems since
there is no explicit dependency on libusb. Rebuild from shared
state sometimes fails when libusb has not been yet populated
in sysroot and libpcap has. And do_configure of consumers of libpcap e.g. tcpdump
are probing for features on libpcap. All the tests fail since
none of link steps succeed and it sees as if libpcap does
not have required features and configure of tcpdump bails out.
turn canusb into PACKAGECONFIG and let it be disabled
by default.
Backport additional patches needed for disable-canusb to work
Khem Raj [Thu, 24 Jan 2013 21:07:24 +0000 (13:07 -0800)]
libtirpc: Disable DES functions on uclibc
uclibc does not provide these functions so dont expect them
/usr/lib/libtirpc.so: undefined reference to `key_encryptsession_pk'
/usr/lib/libtirpc.so: undefined reference to `getnetname'
/usr/lib/libtirpc.so: undefined reference to `cbc_crypt'
/usr/lib/libtirpc.so: undefined reference to `ecb_crypt'
/usr/lib/libtirpc.so: undefined reference to `getpublickey'
/usr/lib/libtirpc.so: undefined reference to `key_gendes'
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Thu, 24 Jan 2013 21:07:29 +0000 (13:07 -0800)]
tcmode-default.inc: Switch to git version of uclibc by default
systemd related functionality is tested in latest git of uclibc
therefore lets use it as default provider for uclibc as its the
most tested version on master
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Constantin Musca [Thu, 24 Jan 2013 16:07:24 +0000 (18:07 +0200)]
wpa-supplicant: upgrade to 2.0
- as of February 11, 2012, the project has chosen to use only
the BSD license option for future distribution
- wpa-supplicant-1.0 dir was not version specific,
as such it is generic now
Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Cristian Iorga <cristian.iorga@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
No where in the systemd readme does it specify that usbutils
is a dependancy of systemd. I can only guess that it was added
due to an issue elsewhere in the chain or it was brought in
when udev was merged and the dependancies never checked.
I have build tested this with no issues.
Signed-off-by: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Wenzong Fan [Fri, 25 Jan 2013 08:06:56 +0000 (16:06 +0800)]
git: remove unpackaged perl-native files
${libdir} is not applicable for the install path of perl-native files,
files are always installed to /usr/lib no matter the target is 32/64
bits. After installing, remove unpackaged and unneeded perl-native
files to prevent warnings.
Fix warning:
WARNING: For recipe git, the following files/directories were \
installed but not shipped in any package:
...
WARNING: /usr/lib/perl-native/perl/5.14.2/Git.pm
WARNING: /usr/lib/perl-native/perl/5.14.2/perllocal.pod
WARNING: /usr/lib/perl-native/perl/5.14.2/Error.pm
WARNING: /usr/lib/perl-native/perl/5.14.2/auto
[YOCTO#3780]
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Kang Kai [Mon, 21 Jan 2013 08:57:12 +0000 (16:57 +0800)]
perl: update to 5.14.3
There is a securty issue:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5195
Update perl to 5.14.3 to resolve this problem.
Patches hurd-ccflags.diff, h2ph-multiarch.diff, index-tainting.diff and
hurd-hints.diff have been merged, so remove them from SRC_URI.
Update patches config.sh and Makefile.SH.patch with new PV.
Kang Kai [Mon, 21 Jan 2013 09:03:21 +0000 (17:03 +0800)]
perl-native: update to 5.14.3:
There is a securty issue:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5195
Update perl to 5.14.3 could resolve this problem. And update perl-native
first.
Richard Purdie [Wed, 23 Jan 2013 14:28:31 +0000 (14:28 +0000)]
sstate: Add optimisation for useradd injected dependencies
useradd.bbclass adds sstate dependencies on base-passwd, shadow-native and
shadow-sysroot. Due to the way these are injected, they interact badly with
the other dependency validation logic and end up pulling in dependencies we
don't actually need. This patch adds code to optimise those cases out.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 23 Jan 2013 14:27:33 +0000 (14:27 +0000)]
Split do_packagedata task from do_package
Currently, do_rootfs has a dependency on all the do_package output being present
due to its usage of the pkgdata directories. This means that if you run:
bitbake xxxx-image -c rootfs
you end up having to fetch and unpack all the do_package data which is usually
large and inefficient. It also means rm_work has to leave all the do_package
data lying around so rootfs works.
This patch splits the actual creation of the pkgdata directory off into a separate
task, "packagedata" which happens immediately after do_package. We can then remap
the dependencies so this task is depended upon, not do_package. Sstate can then be
programmed not to require do_package at the appropriate times.
Whilst this patch doesn't do so, it opens the possibility of rm_work wiping
out the do_package output from WORKDIR as long as it also removed the do_package
stamp (both normal and setscene variants) and allowing more space savings
with rm_work which has been regularly requested.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Constantin Musca [Fri, 18 Jan 2013 11:48:29 +0000 (13:48 +0200)]
packagegroup-core-gtk-directfb: rename to packagegroup-core-directfb
- DirectFB is not supported by gtk versions >= 2.18
- remove the backwards compatibility statements (packagegroup-core-directfb
is an independent packagegroup)
- remove all gtk dependencies
[YOCTO #3642]
Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Wed, 23 Jan 2013 06:08:04 +0000 (14:08 +0800)]
init-live.sh: move /media/xxx over to the real root filesystem
Previously, the /media/xxx which contains the root image was not
moved to be under the real root filesystem. Because of this, the
output of the 'mount' command is somewhat confusing, that is, it
has some mount point that is not even in the filesystem.
Besides, on some machine, it caused the recovery procedure when we
booted it next time.
This patches fixes this issue by moving the /media/xxx over to be
under the real root filesystem.
[YOCTO #2064]
[YOCTO #3705]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
MiLo [Mon, 21 Jan 2013 08:46:59 +0000 (09:46 +0100)]
gcc: Enable OpenMP compiling and library
Multicore embedded systems are getting more and more common.
Remove "--disable-openmp" from the GCC configuration options and
always build libgomp. This only creates a "bigger" compiler but
has no effect on the compiled binaries that don't use openmp.
Tested a clean build on mips32el and arm7a, no problems encountered.
Autoconf will not detect OpenMP after this change, because it will
build and run a target binary on the build system. In order to use
OpenMP, the variable ac_cv_prog_c_openmp=-fopenmp must be set.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The rearrangement of various file contents left these empty modules which
don't get packaged and hence lead to image creation errors on anything using
them. This patch ensures the dependencies are attached to the packages
which contain the config files or the build module infrastructure as
appropriate. It also resolves some confusion over whether the name is
perl-module-build or perl-module-module-build, the latter being the
autogenerated dependency which previously couldn't be found.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>