Used sed expression given here:
http://lists.linuxtogo.org/pipermail/openembedded-core/2011-November/012373.html
Plus an additional expression for .expand. Full expression is:
sed \
-e 's:bb.data.\(setVar([^,]*,[^,]*\), \([^ )]*\) *):\2.\1):g' \
-e 's:bb.data.\(setVarFlag([^,]*,[^,]*,[^,]*\), \([^) ]*\) *):\2.\1):g' \
-e 's:bb.data.\(getVar([^,]*\), \([^, ]*\) *,\([^)]*\)):\2.\1,\3):g' \
-e 's:bb.data.\(getVarFlag([^,]*,[^,]*\), \([^, ]*\) *,\([^)]*\)):\2.\1,\3):g' \
-e 's:bb.data.\(getVarFlag([^,]*,[^,]*\), \([^) ]*\) *):\2.\1):g' \
-e 's:bb.data.\(getVar([^,]*\), \([^) ]*\) *):\2.\1):g' \
-e 's:bb.data.\(expand([^,]*\), \([^ )]*\) *):\2.\1):g' \
-i `grep -ril bb.data *`
Some minor correction in systemd.bbclass was needed for some expressions
that didn't quite match the regex in the desired way; additionally a few
instances were manually changed.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffing with the OE-Core's kernel.bbclass only difference is setting of
machine kernel pr. So lets convert it to a separate class which provides
the added functionality and let everyone use kernel.bbclass from kernel
It needs the dependent layers to inherit this class in addition to
kernel.bbclass.
After dependent layers are updated we can remove meta-oe copy of
kernel.bbclass, it leaves up with one less conflict with OE-Core.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This functionality is now provided by buildhistory as well.
so lets remove it in favor of that
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Without that fix we have the following while compiling compat-wireless.
include/linux/mmzone.h:18:30: fatal error: generated/bounds.h: No such file or directory
Note that the compat-wireless recipe will be added in another commit.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Replace os.system with subprocess.call since the older function would
fail (more or less) silently if the executed program cannot be found
More info:
http://docs.python.org/library/subprocess.html#subprocess-replacements
[YOCTO #2454]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
It's common to provide a non-machine-suffixed link in DEPLOY_DIR_IMAGE, so
let's be consistent and do so here as well.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
kxgettext.o is generated when building ppc kernels
so we end up with packaging errors like
> ERROR: QA Issue: Architecture did not match (20 to 62) on
> /work/virtex5-poky-linux/linux-xilinx-2.6.38-r00/packages-split/kernel-dev/usr/src/kernel/scripts/kconfig/kxgettext.o
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
If the kernel version string uses characters or symbols that
need to be santized for the package name, we can end up with a
mismatch between module requirements and what the kernel
provides.
The kernel version is pulled from utsrelease.h, which contains
the exact string that was passed to the kernel build, not
one that is santized, this can result in:
echo "CONFIG_LOCALVERSION="\"MYVER+snapshot_standard\" >> ${B}/.config
<build>
% rpm -qp kernel-module-uvesafb-3.4-r0.qemux86.rpm --requires
update-modules
kernel-3.4.3-MYVER+snapshot_standard
% rpm -qp kernel-3.4.3-myver+snapshot-standard-3.4-r0.qemux86.rpm --provides
kernel-3.4.3-myver+snapshot-standard = 3.4-r0
At rootfs assembly time, we'll have a dependency issue with the kernel
providing the santizied string and the modules requiring the utsrelease.h
string.
To not break existing use cases, we can add a second provides to the
kernel packaging with the unsantized version string, and allowing the
kernel module packaging to be unchanged.
RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}"
% rpm -qp kernel-3.4.3-myver+snapshot-standard-3.4-r0.qemux86.rpm --provides
kernel-3.4.3-MYVER+snapshot_standard
kernel-3.4.3-myver+snapshot-standard = 3.4-r0
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
[YOCTO #1614]
Add the kernel headers to the kernel-dev package. This packages what was
already built and kept in sysroots for building modules with bitbake.
Making this available on the target requires removing some additional
host binaries.
Move the location to /usr/src/kernel
Before use on the target, the user will need to:
# cd /usr/src/kernel
# make scripts
This renders the kernel-misc recipe empty, so remove it.
As we use /usr/src/kernel in several places (and I missed one in the
previous version), add a KERNEL_SRC_DIR variable and use that throughout
the class to avoid update errors in the future.
Now that we package the kernel headers, drop the
kernel_package_preprocess function which removed them from PKGD.
All *-sdk image recipes include dev-pkgs, so the kernel-dev package will
be installed by default on all such images.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
CC: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
perf has been coupled to the kernel packages via kernel.bbclass.
While maintaining the build of perf out of the kernel source tree
is desired the package coupling has proved to be awkward in
several situations such as:
- when a kernel recipe doesn't want to build/provide perf
- when licensing of dependencies would prohibit perf and hence
the kernel from being built.
To solve some of these problems, this recipe is the extraction of
the linux-tools.inc provided perf compilation into a standalone
perf recipe that builds out of the kernel source, but is otherwise
independent.
No new functionality is provided above what the linux-tools.inc
variant provided, but the separate recipe provides baseline for
adding new functionality.
Signed-off-by: Liang Li <liang.li@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
The kernel source tree in the sysroot has all unecessary source
code removed. The existing use case is to support module building
out of the sysroot, but as more toolsa are moved into the kernel
tree itself there are new use cases for the kernel sysroot source.
To avoid putting dependencies on the kernel, and to be able to
individually build and package these tools out of the source tree,
we can save $kerndir/tools and $kernddir/lib from being removed.
This enables tools like perf to be built our of the kernel source
in the sysroot, without significantly increasing the amount of
source in the sysroot.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
* without this, kernel upgrades where KERNEL_VERSION is changed
e.g. 3.4.2 -> 3.4.3 generate .dep for running 3.4.2 and after reboot user ends
up without any module loaded to make it worse after reboot nothing is upgraded
to trigger another kernel(-module) postinst to generate .dep for now running 3.4.3
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
To set service files the following syntax is allowed:
SYSTEMD_SERVICE = <service_file>
or
SYSTEMD_SERVICE_{<systemd_package_name>} = <service_file>
A function get_package_var was introduced to handle all use-cases [1]
properly.
Build tested / buildhistory checks
[1] http://lists.linuxtogo.org/pipermail/openembedded-devel/2012-May/039870.html
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Acked-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
* Calling "systemctl disable" from postrm is too late and
causes the following error:
| Failed to issue method call: No such file or directory
* Messing with $D is not needed in *rm scripts.
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Acked-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
If KERNEL_IMAGETYPE is vmlinux, the expectation is most likely that there will
be no kernel image package, but we still want a vmlinux package for debugging,
so move kernel-vmlinux in front of kernel-image in PACKAGES.
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
The intent of the uImage code in this class includes the following
1) be able to specify custom load addresses without needing to patch the kernel
2) add better information to the uImage description field
The current state is a NOP anyway, the kernel will always build a uImage when you tell it to 'make uImage'.
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
* I have use case where common recipe does inherit systemd and only some BSP's are bbappending some SERVICEs to it
* install was moved intentionaly, so that /lib/systemd/system is not
created if there is no .service file (causing QA Warning about
unpackaged dir)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Remove /etc since it is empty, when creating a machine that does not
deliver any module config files, the /etc is empty and is then warned
about not being shipped, so we remove it.
This occurs in the routerstationpro with the following warning:
WARNING: For recipe linux-yocto, the following files/directories were installed but not shipped in any package:
WARNING: /etc
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* depmod already gets executed by pkg_postinst_kernel-image.
* If you build a module using module.bbclass, pkg_postinst returns 1 in
do_rootfs, causing pkg_postinst to run again on first boot. To improve
this situation, I copied pkg_postinst from kernel.bbclass to module.bbclass.
This was rejected by Koen, because he doesn't like the code from
kernel.bblcass, which uses ${STAGING_DIR_KERNEL}. Richard then suggested
that calling depmod during do_rootfs wasn't necessary at all, because
it already gets done by kernel-image.
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* indentation was with spaces and tabs, unify to use tabs instead of
spaces, because "python populate_packages" expects tabs (or 8 spaces)
and we're doing populate_packages_preppend here
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Without this we don't take advantage of any configured multiple CPU
cores which seems a shame.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* there is no upgrade from 2.6.X to 3.X.Y
last part of PV is used as kernel priority for u-a, but X is usually higher then Y in 3.x.x
so use all 3 parts in one bigger number
* and make it weak assignment if this scheme doesn't work for some
recipe
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* /etc/modules-load.d/foo.conf is used by systemd like /etc/modutils/foo was with sysvinit
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
The parsing condition was broken causing the packages not being
expanded to include <PN>-systemd packages automatically.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
* append systemd functionalty moved into systemd_add_rdepends
* append base-pgk in case receipe does not set RDEPENDS for *-systemd package
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
* Add files found in SYSTEMD_SERVICE and add service files referenced by 'Also='
(and 'Conflicts=' in case of one service for links to /dev/null) recursively.
* For *.socket files the corresponding '*.service' and '*@.service are packed
* In case a file set in SYSTEMD_SERVICE does not exist, build is aborted with an
error message.
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
All further manipulations need to be performed only once. This modication
avoids unwanted behaviour when inheriting rm_work.bbclass [1]
[1] http://lists.linuxtogo.org/pipermail/openembedded-devel/2012-February/038067.html
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
after recipe parsing the following plausibilities are checked:
* ERROR if empty SYSTEMD_PACKAGES
* ERROR if SYSTEMD_PACKAGES entry does not contain '-systemd' AND
package_name != ${PN}
* ERROR if SYSTEMD_PACKAGES entry contains '-systemd' but entry without
'-systemd' (base pkg) does not exist
* WARNING if SYSTEMD_PACKAGES containing ${PN} to force package maintainers to
split out systemd-specific files into *-systemd
* error if SYSTEMD_SERVICE(_<systemd-package>) is empty for one or more entries
in SYSTEMD_PACKAGES
The code in populate_packages_prepend to set SYSTEMD_PACKAGES to ${PN} as
default was removed.
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Acked-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Packages that uses the systemd class need to have systemd build
otherwise they might fail to detect systemd as available or fail to
generate rootfs.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
* Symptom: kernel symlink in /boot is not created.
* Rename in order to create the expected files:
* /var/lib/opkg/info/kernel-3.1.4.postinst
* /var/lib/opkg/info/kernel-3.1.4.postrm
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
The systemd runtime dependency needs to be add dynamically onto each
package that has the postinst generate thus removing the SYSTEMDPN use
et all.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This generates the postinst/prerm/postrm routines for the package
specified in SYSTEMD_PACKAGES avoding code duplication and
centralizing the handling of it for easy maintainence work.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
In case of multiple GIT repositories are used, SRCREV_FORMAT will be
respected while filling it with the proper GIT information to each
revision.
This new feature needed heavy changes in the code so basically it was
a rewrote version that keeps compatibility with previous usage.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Save the kernel image name into sysroot so it can be used during image
build if need. This is used by O.S. Systems products and probably
useful to others.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
* from org.openembedded.dev
* reworked in meta-zaurus
* added missing quotes
* explain more clearly why the compiler/linker flags are reset
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
For kernel's that use a split source/object build the copy
of defconfig to {S} in the base kernel class is problematic.
The previous solution for this was to override the do_configure
of the base kernel class in a subclass. While this is still
a viable/valid option, it does mean that changes to the base
do_configure will be missed.
The solution to this is to copy a defconfig to {B} which is
typically the same as {S}, so most kernel recipes won't see or
care about this change.
With this change in place, linux-yocto.bbclass can drop its
override of do_configure.
Tested with linux-yocto and oe linux recipes.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
KERNEL_LD was using ${LD} in it's definition, which is not correct for
different ABIs such as x32 or i386 on x86_64 machine. This brings it
into sync with the corresponding gcc settings, likewise the same with
the KERNEL_AR variable.
[RP: Updated commit message]
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
* The menuconfig target exists in places other than the kernel that use kernel style config.
Signed-off-by: Noor, Ahsan <noor_ahsan@mentor.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Fixes [YOCTO 1136]
linux-yocto adds some configure steps that are necessary to prepare the source
tree after the do_patch task. This causes a "-c menuconfig" to fail in a clean
build tree. Typical use of menuconfig should be to modify the config provided
by the recipe being built. It therefor makes sense for the menuconfig task to
come after the configure task. This also happens to fix the issue seen with the
linux-yocto kernel recipe.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
The same version of this class is now in openembedded-core.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
It will now additionally create a new file which will
contain list of licenses of installed packages in a given
image.
The fix to get the package name is there because the packages
which contains epoch PE in the version string were not
being constructed correctly since opkg-cl would dump
'epoch:version' for Version string but the real ipk
did not have 'epoch' in its name. e.g.
for armv5te/libopkg0_0.1.8+svnr609-r2_armv5te.ipk
Package: libopkg0
Version: 1:0.1.8+svnr609-r2
as you can see version contained in ipk is not
containing the 'epoch'
so we have to eliminate 'epoch' from version we get from
opkg-cl to for the installed ipk name correctly.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
The perf component is built with the kernel, so ensure that it gets the
debug information associated with it.
Also bump the PR in the linux-yocto-* to ensure they get rebuilt.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Change to only depend on virtual/*/depmod.
Change all calls to only use depmod.
Do not install depmod as depmod-2.6
Bump PR in module-init-tools-cross.
Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This removes a couple of megabytes of QA warnings!
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
do_install was putting files directly into the sysroot which means sstate
had no knowledge of them. This meant they didn't get cleaned along with the
other files from the task amongst other issues.
This patch puts them in ${D} where they were supposted to be.
Tested-by: Tom Rini <tom_rini@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Without this, images will fail now that kernel-abiversion is back.
Signed-off-by: Tom Rini <tom_rini@mentor.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This fixes external module recipes that need $KERNEL_VERSION. It got removed by
commit a9d41062e24a6b99661b3a5256f369b557433607
Author: Darren Hart <dvhart@linux.intel.com>
Date: Tue Mar 8 17:09:10 2011 -0800
kernel/bbclass: rework kernel and module classes to allow for building out-of-tree modules
seemingly as an oversight.
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
- KERNEL_VERSION may contain characters unsuitable for package
names, e.g. underscores. Use legitimize_package_name to replace
those characters.
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
These are good for general use since other distros (SHR, SlugOS) are copying them into their layers nowadays. Let's stop this duplication bu moving them here.
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>