When building one of the native, nativesdk or crosssdk packages TARGET_*
variables' values are no longer related to the target we set via MACHINE
variable, they are now related to the BUILD (native) or SDK (nativesdk,
crosssdk) targets instead. We need to change TARGET_FPU variable
accordingly or some of the recipes (the ones that check for TARGET_FPU
value, most notably gcc and eglibc) might be confused.
It's probably cleaner not to reset TARGET_FPU but to change it to
something like ${BUILD_FPU} (for native) or ${SDK_FPU} (for crosssdk and
nativesdk) but as long as BUILD and SDK are x86 it's safe to just reset
TARGET_FPU.
(From OE-Core rev: 0d4ea5d7486dc35001582bef3ff6ebfad0606bda)
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The failure of ldconfig was not getting logged anywhere before.
(From OE-Core rev: 880b0a222fdc11ee088bcaf8c832edae23bc28a7)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is taken from openembedded.master:
commit 9d0d70da60ca8ef278916f442125d41161846f38
Author: Chris Larson <chris_larson@mentor.com>
Date: Mon Aug 23 13:03:55 2010 -0400
patch: allow importing patches into other dirs
Use the 'patchdir' flag. If relative, it's assumed to be relative to ${S}.
It creates a patchset class per patch directory, so for quilt this results i
multiple .pc/patches directories to manage each of the patchsets.
(From OE-Core rev: 01e4609ee8441c8212725fd062782313caae0708)
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Tom Rini <tom_rini@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This helps when SSTATE_MANIFESTS is overridden by external layers
(From OE-Core rev: 246cbbb076ea91eccbc373bd277684f69a8ab4dc)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The point we need to take the lock is when the rpm files are written into the
deploy rpm directory. Since sstate makes the actual installation of the files,
that is the point we need to take the lock. This also stops the deploy/rpm
directory being accessed for a lock before it exists.
[YOCTO #797]
[YOCTO #925]
(From OE-Core rev: 833a1e970f087dfcb32967cee3e24540f041cde0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Image generation code in .conf files is hard to read as it needs to be
single line. By moving this to a separate class, multiline functions
can be used instead improving readability. It also declutters
bitbake.conf.
There is no real functional change with this patch but it highlights
the need for improvements in places such as the IMAGE_EXTRA_OPTION
ext* specific variable which makes no sense.
(From OE-Core rev: a5c403f0fc71f38c0669691da7f637303ea09a27)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Image type specific size overrides for IMAGE_ROOTFS were being ignored.
Moving the size calculation to after the overide expansion point addresses
this problem.
[YOCTO #928]
(From OE-Core rev: 2f676dadebebc461c1e01e0b6da3cb2258829048)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The quoting in get_imagecmds() is hard to read. We can simplify the constuction
a little to make this easier to parse and reduce complexity slightly.
(From OE-Core rev: da5d038f955bf47155a0f217dba2f96e263bcad8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* otherwise strange error like this:
ERROR: Logfile of failure stored in: /OE/shr-core/tmp/work/armv7a-oe-linux-gnueabi/libtool-cross-2.4-r1/temp/log.do_package_write_ipk.25551
Log data follows:
| ERROR: Package already staged (/OE/shr-core/tmp/sstate-control/manifest-nokia900-libtool-cross.deploy-ipk)?!
| ERROR: Function 'sstate_task_postfunc' failed
NOTE: package libtool-cross-2.4-r1: task do_package_write_ipk: Failed
ERROR: Task 11 (/OE/shr-core/openembedded-core/meta/recipes-devtools/libtool/libtool-cross_2.4.bb, do_package_write_ipk) failed with exit code '1'
is shown in this case with package_ipk twice in INHERIT
* Thanks to Richard for fix
(From OE-Core rev: f2fe5e840b8aa0558b5462ef2c7517b2f14ec2ea)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When 'kernel-misc' is empty do_rootfs will fail when including 'kernel-modules'
The proper fix would be to have a whitelist for the 'kernel-modules' meta-pkg
(From OE-Core rev: bb72bd56101698b7fe166dd02fdca07d06a6eb8b)
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Tested-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without this, as a specific example, one has both gtk+-native and gtk+ runtime
providing gdk-pixbuf-loader-*, and you can get bitbake preference conflicts as
a result if you have preferences specified for both gtk+ and gtk+-native for
other things.
(From OE-Core rev: 41d77ac37f606e54293826ba1e94a4254bddbfa6)
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The existing infrastructure uses an external build tree which references the
kernel source in the work dir. If run with rm work, building external modules
will fail.
This patch places a configured source tree in sysroots. Striking a balance
between minimal size and minimal maintenance is difficult. A fully configured
tree is about 500MB after a clean. This version leans on the side of caution and
removes only the obviously unecessary parts of the source tree to conserve
space, resulting in about 170MB. The arch directories would be some additional
pruning we could do. Given examples from the devel package from distributions, I
suspect this size could be reduced to 75MB or so, but at the cost of a much more
complex recipe which is likely to require a great deal more maintenance to keep
current with kernel releases.
Care is also taken to clean the hostprogs in scripts, and the modules are
responsible for building them as needed. Although it is unclear to me if this is
really necessary, especially considering that modules put these bits back as
soon as they compile. If we are not generating an sstate package, I suspect we
can ignore these.
Please try this with your modules and let me know how it does. I tried to take
non linux-yocto kernel recipes into account, but I have only tested with
linux-yocto and the hello-mod recipe so far.
(From OE-Core rev: a9d41062e24a6b99661b3a5256f369b557433607)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Acked-by: Koen Kooi <koen@dominion.thruhere.net>
Acked-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Duplicate entries in PACKAGE_ARCHS causes problems with rootfs
generation. For example multiple architecture entries in opkg.conf
will confuse the opkg package manager.
(From OE-Core rev: 06aca3de95483e5086b0231df070bac76a6e3c19)
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #908] Added CPPFLAGS into the environment file and added
--sysroot to it.
(From OE-Core rev: 360daf019101d9b4d08ab1e3d279b08c02e9749e)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Shows a warning during sanity checking if the scripts/bitbake wrapper is
not being used
* Check to see if pseudo is working during sanity checking, and if it
isn't an error occurs (if we are using the wrapper script and pseudo
has been built; otherwise it is a warning).
Fixes [YOCTO #653]
(From OE-Core rev: 0b06b69992dd3df1dfff7bde694d7ad23d8d15a0)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The previous change used egrep instead of fgrep. We need to use fgrep because
there are expression like syntaxes in some file names, we need exact matches.
(From OE-Core rev: 0de88dc9aa30f29ec1ab5cc0c541c8be859392ab)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The additional configuration should have been there from the beginning. The
purpose of these config files is to have a consistent Berkeley DB configuration
even if the underlying RPM version changes -- or the RPM macros change.
This likely would not cause any problems until we attempted an upgrade of
either BDB or RPM.
(From OE-Core rev: a0682191e0743ed8ec1d30567eb26d4cde864ee8)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Image recipes can now add their ssh server of choice by adding
ssh-server-dropbear or ssh-server-openssh to IMAGE_FEATURES.
(From OE-Core rev: dbf59f0af238d9fced0040c1e7379fa81f0507cd)
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For safety, always delete the stamp files in sstate_clean regardless of
whether the manifest file exists or not.
(From OE-Core rev: f781c35da9a11eefdb06bda72ca89753df863efa)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Avoid deleting stamp files whose names contain the current task's name as a
substring. This will be especially important for example if do_package_write
is ever made an sstate task (as it would previously have deleted the stamps
here for do_package_write_ipk etc.)
(From OE-Core rev: ea743ea30e2289733d27979e8ec921648342da0e)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows recipes to insert a custom task in between building *Image and modules
>From OE .dev revision 615876fe218dc3feb4a3df9e6546a7b1a6376800
(From OE-Core rev: a2cc999d663407d17f41e1b0344361944993fa86)
Signed-off-by: Koen Kooi <koen@openembedded.org>
Acked-by: Graeme Gregory <dp@xora.org.uk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
below is the history on this class. Documentation for newly introduced SOURCE_MIRROR_URL
is already present in oe-core
commit 0ef914b250df46a41348479446214575668943fb
Author: Eric BENARD <eric@eukrea.com>
Date: Wed Nov 3 13:28:54 2010 +0000
own-mirrors.bbclass: allow mirroring of scm fetched packages
this way, it's possible to setup a local webserver (for example
using busybox httpd -p "8081" -h backuped_download_dir) serving
a presiously fetched download directory and to build wihout the
need for an internet access
this can also be used when connected to know to know which packages
are missing from the local mirror's directory (and thus are fetched
from internet as a fallback), it's possible to run the server this way :
busybox httpd -p "8081" -h backuped_download_dir -vv -f | grep -B 1 response:404
to get the name of the missing packages.
Signed-off-by: Eric Bénard <eric@eukrea.com>
Acked-by: Denys Dmytriyenko <denis@denix.org>
Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Signed-off-by: Tom Rini <tom_rini@mentor.com>
commit 1b661974e3f8f844f6ec4cdb7bb42cef9595b626
Author: Marcin Juszkiewicz <hrw@openembedded.org>
Date: Sat Mar 10 14:10:06 2007 +0000
own-mirrors.bbclass: added class which can be used to set PREMIRRORS from config
- SOURCE_MIRROR_URL is new variable which point to source mirror which will be
used before fetching from original SRC_URI location.
(From OE-Core rev: 0dd3f7ccd170c8eae1014f5fd66a0e30fed7ad0c)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #797]
During rootfs generation, if other RPM packages are being wrtten
this could cause a failure during the solvedb generation. We
add a shared lock around the RPM package building. This will allow
multiple RPM packages to continue to be written at the same time, but
prevent rootfs generation and RPM package generation at the same time.
(From OE-Core rev: 1d5ca654a482f582c75faf546140dfd6064da73b)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The debug directory before was below ${WORKDIR}. Unfortunately if
something was based on a git tree, it meant that "git" was the
directory name being preserved for usr/src/debug usage. The patch
moves to using "${WORKDIR}/.." as the base, to ensure that the
WORKDIR naming is used in usr/src/debug.
(From OE-Core rev: dbc752c75786b0985fbeb4986467ae01290f424a)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If one package is configuring when automake is built, the aclocal-VERSION
directory can be created or removed and this can confuse the configure
process.
Since we always run automake-native, it should always be using the
autoake-native aclocal directory for automake files which is the
result of this patch.
(From OE-Core rev: 2a15188d631a97dc20940f7edc801212e191332f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* fixes ie setuptools, without this patch it RDEPENDs on python-core-native, which is not RPROVIDED by anything
* imported from OE 8377b8ec57f35b9e5b81a74c77f68fd6e02949c8
(From OE-Core rev: 65317f21736293cc4eeb9a404e9f01043df7565d)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Acked-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* see comment for reason why we need this
* more info:
http://lists.linuxtogo.org/pipermail/openembedded-devel/2011-February/029877.html
(From OE-Core rev: 6f0bbe463204d377f92140b6540d9d518d5c6d6b)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Acked-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Now qemu can handle lower values we can chnage this sanity test
to check of values if less than 65536
(From OE-Core rev: 5f172d8b9b829554f3d884a9007a33fff7dcc187)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This fixes [BUGID #241]
The kernel hostprogs are built for the host architecture. They should not be
deployed to the target, and they should not be included in an sstate package
which might get reused on a host of a different architecture.
As we don't build many out-of-tree modules, this patch takes the approach of
building the hostprogs as part of the module compile process with a
do_compile_prepend() routine in module.bbclass.
We don't have to clean the hostprogs as modules depend on the kernel being
populate_staging, so its done with the staging directory by the time we run.
(From OE-Core rev: e807fc977770cb64a217768672c18437ea8f3057)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For those recipes which use git repo and have tag information, we can use tag to trace the version change. For other no tag recipes, we still use their
commit checksum to trace their version change.
(From OE-Core rev: 30343a72b89167b46ff4cc33be6ada2fd4b13a59)
Signed-off-by: Mei Lei <lei.mei@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix the way the ELF size is compared to ensure that incorrectly
sized ELF binaries are captured during the file scan.
lib/oe/qa.py is changed to accept a bitsize as a parameter. Instead
of previously defining true/false, it now takes "0" undefined, "32"
32-bit, and "64" 64-bit as the size argument. This allows us to
preserve existing behavior of only loading one ELF type, while
allowing the function to be able to discover the size on it's own.
(From OE-Core rev: 17dae13fabe2932a47ecc86fcafb1d177226513f)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes [BUGID #598]
The explicit addition of "bash" before "make menuconfig"
is clearing variables that are required for pseudo. The
end result is that menuconfig often fails silently with:
ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded: ignored.
Removing bash from the menuconfig SHELLCMDS variable fixes
the psudo problem.
(From OE-Core rev: b909f12a92c86fd2fe9348eeec455e2c9ef71f1a)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The do_setscene task only exists for rebuild support now as all its other
functionality has been superceeded. The rebuild task currently crashes due
to removal of the working directory and therefore isn't working for anyone.
It also interacts extremely badly with the newer sstate technology to the
point of being dangerous.
Summary, if we want rebuild support it needs a reimplementation so remove
this version and all its remnants and hacks.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[BUG #776]
When using the RPM solve databases, we have to lock our operations
to avoid removing it while it's in use.
The same lock is shared by the rootfs_rpm.bbclass
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Add a new create_cmdline_wrapper() function that takes cmdline options
for commands that need different directories
Related to [BUGID #775
Signed-off-by: Saul Wold <sgw@linux.intel.com>
RPM has the ability to validate files that have been prelinked, however
the necessary configuration and staging was not done properly. Resolve
this issue by fixing the macro paths, providing the missing RPM macro,
and correcting a defect in the way the prelink image class was working
with the necessary configuration file.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
[BUG #756]
Fix bug #756. The rootfs contains a control file /etc/rpm/platform
that specifies the default system platform, as well as patterns for
compatible architectures. This file was not being setup properly due
to a misunderstanding of the format in a previous patch.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Refactor the function to eliminate additional interations/walks of the
filesystem..
Elimiate multiple runs of the external 'file' command as well.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
We now support two styles of debug information generation, the '.debug' style,
which is the same as previously implemented. This style simply splits the
debug information and makes it available in the same general directory.
/bin/foo -> /bin/.debug/foo
The new 'debug-file-directory' style splits the debug information and places
it into the single debug-file-directory, /usr/lib/debug:
/bin/foo -> /usr/lib/debug/bin/foo.debug
Both also find and copy all referenced source code to a new /usr/src/debug
directory. This allows the -dbg files to be used for stand-a-lone debugging
on or off the target device.
File stripping is now handled as a seperate operation from file splitting.
This allows us to split the debug information, but also leave it in the
original file -- or prevent the debug information from being split.
Also enhance the comments within local.conf.sample to provide a better
understanding of the control the user has over debug file generation.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
When doing package split, we use hard link instead of copy, which can
save about 10% disk space when building poky-image-minimal.
If fail, it will fall back to the copyfile function.
[Updated by Richard to use os.link and avoid an exec() call per file]
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
We rely on Bashisms when spawning a terminal so ensure that bash is used
when using devshell and menuconfig.
Fixes [BUGID #119]
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Fixes [BUGID #488#734]
Enable audio for qemux86/qemux86-64 via the following kernel
configuration options.
CONFIG_SOUND_OSS_CORE=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_ENS1370=m
CONFIG_SND_INTEL8X0=m
CONFIG_AC97_BUS=m
The mechanism to trigger these options is in the form of an
optional kernel feature that is only appended for qemux86
and qemux86-64, but is contained within the kernel tree.
This allows several things:
- the options to be available/shared for all boards
- the options to be in tree
- to not add the options to every board, which unecessarily
bloats the default configuration.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
When doing builds using sstate cache, there was no way to run
the equivalent of a pkg_postinst function. This is needed by
the SGML-related documentation recipes to properly update the
catalog files when new DTDs and stylesheets are installed.
SSTATEPOSTINSTFUNCS is a new variable you can set to function(s)
in your recipe to run after install is completed from sstate.
Thanks to Richard Purdie for suggesting this solution.
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
If we don't do this, the ipk/rpm backends can create temporary files and then
when the deb package creates new files, those inodes can be reused and permission
confusion results.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
moving common code between populate_sdk.bbclass and meta-environment.bb
into toolchain-script.bbclass.
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
The RPM solverdb was potentially being generated multiple times.
Fix this by ensuring we only process each directory once.
Also correct an issue where the solution did not necessarily follow
the preferred architecture ordering, reverse the default Poky ordering
so that preferred is listed first.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
By default image had a "set -x" to enable shell debug messages,
this adds a lot of overhead to the system due to logging.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Add a new rpm macro, rpmrc_platform_path to specify an alternative platform
file. This is required to allow the dep resolver to identify compatible
packages.
Also workaround a minor problem with the --showrc command in RPM. A bug
has been reported upstream on this.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Current sstate's fetch code doesn't reflect latest fetcher changes, so old
fetch style cause exception and fail silently.
[BUGID #708] got fixed.
Another issue is "import xxx" in python function from sstate.bbclass can only
sit in the head of the function, else have UnboundLocalError: "local variable
XXX referenced before assignment".
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
This create a clean() method in each of the fetcher modules
and correctly cleans the .done stamp file and lock files
Signed-off-by: Saul Wold <sgw@linux.intel.com>
I searched the various classes and looked for copies that should attempt to
preserve hardlinks. This fixes the majority of this copies by switching to
using tar as the copy method. It also has the side effect of preserving sparse
files.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Hard links were not being preserved in the move from the install image
-> package copy. Again they were being discarded in the package ->
packages-split copy as well.
By preserving the hard links we have the potential to save a ton of rootfs
space.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
If you want to enable the mklibs library size optimization for your image
then, edit the MKLIBS_OPTIMIZED_IMAGES line in the local.conf like this:
MKLIBS_OPTIMIZED_IMAGES ?= "poky-image-minimal your-own-image"
Also this will enable the mklibs library size optimization for all images.
MKLIBS_OPTIMIZED_IMAGES ?= "all"
on qemux86 machine this reduced the rootfs size of poky image-minimal
image from 7.9MB to 7.2MB. That is around 11% image foot print reduction.
That image had 38 elf executables. Generally the size optimization by
mklibs is reversely proportional to the number of elf executables in the
rootfs. So bigger images will see less optimization, and smaller images
will see large image size reductions.
Thanks to mark hatle for his help in implementation of this.
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
It is common enough to want to apply a defconfig if the inheriting
recipe provides it. If the file exists in the $WORKDIR, copy it
over to ${S}/.config provided the target does not already exist.
This allows for recipes derived from kernel.bbclass to manage the
.config on their own, such as linux.inc.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
In order to build BSPs that were not already integrated into
the upstream linux yocto kernel AND keep the git fetcher happy,
some fairly complex anonymous python sections were required.
These sections cause problems with variable expansion and SRCREV
processing.
With the updated git fetcher code, we can streamline the BSP
boostrapping process and drop 99% of the anonymous python code.
This commit has the following changes to support BSP boot strapping
and simplication for existing BSPs.
- KMETA is set per-recipe rather than in python code
- undefined machines are no longer used, but instead common
branch names are set per-recipe
- fallback machine SRCREVs are present in the default revisions
file
- A new variable YOCTO_KERNEL_EXTERNAL_BRANCH should be set in
the local.conf for new BSPs instead of being programatically
determined in the anonymous python.
- No more explicity KMACHINE variable expansion and manipulation,
since the tools and build phases no longer require it due
to the per-recipe fallbacks.
Integrated/merged BSPs are unaffected by the changes and have been
regression tested.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
foo
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
[BUG #702]
The previous error message was confusing. It was looking for both library and
include host contamination, but the message only indicated include files.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
The python code in this class file needs to run before SRCPV is expanded
and calls into the fetcher are made. To so this we create a python function
and prepend a call to it before SRCPV's get_srcrev() call.
Ugly, ugly, ugly but the ordering is guaranteed.
If this doesn't happen, the fetcher can end up in two different states and
there may be caching implications of this.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If we don't do this and try to bring up a new machine we can trigger network
access to resolve the branch name to a revision which is undesireable.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A new default SUMMARY and DESCRIPTION was defined for any package that
previously did not contain one. This value is based on the original
SUMMARY_${PN} value.
The new default SUMMARY and DESCRIPTION is used as a basis for all of
the automatic summary and descriptions for the various package splits,
include ${PN}, ${PN}-dbg, ${PN}-dev, ${PN}-doc, and locales.
A recipe may also override any of the automatic summaries by simply
specifying the value.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Fixes [BUGID #692]
Previously the information dumped by the kernel configuration audit
scripts was only placed in log files. This isn't as useful as it
could be, since they are rarely checked. This change takes the
output from kconf_check and explicitly displays it to the user.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Imporve some regular expression when checking recipes' upstream version, reduce the number of invalid recipes' upstream version and imporve the precision
Generate some data for package report system.
Signed-off-by: Mei Lei<lei.mei@intel.com>
Move the populate_sdk task out of meta-toolchain. Made it more generic
to support rpm/deb package format.
This commit is dependant on a series of commit:
2ea0406e4516fc59dff86cb4adc35c82cb774c2f
7ffa45b7cfea24dae1b51f40cfc807bf78b21b66
bf201a74c243942af3fcae6f174496bdd819dbc0
3d29933f2925efe8a84f10efdf50396031c33ae4
3d29933f2925efe8a84f10efdf50396031c33ae4
9c724dbf57e610a9e06bbdce38383dee3ac49281
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
package_deb.bbclass:
1. Modified package_update_index_rpm() and package_generate_rpm_conf()
to generate sperate depsolver db and rpm configuration, for target
packages and host packages respectively.
2. Added new function package_install_internal_rpm() to install a list
deb packages to a specified root directory, with the specified package
architecutre information.
3. Added new function resolve_package_rpm() to resolve package names to
filepaths.
rootfs_deb.bbclass:
Used the above new functions to install the rootfs.
[sgw: merged changes for createrepo]
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
package_ipk.bbclass:
Added new function package_install_internal_ipk() to install a list of
ipk packages to a specified root directory, with the specified package
architecutre information.
rootfs_ipk.bbclass:
Used the above new functions to install rootfs.
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
package_deb.bbclass:
1. Added new function package_update_index_deb() to generate package
index files.
2. Added new function package_install_internal_deb() to install a list
deb packages to a specified root directory, with the specified package
architecutre information.
rootfs_deb.bbclass:
Used the above new functions to install the rootfs.
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Setting this flag disables the normal additions to RRECOMMENDS for a package
(useful when splitting dev / dbg packages).
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Changes from the meta-openembedded version:
* Change the order of includes so that embedded takes precedence (ensuring
SRC_URI additions from qt-embedded.inc work)
* Specify -embedded in qt-embedded.inc
* Remove SRC_URI and S which should come from qt-${PV}.inc
* Remove QT_DIR_NAME and QT_LIBINFIX as these come from qt4e.bbclass
* Correct LICENSE
* Set DESCRIPTION instead of SUMMARY as SUMMARY will inherit by default
* Add qthelp-lib-qtclucene.patch (required to build)
* Whitespace fixes
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Differences from meta-openembedded version:
* SRC_URI and S now come from qt-${PV}.inc since these are version specific
* Source checksums are also now in qt-${PV}.inc
* Remove do_compile as this is handled in qt-${PV}.inc
* Move contents of do_install_append from qt-${PV}.inc to do_install in
qt4.inc as this is the same for 4.6.3 and 4.7.1 and will get in the way of
do_install_append in qt-embedded.inc.
* Don't enable PostgreSQL, MySQL or SQLite 2.x plugins as we don't currently
have recipes for these DBMSs in Poky. These can be re-enabled easily when
or if we do.
* Use INC_PR in qt4-x11-free_4.6.3.bb
* Don't always specify -embedded config option in qt4.inc
* Don't add qte.sh to SRC_URI in qt-4.6.3.inc (this is embedded-specific)
Differences from what we have currently in Poky (plus the above):
* Set DESCRIPTION based on embedded/X11
* Move out arch-specific settings to qt4-arch.inc
* Add qt4x11.bbclass which can be inherited by application recipes to select
the X11 version (this makes more sense once the embedded version is added).
* Update HOMEPAGE
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Move function rootfs_xx_log_check() from rootfs_xx.bbclass to relevant
package_xx.bbclass. (Where xx is rpm/ipk/deb).
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
As discovered by Lianhao Lu and Kevin Tian:
"""
do_package checksum changes with switching the order In PACKAGE_CLASSES, e.g:
From
PACKAGE_CLASSES = "package_rpm package_ipk"
To
PACKAGE_CLASSES = "package_ipk package_rpm"
This is undesired since the order only matters for final rootfs generation. The actual
cause is related to how do_package is generated, which depends on when
package.bbclass is first brought in.
"""
Since we never need the EXPORT_FUNCTIONS funcationality for do_package we just drop
it which removes this problem and stablisised checksums.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
'nostamp' is normally used for some standalone tasks like clean, checkuri, etc.
It doesn't make sense to mark do_populate_lic as 'nostamp', which is depended
by do_package. No stamp file in the build dependency chain implicates that
do_package needs to be reinvoked and thus further do_package_write* stuff.
This together with another sstate bug fully confused recent master, that people
keep observing unnecessary do_package rebuilt with or without change. Below is
a short explanation for two behaviors we observed:
a) a fresh build, and then bitbake same target w/o any change. User will observe
one unnecessary rebuild and then later rebuild is fine:
[1st rebuild]
* do_populate_lic has no stamp, and thus do_package is thought not current
* do_package_setscene is then invoked with stamp file created
* then later do_package_write*** also are rebuilt
[2nd and later rebuild]
* do_populate_lic has no stamp, and thus do_package is thought not current
* do_package_setscene has stamp file and thus no need to re-execute setscene
* thus no further rebuild required
b) a fresh build, and then adjust order of PACKAGE_CLASSES. There's one bug
regarding to PACKAGE_CLASSES and do_package_setscene, that only switch the
order in PACKAGE_CLASSES generates different checksum. In this case user may
observe up to 3 rebuilds when switching package_rpm/package_ipk back and forth.
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
The class strips out operators from the LICENSE field and to reduce it to a
list of license, | was missing but is quite frequently used so add it to the
list of replaced characters.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
The package-split summaries were being pulled in from the main package, not
the split package metadata.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
This includes two method for build rpm repo:
1. create the metadata in rootfs_rpm
2. standalone binary for building the metadata
Not both of them are needed, generally #2 fits more for the purpose,
but #1 may have its use on rootfs creation using zypper.
Both share some problems and are subjected for future improvement:
1. the createrepo now builds metadata for the whole directory,
if there are more than one arch, it builds for all, which means
rootfs_rpm may run longer if more builds have been run.
2. createrepo builds metadata for stale rpms
Signed-off-by: Qing He <qing.he@intel.com>
The RPM platform configuration file lists all of the supported architectures,
while RPM itself doesn't use this information, other tools may use it to
determine compatibility. The first item is the default architecture for a
system, while the following items specify alternative compatible architectures.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
This is an intial commit for the license reporting system. A few notes:
The LICENSE fields needs to be standardized throughout poky. As it
stands, we throw a warning if the license file is not found (either
because it does not exist or because LICENSE_FILE_CHKSUM is munged)
in the generic license directory. This should eventually become an
error.
I've seen a few places where Apache-v2.0 is written differently and
I'm sure this will throw the above warning. This does not put the
license data on the rootfs. Also, I provide both the actual license
text and a link to the best guess of the generic_license. That guessing
is not very robust and I'm loath to get into a bunch of pattern matching
rather than standardize LICENSE.
This adds one new param to poky.conf and one new to license.bbclass:
LICENSE_DIR: the base directory we copy all the license results to (set
in license.bbclass)
COMMON_LICENSE_DIR: this is the directory that holds all the common
generic license files. currently meta/files/common-licenses (set in
poky.conf)
TODO:
- We should verify the common-licenses. I stripped these from my Ubuntu
10.10 system.
- We should allow the capability of licenses on the rootfs, although the
resulting image created would be a lot larger.
- More common-licenses. I don't include bzip, zlib, ICS.... I should,
but that means tracking down a lot of licenses.
- General cleanup of licensing and standardization of names. We should
standardize on a naming convention. What's in licenses.conf should
match up with what is in the recipes which should match with what is
in common-licenses. Outside the scope of this though. See:
http://bugzilla.pokylinux.org/show_bug.cgi?id=650
We need to manipulate the stamps when removing WORKDIR to indicte that
tasks like compile or install can't just rerun. The most effective method
to do this is to convert the layout to match that which would have been the
case had the system been build from sstate packages.
For example, we'd task stamps like:
xxx-1.4.7-r3.do_compile
xxx-1.4.7-r3.do_configure
xxx-1.4.7-r3.do_fetch
xxx-1.4.7-r3.do_generate_toolchain_file
xxx-1.4.7-r3.do_install
xxx-1.4.7-r3.do_package.emenlow
xxx-1.4.7-r3.do_package_write
xxx-1.4.7-r3.do_package_write_ipk
xxx-1.4.7-r3.do_package_write_rpm
xxx-1.4.7-r3.do_patch
xxx-1.4.7-r3.do_populate_sysroot.emenlow
xxx-1.4.7-r3.do_setscene
xxx-1.4.7-r3.do_unpack
and after rm_work, we'd have stamps of:
xxx-1.4.7-r3.do_package_setscene.emenlow
xxx-1.4.7-r3.do_package_write_ipk_setscene
xxx-1.4.7-r3.do_package_write_rpm_setscene
xxx-1.4.7-r3.do_populate_sysroot_setscene.emenlow
We also need to handle stamps in the form xxx-1.4.7-r3.do_package.MACHINE.TASKHASH
as used by some signature generators.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>