Richard Purdie [Sun, 3 Feb 2013 17:34:54 +0000 (17:34 +0000)]
sstate/path.py: Add copyhardlinktree() function and use for performance optimisation
Add a function which copys a tree as a set of hardlinks to the original
files, then use this in sstate to reduce some of the overhead of sstate
package creation since the file isn't actually copied.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Laurentiu Palcu [Mon, 4 Feb 2013 09:26:05 +0000 (11:26 +0200)]
base-files: remove /var/cache from volatiles
Having the cache in tmpfs implies cache regeneration after every reboot.
For an embedded device this might not be very efficient. So, it is
better for the cache to be persistent between reboots.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- netbase should only include etc-rpc, etc-protocols, etc-services
and the hosts file
- the init script/configuration files should be in another package
(init-ifupdown)
[YOCTO #2486]
Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Tue, 29 Jan 2013 04:24:43 +0000 (12:24 +0800)]
initscripts: add read-only-rootfs-hook.sh script
Add read-only-rootfs-hook.sh script to support a read-only rootfs.
This script makes a union mount of /var/lib and /var/volatile/lib,
making /var/lib directory writable.
Chen Qi [Thu, 24 Jan 2013 07:28:45 +0000 (15:28 +0800)]
initscripts: let populate-volatile.sh create the /tmp link
Previously, the /tmp link (/tmp -> /var/tmp) was created by the
bootmisc.sh script. So in case of a read-only rootfs, this symlink
would not be created correctly.
The populate-volatile.sh script is intended to handle all directories
and files related to volatile storage, so we should let it create
the /tmp link.
In addition, because of the improments of populate-volatile.sh, the data
loss problem of bug#3404 is also resolved by this patch.
Chen Qi [Sun, 6 Jan 2013 09:02:45 +0000 (17:02 +0800)]
sysvinit: add ROOTFS_READ_ONLY variable to rcS-default
This variable indicates whether the rootfs is intended to be read-only
or not. Changing this value from 'no' to 'yes' on a currently running
system with read-write rootfs and rebooting will give the user a working
system with read-only rootfs.
However, it is not suggested to change its value. Normally, if a read-only
rootfs is required, we should build an image with 'read-only-rootfs' image
feature.
Bruce Ashfield [Mon, 4 Feb 2013 19:05:07 +0000 (14:05 -0500)]
linux-yocto: KERNEL_FEATURES should reference full scc files
Some existing KERNEL_FEATURE references use a shorcut notation, but mapping
these shortcuts to actual .scc files in the tree are not obvious. So we clarify
where they are found by referencing the full .scc filename in the KERNEL_FEATURE
addtions.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Bruce Ashfield [Mon, 4 Feb 2013 19:13:37 +0000 (14:13 -0500)]
linux-yocto/dev: linux-yocto development tree tracking recipe
The linux-yocto-dev recipe uses the upstream tracking linux-yocto-dev repository.
Since this tree is frequently updated, and periodically rebuilt, AUTOREV is used
to track its contents.
This recipe is just like other linux-yocto variants, with the only difference
being that to avoid network access during initial parsing, static SRCREVs are
provided and overridden if the preferred kernel provider is linux-yocto-dev.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Laurentiu Palcu [Thu, 31 Jan 2013 08:27:22 +0000 (10:27 +0200)]
qemu.bbclass: return qemuwrapper instead of qemu-allarch
When qemu bbclass is inherited from a recipe that is not architecture
dependent, qemu_run_binary will return "qemu-allarch". However this
binary does not exist. Instead, return "qemuwrapper" which will, in
turn, execute the right binary for the target the image was built for.
Laurentiu Palcu [Thu, 31 Jan 2013 07:59:10 +0000 (09:59 +0200)]
add fontcache.bbclass
All font packages should inherit this class in order to generate the
proper postinst/postrm scriptlets.
The scriptlets will actually create a host intercept hook that will be
executed at the end, at do_rootfs time, after all packages have been
installed. This is good when there are many font packages.
Roy.Li [Sat, 2 Feb 2013 08:18:22 +0000 (16:18 +0800)]
tcp-wrappers: remove size_t.patch
1. it introduces bug in 64bit big endian process with __GLIBC__, At that
condition, size_t is 8byte, and the third parameter of getpeername is
socklen_t which is 4 byte. As a result, getpeername sees third parameter
is always 0, and can not return right value.
The similar program is below, the output is 0, not 9 on PPC64 cpu
main()
{
long aa=9;
printf("%d \n", *((int *)&aa));
}
2. The correct fix is to change getpeername/getsockopt/recvfrom.. last
parameter type from int to socklen_t, but to simplify, we can remove
size_t.patch, since the size of int is same as socklen_t in 32bit/64bit
cpu. and size_t.patch only change three places, there are other places
which uses int, and work well.
2. Fedora, redhat el4 do not use this patch, but Debian uses it, does not
find why this patch is written, maybe it is gcc legency issue which does
not exist.
Martin Jansa [Mon, 4 Feb 2013 22:06:52 +0000 (23:06 +0100)]
ipk: use OPKGLIBDIR in all places
* it's not recommended to change this value, because it breaks upgrade path on target
(all old u-a alternatives are forgot in old OPKGLIBDIR value
* but make it consistent, so if someone really want to change that, then
setting OPKGLIBDIR_distro in distro.conf would be enough
* without this there were at least 4 places to change:
rootfs_ipk: opkglibdir variable (notice that I've removed /opkg from it to correspond
with EXTRA_OECONF option used in opkg recipes
package_ipk: ${target_rootfs}${localstatedir}/lib/opkg/ hardcoded in
package_install_internal_ipk
opkg-collateral: value in lists file
opkg: EXTRA_OECONF for all 3 classes, FILES_libopkg, do_install
* validated with buildhistory that without OPKGLIBDIR explicitly set the
output is the same and that after setting
OPKGLIBDIR_forcevariable := "${libdir}"
everything including empty directory from package_ipk is moved to
libdir
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Paul Eggleton [Tue, 5 Feb 2013 15:55:46 +0000 (15:55 +0000)]
qmmp: update to 0.6.6 and fix
* Update to 0.6.6
* Fix compilation failure due to unconditional call to
QApplication::commitData()
* Disable /usr/local host paths to avoid compilation warnings
* Force use of the cmake configure instead of qmake as the latter is not
dynamic with Qmmp and doesn't let you disable certain dependencies
(e.g. enca)
* Add libsndfile1, libsamplerate0 and curl to DEPENDS since their use
will be non-deterministic otherwise
* Explicitly disable library-requiring options that we don't have
available in OE-Core so that they don't get used if they happen to be
in the sysroot
* Update LIC_FILES_CHKSUM since there were cosmetic changes to the
license file (mostly reformatting and change of references to LGPL
from "Library" to "Lesser".)
Fixes [YOCTO #3822].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Tom Zanussi [Tue, 5 Feb 2013 14:26:36 +0000 (08:26 -0600)]
crosstap: handle hyphenated x86_64 target arch
systemtap_target_arch() should also translate x86-64 (hyphenated) into
x86_64 for the -a param. Failing to do that causes systemtap to see
an architecture mismatch and create a cloned session with a bogusly
synthesized build directory path, and fails to compile the probe.
Fixes [YOCTO #3756]
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix the following warning:
WARNING: QA Issue: lib32-run-postinsts: Files/directories were installed but not shipped
/usr/share/lib32-run-postinsts
/usr/share/lib32-run-postinsts/run-postinsts.awk
[YOCTO #3438]
Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- use CUPS_SERVERBIN to configure the CUPS directory
- the removed variables are not used anymore
Fix the following warning:
WARNING: QA Issue: foomatic-filters: Files/directories were installed but not shipped
/usr/lib64
/usr/lib64/cups
/usr/lib64/cups/filter
/usr/lib64/cups/backend
/usr/lib64/cups/filter/foomatic-rip
/usr/lib64/cups/backend/beh
Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix the following warning:
WARNING: QA Issue: lib32-syslinux: Files/directories were installed but not shipped
/usr/lib
/usr/share/syslinux
/usr/share/syslinux/com32
/usr/share/syslinux/com32/libcom32gpl.a
/usr/share/syslinux/com32/libcom32.a
...
[YOCTO #3438]
Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix the following warning:
WARNING: QA Issue: lib32-sgml-common: Files/directories were installed but not shipped
/etc
/etc/sgml
/etc/sgml/sgml.conf
/usr/bin
/usr/bin/install-catalog
/usr/bin/sgmlwhich
[YOCTO #3438]
Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andy Dalton [Mon, 4 Feb 2013 15:21:25 +0000 (10:21 -0500)]
v86d: Update SRC_URI to point to new file location.
The existing SRC_URI pointed to a Gentoo developer's private web
space. It appears that that developer has retired and that his web
space is no longer active. I've updated the SRC_URI to point to a
location where the file can now be found.
Signed-off-by: Andy Dalton <a.spam.filter@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Peter Seebach [Sat, 26 Jan 2013 18:21:28 +0000 (12:21 -0600)]
package.bbclass: Allow per-package SKIP_FILEDEPS
The existing check for SKIP_FILEDEPS can be overridden per recipe
using SKIP_FILEDEPS_pn-${PN}. However, there's no mechanism for
letting a single package within a recipe use SKIP_FILEDEPS.
This patch adds SKIP_FILEDEPS_<pkg>, by analogy to FILES_<pkg>.
Note that it only works one way; if the recipe has SKIP_FILEDEPS = 1,
the checks for individual packages will never be reached.
Signed-off-by: Peter Seebach <peter.seebach@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Bruce Ashfield [Thu, 24 Jan 2013 05:30:31 +0000 (00:30 -0500)]
kernel-yocto/linux-yocto-custom: support low bandwidth options
To support configurations where active development is not being done within
the oe/bitbake build environment and restricted bandwidth situations, this
commit allows the SRC_URI to point to a kernel tgz instead of a full git
repository.
Outside of the upstream tgz instead of a kernel git repository, the
restrictions, config and patch process is the same as any linux-yocto-custom
recipe.
An example linux-yocto-custom based recipe would have a configuration like
this to build the 3.7 kernel, using an externally supplied config, from the
3.7 tgz:
To promote the reuse and sharing of configuration fragments this change
allows any kernel-yocto based recipe to have multiple alternate git repositories
which provide kernel feature directory trees listed on the SRC_URI.
These feature directories are in addition to any in-tree kernel meta data branches
that may be available (described via the KMETA variable in linux-yocto recipes).
Features found within these directories can be used from recipes via the
KERNEL_FEATURES variable. Features found within a feature directory are free
to include any other features that are available in any directories. In both
cases the path to a feature description (a .scc file) is relative to the
root of a given feature directory (which is how existing .scc files work)
The search order for features is determined by the order that repositories
appear on the SRC_URI.
Normal SRC_URI rules apply to any repository that is added as a kernel
feature container. A SRCREV must be supplied and it must be unpacked to
a unique directory, which is controlled via the "destsuffic" url parameter.
In addition to these standard requirements, any kernel feature repository
reference should identify itself via the "type=kmeta" url parameter. If
type=kmeta is not supplied, the repository will not be processed for
kernel features.
As an example, the following in a linux-yocto bbappend makes two additional
feature directories available to KERNEL_FEATURES and fragments.
Bruce Ashfield [Mon, 28 Jan 2013 21:27:07 +0000 (16:27 -0500)]
kernel-yocto: fix .scc and .cfg matching
SRC_URIs that contained git repositories or other constructs that resulted
in an extension of "." or a substring of "scc" or "cfg" were matching the
tests for patches and configs. This was due to a python tuple being used
instead of an array. Switching to an array makes the match exact and the
behaviour we want.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Bruce Ashfield [Thu, 13 Dec 2012 20:43:05 +0000 (15:43 -0500)]
kernel-yocto: make configuration audit details debug only
The details of the kernel configuration audit are typically a
debug action, so should be moved to bb.debug(). But in order
to maintain visibility of the results, a reference to the log
file is provided in the standard message.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Bruce Ashfield [Mon, 28 Jan 2013 21:22:09 +0000 (16:22 -0500)]
guilt: remove GIT_EXEC_BASE export
git-core provides the following routines (among others): git-sh-setup,
cd_to_toplevel, die, and more. But it is not always in the same location
relative to the guilt binary if git is not part of a 'host tools'
sysroot. Modern git versions don't need this, so commenting it out (until it
breaks again) is the solution to the problem of it not existing, and the
library routines will sourced and provided by git itself.
Since bitbake.conf has git-native as ASSUME_PROVIDED, this means that
when the system git binary is used, errors such as this can be seen in
failed patch logs:
| /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/guilt: line 29: /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/../libexec/git-core/git-sh-setup: No such file or directory
| /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/guilt: line 717: cd_to_toplevel: command not found
| error: patch failed: Makefile:2
| error: Makefile: patch does not apply
| /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/guilt-push: line 137: die: command not found
| [ERROR] unable to complete push
| pending patches are:
| /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/guilt: line 29: /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/../libexec/git-core/git-sh-setup: No such file or directory
| /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/guilt: line 29: /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/../libexec/git-core/git-sh-setup: No such file or directory
| links/linux-yocto-custom/0001-linux-version-tweak.patch
| ERROR. could not update git tree
With the export removed, we have a normal "clean" failure message when
the sysroot or system git is used.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Radu Moisan [Fri, 1 Feb 2013 11:38:15 +0000 (13:38 +0200)]
polkit: Enable systemd support
By default the polkit will autodetect if systemd is available
and setup the configuraton accordingly, potentially
contaminating sstate.
In this patch systemd is explicitly enabled/disabled.
When enabled, polkit will use systemd for session tarcking,
otherwise it will use ConsoleKit.
Signed-off-by: Radu Moisan <radu.moisan@intel.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
--disable-Werror: don't treat all warnings all errors (which breaks compilation).
PYTHON=/dev/null: this prevents distcc from detecting the host Python and trying
to build its include server using the host Python. This disables the include
server completely. If the include server is needed, that should be the object of
another patch (and would introduce a dependency on python for distcc).
The 'distcc-avahi' and 'makefile-param-order' patches are not needed anymore, as
they were merged upstream.
In cases where other initramfs modules need to rely on
udev running (ie in my case I have to load firmware on
a device that is slow to start) there needs to be a way
to keep it running during the lifecycle of the initramfs
but still be shut down before swith_root is called. I
added a module_pre_hook that will shut down udev before
the finish module is called.
Signed-off-by: Ian Reinhart Geiser <igeiser@devonit.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Laurentiu Palcu [Mon, 4 Feb 2013 11:36:51 +0000 (13:36 +0200)]
update-modules: remove recipe from oe-core
update-modules is not used anymore. Any references to it have been
removed, some time ago, from all recipes/bbclasses. It stayed in oe-core
in case anybody still wanted to use it. Time for it to go.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Constantin Musca [Mon, 17 Dec 2012 11:46:20 +0000 (13:46 +0200)]
gcc: enable multilib for target gcc
- add a task to setup multilib configuration for target gcc
- this commit adapts Nitin Kamble's work to gcc 4.7
- use a hash for storing arch-dependent multilib options
- patch gcc in order to use the multilib config files from the
build directory
Tests:
root@qemux86-64:~# gcc -m64 t.c -o t
root@qemux86-64:~# file t
t: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
root@qemux86-64:~# ./t
Hello World !
root@qemux86-64:~# gcc -m32 t.c -o t
root@qemux86-64:~# file t
t: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
root@qemux86-64:~# ./t
Hello World !
[YOCTO #1369]
Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Khem Raj [Sun, 27 Jan 2013 06:20:45 +0000 (22:20 -0800)]
module-base.bbclass: Call make instead of oe_runmake in do_make_scripts
This makes the external module compilation a bit more robust for
cases where external module recipes may be passing extra params
to make via EXTRA_OEMAKE, and more than often one needs to pass
M=$(PWD) when building external modules and if we use EXTRA_OEMAKE
that would mean that it would appear in do_make_scripts as well
and since we are only changing the reference kernel src tree here
it will not run the make scripts in desired directory.
It is also well explained in top makefile in kernel tree around
line# 1335 in 3.4
|else # KBUILD_EXTMOD
|
|###
|# External module support.
|# When building external modules the kernel used as basis is considered
|# read-only, and no consistency checks are made and the make
|# system is not used on the basis kernel. If updates are required
|# in the basis kernel ordinary make commands (without M=...) must
|# be used.
Therefore passing M=... will not do the updates in the basis
kernel as expected with 'make scripts' so we have to bypass EXTRA_OEMAKE
Saul Wold [Wed, 30 Jan 2013 23:05:49 +0000 (15:05 -0800)]
module.bbclass: Allow for modules to be packaged seperate from ${PN}
This patch will allow recipes that provide kernel modules to package
the module or modules in specific packages. That list is contained in
MODULE_PACKAGES, this defaults to to preserve the current behavior.
The package can also define MODULE_FILES to specify files.
Martin Jansa [Tue, 29 Jan 2013 21:17:20 +0000 (22:17 +0100)]
license: fix LICENSE_CREATE_PACKAGE to stay disabled by default
* as reported by Enrico on #oe
11:06:50 < ensc|w> JaMa: might this be caused by dc78ef91a2bf01efb8028c9afbe69e506e016265
which checks for 'd.getVar('LICENSE_CREATE_PACKAGE', True)' evaluating to 'True' for every
string (including the default 0)