image.bbclass: change IMAGE_EXTRA_SPACE to IMAGE_OVERHEAD_FACTOR
This change allows the IMAGE_OVERHEAD_FACTOR (default to 1.2) to
adjust dynamicly how much space to add for each image, thus there
is 20% overhead space by default.
bitbake: save the initial PATH for use when starting a subprocess
It was possible for bitbake-runtime to be run against a semi-installed
python-native resulting in tracebacks with ImportError's.
To prevent this we stash the initial PATH in the BBConfiguration when bitbake
is started and then set this in the env when launching bitbake-runtask through
subprocesses Popen() call.
kernel.bbclass/linux-wrs: move definition of perf package to kernel class
By defining the perf package in the shared kernel class bitbake will be able to
find the package provider even when the preferred kernel doesn't build perf,
preventing dependency resolution failures.
Kevin Tian [Wed, 8 Sep 2010 08:57:03 +0000 (16:57 +0800)]
libzypp: workaround to pass mips build
libzypp failed due to GCC "internal compiler error: segmentation fault" error on
MIPS target. The cause is about boost tribool type usage. If having assignement
within conditional check as below:
if ( (a = b) )
...
<a is a tribool type, b is a normal bool type>
then gcc4.3.3 throws internal error. Then the workaround is to move assignement
out of the conditional check.
However I didn't find same case from web.
We can come back to recheck this issue after upgrading to gcc4.5.0 for MIPS. If
this issue is still there, we'll need more analysis to decide whether to report
to gcc upstream or to libzypp upstream.
Kevin Tian [Wed, 8 Sep 2010 05:31:23 +0000 (13:31 +0800)]
sat-solver: change /usr/lib64 to /usr/lib
we use /usr/lib for x86-64 target, but sat-solver will use /usr/lib64 if 64bit
target arch is detected. This finally causes libzypp failed to find libsatsolver.a.
use "-DLIB=lib" to explicitly enforce the requirement
bitbake/fetch: add try_premirror method and special case git fetcher
Add a new method, try_premirror, to the Fetch object which checks to see
whether the file needs to be fetched from a premirror.
Override this in the Git fetcher to only require a pre-mirror fetch when the
clone directory does not exist.
Yu Ke [Mon, 6 Sep 2010 08:52:52 +0000 (16:52 +0800)]
QT4 mips: disable the LDFLAGS "-Bsymbolic-functions"
"-Bsymbolic-functions" flag makes ld to bind the global function symbol of shared library at compiling time, thus reduce the runtime relocation cost.
However, this flag in binutil 2.20 cause QT4 mips building failure, which is "final link failed: Bad value" error in libQtWebKit.so linking stage. If downgrad to binutil 2.19, this error disappears.
so before binutil new release is out, it is better to disable this flag for QT4 mips.
scripts: use the exported POKY_NATIVE_SYSROOT variable
Rather than trying to determine things through guess-work use the newly
exported variables to determine where the native binaries reside and
whether we are running in a build directory or not.
toolchain-scripts: export extra variables for use by scripts
Export the location of the native sysroot for use in the scripts to
determine the location of native binaries.
Also add a POKY_DISTRO_VERSION to the external toolchain environment as a
method of determining if we're running under a build directory or not
i.e. not if the variable is empty
Mark Hatle [Fri, 3 Sep 2010 17:41:57 +0000 (12:41 -0500)]
rootfs_rpm: Workaround for checksum changes
With the new checksum changes, the system is no longer able to determine
if the function resolve_package is used. So it doesn't get emitted. The
workaround resolves this by triggering an exit 0, followed by a bogus usage
of the function.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Mark Hatle [Thu, 2 Sep 2010 18:40:45 +0000 (13:40 -0500)]
rpm: Raise the number of potential rescans before aborting with a dep loop
Within Poky we have a large number of self-referencing packages. So we
need to raise the number of rescans before triggering a dependency loop
error. 100 seems like a reasonable number.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Jeff Polk [Thu, 2 Sep 2010 21:08:59 +0000 (15:08 -0600)]
siteconfig: generate configuration data caches for autoconf
siteinfo: Use configuration caches when available
Generate cached configuration data for autoconf for the package
based on a list of header, types, and functions to eliminate the
need for all subesequent package builds to do the actual tests
via the cross compiler and sysroot. The cache files are
stored in the sysroot in ${STAGING_DATADIR}/${TARGET_SYS}_config_site.d.
Siteinfo appends any files it finds in that directory to the normal
CONFIG_SITE. All of the cache values set the variables only if not
already set so they may be overridden by any of the normal site files.
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
Mark Hatle [Thu, 2 Sep 2010 18:28:37 +0000 (13:28 -0500)]
rootfs_rpm: Support install_all_locales
Support installing all locales similarly to how it is done within the ipk
support. This has had basic testing, but it's not a normally used function
so there could still be some flaws.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Mark Hatle [Wed, 1 Sep 2010 21:04:45 +0000 (16:04 -0500)]
roots_rpm: Enable installation of recommended packages
Within RPM there is a field called "Suggests". This filed behaves like
"Recommends" does in ipk. So we write out the packages using the Suggests
field with the Poky 'Recommends' values... and then use the arbitrary tags to
capture the Poky 'Suggests' within a new "Recommends" tag.
Slightly confusing, but the end result is a functioning install.
Also some performance enhancements were add at the same time.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Kevin Tian [Fri, 3 Sep 2010 06:29:17 +0000 (14:29 +0800)]
glibc-package.inc: disable build-time locale generation for nativesdk
The idea of build-time locale generation is documented in glibc-package.inc:
Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
is set. The idea is to avoid running localedef on the target (at first boot)
to decrease initial boot time and avoid localedef being killed by the OOM
killer which used to effectively break i18n on machines with < 128MB RAM.
However it doesn't make sense to do same thing for glibc-nativesdk, as the
build system is powerful. More importantly is that ideally host_arch running
sdk may even be out of the support list of target_arch by qemu-native.
Regarding to above rationale, this commit disables build time locale
generation to avoid following error when asking qemu to run localdef:
NOTE: /opt/poky/sysroots/i586-pokysdk-linux/lib/ld-linux.so.2: No such file or directory
nativesdk binaris have opt path hardcoded to avoid mess with host bits, which
is another reason that build time locale generation is not feasible here.
This fixes [BUGID #264]
also add 'nativesdk' to eglibc per RP's suggestion
Kevin Tian [Fri, 3 Sep 2010 01:47:05 +0000 (09:47 +0800)]
udev: don't reference parent sysfs node directly
udev warns direct reference to parent sysfs, which is not necessary and
may break future kernel. Actually udev will handle parent nodes automatically
for ATTRS key.
Bruce Ashfield [Wed, 1 Sep 2010 04:47:02 +0000 (00:47 -0400)]
updateme: detect and prepare patches
The big part of this commit is to detect and prepare any
"free floating" patches into a kernel feature that will be
automatically applied to the kernel tree. These patches will
be pushed onto the BSP branch via guilt, and then built as
part of the normal build/deploy cycle.
There are other grouped cleanups, such as tabs instead
of spaces, and the removal of the unused decheckpoint
function.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
qemuimage-testlib: kill qemu process according to its pid, instead of process name
poky-qemu-internal will set up a tap lockfile when creating tap device. The lockfile
will be released when a TERM signal is received. In previous code, function
Test_Kill_Qemu uses pkill to kill all process named "qemu". This may cause lockfile
release function not work in poky-qemu-internal. Then poky-qemu-internal will be
hang when user start QEMU the second time. To prevent the issue, the new function
Test_Kill_Qemu kills all child pid with a given parent process ID.
Mark Hatle [Mon, 30 Aug 2010 21:44:31 +0000 (16:44 -0500)]
package_rpm: Enable per file dependencies
Switch the per file dependency handing to passing the information to
rpm via the standard 'external' dependency scripting. This ensures that
the dependencies found by RPM exactly match the ones presented by
package.bbclass.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
libmatchbox: Fix the matchbox environment start failure on x86-64 target.
x86 target works well. Root cause is libmatchbox use "0"(int) as termination
indicator when calling XftFontOpen, which in turn called FcPatternVapBuild(in
fontconfig). It try to get the "0" as char* and fetch wrong value, as int and
char* has different size on x86-64. This patch forces a NULL pointer as
terminator to fix it.
Currently no config file for x86-64 target, which cause
/etc/X11/Xsession.d/30xTs_Calibrate.sh run into an infinate loop to block
following scripts to start matchbox.
Copy x86 config file to x86-64.
[BUGID #242] is fixed by this