Drop removal of [|&()*] operators in pkged_lic because this removal is only
needed to validate if license is collected.
[YOCTO #6757]
(From OE-Core rev: 57e5f74382d51f2a8df00e18b6008e3d2b44ad1a)
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The IMAGE_TYPEDEP dependencies also need to be taken into account when
building an IMAGE_FSTYPE.
(From OE-Core rev: 055fddd601536109e0574e84dc6570c322f22d44)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add aarch64 target to locale_arch_options in libc-package.bbclass to
support Arm V8.
(From OE-Core rev: 0d7a92f887bcbe44083a8c0f3f66d195d8bd023e)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Pull wordsize related items from arm-common and put in
arm-32. Leave them as they were. Copy arm-32 to arm-64
and comment out all variables. Re-define to correct
values leaving items which do not appear to be used
undefined.
(From OE-Core rev: 99d43a1554b2daeb7aba3c4582ccec758e6ec4a5)
Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Most of the time what you want when using this class is for do_compile
to execute more than just once - every time the source changes would be
ideal, but that's a little tricky to accomplish. Thus, set do_compile as
nostamp to get something close. Note that in order to be effective this
also requires the change to bitbake that causes nostamp task signatures
to change on each execution.
(From OE-Core rev: e734e12fd1478cdacdadf4e0fae5247cb70b9fb1)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows us to use this function elsewhere in the code.
(From OE-Core rev: 657cff8a0f0e5db171b2ed9388a790ee0b135842)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
After the recent kernel changes, this avoids failures like:
DEBUG: Executing shell function build_boot_dd
install: cannot stat '/home/pokybuild/yocto-autobuilder/yocto-worker/build-appliance/build/build/tmp/sysroots/qemux86-64/usr/src/kernel/bzImage': No such file or directory
WARNING: exit code 1 from a shell command.
(From OE-Core rev: 40e83470ca45ae5c305609a5065278612e69a7e2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bzImage is no longer in STAGING_KERNEL_DIR. Rather than add it back,
depend on the kernel deploy task and find it in DEPLOY_DIR_IMAGE.
(From OE-Core rev: 75f83fdc5a78bf1b84dbcd6acb9fa3f76b2aac2c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
After the recent kernel changes, non linux-yocto builds stopped working
properly for two reasons:
a) ${S} was being reset to ${WORKDIR}/git for example and STAGING_KERNEL_DIR
did not contain the source
b) Most builds were using ${B} == ${S}
This patch adds a fixup to the unpack function to handle the case where
${S} != ${STAGING_KERNEL_DIR} and also set up the infrastrcture so that
B != S for kernel builds from now on. The kernel build system is one of the
best for supporting this and there is no good reason not to take advantage
of it.
(From OE-Core rev: 106dab2fd0321e6b4e77b40111e59a3a31d329d4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In particular this removes a race condition where a ${S}/patches
directory could be created by do_unpack. This confuses kern-tools.
(From OE-Core rev: a64d36e3bec47fedc788c33b23736914cfbd62bb)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently unpack just forces sources over the current files. This change
ensures ${S} is cleaned out before sources are unpacked. This resolves
issues seen when upgrading to the new kernel class changes.
Ultimately, this should probably move to base.bbclass but one step at a
time, this solves an immediate problem blocking the other patches from
merging.
(From OE-Core rev: 7deb1f670c188c24744b7888a2d2f73c2a8ddff7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The kernel source is being moved into the sysroot, to do this and
preserve previous builds, we need to change the TMPDIR ABI and
provide a function to uninstall all kernels from the sysroot.
This change adds code to do that and increases the ABI number.
(From OE-Core rev: 323f9ea99cff00a751e446286bf8bcf8756e4351)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Commit 92c1ece6c3 causes the test in do_patch()
in kernel-yocto.bbclass to fail if ${machine_srcrev} is an annotated tag. The
check is meant to ensure that ${machine_srcrev} is an ancestor of HEAD, but
if ${machine_srcrev} is a tag, then "$(git rev-parse --verify
${machine_srcrev})" evaluates to the SHA of the tag instead of what it's
pointing to.
Replacing "$(git rev-parse --verify ${machine_srcrev})" with "$(git rev-parse
--verify ${machine_srcrev}~0)" fixed the problem by finding the object pointed
to by the tag, and not the tag itself. This also works for commit IDs that
are not tags, hence is safe in a scenarios.
Jeff Wang <jeffrey.wang@ll.mit.edu>
(From OE-Core rev: f79c9334f670ed6fce86047fbadb817af8d4fe14)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The ability to build non-git repositories was broken by two changes:
- The existence of an empty 'patches' directory created during the
unpack phase. This dir was incorrectly identified as a valid meta
directory and broke the build. By ensuring that it is removed before
creating the empty repository, it will no longer be found instead of
the real meta directory.
- The attempt to reset the git repository to a specific SRCREV when
no SRCREV was provided. By checking for a SRCREV of 'INVALID', we
avoid any processing and failed git operations.
(From OE-Core rev: d5451dda1b8cfbbe8b6a779b0cd9b1397ebf1a07)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With the kernel build optimizations, we no longer copy the source from
the built kernel into the staging dir, since the kernel is unpacked and built
directly from the staging dir.
This means that a few build artifacts need to be restored to allow out of
tree modules to once again build.
(From OE-Core rev: 4b981e4fd5a4744d0d83053219274296e7785e77)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In 1.8 we want to streamline the kernel build process. Basically we
currently have multiple copies of the kernel source floating around
and the copying/compression/decompression is painful.
Lets assume we have a kernel source per machine since in most cases
this is true (and we have a sysroot per machine anyway). Basically,
instead of extracting a source into WORKDIR, then copying to a sysroot,
we now set S to point straight at STAGING_DIR_KERNEL.
Anything using kernel source can then just point at it and use:
do_configure[depends] += "virtual/kernel:do_patch"
to depend on the kernel source being present. Note this is different
behaviour to DEPENDS += "virtual/kernel" which equates to
do_configure[depends] += "virtual/kernel:do_populate_sysroot".
Once we do this, we no longer need the copy operation in
do_populate_sysroot, in fact there is nothing to do there (yay).
The remaining part of the challenge is to kill off the horrible
do_install. This patch splits it off to a different class, the idea here
is to have a separate recipe which depends on the virtual/kernel:do_patch
and just installs and packages the source needed to build modules on
target into a specific package.
Right now this code is proof of concept. It builds kernels and kernel
modules. perf blows up in do_package with issues on finding the kernel
version which can probably be fixed by adding back the right bit of do_install,
and adding a dependency of do_package[depends] += "virtual/kernel:do_install"
to perf. The whole thing needs a good write up, the corner cases testing
and probably a good dose of cleanup to the remaining code.
(From OE-Core rev: 3b3f7e785e27990ba21bc7cd97289c826a9a95d1)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There is a race over the do_package_qa task and the do_rootfs task
since rootfs recreates a directory. This patch disables the task
(which isn't used for images) to avoid the race:
NOTE: recipe core-image-minimal-1.0-r0: task do_package_qa: Started
NOTE: recipe core-image-minimal-1.0-r0: task do_rootfs: Started
ERROR: Build of do_package_qa failed
ERROR: Traceback (most recent call last):
File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/bitbake/lib/bb/build.py", line 497, in exec_task
return _exec_task(fn, task, d, quieterr)
File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/bitbake/lib/bb/build.py", line 440, in _exec_task
exec_func(func, localdata)
File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/bitbake/lib/bb/build.py", line 212, in exec_func
exec_func_python(func, d, runfile, cwd=adir)
File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/bitbake/lib/bb/build.py", line 237, in exec_func_python
os.chdir(cwd)
OSError: [Errno 2] No such file or directory: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/build/tmp/work/qemumips-poky-linux/core-image-minimal/1.0-r0/core-image-minimal-1.0'
(From OE-Core rev: 0550d112ad9c2ca9f8167dcae35200210923f2c5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the task fails early, no error log may exist. Currently we crash in
that case, this handles the situation more gracefully.
(From OE-Core rev: 1e6bfcab47f532677f87683ba2f5e5fb905e9ba5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The whitelist processing in code in base.bbclass does not play well with
wildcards in INCOMPATIBLE_LICENSES. The code expects bad_licenses to
contain actual license names, not wildcards.
Add incompatible_license_contains to replace bb.utils.contains(
"INCOMPATIBLE_LICENSE", **, **, **, d)
[YOCTO #5592]
(From OE-Core rev: 3587653a8d8abc7cfed6a5c6ecfa72bee283e451)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Toaster will log all the files that it can find in the
deploy images directory, and list them, considering that
they may be artifacts of the current build not logged
anywhere else.
[YOCTO #6836]
(From OE-Core rev: 87a25b1dec86da809c9a13c10449bd33a471cb95)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A number of settings (DESCRIPTION, SUMMARY, postinst, postrm,
and appends to RDEPENDS) were made only if FILES_foo was not
set for a given package. If you had a modified glibc packaging
setup that was defining FILES_glibc-gconv-somelocale, this would
prevent the automatic append of glibc-gconv as a dependency,
because extra_depends was ignored.
I think the assumption may have been that if FILES_foo was set,
DESCRIPTION_foo and SUMMARY_foo would also be set, but it seems
to me that the right answer is probably to set them if they aren't
already set, and leave them alone if they are.
(From OE-Core rev: 7e59b0c7e03fc08a6eaf9c8ccb6bfa72b4604cc5)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes build on systems using dash for default shell e.g.
errors like
run.do_strip.25842: [[: not found
| readelf: Error: Unable to read in 0x37 bytes of section headers
| readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
Change-Id: I29cac15be44a02d75a3d6889b6ae9b2e19bf46af
(From OE-Core rev: 6956ffdc6e9879e32360b6ee3a3d286618807485)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For cpio/ramfs the kernel will first attempt to execute /init and will
emit the following error as the file is empty:
Failed to execute /init (error -13)
If /sbin/init exists symlink to it so the kernel can immediately start
the correct init executable instead of an empty file.
(From OE-Core rev: 3505558e067fdde4ab7aaaf3c50886f292d7c166)
Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The 'overrides' here are PACKAGE_ARCH based and hence not overrides
as such and the _append wasn't working in many cases. This adjusts the
code to use PACKAGE_ARCH as the accessor and ensures the variables
work as expected. This fixes various segfaults and ensures postinsts
run at build time rather than on the target system.
The bug was introduced in http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=7efad8a1b56df6ee07c12ad360c0493d7b1d6d23.
(From OE-Core rev: 219e793907406eabf632e784e3a11ab9acb77cfb)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
autotools.bbclass should respect CLEANBROKEN as it invokes 'make clean' on
configure.
(From OE-Core rev: ffbcb440c43e5e00e73ced67a2c888e9863a1d00)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The evalation order was incorrect in some situations (CLEANBROKEN=1 and
GNUmakefile exists) the clean would be executed incorrectly.
Add brackets to correct the logic.
(From OE-Core rev: a9e95c3cd771b16bbf4c9eaa05c79d7b4ca7272a)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Should have been removed with
92f956d tweak read_only_rootfs_hook to also support systemd based systems
(From OE-Core rev: e8bd2783870e71b42c902a31bd6521d564915e99)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This reverts commit 17890ebd637da0b3bf78804002d8b4f0ace078d2.
qt4 is upgraded to 4.8.6 and this is fixed by:
c889b40 qt webkit: add support for MIPS64 platforms
so revert the commit.
(From OE-Core rev: 28abbcc5cc4fcea23528027ef2c0faebcd9474c8)
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Spaces aren't valid around = in an assignment statement (not even with
bash).
(From OE-Core rev: fb419b1a3f5dbc5e5019be9d09c4acdbeb460c19)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It is necessary to have an SDK for developers who build their software with
ccache to speed up the compilation. Without resolving this, unfortunately the
compilation will fail for them.
(From OE-Core rev: 1d31ddb856a80ba9da1a64ed5d701dc0f7351ef7)
Signed-off-by: Laszlo Papp <lpapp@kde.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
While doc file make use of update-alternatives to fix confliction,
we should reconfigure update-alternatives for doc compression.
Such as util-linux-doc:
...
update-alternatives --install /usr/share/man/man1/last.1 last.1
/usr/share/man/man1/last.1.util-linux 100
...
was updated by doc_compress to
...
update-alternatives --install /usr/share/man/man1/last.1.bz2 last.1.bz2
/usr/share/man/man1/last.1.util-linux.bz2 100
...
(From OE-Core rev: ba4dd1afc2476259eff52f8a68fba1344e0f0474)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The previous detection missing the following manual file:
...
gawk-doc/usr/share/man/man3/readfile.3am
libpcap-doc/usr/share/man/man3/pcap_dump_open.3pcap
...
We use re to imporve it.
(From OE-Core rev: 886685d207bd5e6e2e236a7c5591f62f5de26090)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Function base_get_metadata_svn_revision was crashing due to an uncaught
IndexError exception.
The except notation without parentheses is legacy syntax. It is the equivalent
to 'except IOError as IndexError' which is not what we want here.
The change catches both exceptions.
(From OE-Core rev: 33bea949bae54ddc89aa83cf07d7b1ee62e2b393)
Signed-off-by: Merten Sach <msach@mailbox.tu-berlin.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When we use ASSUME_SHLIBS,e.g.
ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
then we end up with errors like below when using shlibs2 (dizzy+)
File: 'package_do_shlibs', lineno: 216, function: package_do_shlibs
0212: dep_pkg = dep_pkg.rsplit("_", 1)
0213: if len(dep_pkg) == 2:
0214: lib_ver = dep_pkg[1]
0215: dep_pkg = dep_pkg[0]
*** 0216: shlib_provider[l][libdir] = (dep_pkg, lib_ver)
0217:
0218: libsearchpath = [d.getVar('libdir', True),
d.getVar('base_libdir', True)]
0219:
0220: for pkg in packages.split():
Exception: KeyError: 'libEGL.so.1'
This is because the entry which is being populated does not exist
so lets create it if its not already there.
Change-Id: I9e292c5439e5d1e01ea48341334507aacc3784ae
(From OE-Core rev: a64f81fcef42172f788cec7a63bb4672eac99f94)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This field is now internal and won't be seen.
(From OE-Core rev: cce39741bb9d1b0166c7fd63506f96abaa0d8af6)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This field is now internal and won't be seen.
(From OE-Core rev: 9a715be3b2b4396495f2f8c10dc28b33f206efe4)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Because methods for get latest version of upstream package are now available
into bitbake removes duplicated code and make use of it.
Compatibility testing was made running distrodata class and the result files
can be found at:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=1813
[YOCTO #1813]
(From OE-Core rev: 68ddb28a68ceb59cd1ed322c16143827ce1ac712)
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixing the bug where the openembedded-core name was registered
as "meta" in toaster.
[YOCTO #6962]
(From OE-Core rev: ab9f17893c4b004906ec232da300915145c125e0)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When installing into a sysroot this class examines $D/etc/passwd for
content, then invokes useradd to make changes. Under pseudo useradd
attempts to look up user information in directories specified by
$PSEUDO_PASSWD. For opkg multilib installs $D is not always the same as
$IMAGE_ROOT, and the user might already be in the IMAGE_ROOT files,
causing a failure during rootfs population.
Fix this by ensuring the files pseudo looks at when doing useradd stuff
are the same ones that useradd.bbclass will be manipulating.
(From OE-Core rev: ec3417ad825c52f5137d38b91d8fcb4637a50f4c)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When pseudo is configured to disallow fallback to the build host
/etc/hosts and /etc/group, the selection of ${IMAGE_ROOT} for
PSEUDO_PASSWD is insufficient as the necessary files will not be
available until base-passwd has been installed and its pkg_postinst
script run. Fall back to the ${STAGING_DIR_NATIVE} version of those
files until the rootfs versions are available. (The native copies are
never modified by the build; the ones in ${STAGING_DIR_TARGET} are
updated and may contain settings not consistent with what would be
created by post-install useradd/groupadd commands invoked in the image
rootfs.
(From OE-Core rev: 8c653bafaa32126c54400bb56b9a94f07cd33197)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The spdx task now writes a meaningful error message in case of error in
communication with the FOSSology server. Also the coding style is now more
consistent and some unneccessary calls/functions are removed.
(From OE-Core rev: 094e27c881d06e428f18788463627da736c66911)
Signed-off-by: Tobias Olausson <tobias.olausson@pelagicore.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When building the U-Boot the lack of a proper sysroot can trigger
following error:
,----
| arm-poky-linux-gnueabi-ld.bfd: cannot find -lgcc
| make[2]: *** [examples/standalone/hello_world] Error 1
| make[1]: *** [examples/standalone] Error 2
| make: *** [examples] Error 2
`----
Guillaume Fournier has posted a very complete analysis of the
problem[1].
1. https://lists.yoctoproject.org/pipermail/meta-freescale/2014-November/011270.html
The use of KCFLAGS makes the build of U-Boot work out of box, now that
it uses the Linux kernel build system.
Reported-by: Guillaume Fournier <gfournier@brioconcept.com>
(From OE-Core rev: 50437f9c187f1a884825a8d1ec12da47a5e58670)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #6951]
The TOOLCHAIN_CONFIGSITE_SYSROOTCACHE value was defaulting to the nativesdk
path and not the associated target path. Set the value in toolchain-scripts
to the target path.
Be sure to set the MLPREFIX within the meta-environment script as multilibs
are processed.
Update the config_site file name to use -BPN- not PN. Otherwise the
environment processing can't find the correct filename.
(From OE-Core rev: 1f05aaa4944ddac6c2b3ba440effdf1eaf732656)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Previously there was a change to the ncurses compile to make it more
like the typical way it was compiled on a host system. This fixed a
whole class of host machines, but masked the real underlying problem
with the display corruption issues and menuconfig.
The corner case that led to the discovery that the wrong curses.h file
was getting used was when there was no curses libraries at all on one
of the development hosts. What had happened before was that
/usr/include/curses.h on the host system had to match closely enough
to the curses.h in the sysroot and then linking against the sysroot
version of curses.so was ok (meaning no display corruption). But on
some systems with ncurses.h vs curses.h such as SuSE hosts, there were
still issues.
If we fix the root of the problem and force the mconf and lxdialog to
use the correct headers and libraries from the sysroot there is no
further issues and the menuconfig target works properly. It also
means we can back out the custom compilation flags to the ncurses
recipe because they are no longer needed.
For the kernel part of the menuconfig / nconfig changes it will be
merged separately and this is all based on:
https://lkml.org/lkml/2013/3/3/103
(From OE-Core rev: 889e02659dd396feba24f0b0ee6b4043c3f3735a)
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Writes build information to target filesystem on /etc/build such as enabled
layers, their current status and commit.
squashspaces was moved to oe/utils.py to make it available to different classes
and avoid code duplication.
[YOCTO #6770]
(From OE-Core rev: c9cc652e88ddedddf8a2f23fb9b8c024616526d7)
Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Having these two separate functions handling PR values seems pointless,
and worse, there are impossible code branches mixed within them.
Merge them into one function and tweak comments so at least you
don't have to read both functions to figure out what is going on.
This does restructure the conditionals to try and aid readability.
(From OE-Core rev: 865d001de168915a5796e5c760f96bdd04cebd61)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Apparently 1.5 years of warnings isn't enough to get anyone to take any
notice. We therefore make this an error so people can ignore it for
another 6 months whereafter we can finally give up and remove the
obsolete code.
(From OE-Core rev: 0c21d06dea96ca5f19ac2e3136c66da582036a11)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It turns out we have quite a number of Makefiles out there without a
clean target. Rather than have all cases code an empty do_configure, add
a CLEANBROKEN variable which when set to "1" will disable the attempt to
"make clean".
This patch also adjusts various recipes which either have this problem
fixed, or have been reported to have make clean failures.
(From OE-Core rev: 45b7d3add14eafc25da62bab68d4ae133f8dcb57)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use a multi-line value to set IMAGE_TYPES and put all the compressed
versions of a format on one line. Other than moving ext2.lzma this is
just whitespace.
(From OE-Core rev: dd93b3a950d063f4e3020362c636006f51fb5782)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add condition for build-deps, then we can use it in INSANE_SKIP.
(From OE-Core rev: 1cb62dbb1ecedc6232be3509a2887e92def2b8db)
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We read the elapsed time fromt the build stats file, instead
of computing it independently.
[YOCTO #6833]
[YOCTO #6685]
(From OE-Core rev: 4f5a4ec0cdaf078463f04be4a6683816e9b78d5f)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The ubi command assumes the ubifs file is present.
This makes sure this is really the case.
(From OE-Core rev: 0a947408f32d7ab10d2004e7d9332296b82191a3)
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If INCOMPATIBLE_LICENSE=GPLv3, GPLv3+ should be excluded
as well but not now since there is no SPDXLICENSEMAP for
licenses named with 'X+', we can add all the SPDXLICENSEMAP
settings for licenses named with 'X+' in licenses.conf,
but it's more like a duplication, so improve the canonical_license
function to auto map for 'X+' if SPDXLICENSEMAP for 'X' is
available, so GPLv3+ becomes GPL-3.0+.
(From OE-Core rev: 1d6dab1dbbbfbcb32e58dba3111130157ef2b24f)
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adding dependencies and moving files based on Conflicts tags in unit files isn't
right, mainly as it means that systemd depends on systemd-binfmt, because the
latter ends up containing the shutdown.target unit.
(From OE-Core rev: 02767aac492cedf6ccd02648b8e65751cc23c11c)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There is a failure to build lib32-meta-toolchain:
...
|ERROR: lib32-packagegroup-core-standalone-sdk-target not found in the base
feeds (qemux86_64 x86 noarch any all).
...
In package_manager.py, the variable 'DEFAULTTUNE_virtclass-multilib-lib32'
is used to process multilib image/toolchain. But for the build of lib32-
meta-toolchain, the value of 'DEFAULTTUNE_virtclass-multilib-lib32' is
deleted. In 'bitbake lib32-meta-toolchain -e', we got:
...
|# $DEFAULTTUNE_virtclass-multilib-lib32 [2 operations]
|# set? /home/jiahongxu/yocto/build-20141010-yocto/conf/local.conf:237
|# "x86"
|# del data_smart.py:406 [finalize]
|# ""
|# pre-expansion value:
|# "None"
...
The commit 899d45b90061eb3cf3e71029072eee42cd80930c in oe-core deleted
it at DataSmart.finalize
...
Author: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Tue May 31 23:52:50 2011 +0100
bitbake/data_smart: Change overrides behaviour to remove
expanded variables from the datastore
...
We add an internal variable 'DEFAULTTUNE_ML_<multilib>', assign it with the
value of 'DEFAULTTUNE_virtclass-multilib-lib32' before deleting.
For rpm backend in package_manager.py, we use DEFAULTTUNE_virtclass-multilib
-lib32 first, if it is not available, and try to use DEFAULTTUNE_ML_<multilib>
[YOCTO #6842]
(From OE-Core rev: 9c59d3d8b538d3a98ff4b5e5b189a4a23a85da2d)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
While building multilib extended images such as libXX-core-image-minimal,
the WORKDIR has the same dir with the building of core-image-minimal.
$ ls tmp/work/qemux86_64-poky-linux/ -al
...
drwxrwxr-x 3 jiahongxu jiahongxu 4096 Oct 13 16:01 core-image-minimal
drwxrwxr-x 3 jiahongxu jiahongxu 4096 Oct 16 11:11 lib32-core-image-minimal
...
While image class is inherited, it did not assign OVERRIDES with
'virtclass-multilib-libXXX', so the reason is variable TARGET_VENDOR was
not override for multilib in that situation.
It refers what did for PN and MLPREFIX, and manually do the multilib
override for TARGET_VENDOR in RecipePreFinalise handler.
[YOCTO #6844]
(From OE-Core rev: 7ca012fb3addb11ba3f899efa0619ddd8d3c6946)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In oe-core commit 03c5f39b4d7dd8c81e0a130b7d5884e5af039a24,
it removed obsolete codes about variable MULTILIB_VENDORS.
We clean up the rest obsolete codes related with
MULTILIB_VENDORS
(From OE-Core rev: 43a1c2dc08b4291e042b6c9ef981bd094ea2c477)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently if B==S for a cmake recipe, the build will not reconfigure. This patch adds
code to remove the generated cmake files, meaning cmake will then be forced to regenerate
them. This forces cmake to see configuration changes it may not otherwise see.
(From OE-Core rev: 01f4ed0cfbc60859aabfa5bff33ed966117a05d7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When something rebuilds say due to ${baselib} changing or some
other key variable, software is often not rebuilt due to the
fact that make detects no dependency change.
By running "make clean" when these changes occur, we can at least try
and ensure the correct rebuilds happen. We use the same checksum check as
autotools to decide if things have changed or not.
(From OE-Core rev: d06f2c089e01b7c67699800a7a54a4225233da93)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the build doesn't support B != S, we can try running "make clean" instead
to try and clean up previous objects if the hash for the task has changed.
This tries to ensure that when variables like ${baselib} change, the changes are
correctly accounted for.
(From OE-Core rev: c2f761e2010857e2a2aad1dccf06ec39d15c1c86)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Commands like bitbake X -c rootfs or bitbake X -c populate_sdk do not
trigger rm_work to clean up the directories afterwards since it
traditionally hooks onto do_build. This change means those two tasks now
clean up after themselves. We use the cleandirs function attribute to
handle this.
[YOCTO #6413]
(From OE-Core rev: 6bf06d80c2ce03dfdedac5ad8cf42ef8e36b0ecb)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The simplication of do_validate_branches missed a case where a custom
kernel can supply SRCREV="${AUTOREV}", and not use SRCREV_machine at all.
In this case, we will incorrectly try and test the tree for a non-existent
commit, and break the build.
By simplying the condition of the check to look for an empty SRCREV_machine,
we can skip manipulating the tree and testing for a SRCREV.
(From OE-Core rev: 212a4bd9b086365c022842a2ac6a2a25bd486002)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of replicating the logic for the host compiler naming from bitbake.conf,
use the BUILD_* variables directly.
Also change BUILD_CPP to use gcc -E (which native.bbclass previously used), as
some recipes (e.g. grub-efi) use ${CPP} with multiple input files, which gcc -E
can handle but cpp can't.
(From OE-Core rev: 9237d18964ff0bf76f5c37fca21ab3974d81d0d2)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
During kernel_do_install it needs to make symbol link at
${D}/lib/modules/${KERNEL_VERSION}/build, but there will not be
${D}/lib/modules/${KERNEL_VERSION} if there is no modules installed for current
image, which will result in a build failure.
Add "mkdir -p ${D}/lib/modules/${KERNEL_VERSION}" here to avoid this failure
and the need of similar changes in other scripts that also expect it to exist.
(From OE-Core rev: f2f72f8ff623d24fffbb1b0ad40bc08f05ff31dd)
Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In trying to eliminate AUTOINC+ from revision strings,
we accidently truncated the strings to almost guarantee
information from SRCREV_FORMAT, when supplied, would be
lost. So, we now only delete any AUTOINC+'s from the string.
(From OE-Core rev: 83c6930cdfac5a7759c4786172a5c70226e6adc4)
Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The previous version could crash on dead links in the rootfs, or if the manifest directory did not
exist. The generated files were also not compliant with the SPDX specification, for example file
entries did not always start with the FileName tag, time stamps were incorrectly formatted etc.
Stability issues are addressed by added checks, originally written by Johan Thelin
<johan.thelin@pelagicore.com>, who never upstreamed them. I've also added an option for getting full
SPDX output from FOSSology, i.e. not only for all files, but for the package as well, including
license references. License refs are required in order to process the output by SPDXTools. For that
reason, this option defaults to true.
(From OE-Core rev: 5d3a4f4f57e4d8581fd88a14324f94e93104a690)
Signed-off-by: Tobias Olausson <tobias.olausson@pelagicore.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Commit e9672387 split one long line into a multi-line string, but in
the process white space between words was lost. This results in badly
formatted output when this message is printed.
(From OE-Core rev: b145374c0a498de0160a9b81f50ce0066ab14862)
Signed-off-by: Peter Urbanec <openembedded-devel@urbanec.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For some recipes that inhrient cmake, the ${B} may be removed by
cmake_do_configure() while sstate_hardcode_path() running, this
causes build errors:
Exception: OSError: [Errno 2] No such file or directory: \
'/path/to/build'
The function sstate_hardcode_path() called command:
$SSTATE_SCAN_CMD which extended as "find ${SSTATE_BUILDDIR} ..."
So the proper function dirs could be ${SSTATE_BUILDDIR}.
(From OE-Core rev: a949943e622b08485fc7632a0a743bc009079c67)
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Trying to upgrade busybox removing symlinks but update-alternatives
need these links (sed, cut, tail, etc) in order to work.
Adding test to avoid this scripts on upgrade fix the problem, same
solution are found in package_rpm class.
[YOCTO #6768]
(From OE-Core rev: 7b9161dd0c475cca6ea7eb507f7c3c51869eb493)
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
shlib2 code puts the information about path where a provider
will be found. e.g.
{'/usr/lib/llvm3.3': ('libllvm3.3-llvm-3.3', '3.3')}
This is obtained from new shlib2 pkgdata from
llvm3.3/3.3-r0/pkgdata/shlibs2/libllvm3.3-llvm-3.3.list
However when we search for NEEDED libraries we ignore the
key above which is the path where the provider library is installed
and instead just seach in libdir and base_libdir and hence
libraries which are not in above standard search paths gets
ignored even if they appear in DT_NEEDED sections
and a note is emitted
NOTE: Couldn't find shared library provider for libLLVM-3.3.so, used by
files: ....
IMO this note should actually become an error since if we do
not have all DT_NEEDED libraries in image the system is dysfunctional.
This patch extracts this libpath from key and add it to seach paths
when looing for a provider of a shared library
[YOCTO #6798]
Change-Id: Ie5f08632e37ba8d3439c8aaae33bc68b8996792f
(From OE-Core rev: bf8472274ac1e9a35f8cbc82357da6c95b396759)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In a similar way to the previous script which adds support for native
environment scripts, this adds support for target environment scripts
too.
(From OE-Core rev: 2d9466734f0c0c90724820bc36992b2800ffa4d0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The too long line would cause "git send-email" report errors:
patch contains a line longer than 998 characters
Though we can use "--no-validate" to force the send.
(From OE-Core rev: e96723879eb3352a5bdea7b3e1a576edf9550e5a)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The code:
bb.fatal("foo1")
bb.fatal("foo2")
Would make the second one not work, use bb.error for first one to fix
the problem.
(From OE-Core rev: 33a87187a8520e190bcade76cc965aa58faaa85a)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sometimes we require extra environment settings to be available on the
environment for proper SDK work. This were done, in past, using
'_append' tasks however with the split of the environment in a
canadian package this has been broken.
The easier and more flexible solution is to use environment subscripts
which are sources by the main script. These are now looked at:
$OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh
and sourced.
(From OE-Core rev: 457291f2ca084d1f43c0cca2175b448a22761887)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The SRC_URI may contain whitespace, but be otherwise empty. This can happen
in the case:
MYSRC = ""
MYSRC_arm = "file://myarm.patch"
SRC_URI += "${MYSRC}"
Unless we strip blank spaces, to determine if it is empty, we can end up
generating a "Source: " line which in invalid. This leads to the error:
invalid Source: field is speified in the generated CONTROL file
(From OE-Core rev: 16cedc3bce6fc37543e9ef053cd7c589e523ca1c)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In case a package is not generated (is empty and does not has allow
empty flag set) the package data regarding reverse runtime dependency
shouldn't be done.
This were causing a false-positive in the meta-fsl-arm layer, when
building mesa, as:
,----[ Error during build of MX53 in meta-fsl-arm ]
| ERROR: The recipe mesa is trying to install files into a shared area
| when those files already exist. Those files and their manifest
| location are:
| /.../build/build/tmp/sysroots/imx53qsb/pkgdata/runtime-reverse/libopenvg-dev
| Matched in manifest-imx53qsb-amd-gpu-x11-bin-mx51.packagedata
| Please verify which recipe should provide the above files.
`----
Fixes [YOCTO: #6795]
(From OE-Core rev: 9ef8728514b02dd2e18e87645298d9ec2e8a785a)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Similarly to native/cross disable this since otherwise the packagedata
can be marked as machine specific and if you switch machines
which share an architecture, you'll get toolchain overlapping files
errors.
(From OE-Core rev: 96d557be3dedd6aea6199b3d28fbb7f5549fad69)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Even though the kernel-dev package provides the required support for
building external kernel modules on the target, some commonly used scripts
and utilities fail as they are not finding the kernel module build support
files at the desired location.
Create the /lib/modules/<kernel-version>/build link on target pointing to
the sources provided by the kernel-dev package, to fix the issue.
Fixes Bug:
[YOCTO #2968]
(From OE-Core rev: aafa4bc896eb944aa4fc406807dd7e02f4b9b7ba)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The makefile checks for bc during for compilation
[YOCTO #6781]
(From OE-Core rev: c067e52cffe002de3b39aa1bced308dd532859c1)
Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The packagegroup allarch rpm files for multilib can overwrite each other since
they are in theory indentical (in contrast to the other backends). We therefore
need to whitelist this to avoid build failures now this overwrite failure
is fatal.
(From OE-Core rev: d59ade0ca2cf629937434fa423dfbf35ce1209fc)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add SPDX-specific source tree variable for recipes where $S is a subdirectory of
the source tree.
[ RB - add a comment for SPDX_S ]
(From OE-Core rev: 41784ad0588b4aba6897d6e9e0efd0314ab19747)
Signed-off-by: leimaohui <leimaohui@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A warning is issued when run about an unexpected operator due to a
syntax error with an extra if empedded in the shell conditional. Remove
the extra if.
(From OE-Core rev: f0566e127abc7bb90588b2a8bee12ad3e7d35b3e)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without this changing just the SRCREV won't re-fetch unless you embed the SRCREV
into PV.
The downside here is that every hash changes, so this causes a full rebuild.
(From OE-Core rev: a414b17e1d783ad68a2d0f7d5922967449c05797)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If you switch between multilib and non-multilib builds, pretty much
everything rebuilds due to the use of MULTI_PROVIDER_WHITELIST
in do_populate_sysroot. It doesn't need to do this so exclude
that variable for checksum purposes.
(From OE-Core rev: 7f3a44ff30d07083ee8c4e2b7ac91dc6a9c8857b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Update the sstate file's timestamps after it is installed, it will be
very useful for removing the old sstate file, especially, it's not easy
to remove when use the shared SSTATE_DIR, we can easily remove them with
this change, for example:
$ find state-cache -type f -ctime +10 -exec rm -f {} \;
Will remove the sstate file which isn't used by recent 10 days.
We can use the -atime, but it is not always available, for example,
when mounted with "-o noatime".
The touch is a very light weight action, and the
scripts/sstate-cache-management.sh also requires this.
(From OE-Core rev: bbee747466a6947319cff2ffd676abf9432c16ae)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When files overlap in the sysroot, something bad usually happened. We've had
two independent cases recently where a couple of months after one of these
warnings was shown, builds failed due to corruption.
This change moves the warning to become a fatal error. The complaint I've had
about this is that we need to tell the user what happened and more importantly
how to recover from it. If we could recover from it, great but the trouble is
we simply don't know what happened.
As a compromise, we can document several of the possible scenarios in the error
message. We don't normally go to this level of detail however in this case, I'm
lacking other viable alternatives.
I do believe it is important to stop as corruption occurs rather than letting the
build contunue into territory that is not deterministic amongst other things.
The complex message is followed by a simpler one in case the long message is too
much for the user.
(From OE-Core rev: 179ac7de03977b6e440409eddb2166819e07286a)
(From OE-Core rev: 4b503f25f1ef8f554d3c76d88399db379dc818cc)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Taking run-postinsts and building for two machines which have different
OVERRIDES leads to two different sets of stamps for an allarch package.
We don't need to depend on OVERRIDES in these classes, the end resulting
variables are good enough. We can therefore exclude the dependency
and allow a single package to be generated for run-postinsts.
(From OE-Core rev: fdc949154e64afb41dd4db3a97be74a15963128d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These patches are the start of a new idea, a way of allowing a single set of
cross/native sstate to work over mutliple distros, even old ones.
The assumption is that our own C library is basically up to date. We build
and share a small tarball (~2MB) of a prebuilt copy of this along with a
patchelf binary (which sadly is C++ based so libstdc++ is in there). This
tarball can be generated from our usual SDK generation process through
the supplied recipe, uninative-tarball.
At the start of the build, if its not been extracted into the sysroot, this
tarball is extracted there and configured for the specified path.
When we install binaries from a "uninative" sstate feed, we change the
dynamic loader to point at this dynamic loader and C librbary. This works
exactly the same way as our relocatable SDK does. The only real difference
is a switch to use patchelf, so even if the interpreter section is too small,
it can still adjust the binary.
Right now this implements a working proof of concept. If you build the tarball
and place it at the head of the tree (in COREBASE), you can run a build from
sstate and successfully build packages and construct images.
There is some improvement needed, its hardcoded for x86_64 right now, its trivial
to add 32 bit support too. The tarball isn't fetched right now, there is just a
harcoded path assumption and there is no error handling. I haven't figured
out the best delivery mechanism for that yet. BuildStarted is probably not
the right event to hook on either.
I've merged this to illustrate how with a small change, we might make the
native/cross sstate much more reusable and hence improve the accessibility
of lower overhead builds. With this change, its possible the Yocto Project may
be able to support a configured sstate mirror out the box. This also has
positive implications for our developer workflow/SDK improvements.
(From OE-Core rev: e66c96ae9c7ba21ebd04a4807390f0031238a85a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: dd5313228879487ca2b11fc5d38fb821a2a810a5)
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently we have the horrible situation where meta-environment packages
the toolchain environment files and they get included in the SDK but are
broken, then, the SDK code overwrites them with good versions. This is
suboptimal.
This change fixes the code in meta-environment to create working
files and adds in the multilib support from populate_sdk_base, then
we remove the code in that base bbclass and rely on the packages
being installed if/as/when needed. This removes the duplication
and the broken versions of the files, hopefully making all well.
[YOCTO #6608]
[YOCTO #6613]
(From OE-Core rev: 063355e5965439c7b3253d692d7ab0ed1189d123)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
UHD and GNU radio use the cmake build system. The toolchain file made
from cmake.bbclass does not set the variable needs by cmake projects
that use .S files. UHD added some .S files and these changes are required
to build recent UHD.
(From OE-Core rev: 43ce4b804d433662fe77c6f5298060ba74a0e639)
Signed-off-by: Philip Balister <philip@balister.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I've been giving things some thought, specifically why sstate doesn't
get used more and why we have people requesting external toolchains. I'm
guessing the issue is that people don't like how often sstate can change
and the lack of an easy way to lock it down.
Locking it down is actually quite easy so patch implements some basics
of how you can do this (for example to a specific toolchain). With an
addition like this to local.conf (or wherever):
SIGGEN_LOCKEDSIGS = "\
gcc-cross:do_populate_sysroot:a8d91b35b98e1494957a2ddaf4598956 \
eglibc:do_populate_sysroot:13e8c68553dc61f9d67564f13b9b2d67 \
eglibc:do_packagedata:bfca0db1782c719d373f8636282596ee \
gcc-cross:do_packagedata:4b601ff4f67601395ee49c46701122f6 \
"
the code at the end of the email will force the hashes to those values
for the recipes mentioned. The system would then find and use those
specific objects from the sstate cache instead of trying to build
anything.
Obviously this is a little simplistic, you might need to put an override
against this to only apply those revisions for a specific architecture
for example. You'd also probably want to put code in the sstate hash
validation code to ensure it really did install these from sstate since
if it didn't you'd want to abort the build.
This patch also implements support to add to bitbake -S which dumps the
locked sstate checksums for each task into a ready prepared include file
locked-sigs.inc (currently placed into cwd). There is a function,
bb.parse.siggen.dump_lockedsigs() which can be called to trigger the
same functionality from task space.
A warning is added to sstate.bbclass through a call back into the siggen
class to warn if objects are not used from the locked cache. The
SIGGEN_ENFORCE_LOCKEDSIGS variable controls whether this is just a warning
or a fatal error.
A script is provided to generate sstate directory from a locked-sigs file.
(From OE-Core rev: 7e14784f2493a19c6bfe3ec3f05a5cf9797a2f22)
(From OE-Core rev: 884d4fa3e77cf32836f14a113c11489076f4a84d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The "grep -e (x|y)" doesn't work, for example:
$ echo xy | grep -e '(x|y)'
No output
We can use "grep -E" (extended regexp) or "grep -e x -e y" to fix it.
It only affected the cross recipes.
(From OE-Core rev: 62722de6d0ec00608eacc2cb0396362aced00047)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently copies of the license files are made which wastes disk space
and adversely affects performance. We can link these instead in most
cases for small performance gains.
(From OE-Core rev: 0b0f3631fd22f731b6aeedb73965e367b695028b)
(From OE-Core rev: fe00d4f479c4fb5e4be5dda616a4de0a257ef6c3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The use of [ and && here means $? is reset and the exit 1 error
interception wasn't working, leading to "file changed as we read it"
errors from sstate_create_package when heavily using hardlinks.
Fix this by placing $? into a variable.
(From OE-Core rev: 6e51f900b76b06c09a3d6927f8db7398e2c035ed)
(From OE-Core rev: 75040a098e11927e6872e3a2a6286fe3ed0c7f47)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add an SDK_POST_INSTALL_COMMAND variable which allows additional
commands to be added towards the end of the SDK install script, for e.g.
additional processing that needs to be done as part of installing the
SDK.
(From OE-Core rev: 10df0718d6a626d99beb68cde8d914ee0820d7eb)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When the PACKAGE_ARCH is dependant of a override, the expanding is
done too late triggering the false-positive error of wrong inclusion
order.
To fix this we use immediate expansion operator to evaluate the
PACKAGE_ARCH value in order to choose to load 'allarch' class or not.
(From OE-Core rev: 2c9b1d304daade7b0907320aeb9c522e7ab9dcab)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A few firmware files use this filename extension, like korg/k1212.dsp .
Create respective packages.
(From OE-Core rev: 4a4877c2e7cdcb8a1d0a54add600c0cd4e92e647)
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
SSTATEPOSTINSTFUNCS is now set with = in sstate.bbclass, and because
the line here in buildhistory.bbclass ends up being parsed before that
we now need to use _append or the value we are adding will be wiped out.
This fixes buildhistory no longer recording package information since
OE-Core revision 9d659c6f20fa4a141b491c62a3ef0dfb1f896d9c.
(From OE-Core rev: b5c05b474554925524073023f3aac2532c87537f)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* in some cases (e.g. with external toolchain which doesn't respect our
reasonably old version set in OLDEST_KERNEL) it's possible to have libc
which requires newer kernel than what we have on builders, qemu supports
-r param to use different uname than what's returned by host system.
* change qemu_run_binary to pass -r ${OLDEST_KERNEL} and add the same to
QEMU_OPTIONS which are used by qemuwrapper-cross
* maybe we should eventually convert all qemu_run_binary usages always include
qemuwrapper-cross dependency and always call qemu through that (it
seems very strange that qemu_target_binary is called from qemuwrapper
and for allarch recipes it can return qemu-allarch as qemu binary).
qemu_run_binary is used by:
meta/classes/gtk-immodules-cache.bbclass: ${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-$maj_ver.0')} \
meta/classes/qemu.bbclass:def qemu_run_binary(data, rootfs_path, binary):
meta/recipes-core/systemd/systemd_213.bb: ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \
meta/recipes-graphics/pango/pango.inc: ${@qemu_run_binary(d, '$D','${bindir}/${MLPREFIX}pango-querymodules')} \
and qemuwrapper directly by:
scripts/postinst-intercepts/update_font_cache:PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\
scripts/postinst-intercepts/update_pixbuf_cache:PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\
(From OE-Core rev: 1f0bff320077f4d9f2ee51096a1438e8cae9dd0d)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In some cases we do either need to add extra sstate manipulation
functions, or change the existing modification functions. This patch
parametrizes it to SSTATEPOSTCREATEFUNCS after sstate_create_package
(From OE-Core rev: ed5fb9c69fcf0f6e8e98f72ac753c66119468ea5)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The ipk or deb can't depend on file such as "/bin/bash" or
"/usr/bin/perl", so it knows nothing about the pkg depends bash or perl,
thus there would be dependencies problems when we run "apt-get
install/remove <pkg>" on the target, this check can help us find the
issues and then fix them manually.
* Benefits:
- Help to fix file rdepends issues for ipk and deb
- Help to fix abnormal rdepends.
- Help to check whether the rdepends is OK or not after build each
recipe (don't have to install to the image), for example, a recipe may
generate 10 binary packages, only a part of them will be installed to
the image by default, we can know whether the rdepends are OK or
not for the ones which are installed, but can't know the ones which
are not installed, this patch can help check all the 10 binary
packages' rdepends.
* Basic designs:
- Get all the RDEPENDS on the chain.
- Get the pkg's FILERPROVIDES from oe.packagedata.read_subpkgdata()
and save to set filerdepends.
- Get each RPDEPENDS' FILERPROVIDES, RPROVIDES and FILERPROVIDESFLIST,
and save to set rdep_rprovides.
- Do the set "filerdepends -= rdep_rprovides" and QA issue if
filerdepends is not null.
[YOCTO #1662]
(From OE-Core rev: cd5e0f01cdb4e7c759c01cf3f87952a20253737c)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When using the useradd-staticids.bbclass under meta/classes,
this error occurs:
"<username> - <username>: Username does not have a static uid defined."
There was a problem with the regular expression for parsing parameters,
it was sometimes returning an empty string.
I have fixed this by skipping empty strings.
(From OE-Core rev: f249ef32709069a2680b92dc5a5b4f6545d014b7)
Signed-off-by: Fabrice Coulon <fabrice@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
During spec generation, ideally directories should not be auto
packaged under the %file section of rpm packages but take ownership of
specific directories.
* packages only empty directories or explict directory.
See:
- http://www.rpm.org/max-rpm/s1-rpm-inside-files-list-directives.html
- "The %dir Directive"
* This will prevent the overlapping of security permission.
For example, in Tizen the directory /etc have smack label 'System::Shared'
So Only one package should own and set the label of /etc to prevent
the overwriting of the smack label.
Existing behaviour is maintained if DIRFILES is not set. If it is set,
the modified behaviour is used. If can be set to an empty value by
core recipes to trigger the modified behaviour.
[RP: Modified to allow optional usage of DIRFILES]
(From OE-Core rev: 0e33d232916125ba5305ced7200cc00f8b5f7b22)
Signed-off-by: Ronan Le Martret <ronan@fridu.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The 'and' logic for the check is wrong. To make things clear, please
see the example below.
Say that we have a recipe A, which has a sysv-init style init script named
initA and no corresponding service file. The recipe inherits update-rc.d,
but it doesn't inherit systemd.bbclass. The DISTRO_FEATURES has 'systemd'
inside it, but it doesn't have 'sysvinit'. Now if we build an image, with
the 'and' logic in the check, the symlinks for initA would not be installed
into /etc/rc?.d directory.
This is incorrect. Because there's no corresponding service. The symlinks
in /etc/rc?.d/ should be created so that the service would be correctly
started at boot time.
The logic should really be 'or' in the check. This is actually what the code
was when it was originally written.
Several different situations are listed below to prove the correctness of the
'or' logic.
If 'sysvinit' is in DISTRO_FEATURES, the initA script would always be installed
with corresponding preisnt/postinst generated and added.
If 'sysvinit' is not in DISTRO_FEATURES, we have three situations.
1) A has initA and A.service.
In such situation, systemd.bbclass would set INHIBIT_UPDATERCD_BBCLASS,
so no preinst/postinst about update-rc.d would be added and the symlinks
for initA would not be created.
2) A has initA, and the functionality of initA is not implemented internally
in systemd.
In such situation, symlinks for initA would be installed.
3) A has initA, and the functionality of initA is implemented internally in
systemd or in some other recipe.
Examples for such situation are alsa-state and keymaps in OE.
In such situation, we need to set INHIBIT_UPDATERCD_BBCLASS in the recipe
so that there would be no preinst/postinst scripts about update-rc.d added.
(From OE-Core rev: 6272c81509bbdb5d602056ceaa6f2c02bbf47a41)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A distribution compression policy should be established, and used by all
packages. It compressed man pages in ${mandir} and info pages in ${infodir}
1. The doc will be compressed to gz format by default, which is configured
in ${DOC_COMPRESS}
2. It will automatically correct the compressed doc which is not
in ${DOC_COMPRESS} but in ${DOC_COMPRESS_LIST} to the format
of ${DOC_COMPRESS} policy
3. It is easy to add a new type compression by editing
local.conf, such as:
...
DOC_COMPRESS_LIST_append = ' abc'
DOC_COMPRESS = 'abc'
DOC_COMPRESS_CMD[abc] = 'abc compress cmd ***'
DOC_DECOMPRESS_CMD[abc] = 'abc decompress cmd ***'
...
[YOCTO #1238]
(From OE-Core rev: 5c833e188bbf25c35c24f78eaa761a191d6b5801)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows its usage in other RPM macros so files in ${S} can be found.
(From OE-Core rev: 649ddd4b17e8a1f94ca9f4bc3a71560437c61909)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add hooks to allow customisation of the rpm spec files. Since python functions
aren't visible in the data store, one variable is used to trigger the call to
a separately named function. A dummy function is not provided since this then
triggers various class ordering complexities which are best avoided.
Ultimately this will be replaced by a refactor of the code to generate the
spec file using a python class.
This allows the tizen layer to add hooks for the security manifests for
example.
(From OE-Core rev: 03ac91815013c0e85c4694b3ab849257e658aeba)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The native recipe doesn't need package_qa, and it has a race issue with
do_unpack which requires the clean dir of ${S}, then causes error:
NOTE: recipe opkg-utils-native-0.1.8+gitAUTOINC+eae0d8fa44-r0: task do_package_qa: Failed
ERROR: Task 283 (virtual:native:/path/to/opkg-utils_git.bb, do_package_qa) failed with exit code '1'
(From OE-Core rev: 6ad0979a6064755fd6d86b568bd3cbbcdd3d4e37)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
--is-ancestor is a relatively new git option [commit 5907cda1, Aug 30 2012].
To support build machines with older versions of git installed, we can use
the basic porcelain commands to acheive the same check.
merge-base: "--is-ancestor A B" can be replaced with:
if test "$(git rev-parse --verify A)" = "$(git merge-base A B)"
(From OE-Core rev: 2ddfffe52720d1df70b04131eac553776da7bc73)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use the bbinfo, bberror, bbfatal equivalents to the existing echo statements
within the kernel-yocto processing. This makes us consistent with the other
messages from the build system.
(From OE-Core rev: 1686d69de08bcecd39942802df18c4f0ca029ffe)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When custom respositories are built (like a pure kernel.org
repo), the machine_meta SRCREV format is not applicable. As
such, we shouldn't check for the meta branch and we shouldn't
only check SRCREV_machine based revisions.
(From OE-Core rev: bf555ee3305114483aa5083cde1accd23b46a39e)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since the git fetcher ensures that branches exist, we no longer need to
validate the branch and have a conditional checkout of the source.
We can remove some checks and ensure that whenever we exit the
do_kernel_checkout routine that a branch is always checked out.
(From OE-Core rev: 2ffa3f8be6996877cd552ff22260de35c19c413d)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It's better to check a branches existence via show-ref versus the end
user branch commands. So we make the switch.
Also as part of this change, we move the conversion of remote branches
to local branches above the meta branch checking. This is required to
ensure that the branch is local for the show-ref check.
(From OE-Core rev: 04bd4cee625574cfa67679b6b2a150a21106c5bf)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The checking of machine and meta branch SRCREVs was inconsistent and
didn't allow a mixed AUTOREV machine/meta branch combination. By
simplifying the checks and changing the logic, we can now allow this
combination.
(From OE-Core rev: e272cfbba87a98393d6c22bd96c7f1cb6902170a)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
KBRANCH_DEFAULT was introduced as a way to trigger the enforced build
of a particular branch of the tree. With the fetcher now enforcing
SRCREVs existing on a branch, we can simply validate that the SRCREV
is reachable from the final branch and no longer care about enforcing
a given branch.
(From OE-Core rev: fbacbb0ca79cdae33803fdd3158671488b9bbcbe)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that the fetcher will enforce branch existence, we no longer need to
confirm that a branch exists, and that it was the branch requested to
be built.
We know the branch exists and we'll confirm that the specified SRCREV
is going to be built after we've patched the tree.
(From OE-Core rev: 93a7c7bd8e860e621af7174ef10d571b0d8622b2)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We no longer need to check if the KBRANCH matches the branch specified
in the SRC_URI. This is taken care of by the fetcher at the beginning
and SRCREV ancestor validation after patching.
(From OE-Core rev: a9b6550d3e2f5bf21fd05a17bca3e57c5b74e057)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The bitbake fetcher now enforces that a commit is contained by a branch,
so this code can be dropped from do_validate_branches.
(From OE-Core rev: 9e473d348d9e0db34e03446065c6c48d36964e1e)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rather than attempting to condition the entire tree to machine SRCREV (since
we don't know what branch will be built), we can instead wait until patching
has completed and then confirm that we are indeed building a decendant of the
specified SRCREV. The result is a much simpler check, and no mangling of the
tree.
(From OE-Core rev: 97075af9e9a691276cd417f1181ca73223f52d1c)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Parsing the output of git show is error prone, since it changes based on
the type of issue with bad comit IDs. Since the output is no longer used
in the case of a valid ref, we can switch to git-cat-file and simply
check the return code.
(From OE-Core rev: 228c05013fe691321ec00467d8d0c0bb64dd175c)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
do_validate_branches checks to ensure that a valid machine SRCREV was
set. A test against an empty SRCREV is done in two separate locations,
we only need one, since the first check immediately returns and the
second check never hits.
At the same time, we can stop referring to the same commit hash by
3 different names. Instead we assign to a local variable at the
top of the routine, and refer to it at all times.
(From OE-Core rev: 05508339882c7cc1fe3f1f67f72314fdcab979b7)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A recipe will sometimes be rebuilt unnecessarily if it adds users via
useradd and the pseudo-native task has not been populated.
This patch adds the correct dependency.
(From OE-Core rev: 2bb244e9e18124b3b86195e0e10b2ebd40cd4f81)
Signed-off-by: Jate Sujjavanich <jatedev@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This quite coincidentally invalidates the sstate for do_package which
is needed due to the correction of oe.utils.multiprocess_exec().
(From OE-Core rev: 9972f0686794a01582fd1a15889dcbd89bc5cf72)
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some packages have additional configuration options that are currently
not accessible through cpan_build.bbclass. Similar to cpan.bbclass, add
EXTRA_CPAN_BUILD_FLAGS to pass the optional parameters to perl Build.PL.
(From OE-Core rev: bef6c3f4ebcd19ea3845aab27a165c370102b62c)
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently this variable isn't passed through the magic rename
mangling. This means that if you try adding "nativesdk-eglibc"
to an image directly, you can't since the package is renamed
by debian.bbclass and nothing sees the renaming.
This is annoying since I wanted to exactly that. This code
change passes it through the standard renaming function, the
tricky part is that we have to set PKGDATA_DIR to point to
the correct sysroot during the call. We create a copy of the
datastore for the purposes of the call to do this.
(From OE-Core rev: d2fbc55d6863a767e69092bac686c02c3ec34650)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixed:
- There might be a space between "#!" and "/pat/to/usr/bin/perl", e.g.:
"#! /usr/bin/perl", now also matches it.
- There might be the lines like the following in the body:
eval 'exec /path/to/usr/bin/perl-native/perl -S $0 ${1+"$@"}'
Now we only check "#! */path/to/usr/bin/perl" to make sure it is a
perl script, but match and fix the lines in both header and body.
(From OE-Core rev: 0d2e2ac137465885a1d55103010ccfdec579f1ce)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In some cases we do either need to add extra sstate manipulation
functions, or change the existing modification functions. This patch
parametrises them to SSTATECREATEFUNCS and SSTATEPOSTUNPACKFUNCS and
abstracts the "hardcoded path" functions into separate functions using
these new variables.
We may use this new functionality to improve binary relocating using
patchelf for example, this at least lets us have the hooks to be able to
experiment.
(From OE-Core rev: 9d659c6f20fa4a141b491c62a3ef0dfb1f896d9c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In order to use hasFeature and hasPackage methods in sdk test modules, we need specific fields to be set in the TestContext object.
Adding pkgmanifest, imagefeatures and distrofeatures to the TestContext.
(From OE-Core rev: cd342b399b2d78724032cdd7042968d3238cd548)
Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Similar to the way BSP images have rootfs a manifest, the toolchain now also has a manifest file created alongside the sdk image.
(From OE-Core rev: 3d42fd1f050a1382b15c3c4d59fd02d0ed7091b2)
Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When archiving original source, insert the first 10
characters of srcrev, after stripping off any
AUTOINC+, into the filename for tarfiles created
from directories.
(From OE-Core rev: 36726049a6a452f85d7cc849d57ad6af05d6d3ea)
Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In cases where we override variables e.g PACKAGE_ARCH
conditionally and use a MACHINEOVERRIDE to qualify the
override like
PACKAGE_ARCH_<MACHINE> = "some target PACKAGE_ARCH"
This would also be effective if this recipe is
BBEXTENDED to native or nativesdk which is undesired
This particular issue will cause wrong sysroot to be
used for nativesdk case since PACKAGE_ARCH would have
been modified and eventually changing value of
STAGING_DIR_TARGET which we use as --sysroot option
to cross and cross-canadian built SDK gcc
(From OE-Core rev: 6907da7eb44dca812dbb9e214357ee96e9ff738a)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- Use clearer variable names
- Use variable unpacking to reference elements by name rather than index
- Sacrifice a small amount of time (iterate over protocols twice per entry
rather than once) for clarity: use readable generator expressions with any()
rather than maintaining state.
(From OE-Core rev: 9d31e1e6ce07991fe360e67295311e62a55603af)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It doesn't really make sense to run the remapping code on these
variables. If specific renaming is needed, it should be applied
manually. This means that the debian RPROVIDES of the original package
name can be preserved. There was also a bug report about this on the
OE-Core mailing list recently where someone else ran into this problem
too.
(From OE-Core rev: a0cd18ff5405b63b8296b8ef1fc2a488b906f576)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For package groups, use the original package names and don't use the
remapped (e.g. debian) naming.
(From OE-Core rev: afde71e8784144f05cebb0bdeeff6b3184819362)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently its hard for a packagegroup recipe to depend on something who's name
can change unpredictably. We therefore add in RPROVIDES for the original
package name so that these are also available to use as dependencies.
(From OE-Core rev: 3409c4379559afbb1d1d29045582995147a33bbc)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since we want to start including this class conditionally, detect cases
where packagegroup files use the old ordering and inform the user they
need to update this.
(From OE-Core rev: 30aaada4b79fc1acad5fdaba98071b63c52b9e05)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Make the allarch inherit conditional on PACKAGE_ARCH being left as
all. The one downside to this approach is that recipes need to set
PACKAGE_ARCH *before* inheriting the class in order to avoid the inherit.
The advantage is that we could start to detect the use of the
allarch inherit in the sstatesig code for improved task checksums.
(From OE-Core rev: 9c826962ec8fa45c2b035427442b90a41517144e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Check the format of MIRRORS, PREMIRRORS and SSTATE_MIRRORS:
* Each mirror shoudl contain two memebers.
* The local "file://" url must use absolute path (file:///).
* The protocol must in protocols list.
(From OE-Core rev: c8c213bb25b137cf70ba8ce9a45e60065d926735)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixed:
- Remove an unused line
- Remove unneeded code after d.getVar(), we don't need the "or ''" after
d.getVar() unless we need a string.
- typo: PREMIRROS -> PREMIRRORS.
(From OE-Core rev: 7849e50107a27b0ff2aaac47480ac1a0a79533dc)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The DEBIAN_NAMES feature renames some of the libc packages to
"libc6*" names --but only some. A previous patch added the -dbg
package. However, this doesn't cover other packages (such as
the -doc package), and it didn't take multilibs into account.
(From OE-Core rev: 64362a8f7ad7534515a9448445606581f3c572f6)
Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Might as well move this default to the class which uses it allowing
for easier reading/understanding of the class.
(From OE-Core rev: 177aec177306e68bcd822dee6b29a7efbd558a91)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We may as well use the common function for this rather than
duplicating the code.
(From OE-Core rev: 20979854c52607212c16e0b01cf610c80d8b524e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If directory names in SRC_URI ended with "/", function
do_ar_original() in layers/oe-core/meta/classes/archiver.bbclass
will generate a tar file whose name is ".tar.gz".
So delete the "/" at the tail of the directory names before use the names.
(From OE-Core rev: a539e823d002fefe129e3045f893d1237fadb87f)
Signed-off-by: Jian Liu <jian.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
vdso build could generate so files, avoid installing such so files into kernel
source dir, otherwise the below package QA error might be hit:
ERROR: QA Issue: File '/usr/src/kernel/arch/x86/vdso/vdso64.so' from
linux-yocto was already stripped, this will prevent future
debugging! [already-stripped]
(From OE-Core rev: daff14bf44c59542c8b8f1a455dcc59586be7e59)
Signed-off-by: Yang Shi <yang.shi@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the recipe being built is listed first in BB_TASKDEPDATA (i.e. item
0) this is still valid and should not trigger an error.
(From OE-Core rev: 945c98969bcfe5516b89ac6dfbe4552fb5d68a48)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If we have done do_package_qa_setscene we do not also need
do_package_setscene. This means we can again for example rebuild an image
without needing do_package sstate packages to be present.
(From OE-Core rev: a0f584ac3d5a94dec121b684206ecd40c968f7fc)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* use .txt extension like other reports (e.g. image-info.txt) it's
also useful when looking at the file from web server which doesn't
have text/plain as default content-type
* include whole BUILDCFG_HEADER/BUILDCFG_FUNCS instead of just layer
info
* this makes it easier for distro to include more fields without the
need to modify buildhistory.bbclass
* currently it adds following fields:
Build Configuration:
BB_VERSION = "1.23.1"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "Gentoo-2.2"
TARGET_SYS = "x86_64-oe-linux"
MACHINE = "qemux86-64"
DISTRO = "shr"
DISTRO_VERSION = "2013.07-next-20140725"
TUNE_FEATURES = "m64 core2"
TARGET_FPU = ""
(From OE-Core rev: 6db6c74f2876df7a183990426bb4262972966441)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- add new testsdk task for meta-toolchain testing.
- enable the get_tests_list method to work with sdk tests.
- add default TEST_SUITES value for meta-toolchain package
NOTE: Original patch made by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: b78bc50904d53d5091729de481b99cc3ac4aaa1e)
Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was old debug which can safely be removed for less noisy builds.
(From OE-Core rev: d0be4b37743492fc9c178fd6f9ef73a5eb2fd9c3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without this, things like arm* can make it into OVERRIDES when we're
building a compiler to build binaries for another architecture like
x86. This can can lead to build failures dependning on the
exact configuration and overrides.
For example:
MACHINE=imx53qsb bitbake gcc-crosssdk-initial-x86_64 -e | grep EXTRA_OECONF
was showing an armv7 configuration option to gcc.
(From OE-Core rev: 859ac3fdb75303f9f0b4bf1d8d83db0069f0a27b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The image_types.bbclass is a must since we use this in image.bbclass:
[snip]
python () {
deps = " " + imagetypes_getdepends(d)
d.appendVarFlag('do_rootfs', 'depends', deps)
[snip]
The imagetypes_getdepends() is defined in image_types.bbclass. Use "+="
to replace "?=" since it is a must, so that the user can use
"IMAGE_CLASSES = foo.bbclass" in local.conf to add their own image
class.
NOTE: the IMAGE_CLASSES_append = " foo" doesn't work since we use this
in image.bbclass:
IMAGE_CLASSES += "image_types"
inherit ${IMAGE_CLASSES}
I think that it is because inherit takes effect before append?
Another way to fix the problem is:
IMAGE_CLASSES ?= ""
inherit image_types ${IMAGE_CLASSES}
But it seems that we need another name for IMAGE_CLASSES, for example
IMAGE_CLASSES_EXTRA, and also need update the doc, which would make it
complicated.
(From OE-Core rev: c225613d997ef40dedf64b880b5ca4ae89adfded)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add "squashfs-lzo" to the image types. LZO compression support has been
in both kernel and squashfs tools for many years, but OE never enabled
it.
(From OE-Core rev: ab659b1c1e13fd6863893abff86990d88aa36790)
Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The code in base.bbclass to spread PREFERRED_PROVIDERS values
to multilibs doesn't work for things which rely on TARGET_PREFIX,
such as virtual/${TARGET_PREFIX}gcc. This is because the expansion
of TARGET_PREFIX produces the wrong value if executed prior to
the assignment of TARGET_VENDOR_virtclass-multilib-libxx, which
will always happen since that assignment doesn't happen until recipe
parsing, but the PREFERRED_PROVIDERS expansion is happening
around ConfigParsed.
To solve this, we make a couple of changes. First, the creation
of the TARGET_VENDOR override values is moved into a new ConfigParsed
event handler in multilib_global. Second, the preferred_ml_updates()
function's code is moved into that function too. It seems safe to
assume that PREFERRED_PROVIDER values only need to be spread to
other multilibs when multilibs are in use.
I don't think this directly affects any use cases that don't involve
third-party or alternative toolchains.
(From OE-Core rev: 513f72274460e54fd35dda5ef70fa42ba2b284f8)
Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This variable is used to ensure the proper version of --with-float=FOO
is passed to gcc's configure script. gcc also has a --with-fpu=FOO
option that means something different. To avoid confusion, change the
names to be consistent.
(From OE-Core rev: c17d883fa99b6967d83c3796d22fc0c1dbe704e6)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* it was dropped from default CXXFLAGS in:
commit 24dd8e129447013ee98609f3892ec414b1b21340
Author: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Sun Mar 2 17:38:33 2014 +0000
bitbake.conf: Drop -fpermissive
Drop the -fpermissive C++ compiler flag. We've had this around for years, most
code should have been fixed long ago. Its possible some recipes may fail
however we can (and should) just use the flag where needed.
* I haven't build world with this yet, but maybe it's time to
drop it here as well at least for consistency
(From OE-Core rev: 578124aedd3dbffd79ea01862d57223ffaa7216a)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Commit 6a7b989933 introduced a typo in
command, a whitespace was missing between --new-line-format and path to
original file. As a result, diffconfig task did not work, diff failed
with exit status 2, resulting in empty fragment.cfg.
(From OE-Core rev: 8c75aa7c30cc5a796962d099896ca2a9a16c3a06)
Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It makes sense to move the script to a separate file, making the bbclass
clearer and allowing the end user to more easily customise or replace
it. There are no functionality changes, just the addition of some
substitution variables.
(From OE-Core rev: f99732a29689c65083ad09abb302f372042c8cd4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There is no real reason to have these separate files any longer. It does
mean in meta-toolchain type recipes some extra variables are defined but
it also means the common code can be grouped and maintained together
which I believe is more beneficial. We therefore merge the classes.
(From OE-Core rev: 2cf42b49003494e1b10775523c9a2547eaf16ea4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: f31316b96a97e72d866f12a8e4bb33eaaa54b923)
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Default core image actually includes packagegroup-base-extended, not
just packagegroup-base.
(From OE-Core rev: 1e567d497713c31e03b58c9997058fc4c0181e5a)
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use $HDDDIR rather than ${HDDDIR} in build_boot_dd(), otherwise may
errors:
- Set these in local.conf:
IMAGE_FSTYPES += "live"
IMAGE_FSTYPES += "vmdk"
AUTO_SYSLINUXMENU = "1"
NOHDD = "1"
$ bitbake core-image-sato
DEBUG: Executing shell function build_boot_dd
install: cannot create regular file
`/path/to/core-image-sato-1.0/hddimg//vesamenu.c32': No such file or directory
WARNING: exit code 1 from a shell command.
This because it uses the ${HDDDIR} which is set in bootimg.bbclass, use
local HDDDIR which is set in build_boot_dd() will fix the problem.
(From OE-Core rev: 1891c39a359e983bb8fd7992b7b5a1aaac11baf7)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Remove an unnecessary check
* Instead of ignoring, report the errors
(From OE-Core rev: 7afc6df6f0d0bbe0c5cb8ec021d430d6d9714941)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Check for ${PN} or ${P} usage in SRC_URI or S.
We should use ${BPN} or ${BP} instead to avoid breaking multilib.
[YOCTO #5427]
(From OE-Core rev: d5a1999a7dc216b8182440cf9e8489ec79a6606e)
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Check that all patches have Signed-off-by and Upstream-Status.
[YOCTO #5427]
(From OE-Core rev: a2b6be10daca733ba4e557bd2d831c60589e9ffd)
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: e07c5c3792a9bf8faa098b54c61bc5fc41654265)
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The change to handle SDKs of different types resulted in the signatures
becoming SDK specific which wasn't intended. Exclude the variable from the
hash values to avoid this.
(From OE-Core rev: add7b9cb20282f837c90a785f04ca690a9bbe87e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need to scan binaries as well as libraries for dependencies.
Also ensure if its not an object file (as found by otool), we handle
this case.
(From OE-Core rev: 3a26862b7a7e0ff247bd1441d670443e83fca391)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, the darwin shlibs detection is done by parsing the .la file
dependency fields. This is very old code and is incomplete in some
cases so convert to using otool -l and otool -L to correctly load
the rpath and dependency information.
(From OE-Core rev: e27573b6c3562662e4b2f5d8543eb7d150c3bc92)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When the code was rewritten we forgot to strip the pkg that is present
in the pkgdest path. This was fixed in the linux version of the code
but not the darwin one, this matches the fix.
Without this, the provider paths are broken.
(From OE-Core rev: bcada055f89c8722024faf20088943ea006cfe36)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
odcctools-crosssdk doesn't use the suffixed naming the rest of crosssdk does
and this results in a annoying build warning. Avoid this.
(From OE-Core rev: b6b66f987168615598c980996a1692ca5753b4eb)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently if you try and switch between linux/darwin/mingw SDK builds in the
same TMPDIR, things break. This is due to sstate not reflecting the SDK_OS in
the manifest names.
Since they are different, reflect this in the manifest naming and allow
this to work.
(From OE-Core rev: 7a0e1233ba196797f5f9bf862685dfae5511e751)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When attempting to use a binary toolchain, such as meta-mentor,
we want the ability to verify that the CCARGS, ASARGS and LDARGS
contain the necessary and appropriate flags.
This change specifically verifies, if set:
TUNEABI_REQUIRED_CCARGS_tune-<tune>
TUNEABI_REQUIRED_ASARGS_tune-<tune>
TUNEABI_REQUIRED_LDARGS_tune-<tune>
Each of these, will be processed by the class and verified that the
selected tune's CCARGS, ASARGS, and LDARGS contains the listed item. This
can be used to validate that the user has not accidently or otherwise
missed an argument. Note, conflicting arguments are not verified.
Without verification it's possible for a misconfiguration to go
undetected, presenting runtime and debugging errors.
(From OE-Core rev: 226f17bfd2ceea7dc5784fbfaa8608f26b90d7f3)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Modify the read_only_rootfs_hook function to make it also have effect
on systemd based systems.
(From OE-Core rev: 92f956d813303f8ee86fd40a4ee3d604a9b4e76e)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The initrd image used by the Linux kernel is list of file system images
concatenated together and presented as a single initrd file at boot time.
So far the initrd is a single filesystem image. But in cases like to support
early microcode loading, the initrd image need to have multiple filesystem
images concatenated together.
This commit is extending the INITRD variable from a single filesystem image
to a list of filesystem images to satisfy the need mentioned above.
(From OE-Core rev: b0ac481dda99d8f4be8015964fcb2cb01afce08c)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The modern kernels may not support IDE (CONFIG_IDE=y), but it should
support SCSI in most of the cases. The boot-directdisk.bbclass uses
sda, too.
Remove an extra space from image-live.bbclass and image-vmdk.bbclass to
not confuse the user.
(From OE-Core rev: 842a797460cd07b779ab588a4ece7e5d4d97417b)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
"man grep" on centos:
-R, -r, --recursive
Read all files under each directory, recursively; this is equivalent to the -d recurse option.
"man grep" on a more recent ubuntu system:
-r, --recursive
Read all files under each directory, recursively, following symbolic links only if they are on the command line. This
is equivalent to the -d recurse option.
So we have an issue when the SDK installer (even with
buildtools-tarball) is used on old hosts since it may try and
dereference paths which it should not. This is caused by differences in
the behaviour of grep -r on older systems.
The fix is to wrap this in find so that only real files are found (as
elsewhere in the script.
[YOCTO #6577]
(From OE-Core rev: 7986adeac16550b33f65fded39a55f668e0e543f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If used with some packages using kconfig mechanism, the diffconfig
command generates wrong output format. Diff provides all options to
format the output correctly. This method formats as intended, is more
robust and works with the merge_config.h script from yocto-kernel-tools.
(From OE-Core rev: 1d9d035f07be1cef2764949d84cecbff7dd428dd)
Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If building with SDKMACHINE=i686 and using the deb backend, populate_sdk
would fail. Its clear when looking at the options that the 32 bit values
were overwritten.
Replace this code with code similar to that used in package_deb itself.
[YOCTO #6458]
(From OE-Core rev: 2a7c6f6d3e9d1eedffb79f2347400509feed5dd7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
"bitbake core-image-minimal -c populate_sdk; rm tmp -rf; bitbake core-image-minimal -c populate_sdk"
breaks due to missing dependencies on things like update-rc.d. Since
we're effecitvely building a rootfs, we need all the same depends
as do_rootfs has.
The easiest was to achieve this is to simply load them. This resolves
the failure when targeting the task from sstate.
(From OE-Core rev: cdb0bcef28493edd4cad2a882fb8ba402485a2f1)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When adding patches or config files from bbappend files, it requires
the use of FILESEXTRAPATHS, which has been an issue and failure point
for people starting to work with bitbake and oe-core.
We add checking to standardize how to use FILESEXTRAPATHS. Only the
format of:
FILESEXTRAPATHS_append := ":${THISDIR}/Your_Files_Path" or
FILESEXTRAPATHS_prepend := "${THISDIR}/Your_Files_Path:"
is acceptable.
[YOCTO #5412]
(From OE-Core rev: 69e083237e632f7d84a7b218dd12d1a5ad95a229)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We have an open bug about the warnings issues in builds from an sstate
cache when something like glib-2.0 gets rebuilt. The issue is that
sstate is "clever" and prunes unneeded dependencies out the tree.
For example is X depends on pkgconfig-native but we've already build X
and installed it from sstate, it will not get installed when you build Y
which depends on X.
This patch changes the logic to match the sstate behaviour and prune out
unnecessary dependencies from the scope of aclocal. This in turn removes
the warning about missing manifest files.
The issue is that this patch exposes holes in our DEPENDS in recipes,
specifically that some native tools are not listed, specifically, and
problematically, pkgconfig, gtk-doc and intltool-native in particular.
I've sent out patches against OE-Core that address the bulk of the
issues there however I'm conscious this is probably going to a bug issue
in other layers and may be too annoying to consider at this point. The
other alternative is simply to turn the warning into a debug statement.
I appreciate the code below has commented blocks, this is simply debug
I've left around for now. It will be cleaned from any final version.
(From OE-Core rev: 6d2dc279faa8b28a00895dc6a620d80e2dbac685)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
head -n1 can be done using sed.
(From OE-Core rev: 38d50331acbc1e279449ae6b313ff0116b6c44e8)
Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This class defines a package_name_hook implementation but as EXPORT_FUNCTIONS is
order-dependent it needs to inherit package.bbclass first to ensure that the
"base" definition in there is defined first, otherwise with a suitable inherit
order of debian and then a packaging class can result in the stub
package_name_hook being incorrectly used.
(From OE-Core rev: 3aa52f85e774bf82e8470a8fd849bd6953930720)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Many GNOME packages are using their InstalledTests pattern, where the test suite
can be trivially installed. To avoid repeating the same logic over and over,
add a class to encapsulate this.
(From OE-Core rev: 6a66fadbd7d7675c61c342f9c338edbdedf8b92c)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A while back we fixed the cross definitions to work better in multilib
configurations, apply the same fixes to cross-candian.bbclass
(From OE-Core rev: 4544b7f1d0abd1b1efd74da430f1ddedf3fdbd1d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Most people expect the toolchain from a multilib build to contain multilib
components. This change makes that happen and is easy for users to override
should they want something different.
(From OE-Core rev: 396371588c7fd2d691ca9c39cd02287e43cb665b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LINKER_HASH_STYLE differs between MIPS and non-MIPS targets. This means
that LDFLAGS differs too. LDFLAGS is exported so it influences all task
hashes. Unfortunately this means that packages with architecture "all"
differ depending on whether they are built for a MIPS or non-MIPS target.
This causes a lot of unnecessary churn in the ipk/all directory when
switching build targets.
The simplest way to fix this is to ensure that LDFLAGS stays the same for
architecture "all" packages by clearing it. It shouldn't being used by such
packages anyway.
(From OE-Core rev: 14f4d016fef9d660da1e7e91aec4a0e807de59ab)
Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In 3.16+ x86-64 kernel builds produce a vdso64.so.dbg file. If this file is
copied into the kernel source install multiple QA failures are triggered.
Specifically, this file triggers a debug package split that results in
files installed but not shipped, and invalid .debug file errors.
By ensuring that .so files are not copied, we avoid this incorrect split
with no impact on future build phases.
(From OE-Core rev: f1f6d153de9dc675b4bf4020799b2365b1b62ec7)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that we can get the task dependency tree from bitbake, we can start
to use this to strengthen our QA checks. If a dependency is added on
something which isn't in our dependency tree, that is obviously a bad
thing for example.
This patch therefore checks the RDEPENDS against the list of tasks and
ensures we do have a dependency present, if not a QA warning or error
can be issued through the usual mechanism.
The implementation is complicated by needing to resolve the RDEPENDS to
a PN using pkgdata. Its possible that can be an RPROVIDES of another
package so we need to check that too if it isn't a direct RDEPENDS.
To allow this test to work, we need to extend the do_package_qa
dependencies to include all RDEPENDS. In practise the do_package_write_*
tasks already do this so there should be no new circular dependencies or
any issues like that.
For now the issues are warnings as there are issues this finds in
OE-Core which need to be resolved and certainly will be in other layers
too. This change should simplify and assist some of Martin's dependency
scripts, the idea for this came from a discussion with Martin. It has
changed in that it doesn't just cover shlibs dependencies but checks all
dependencies.
(From OE-Core rev: f6cb24cf2255297308ef57399a6be407129d9b8f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch allows for an optional new layout for ipk feed directories which I've
called a 'hierarchical feed' and is based on how Debian pools package files. It
is disabled by default and is enabled by setting IPK_HIERARCHICAL_FEED to "1".
In the traditional feed layout, package files are placed in <outdir>/<arch>/.
This can lead to several thousand files existing in a single directory which is
often a problem if developers want to upload a package feed to a shared web
hosting provider. For example, in my case, listing files via FTP only shows the
first 2000 files, breaking my scripts which attempt to upload only new and
changed files via FTP.
In the hierarchical feed, package files are written to
<outdir>/<arch>/<pkg_prefix>/<pkg_subdir>, where pkg_prefix is the first letter
of the package file name for non-lib packages or "lib" plus the 4th letter of
the package file name for lib packages (eg, 'l' for less, 'libc' for libc6).
pkg_subdir is the root of the package file name, discarding the version and
architecture parts and the common suffixes '-dbg', '-dev', '-doc', '-staticdev',
'-locale' and '-locale-*' which are listed in meta/conf/bitbake.conf.
This change relies on recent patches to opkg-utils which support hierarchical
package feeds.
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There was an error in the previous fix for the powerpc toolchain issue, this
should correct it (and simplify the code too).
[YOCTO #6490]
(From OE-Core rev: 54ddf3fe060715534cd9e23d6e89cf6b06ed3d9f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Building in a TMPDIR which has setgid or setuid is a bad idea. We could try and reset
the permissions but since these can also invade into other directories like the cache
or sstate, lets tell the user to fix it instead.
[YOCTO #6519]
(From OE-Core rev: 8e44fc36018fda9b1f9ca8aebde3e744afc07eaa)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* new KERNEL_MODULE_AUTOLOAD syntax doesn't support modules where basename and
module name don't match (usually - and _), e.g.:
module_autoload_bq27x00_battery = "bq27x00-battery"
* sometimes it's useful to load modules in particular order and
module_autoload allowed to just list multiple modules, e.g.:
module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-s3c24xx snd_soc_s3c24xx_i2s snd-soc-dfbmcs320 snd-soc-wm8753 snd-soc-neo1973-wm8753"
or
module_autoload_g_ether = "s3c2410_udc g_ether"
restore this possibility which is useful for incorrect dependencies
between modules
(From OE-Core rev: e9cd8ba3dda624615b68c601eac04427d9483f14)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Added base variables and package backend specific variables to
rootfs[vardeps] in order for rootfs to rebuild when changes are made.
Set some variables as [func] to inform bitbake that they are shell
scripts, so that it invokes its shell dependency parsing. Without
marking them as functions, changes in the actual function body would
not trigger rootfs rebuilds.
[YOCTO #6502]
(From OE-Core rev: b8b6214b885a0757f0e628937f8fe21c92c45155)
Signed-off-by: Roxana Ciobanu <roxana.ciobanu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A series of commits had been integrated to avoid qa checking code
throwing the bitsize not matched error for x32 kernel files, the
same logic is also needed by n32 kernel which was not addressed in
that series.
This commit extends the condition for n32 kernel files.
(From OE-Core rev: 6a169be15439f12169869ecef890594796e70e58)
Signed-off-by: Ming Liu <ming.liu@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that all licenses are canonicalised to SPDX names when processing, we need
to rename the whitelists to the match.
[RP: Fixed up multilib.bbclass too]
(From OE-Core rev: 5b6cdac26e35e9a3b8b09185fc16765fa99dfe5f)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If INCOMPATIBLE_LICENSE=GPL-3.0 but the recipe sets LICENSE=GPLv3, the current
code won't trigger because they're different strings.
Fix this by attempting to canonicalise every license name to a SPDX name, so
both names in this example become GPL-3.0.
[ YOCTO #5622 ]
(From OE-Core rev: 8998e13fc95f11d15c34fb09d8451a9d4b69f2f1)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, /etc/timestamp is saved with minutes accuracy. To increase
the accuracy, modify the save-rtc.sh and bootmisc.sh scripts to save and
read /etc/timestamp respectively with seconds accuracy.
(From OE-Core rev: 8fed53e4e72230c61f23cb36eda36c228aede1e0)
Signed-off-by: Richard Tollerton <rich.tollerton@ni.com>
Signed-off-by: Ben Shelton <ben.shelton@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When extracting toolchain, if the list $executable_files has filenames
with empty space character, the list will created but relocate_sdk.sh
will not handle it well. This will lead to the below erro:
./tmp/deploy/sdk/buildtools-mytools-x86_64-nativesdk-standalone-1.6.1.0.sh
Enter target directory for SDK (default: /opt/mydistro/mytoolset/1.6.1.0):
You are about to install the SDK to "/opt/mydistro/mytoolset/1.6.1.0". Proceed[Y/n]?
Extracting SDK...done
Setting it up.../opt/mydistro/mytoolset/1.6.1.0/relocate_sdk.sh: line 2: sintaxe error `token' `('
/opt/mydistro/mytoolset/1.6.1.0/relocate_sdk.sh: line 2: `e
The same occurs with replacement of ${SDKPATH} in configs/scripts/etc files.
We should ensure that full path is protected before relocate_sdk.sh
and ${SDKPATH} replacement calls.
(From OE-Core rev: d7adf8349a65da6f0fdd0f00e606e8bc27ce3f28)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If we don't fix this, the fix for bug 6502 will trigger warnings
that the write_package_manifest function contains tabs.
Related to fix for [YOCTO #6502].
(From OE-Core rev: 6d93be5338ca301caafbcd44bfe3da08c05610ec)
Signed-off-by: Roxana Ciobanu <roxana.ciobanu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This addresses warnings like:
WARNING: QA Issue: liberation-fonts rdepends on fontconfig-utils but its not a build dependency? [build-deps]
since the dependencies were being added at package time and were not
visible to bitbake.
Also take the opportunity to convert to use PACKAGEFUNCS rather than
the horrible populate_packages_append.
(From OE-Core rev: f784e9f53f333f05b3ef570334bf2f6bc9e972c4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
QA errors/warnings would show the name of the QA failure in the error/warning message.
The format is listed:
<message> [QA check name]
You can see which QA check you need to disable if you want to disable it.
[YOCTO #6160]
(From OE-Core rev: a5ea622a8e012d3263bc36b6239ee43a4d1fb0ee)
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We're relying on the packagedata being available for this task to work
correctly so lets ensure it is with the correct dependency.
(From OE-Core rev: fa325e44f5b429b4038022b31285af9c94672943)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
do_package() calls package_name_hook so that e.g. debian-style renaming through
debian.bbclass can happen. If there is no class providing a package_name_hook
then this causes "WARNING: Function package_name_hook doesn't exist" every time
do_package() is executed.
Silence this warning by providing an empty package_name_hook in package.bbclass.
(From OE-Core rev: f6eb8e4e44b66217e4ada9f830a058c5ba120932)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Users and children of the bootimg class may need to specify at build
time the volume ID of the HDDIMG vfat partition. An example of this
may be when at runtime the partition is uniquely identified by
the volume ID.
The HDDIMG_ID is expected to be provided externally. If the variable
is not set, mkdosfs will use the default volume-id.
(From OE-Core rev: 869a5c07f0ecc21b8cfbd239e901a9a4501ef087)
Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Make KERNEL_IMAGE_MAXSIZE and IMAGE_ROOTFS_SIZE have the same algorithm:
- Use Kbytes as the unit since we use this in other codes.
- Use "du" rather than "ls" to figure out the size since we use this in
image.py.
[YOCTO #2610]
(From OE-Core rev: 7384d2831c713ac5999aca83c312154dc15cec56)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, given a list of rdepends its near impossible to figure out
which ones are potentially invalid and which might be an RPROVIDES of a
package.
This problem is simple to solve, we can write lookup data into the
pkgdata. This patch does that, accounting for the fact that multiple
packages can RPROVIDE the same thing (particularly with locales). Its
done with symlinks so the performance overhead is minimal.
(From OE-Core rev: 30b4bff944c4625696e9be97ce4912a2710d13e9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Its possible to run the package QA checks as a separate task rather than
as part of the do_package task. This offers more parallelism but the
fact that made me propose this is that ideally we'd like to access
pkgdata to help add new tests and to do that, we need to run later in
the task list. We also need to add in RDEPENDS to the task which apply
to do_package_write_* but not do_package. See the subsequent patches
for why this is desireable.
If we split into a separate task, we need to add in calls to read
the sub package data, build the cache structure used by do_package and
cover the task with sstate (which is empty and just acts as a stamp
saying it passed package QA). We also need to handle our own
dependencies.
(From OE-Core rev: d31f75a72cb2322f753d945da86d5f3287eef06b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Change the do_package shlibs code to account for RPATHS. This means that
for library dependency purposes, only libraries in system paths or in
any declared RPATH will be seen. This is important to resolve problems
people have been having where similarly named libraries in "private"
paths were conflicting, e.g. with gstreamer.
For now this code assumes the default search path is libdir and
base_libdir and places ASSUME_SHLIBS in libdir so they are searched by
default.
(From OE-Core rev: 48b9ecd5335f63fb2bcc47c4b23d067122734fe9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of having a .list file and a .ver file, place the version
information into the .list file in a ":" delimited string.
Also place the path to the library here, this can then be used to
evaluate RPATHs in the shlib dependency code.
Since the disk format has changed, the easiest way to avoid build
failures in the same TMPDIR is to change the shlibs directory to
shlibs2. sstate dependency code with ensure everything rebuilds.
(From OE-Core rev: 8dd09b3ddc572a338b4a6f1d859b68b2b4482d00)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In order to do more advanced processing of the shared libraries, we need
to know where a given library is located on disk so we can know whether
its a system path or a private directory for example.
This patch adds this information into the 'sonames' data structure.
(From OE-Core rev: 5f48d53c5ed94b5c6aad9f73ff177aa35af90397)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Improve the shlibs 'needed' data structure to include the file and
any rpath information. This allows various cleanups to the data structure
and moves us closer to being able to resolve shlibs providers issues
based on path in due course.
This commit doesn't change any stored data, just cleans up internal data
structures (for example dropping the needed_from dict).
(From OE-Core rev: d3aa7668a9f001044d0a0f1ba2de425a36056102)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To quote "Maxin B. John" <maxin.john@enea.com>:
git version 1.7.8 added the --list option to git-branch. Since we depend on this
option in git.py, the minimum requiremnt for git should be updated to Git
1.7.8+
(From OE-Core rev: a5776ae532d6af1e880ab1a712dc768c900f88db)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To avoid syntax errors when inheriting this class without setting BINCONFIG, add
a default value and a comment.
(From OE-Core rev: a7e808e9a0ff45f14235b2de3c53d89d98fde714)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When building target packages, HOST_OS and TARGET_OS are the same, as is the
VENDOR field. However, when building an SDK this is not true. The patch
corrects the oversight and switches to using the 'HOST' version and resolves
the issue of meta-mingw not working w/ the rpm packaging.
(From OE-Core rev: 0fa1eb5c1296a38b332b63d539608da7ef56c3c0)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The only reference to this function is a commented-out assignment, and nothing
in oe-core nor meta-oe uses autotools_set_crosscompiling directly. As it's
unused, remove it.
(From OE-Core rev: adaa0568390d0dfef1c4d87809601aab85299e97)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When we build a general toolchain script we should add all the OS
variants to PATH, not just the current one. This is because some can
cross reference each other and if the triplet prefixed ld can't be found
for example, you recieve strange errors.
Doing this resolves bugs exposed during SDK testing.
[YOCTO #6490]
(From OE-Core rev: 5f8bbb15c2b79a94ad547347306b59bd67dba3e8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a '\n' to the last line of the file to fix:
No newline at end of file
(From OE-Core rev: b3090263ba31702631270643c7a7d7af8f4d9234)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use a fully qualified path for the <path> parameter in calls
to update-alternatives. The chkconfig-alternatives version
requires a full path and without it, the symlink is not
properly created.
(From OE-Core rev: 78ee4d8b1782445caecce8331e68efe83fc32044)
Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove a confusing echo after the previous commit, thanks for a suggestion
from Laurentiu.
(From OE-Core rev: cd1fdd05cc7457706d1e40042854c154cbb3d9e9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A
* We don't want everyone to remove their identifying info, just if they
feel the need to
* Split lines for clarity
* A couple of grammar/spelling tweaks
(From OE-Core rev: b5c7538416e4c7a9e594edf930fa7ee844a347e6)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
GNU Patch < 2.6.1 has a race condition so we create a per-instance TMPDIR to
avoid this. This was implemented by setting os.environ[TMPDIR] but at the end
of do_patch the temporary directory is deleted but TMPDIR is not unset.
In general this doesn't cause a problem but if do_patch is embedded in a larger
function then TMPDIR is set to a directory that doesn't exist. Avoid this by
removing TMPDIR from os.environ when the directory is deleted.
(From OE-Core rev: 51ea4378864f1468df2ca282a84f78a17d6861aa)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
read -d is a bashism. Replace with a direct exec to avoid the problem
in this case. This fixes silent build failures in do_install of
tasks on systems with dash as /bin/sh.
Also merge the fix to distutils for only changing necessary files
to disutils3 as well.
(From OE-Core rev: 7d61661348cf48cbe379ae600565840ea08664b1)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Anything using gtk-doc will be using pkgconfig as well so
add in the dependency rather than doing it for each and every recipe.
(From OE-Core rev: 7ee05554c55607d9aa02f9a93762e2024bcd4bb0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The variable was only partially implemented, and the part that was there
was named incorrectly to, missing the 'TASK' piece.
(From OE-Core rev: d0cb34cfe9a51fd8bc1e6e28c8eda60a25adc1ec)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The meta-mingw layer attempts to change the SDK Suffix, but the rpm
packaging had a hard coded reference to _nativesdk.
I did a quick scan for other hard coded entries and did not fine any
more.
(From OE-Core rev: 0d3f7a753f17fa8c455f64e3df3259ef1887fd8a)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some packages put their CMakeLists.txt file in a subdirectory, so assuming that
it is in ${S} won't work.
Restore OECMAKE_SOURCEPATH (defaulting to ${S}) so that the location of
CMakeLists.txt can be set if required.
Based on a patch by Miroslav Keš <miroslav.kes@gmail.com>
(From OE-Core rev: 2c23d7ab913a636aa0ab6a6e899cf6211d1e2714)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add MLPREFIX to depends flag to ensure the correct gummiboot is
dependended upon.
(From OE-Core rev: 9ed2b77aafe5bcd57da56377e6e58dae0c1fcfaf)
Signed-off-by: Ming Liu <ming.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add MLPREFIX to depends flag to ensure the correct grub-efi is
dependended upon.
(From OE-Core rev: b62bf9e1cb8670901cfc37b1cd1822703ebdc000)
Signed-off-by: Ming Liu <ming.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add MLPREFIX to depends flag to ensure the correct syslinux is
dependended upon.
(From OE-Core rev: c8dc421ea18bb7a810501ab6d07efa9c8f6d6eb9)
Signed-off-by: Ming Liu <ming.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When the preconfigure task was added to gcc, it wasn't added to sstate's list
of possible shared work tasks. This meant that diffsigs wasn't able to find
the preconfigure sigdata/info file since it has inconsistent naming.
This adds the task name to the list. Ideally this list would be autogenerated
or not even required, right now its a sanity test that the shared work
code works as intended so is best left as is.
(From OE-Core rev: 72032f6dd6724663a3417b1d1b666d9a63fcbfdb)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It is introduced a bug, since The return of "file ld-linux-x86-64.so.*"
does not include "dynamically linked" in redhat 5.9/6.0(32 bit), and lead
to that ld-linux-x86-64.so.* is not in executable file list.
(From OE-Core rev: fc9603d7d7042efe8941172091cca8578bdde15b)
Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In the do_unpack_and_patch task of archiver, the changed 'WORKDIR' also
casued 'B' changed, create dir 'B' for the possibly requiring of the
tasks which executed in do_unpack_and_patch task.
Such as cut-ecgl's do_patch required 'B' existed:
...
| cp: target 'tmp/work/x86_64-wrs-linux/cut-ecgl/1.0-r0/archiver-work
/cut-ecgl-1.0' is not a directory
...
| ERROR: Function failed: do_patch (log file is located at tmp/work/
x86_64-wrs-linux/cut-ecgl/1.0-r0/temp/do_unpack_and_patch/
log.do_unpack_and_patch.11886)
...
The 'B' dir is implicitly created at the task executing time while the
task tag 'dirs' is not assigned. In the above cut-ecgl example, the 'B'
was created at the wrl_buildlink executing time which is the prefuncs of
task do_unpack. So the following do_patch could use 'B' correctly. But
wrl_buildlink is unnecessary and not invoked in the do_unpack_and_patch
task.
(From OE-Core rev: 8baefb49d0bf9d3dd757d9b2359e0a9f4f33dd60)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The SYSLINUX_TIMEOUT ?= "1" means 0.1 second which is too short, set to
1 second as mage-live.bbclass and boot-directdisk.bbclass does.
(From OE-Core rev: 4bbfd25345858720d14c66b84f38fee42168915f)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The current module_autoload_* and module_conf_* variables are error
both ugly and error prone. They aren't registered in the task checksums
so changes to them aren't reflected in the build. This turns out to
be near impossible to fix with the current variable format in any
sensible way :(.
This patch replace module_autoload with the list of variables in
KERNEL_MODULE_AUTOLOAD which is a much simpler and usable API. An
error is printed if an old style variable is encountered. It should
be simple to convert to this.
module_conf_* are harder to deal with since there is data associated
with it, it isn't simply a flag. We need a list of variables that are set
in order to be able to correctly handle the task checksum so we add
KERNEL_MODULE_PROBECONF for this purpose and error if the user hasn't
added a module to it when they should have.
[YOCTO #5786]
(From OE-Core rev: 6f8b5be646be0f3e15e215907547f11d2a23d81b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This adds a binconfig-disabled class which can be used by recipes where
a -config file is installed but we wish to disable it and just rely on
the .pc files instead.
Rather than simply deleting it, we make the script "exit 1" so that it
can be found in PATH and raise a build error rather than something
silently falling back to the build system for example.
Rather than randomly finding -config files, this adds in the
specification of a list of binconfig scripts which is more deterministic
and maintainable moving forward.
This patch converts various users in OE-Core to use this, a world build
of OE-Core tests out ok with this change. There will likely be issues in
other layers however, hence this being a RFT.
(From OE-Core rev: 5870bd272b0b077d0826fb900b251884c1c05061)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For most users this commit will have no effect. But if you come across the idea of giving
different names for paths, you'll get some troubles.
When a recipe inherit native, properly define bindir, sbindir, includedir, sysconfdir, datadir
(using xxxdir_native definitions from meta/conf/bitbake.conf).
For example, edit "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/quilt-native/temp/log.do_configure"
and see what are the arguments given by oe_runconf.
Notice that ${docdir}, ${mandir}, ${infodir}, ${localstatedir} have no associated _native definition.
(From OE-Core rev: 15345ddd4be6a0b041b3d6caaad48d46b22142e9)
Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The QEMU_OPTIONS variables belong in qemu.bbclass so move them there. The
only users of them inherit qemu.bbclass. There is no point in pushing
these into every recipe.
(From OE-Core rev: 5824293de37919e89f60192836997281933e23d6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This class summarizes sstate reuse at the end of the build, so you know how
much of your build was done from scratch.
(From OE-Core rev: 0069c06cc9c929de7e7d29b0381fcb36049a4401)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To unpack that to more than a single line: -native and -cross recipes are made
to use the dummy Texinfo utilities provided by texinfo-dummy-native if they
invoke those utilities at build time. The target-architecture (cross-compiled)
recipes still use the genuine Texinfo utilites. Right now, they still use
the host system's Texinfo utilities, but could be made to use the
texinfo-native recipe we already ship with some config file changes.
(From OE-Core rev: 160087f754eabf5da90fb51997e19d2e585aac4a)
Signed-off-by: Max Eliaser <max.eliaser@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* until now all recipes were respecting VIRTUAL-RUNTIME_initscripts
variable but commit bba835fed88c3bd5bb5bd58962034aef57c408d8
hardcoded "initscripts" runtime dependency
(From OE-Core rev: 8b4256758ba55dcabe80dd1bf3884cdf1cc39909)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These dependcies are needed to ensure that thier packages are created
correctly since these classes have runtime dependiences in their packages
but they are not actually created yet at rootfs time.
[YOCTO #6072]
(From OE-Core rev: bba835fed88c3bd5bb5bd58962034aef57c408d8)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the first command returns an error, it will not cause the image generation
step to fail. Simply split up the statement into multiple lines to avoid
this issue, they no longer need to be one line expressions.
[YOCTO #6391]
(From OE-Core rev: f8125a1e9b6893a12355d55d4df584a8d97f0bff)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If libsdl-native is in ASSUME_PROVIDED, check for it in the sanity tests.
This warns the user if they've said its being provided but it isn't and
prevents silent build issues.
(From OE-Core rev: d9d7b0515fcf47c4cf7533a12915ea92298ce834)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch fixes an issue where the toaster postfuncs were
added to the task signature, making impossible the reuse
of sstate caches from builds outside toaster control.
Now the signatures do not differ between toaster and toaster-less
builds.
(From OE-Core rev: 552c5daceb9f51d2b7331a12dfa033f1ca3d7468)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
it does not grok glibc ldconfig format
(From OE-Core rev: 9c85aef3ce25f6eb1d370a1a94e3fe16d59ec627)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
musl is not multilib and this creates trouble. eg. when
util-linux probes for ncurses it does not find it because
ncurses has installed the multilibbed header and this
header includes bits/wordsize.h and this header does not
exist on musl systems. If and when musl adds multilib
support we will revisit it.
(From OE-Core rev: dad1c2746326912db41a3ff180679cdfe0e844f9)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We will use '-musl' to identify musl based systems
this patch lays the foundation for recognising those
and map them to internal variable representations
(From OE-Core rev: 9cd77aed67373e33dc69158ab02b94d7045c1119)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Being able to interact with the python context in the Bitbake task execution
environment has long been desireable. This patch introduces such a
mechanism. Executing "bitbake X -c devpyshell" will open a terminal connected
to a python interactive interpretor in the task context so for example you can
run commands like "d.getVar('WORKDIR')"
This version now includes readline support for command history and various other
bug fixes such as exiting cleanly compared to previous versions.
(From OE-Core rev: 36734f34fe6e4b91e293234687e63c02f5b3117e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Search whole list of REQUIRED_DISTRO_FEATURES.
Print only the missing/conflicting feature on error.
(From OE-Core rev: 4290e10c17aa5477bbd57023c35426c12fcc25cb)
Signed-off-by: Sebastian Wiegand <sebastian.wiegand@gersys.de>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Perl modules fail to fetch because default CPAN site has been flaky lately.
* Create option to use metacpan.org as a mirror.
(From OE-Core rev: ffca381d9ad5de3e593c93274cfdb3d2ff4a447f)
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To fix check of REQUIRED_DISTRO_FEATURES fix indentation in python code.
[YOCTO #6349]
Reported and written by: Sebastian Wiegand <sebastian.wiegand@gersys.de>
(From OE-Core rev: 986db87a3931edce8be79f309d07497e4179a810)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With the renaming of the cross packages, its no longer possible to use
endswith("-cross") and similar to detect cross packages. Replace these
references with other techniques.
This resolves certain build from sstate failures which were due to the
system believing cross packages were target packages and therefore
dependency handling was altered.
(From OE-Core rev: 91edf4cac223298e50a4b8e59dd19f1b272e3418)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When building multilib, we also have to add the multlib prefix otherwise
we get a WARNING:
WARNING: Multilib QA Issue: lib32-dbus package lib32-dbus - suspicious values 'initscripts-functions' in RDEPENDS
[YOCTO #6164]
(From OE-Core rev: 2e14dbb7f85532220f9aec293ddd4143fae8407b)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When there is a '..' in the rootdir path, rootdir will not be a substring of
fpath. This causes an incorrect rpath of the difference between the workdir
and the sysroot to be computed, which is incorrect. Normalizing basedir
fixes this issue.
(From OE-Core rev: 753cfcadd8cc683e69b6707b823dc49dfb34ab0b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* The SRC_URI is not accessible.
So need to add mirror site referred by the original site.
* The problem is that
http://download.savannah.gnu.org/releases redirects to closest mirror
and few mirrors (e.g. .jp) weren't working correctly while
http://download-mirror.savannah.gnu.org/releases/ seems to be reliable.
* Add SAVANNAH_GNU_MIRROR and SAVANNAH_NONGNU_MIRROR variable in bitbake.conf.
* Change the SRC_URI using the new variable.
(From OE-Core rev: af00b6544f60e4d7581f9d9767f9d3f574392359)
Signed-off-by: Changhyeok Bae <changhyeok.bae@lge.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some classes of recipe disable ptest even though its in DISTRO_FEATURES
(e.g. nativesdk). We shouldn't attempt to build ptest packages when
its disabled. This replaces some DISTRO_FEATURE checks with PTEST_ENABLED
checks instead.
(From OE-Core rev: 8b14fcc62f31bbbb231790136cdb984db96d9ba9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently sed command touches every single *.py file. This modifies the
timestamp of the file. All *.pyo files will be recompiled during the first
boot, because timestamp will not match. This should be only necessary if
sed command changes the file.
(From OE-Core rev: 2d01c5a4989dcf03a202c27730a2a8f334e0c37a)
Signed-off-by: Radek Dostal <radek.dostal@streamunlimited.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that gcc-cross, gcc-crosssdk and others have expanded variables in
their names, the code that previous just applied to cross-canadian needs
expanding to cover the other cases. Improve the conditional and also
fix a bug where the multilib prefix wasn't being added into the generated
versions.
(From OE-Core rev: d2b18d7692229d4b87b38becf173b1f8b6e90025)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We allow inheriting recipes to control the kconfig mode used by merge_config.sh
via the KCONFIG_MODE variable. An error crept into the variable reference, and
since it is not quoted, the true condition always runs.
The result is that operations without an explicit kconfig mode cannot trigger
allnoconfig for defconfig builds, which can result in some options being
dropped from the final .config.
Quoting the reference allows it to evaluate properly.
(From OE-Core rev: aad19e4381a8a09c354e5899885997c5b4cd115b)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The class itself currently does nothing. The idea is to mark all recipes that
make use of the texinfo utilities. In the future, this class could be used to
suppress the generation/formatting of documentation for performance,
explicitly track dependencies on these utilities, and eliminate Yocto's
current dependency on the host system's texinfo utilities.
(From OE-Core rev: e6fb2f9afe2ba6b676c46d1eb297ca9cc532d405)
Signed-off-by: Max Eliaser <max.eliaser@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The PKG_CONFIG definitions should now more closely match those from native.bbclass.
We can't use ${libdir} here since it contains the target arch prefix.
(From OE-Core rev: aebb71afe54b266de39ec7e1caf84e6426aaafba)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Unfortunately expandKeys() notices overlap between the SDK and TARGET
PREFERRED_PROVIDERS entries when we set things up for the SDK recipes.
To avoid this, delete one of the sets of keys to avoid supurious warnings.
(From OE-Core rev: 9068a65baf4a28d04efad9297b16a2883ac42689)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If we couldn't start the target, it doesn't make sense to try and stop
it here since logically it shouldn't now be in any kind of "started"
state. (It's the start function's job to clean up after itself if it
fails - to that end, fix up the QemuTarget class so that it does.)
(From OE-Core rev: 819ebddae6b78120e5e082423793ff988419b5c4)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add in the TARGET_ARCH and SDK_ARCH suffixes from the gcc-cross changes.
The -intermediate toolchain parts were canned a while ago so drop them.
(From OE-Core rev: 8a733097bddcf0868fb5f8ca08ea59b2cbc4a3a9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows them to co-exist together in the native sysroot, with one
set of cross tools per target architecture.
(From OE-Core rev: a2c5509520d5c3e082f55844e6545d0309565f8f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This has been replaced by the class-cross override.
(From OE-Core rev: 7d6050c57f195589c8429397432c78f68298b672)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently it wasn't working because *COMMAND variables were removed
from fetcher.
Now checkpkg sets the command internally and sends it as a parameter
to _runwget() function from wget fetch.
(From OE-Core rev: b9a51fc1901c378375cca041da27ddbd450c0412)
Signed-off-by: Irina Patru <irina.patru@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Cross packages are not packaged so we can drop all the packaging tasks
for some small performance improvements.
(From OE-Core rev: be07344397b383ab5e56048acb64eb56272fe95e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
/usr/src/kernel/source deployed by kernel-dev package is symbolically
linking to a build-time kernel source folder, which make no sense when
cross-compiling.
Fixed by not populating it at install stage.
(From OE-Core rev: edb85a9589be54a1e9c980aa669a380222a76cf4)
Signed-off-by: Ming Liu <ming.liu@windriver.com>
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The base_contains is kept as a compatibility method and we ought to
not use it in OE-Core so we can remove it from base metadata in
future.
(From OE-Core rev: d83b16dbf0862be387f84228710cb165c6d2b03b)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
BitBake has the exact same code as oe.utils.contains so there's no
reason to duplicate it. We now rely on the bb.utils.contains code for
metadata.
(From OE-Core rev: 93499ebc46547f5bf6dcecd5a786ead9f726de28)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In a number of places it would be helpful to be able to copy trees of
files using hardlinks. This turns out to be harder than you'd expect
since there is no good single command that does this well and handles
all file types correctly.
Abstracting this into a function therefore makes sense, cpio seems
as good an option as any other.
(From OE-Core rev: 14ef03182e1e5fe7cf6b4112f29e6609631aa78d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
TARGET_LDFLAGS is currently defined in bitbake.conf to contain
${TARGET_LINK_HASH_STYLE} which differs between MIPS and other
targets. Since TARGET_LDFLAGS is an exported variable it affects the hash
of every shell task even if it is not used.
We don't want native recipe tasks to have different hashes purely because
they happen to have been built in order to satisfy dependencies for
different MACHINEs since this causes lots of churn in the native sysroot
when switching between MACHINEs.
Making native.bbclass override TARGET_LDFLAGS to use BUILD_LDFLAGS ensures
consistent hashes and is a sensible thing to be doing anyway.
Although they don't appear to have the same detrimental affect on task
hashes TARGET_CPPFLAGS, TARGET_CFLAGS and TARGET_CXXFLAGS should be
overridden too.
(From OE-Core rev: 05a70ac30b37cab0952f1b9df501993a9dec70da)
Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In order to attempt recovery of a failed populate_sysroot_setscene,
we need to explicitly error exit an SSTATEPOSTINSTFUNC. So, we test
the return value of gdk-pixbuf-query-loaders.
(From OE-Core rev: 17bdb2538e6b723e11afb1079c71363603dba63d)
Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Running 'bitbake -e' without further arguments causes a stack trace on stderr:
| ERROR: Command execution failed: Traceback (most recent call last):
| File "[...]/bitbake/lib/bb/command.py", line 99, in runAsyncCommand
| commandmethod(self.cmds_async, self, options)
| File "[...]/bitbake/lib/bb/command.py", line 405, in showEnvironment
| command.cooker.showEnvironment(bfile)
| File "[...]/bitbake/lib/bb/cooker.py", line 453, in showEnvironment
| logger.plain("\npython %s () {\n%s}\n", e, data.getVar(e, envdata, 1))
| File "[...]/bitbake/lib/bb/data.py", line 89, in getVar
| return d.getVar(var, exp)
| File "[...]/bitbake/lib/bb/data_smart.py", line 522, in getVar
| return self.getVarFlag(var, "_content", expand, noweakdefault)
| File "[...]/bitbake/lib/bb/data_smart.py", line 612, in getVarFlag
| value = self.expand(value, cachename)
| File "[...]/bitbake/lib/bb/data_smart.py", line 350, in expand
| return self.expandWithRefs(s, varname).value
| File "[...]/bitbake/lib/bb/data_smart.py", line 340, in expandWithRefs
| raise ExpansionError(varname, s, exc)
| ExpansionError: Failure expanding variable can_delete_FILESPATH, expression was def can_delete_FILESPATH(cfgdata, d):
| expected = cfgdata.get("FILESPATH")
| #expected = "${@':'.join([os.path.normpath(os.path.join(fp, p, o)) for fp in d.getVar('FILESPATHBASE', True).split(':') for p in d.getVar('FILESPATHPKG', True).split(':') for o in (d.getVar('OVERRIDES', True) + ':').split(':') if os.path.exists(os.path.join(fp, p, o))])}:${FILESDIR}"
| expectedpaths = d.expand(expected)
| unexpanded = d.getVar("FILESPATH", 0)
| filespath = d.getVar("FILESPATH", True).split(":")
| filespath = [os.path.normpath(f) for f in filespath if os.path.exists(f)]
| for fp in filespath:
| if not fp in expectedpaths:
| # __note("Path %s in FILESPATH not in the expected paths %s" %
| # (fp, expectedpaths), d)
| return False
| return expected != unexpanded
| which triggered exception AttributeError: 'NoneType' object has no attribute 'split'
Removing the commented second line in can_delete_FILESPATH() hides the error.
(From OE-Core rev: a84c36e0e5e8332ddc5a6c34e1f598d5cb87cee2)
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* parsing ICE_PATH="${@icc_path(bb, d)}" causes "ice" directories
to be created in every sysroot, that could be a bit confusing for
people who inherit icecc.bbclass, but disabled it
* shorten ICECC_VERSION="${@icc_version(bb, d)}" path a bit
by returning sooner when disabled
* remove ICECC_PATH and ICECC_ENV_EXEC from signatures, we assume that
using icecc doesn't influence the output, so it shouldn't matter when
user supplies own version of icecc or env script
* always compare ICECC_DISABLED with "1", boolean typed_value isn't used
because documentation already mentions using empty value to keep icecc
enabled and that's not valid boolean value when oe.data.typed_value is
used:
ERROR: ICECC_DISABLED: Invalid boolean value ''
(From OE-Core rev: c3e8bfe30685e2357a6eb3ba8f4a014c7dc9f58e)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Toaster may look up inexistent file paths in the build history
for packages that have been referenced but not built.
This triggers a failure, and this patch recovers by deleting
the reference to the non-built packages.
[YOCTO #6063]
(From OE-Core rev: 6bc4a0311cc3cd3f696d9dbca8fc0ef4e3bc340b)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We recently added multiple provider warnings. These could get issued
from -cross recipes due to the way these currently overlap in the
native sysroot. Filter out these warnings for now, until such times
as we improve the cross recipes so they don't have an overlapping
namespace.
(From OE-Core rev: d62f8d428831cc62b395f4c764c1e876353ddede)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The sed expression was also replacing documentation text containing
PermitRootLogin in the line so "PermitRootLogin yes" was specified
twice.
(From OE-Core rev: 0572196158d9505a624bdee71760978f284728b0)
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changes to CONFFILES should change the sstate checksum. To make that happen,
it needs to be listed in the list of package specific variables, therefore
add it.
(From OE-Core rev: 9db71fa03b9d5f5307b2d09e7aa89f46f622aa09)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Relaced the key with the join between path and file name.
[YOCTO #6090]
(From OE-Core rev: 85ffc93becb31772107a5a63b09fd3c16160f3ca)
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, it would sleep 1 second when fail to add the user, this maybe
not enough when we use the sstate cache, as my test shows below, nearly
all the useradd actions are doing in the same minute when mirror from
ssate cache, and it would fail when the load is high, I got these time
by adding strace before the useradd for debugging:
2014-03-31 14:48:22.978079781 +0800 /tmp/log/pulseaudio.4.c
2014-03-31 14:48:22.028079813 +0800 /tmp/log/pulseaudio.1.c
2014-03-31 14:48:21.949079816 +0800 /tmp/log/pulseaudio.3.c
2014-03-31 14:48:20.903079852 +0800 /tmp/log/pulseaudio.2.c
2014-03-31 14:48:20.006079883 +0800 /tmp/log/nfs-utils.9.c
2014-03-31 14:48:18.876079923 +0800 /tmp/log/xuser-account.9.c
2014-03-31 14:48:18.824079924 +0800 /tmp/log/pulseaudio.0.c
2014-03-31 14:48:17.826079959 +0800 /tmp/log/xuser-account.8.c
2014-03-31 14:48:17.766079961 +0800 /tmp/log/nfs-utils.8.c
2014-03-31 14:48:16.794079995 +0800 /tmp/log/xuser-account.7.c
2014-03-31 14:48:16.735079997 +0800 /tmp/log/nfs-utils.7.c
2014-03-31 14:48:14.719080066 +0800 /tmp/log/xuser-account.5.c
2014-03-31 14:48:14.677080068 +0800 /tmp/log/nfs-utils.5.c
2014-03-31 14:48:12.621080139 +0800 /tmp/log/nfs-utils.3.c
2014-03-31 14:48:11.589080175 +0800 /tmp/log/nfs-utils.2.c
2014-03-31 14:48:10.242080221 +0800 /tmp/log/builder.0.c
2014-03-31 14:48:09.523080246 +0800 /tmp/log/nfs-utils.0.c
2014-03-31 14:48:09.488080248 +0800 /tmp/log/openssh.0.c
2014-03-31 14:48:09.485080248 +0800 /tmp/log/rpcbind.1.c
2014-03-31 14:48:07.590080313 +0800 /tmp/log/rpcbind.0.c
2014-03-31 14:28:15.437121590 +0800 /tmp/log/avahi.0.c
2014-03-31 14:18:19.067142238 +0800 /tmp/log/dbus.0.c
The nfs-utils and xuser-account are failed to add the user.
The useradd command needs two locks, passwd.lock and group.lock, it may
get one, but can't get another one if we look into these .c files, sleep
1 second is not enough, it needs more seconds, the reason is that, if
succeed, it doesn't have any side effects, if failed, we need wait for
more seconds rather than make it more crowding.
I've tried to use "sleep 5", but it didn't make much better since they
would sleep and wake up nearly at the same time, I also tried to use
"sleep <RANDOM seconds between 1 and 10>", that didn't make much better
,either.
I think that a better ways is sleep more and more seconds (up to 10
seconds) when failed, this can't fix the problem that they may do the
actions at the same time, but the logic is: if it is not crowding, sleep
less time should be OK, otherwise sleep more and more time.
Here is the testing result which seems much better:
2014-04-03 14:09:56.605185284 +0800 dbus.0.c
2014-04-03 14:09:39.899185862 +0800 rpcbind.5.c
2014-04-03 14:09:38.400185914 +0800 distcc.4.c
2014-04-03 14:09:35.206186025 +0800 pulseaudio.1.c
2014-04-03 14:09:33.979186067 +0800 rpcbind.4.c
2014-04-03 14:09:33.364186089 +0800 pulseaudio.0.c
2014-04-03 14:09:33.360186089 +0800 distcc.3.c
2014-04-03 14:09:30.996186171 +0800 avahi-ui.0.c
2014-04-03 14:09:30.298186195 +0800 distcc.2.c
2014-04-03 14:09:29.905186208 +0800 rpcbind.3.c
2014-04-03 14:09:29.410186226 +0800 avahi-ui.2.c
2014-04-03 14:09:28.239186266 +0800 distcc.1.c
2014-04-03 14:09:27.298186299 +0800 xuser-account.0.c
2014-04-03 14:09:27.032186308 +0800 distcc.0.c
2014-04-03 14:09:26.836186315 +0800 rpcbind.2.c
2014-04-03 14:09:25.846186349 +0800 nfs-utils.1.c
2014-04-03 14:09:25.752186352 +0800 avahi-ui.1.c
2014-04-03 14:09:24.779186386 +0800 builder.0.c
2014-04-03 14:09:24.746186387 +0800 rpcbind.1.c
2014-04-03 14:09:23.916186416 +0800 openssh.1.c
2014-04-03 14:09:23.848186418 +0800 nfs-utils.0.c
2014-04-03 14:09:23.594186427 +0800 rpcbind.0.c
2014-04-03 14:09:22.609186461 +0800 ppp-dialin.0.c
2014-04-03 14:09:21.817186488 +0800 openssh.0.c
[YOCTO #6085]
(From OE-Core rev: 9cedc786ba132935748bdca8bc33b56c366b531e)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some time ago, the sstate name field was dropped. This code wouldn't have
worked since then. Makes me wonder if we really need it.
Anyhow, my last patch properly breaks it. This fixes the naming so
it works as designed again.
(From OE-Core rev: d282b276aa5e58d306be1c8ef9a985f2267a612b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A while ago we stopped supporting sstate names which were different from the
taskname. This patch finishes cleaning up some code remnants from that
which were causing data duplication and confusion.
(From OE-Core rev: 5a19863e389d28d8db4a86e409c1daa3c6b46eff)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Looking at the code, its clear 'task' is meant not to have the do_ prefix,
however its also clear it can be left in through some code paths.
One result of this can be files not being cleaned from the sysroot correctly.
Fix this.
(From OE-Core rev: 3c912102fd9ea6b360f1af209da21e8f27b845c0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the user changes the DEPLOY_DIR variable to set up a custom deploy
directory for images, packages, SDKs as explained in the documentation,
the variable SDK_DEPLOY does not take it into account and fallback to
TMPDIR as default. Therefore, SDKs were not found in the correct
location.
(From OE-Core rev: 0f043e9a3fdc4b489b55e0605fee01927854205a)
Signed-off-by: David Vincent <freesilicon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There's no point in failing if DISPLAY isn't set if we don't
boot a qemu image when using a controller like SimpleRemoteTarget
or GummibootTarget.
(From OE-Core rev: 9fcd3af8626e1b0979b0cde745fe0880ccc50de7)
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Pass GDK_PIXBUF_FATAL_LOADER to the sstate postinst and intercept so that any
problems are flagged as errors instead of being silently ignored.
(From OE-Core rev: 0a97b1571821848af11d8651c7145ed9592f9e31)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I'm sick of seeing people adding to EXPORT_FUNCTIONS in these classes
when they clearly have no idea what it does.
Worse, these uses of it are all broken, the naming is incorrect and
they do nothing. Lets remove them and try and preserve any remaining
part of my sanity.
(From OE-Core rev: 05a2fb19f722652c5d13be911b8ed45a264bbb40)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This function disables the reverse DNS lookup on QEMU targets to reduce the
delay when using static IP address. By disabling DNS lookup we can save a great
deal of time during automated testing on the autobuilder (on the order of ~400
seconds per ssh tranaction). This is seen when using the testimage, there is a
delay getting logged-in from the server to target.
It's enabled for all qemu imgaes by default and can be overridden by setting
the SSH_DISABLE_DNS_LOOKUP variable.
[YOCTO #5954]
(From OE-Core rev: c93eeecb15c4acac9226a3394c93d7e99a809d6b)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If you try to set SDKMACHINE in a distro configuration file, it won't
take effect because by the time that is parsed the line in bitbake.conf
which includes the appropriate conf file for SDKMACHINE has already been
parsed. Check that SDK_ARCH has changed from its default value and show
an error if it hasn't in order to catch this misconfiguration.
Fixes [YOCTO #5861].
(From OE-Core rev: 25ba4042ae782016aaf1cb5d3dac09b2a1030a1e)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is a patch to update the missed sstate event with
info about the sstate files locations that were found.
It's needed as to display the found file in the toaster ui.
Also fixes a bug where a setscene task may have appeared in the
missed list even if it was found in a sstate mirror.
(From OE-Core rev: ad66cd521d3e661dd57c5aa02c204585101984f3)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add additional parameter 'SYSLINUX_KERNEL_ARGS' in order to allow
for specific kernel parameters to be set when using syslinux.
The extra kernel parameters are added to btype[1] and then written out
as part of the APPEND field.
(From OE-Core rev: d78c4d51ed266c14b0425f6abf553392c6ebe408)
Signed-off-by: Konrad Scherer <Konrad.Scherer@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The package_write task was previously removed. Remove a remaining superfluous
reference to it.
(From OE-Core rev: 76bbf9e8f07f3e6f20c890dd4c82c72641e2ca88)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now populate_sdk_base has the appropriate flags, we can drop these from the individual
classes.
(From OE-Core rev: 388bfe2dc168d31ba3c5c85684f3c96d2ae13800)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
nativesdk packages were created only for the first backend listed in
PACKAGE_CLASSES. Hence, if one had it set to "package_rpm package_ipk"
and did a 'bitbake -c populate_sdk core-image-something', the nativesdk
packages were created only for rpm.
This is particularily bad for adt-installer which is based on opkg
repos.
Credits go to richard.purdie@linuxfoundation.org who suggested me this
fix.
[YOCTO #5900]
(From OE-Core rev: 85c3238ee713bc27e99a2e393e3bf8438ed4d91f)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Replace 'rootfs' with '/dev/root' in read_only_rootfs_hook function
to match the latest change in fstab file from the base-files recipe.
The related commit is as follows.
commit e8bc7a136a
base-files: use /dev/root in /etc/fstab for systemd support
(From OE-Core rev: 31b5aeb5a0b82842e1dd8545bf5d43778d8c218b)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There were two ConfigParsed event handlers in base.bbclass, this merges
them together for small efficiency wins.
(From OE-Core rev: ff919ed132b543f70e9635be7a31f799aafcf8d6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bitbake will now trigger sanity events when it needs the checks to run in all cases
so we can drop the ConfigParsed hook. We now control whether events are generated
or errors are raised from the event itself.
(From OE-Core rev: 97108a5647f9278280c923ef69d2b0b945a26eef)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Its possible for classes listed in INHERIT directives to use things like
the oe.utils functions. If that happens the user sees a traceback since
the modules don't become available until the ConfigParsed event.
This change to use immediate expansion means that the oe modules become available
much sooner and can be used in the core classes, including within base.bbclass.
(From OE-Core rev: a9ecad713f37f2703e99c6b856207abeb6c5ad1f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The Linux kernel requires that initrd images contain a /init file for
the image to be used as an initrd, even if it is empty. Adding it into
the rootfs directory creates a race, that can upset tar when building
both a .tar and .cpio image file ("tar: .: file changed as we read it").
Additionally, whether or not the tar file will contain the /init file is
also up to the race condition.
To avoid this problem, move the /init addition out from the rootfs
directory, and thus only include it in the .cpio image.
(From OE-Core rev: 706055503f493a5af73240c0983c46dbe31d8fe9)
Signed-off-by: Jonas Eriksson <jonas.eriksson@enea.com>
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
Cc: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We add the PN to the buildstats event data in order to
proper select database task when multiple similar tasks
are executed for the same recipe file.
(From OE-Core rev: 43d717df16312a8f0333aff6b8b037b4b9d51bf3)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If we don't fix this, the recently added dependency from
do_populate_sysroot on functions in SYSROOT_PREPROCESS_FUNCS in
staging.bbclass triggers warnings that the get_binconfig_mangle
function contains tabs for all recipes that inherit binconfig.
Related to fix for [YOCTO #5852].
(From OE-Core rev: a30a204270ee5b91d9c0904d3c3dda34bdb9ce1c)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without this dependency, changes to functions added to
SYSROOT_PREPROCESS_FUNCS do not change do_populate_sysroot's signature
and thus don't cause it to re-execute.
Fixes [YOCTO #5852].
(From OE-Core rev: 9950a88906bd701d0892b3ed222717ff78a93921)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To avoid any further inconsistencies between buildstats and buildinfohelper
from toaster, buildstats will measure task duration using the time field
from within the TaskBase events: TaskStarted and TaskSucceeded/TaskFailed.
(From OE-Core rev: 406acd647a288694c2f776a9faa1f5607f3e8e7a)
Signed-off-by: Marius Avram <marius.avram@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch saves out provider information into the sysroot for all providers
except those in MULTI_PROVIDER_WHITELIST. This means that we will start seeing
warnings when two providers for the same thing are installed into the sysroot.
In the future those warnings can be turned into errors.
Partially addresses [YOCTO #4102]
(From OE-Core rev: 9e696b9d32e33ba37dc09ff312328e540fc25de2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Emit patch series files for original src so that the user knows how to
apply the patch orderly.
[YOCTO #5113]
(From OE-Core rev: 053631bc3cf7c7c2d090decaa3b5e5690963e64a)
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Filter the license (default: no), the recipe whose license in
COPYLEFT_LICENSE_INCLUDE will be included, and in
COPYLEFT_LICENSE_EXCLUDE will be excluded.
* The user can set the recipe type that would be archived (native,
target, and so on), deafult to all.
The copyleft_filter.bbclass is come from copyleft_compliance.bbclass,
which is used by both copyleft_compliance.bbclass and archiver.bbclass.
[YOCTO #5740]
(From OE-Core rev: 0e798d5cbcf585535e19633828dc540a282261fc)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since we now run depmod when building images (as the postinst that does
this is now on kernel-base instead of kernel-image) it is possible to
have module file differences between the two halves of the multilib image,
and the code that checks for such differences detects this and fails.
Whitelist this file to avoid the failure.
Specifically, modules.alias, modules.dep and modules.symbol can differ
along with their .bin counterparts.
Related to fix for [YOCTO #5392].
(From OE-Core rev: 0a315804bf991664c0948e3024b8e8b9e9085808)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since kernel-base is the package that contains the files that depmod
needs to run, we should be running depmod from the kernel-base
postinstall rather than kernel-image.
Fixes [YOCTO #5392].
(From OE-Core rev: f7d2cb383281ec8dfa90950ba04d87dd29ffc676)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If you want passwordless logins to work with pam enabled, then you can't
have "nullok_secure" enabled on pam_unix entries. Add some
postprocessing to change these to "nullok" when debug-tweaks is in
IMAGE_FEATURES, in order to make passwordless logins with PAM work
again.
Fixes [YOCTO #5973].
(From OE-Core rev: a973fe10305c7d080d5c017ddd9b2bd860221659)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Move the code which is only used by copyleft_compliance.bbclass from
archiver.bbclassc, and remove the "inherit archiver" from
copyleft_compliance.bbclass.
The archiver.bbclass is used for archiving various types of sources, but
the copyleft_compliance.bbclass is used for analysing the license, they
don't have much relationships.
[YOCTO #4986]
[YOCTO #5113]
(From OE-Core rev: 578830fe2ff279ea620916ea711b80dc1b29a275)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The archiver.bbclass will put the sources to ARCHIVER_OUTDIR according
to configuration, then the rpmbuild -bs will create the srpm.
[YOCTO #4986]
[YOCTO #5113]
(From OE-Core rev: f9ba047afb8780c8bd7cb1ba45470d30abf92e92)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The archiver didn't work, and there were a few problems, for example:
1) There was no src_dir.org (or orig), but the diff command still use it
2) There were a few duplicated code
3) It didn't archive the source for the native or gcc
4) The work flow is not very well
5) The "subprocess.call('fakeroot cp xxxx'" should be removed
6) And others ...
So that we have to refactor it, the benefits are:
1) Fix the problems and make it work well.
2) Reduce more than 300 lines
3) Make it easy to use.
Hre are the explanation about the bbclass:
This bbclass is used for creating archive for:
1) original (or unpacked) source: ARCHIVER_MODE[src] = "original"
2) patched source: ARCHIVER_MODE[src] = "patched" (default)
3) configured source: ARCHIVER_MODE[src] = "configured"
4) The patches between do_unpack and do_patch:
ARCHIVER_MODE[diff] = "1"
And you can set the one that you'd like to exclude from the diff:
ARCHIVER_MODE[diff-exclude] ?= ".pc autom4te.cache patches"
5) The environment data, similar to 'bitbake -e recipe':
ARCHIVER_MODE[dumpdata] = "1"
6) The recipe (.bb and .inc): ARCHIVER_MODE[recipe] = "1"
All of the above can be packed into a .src.rpm package: (when PACKAGES
!= "")
ARCHIVER_MODE[srpm] = "1"
[YOCTO #4986]
[YOCTO #5113]
(From OE-Core rev: e5b20199ddddfa2146dc112c0a81f3fd292258e5)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Nearly all of the codes in the following 3 files are the same, we can
move the code to archiver.bbclass and remove them:
archive-configured-source.bbclass
archive-original-source.bbclass
archive-patched-source.bbclass
[YOCTO #5113]
(From OE-Core rev: d2d3428a0fc746e56c0a0046bd12a393dedb4dda)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
to define UBOOT_ARCH, we map kernel architectures to U-Boot architectures.
In the case of arm64 kernel, we should map to arm U-boot architecture.
This patch add the exception rule to the map_uboot_arch function.
(From OE-Core rev: 0b891265716c414ade29d587fc1a3c4ea7beadbe)
Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Toaster needs to record the attempts to restore
setscene tasks that don't have a sstate file.
We build a list of tasks for which we can't find an
sstate file, and if we're running under Toaster data
collection, we send it off with a MetadataEvent.
(From OE-Core rev: 109ae6c5c981610ab0d63d2c83dcd50b2e93276b)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The license.manifest file is located in DEPLOY_DIR_IMAGE/licenses/
IMAGE_NAME dir. The data needed is collected after rootfs task.
[YOCTO #5649]
(From OE-Core rev: ff52c5ba15433f2b1e9723bf845e39da918ad59b)
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The image not correctly created if 'ptest-pkgs' is in IMAGE_FEATURES,
this is because there is no free inode left. We can use 4096 instead of
8192 bytes-per-inode to fix the problem, and most of the distributions
us 4096, such as Ubuntu, Suse, Fedora and CentOS.
There are another problems:
* There are error message when there is no free inode left if we run the
mke2fs command manually, but they are not in log.do_rootfs.
* The image generation doesn't stop when error happens because mke2fs
doesn't return failed for this case.
Will fix them in other threads.
[YOCTO #5957]
(From OE-Core rev: 09ab3a00598d06e3a1bf871811c2ac37359c74da)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The old functions were calling the list_installed_packages() wrapper
function that only listed the packages in an image rootfs. Even for
target/host SDK. Also, a python crash was possible if 'bitbake -c
populate_sdk core-image-*' was called without calling 'bitbake
core-image-*' first. That's because the wrapper was always looking into
the image rootfs...
This commit fixes the problem and calls the right wrapper for image/sdk.
(From OE-Core rev: c1b1a6eb448aa1548e2ec669a9304b5a25bd8ba5)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The old wrapper got renamed to image_list_installed_packages().
(From OE-Core rev: 118a2a44bbe5ed2e9bbd0012970686be454e5d4c)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In an image recipe, you can get a warning, for example:
WARNING: The postinstall intercept hook 'update_font_cache' failed (exit code: 1)! See log for details!
WARNING: The postinstalls for the following packages will be postponed for first boot: ttf-dejavu-sans-mono
(because /usr/bin/fc-cache is missing)
In OE-core, rdepend is correctly done in each recipe:
- ttf-fonts/liberation-fonts
- ttf-fonts/ttf-bitstream-vera
In meta-OE, rdepend is not done but packagegroup-fonts-truetype.bb includes fontconfig-utils:
- ttf-fonts/ttf-arphic-uming
- ttf-fonts/ttf-dejavu
- ttf-fonts/ttf-droid
- ttf-fonts/ttf-gentium
- ttf-fonts/ttf-hunkyfonts
- ttf-fonts/ttf-inconsolata
- ttf-fonts/ttf-liberation
- ttf-fonts/ttf-mplus
- ttf-fonts/ttf-sazanami
- ttf-fonts/ttf-ubuntu-font-family
- ttf-fonts/ttf-wqy-zenhei
(From OE-Core rev: 306335b13fedc18cf03da1c2a68e97c01eb59075)
Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The code was supposed to ignore both native and nativesdk operations when
using the useradd and useradd-static code. However, somewhere along the way
the code was dropped. This didn't cause any issues until someone enabled the
enforcing mode in the new useradd-static and various nativesdk packages
started to fail.
(From OE-Core rev: 6b9705892400a1da1fcd973c64d1911c7c4463f6)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake librsvg-native would fail with an error about missing icu-native.
The reason is that bitbake doesn't directly parse setscene dependencies. This
change ensures bitbake does see the dependencies and avoids the error.
Ideally we'd teach bitbake about those but that is a significant and complex
change so this resolves the problem for now.
[YOCTO #5926]
(From OE-Core rev: 33fa7c8f28d343ecec354a551d45f23643becd59)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The autotools aclocal copy function should not depend on various variables, these
are accounted for in other parts of the system. Therefore exclude them.
This was causing differences in sstate checksums between different systems and meaning
the sstate cache wasn't being reused as much as it should.
(From OE-Core rev: b7193fadb1a53c86ffe4982a2fa9c1179a74de46)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It seems that the bitbake parser is incredibly forgiving of trailing whitespace
in multi-line variables, but delete it to be sure.
(From OE-Core rev: 0c404fa1a0372c56f700eb93900abd83175199ef)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Map SDK_ARCH x86_64 to DEB_SDK_ARCH amd64
Without this patch meta-toolchain-gmae fails to do_populate_sdk
| The following packages have unmet dependencies:
| nativesdk-packagegroup-sdk-host : Depends: nativesdk-autoconf but it
is not installable
| Depends: nativesdk-libtool but it
is not installable
| Depends: nativesdk-shadow but it is
not installable
| Depends: nativesdk-unfs-server but
it is not installable
| Depends: nativesdk-makedevs but it
is not installable
| Depends: nativesdk-automake but it
is not installable
| Depends: nativesdk-qemu but it is
not installable
| Depends: nativesdk-pkgconfig but it
is not installable
| Depends: nativesdk-pseudo but it is
not installable
| Depends: nativesdk-qemu-helper but
it is not installable
| Depends: nativesdk-opkg but it is
not installable
| packagegroup-cross-canadian-qt5022 : Depends:
gdb-cross-canadian-x86-64 but it is not installable
| Depends:
binutils-cross-canadian-x86-64 but it is not installable
| Depends:
gcc-cross-canadian-x86-64 but it is not installable
| Depends: meta-environment-qt5022
but it is not installable
(From OE-Core rev: a3ccbdffc04d16ae56699314dbd7ee8b6de75267)
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adds a gummiboot class similar to grub-efi class and makes the necessary
changes so it can be used for live/hddimg images as well.
One can set EFI_PROVIDER = "gummiboot" in local.conf to use gummiboot instead of grub-efi.
Gummiboot requires some kernel options that are not enabled by default, so one has to build
with KERNEL_FEATURES_append = " cfg/efi-ext".
The install scripts have been updated too, keeping the old behaviour around,
but accounting for the new boot loader config files (if they exist).
It can be argued that the installer and bootimg are a bit wierd and not necessarily correct,
but I wanted to have the exact same behviour with gummiboot.
With the default EFI_PROVIDER = "grub-efi" nothing changes, everthing should be just as before.
I've tested live boot, install and normal boot on:
- FRI2
- genericx86-64 on NUC
with:
EFI_PROVIDER = "gummiboot"
KERNEL_FEATURES_append = " cfg/efi-ext"
in local.conf.
(From OE-Core rev: b457e40fc69cc6503dc566f16495f03606e5333b)
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Abstract away some names so one can select using EFI_PROVIDER a different
class than grub-efi for populating live images, basically allowing the use
of a different bootloader than grub-efi.
(From OE-Core rev: 14e5de3b8f4d5902d0ac683ff45fb878e88b40ef)
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was stomping over the value added in buildhistory.bbclass, leading
to task signatures *still* changing when buildhistory was added to
INHERIT.
Fixes [YOCTO #5897].
(From OE-Core rev: f7a0aa412a921a41d301be072cedcda2662ffbd7)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The dependency to CCACHE_DIR was moved to ccache.bbclass in
commit 2acf8da4f13c175ea818b9514677b7059de1e3e2:
[ ccache: Separate out into its own class ]
then the '=' should be replaced by '+=', otherwise, it will overwrite
the original ${CCACHE_DIR} in dirs.
Signen-off-by: Ming Liu <ming.liu@windriver.com>
(From OE-Core rev: e8b90254747651670031e6b2b8a702732124ecac)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The ptest is useful in context of deployment to the target hence
we don't need ptest for nativesdk and cross-canadian packages
(From OE-Core rev: c0c96df9f6d571b6d1e26013822375942003e3b9)
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without this patch packages are generated as x86_64. Which cannot be
installed by default.
root@qt5022:~# dpkg -i alsa-utils_1.0.27.2-r0_x86-64.deb
dpkg: error processing alsa-utils_1.0.27.2-r0_x86-64.deb (--install):
package architecture (x86-64) does not match system (amd64)
Errors were encountered while processing:
alsa-utils_1.0.27.2-r0_x86-64.deb
(From OE-Core rev: a08eacc6d821d6946b23a99bca5abf785875b1cf)
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We read the list of files in a built image and send it
over with the same event for packages in image.
(From OE-Core rev: 21bb659beca69c8bb379af2bf10afc843f529e57)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The doc varflag on UBOOT_CONFIG should be ignored by this code; without
this the recent addition of the UBOOT_CONFIG[doc] to documentation.conf
causes errors when UBOOT_MACHINE is used.
(From OE-Core rev: e41aa22d7938c200f4150155589f5e23ed0331ce)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A bit uncertain on where to put this, suggestions welcome.
Needed to automatically rebuild do_rootfs when PACKAGE_FEED_URIS
change.
(From OE-Core rev: c779bf78f2e1f66f3c8a6b02054e39bee4ea88a5)
Signed-off-by: David Nyström <david.c.nystrom@gmail.com>
Signed-off-by: David Nyström <david.nystrom@enea.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The Kernel module packages for x32 target have 64 bit binaries, which
breaks the QA_check expecting all the packages to be 32bit.
Make a special case for kernel module packages for x32 targets, to avoid
this false error.
Fixes Bug:
[YOCTO #5903]
(From OE-Core rev: a4261ab92735abfba835e916931d2e920f335aaa)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a sanity test that checks for symlinks in packages that point into the
TMPDIR on the host.
(From OE-Core rev: 9e28808a6d6f47dc10ad87b878c7e912c2bbe16f)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix task signatures for recipes that add to SSTATEPOSTINSTFUNCS changing
when adding and removing INHERIT += "buildhistory" (really this time!)
This relies on the BitBake vardepvalueexclude feature, however it will
not fail without it - signatures will be changed in that case though.
Part of the fix for [YOCTO #5897].
(From OE-Core rev: 27c8a9a282358b9a8a330252ee2104b250777b38)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We used populate-extfs.sh which invoked the debugfs to create the image,
now the mke2fs' option "-d root-directory" can do the same thing, and
which is more faster, for example, the core-imag-sato:
* In the past:
$ time mke2fs -t ext4 rootfs.ext4
real 0m0.249s
user 0m0.036s
sys 0m0.132s
$ time populate-extfs.sh /path/to/rootfs/ rootfs.ext4
real 0m29.355s
user 0m10.637s
sys 0m5.544s
* Now:
$ time mkfs.ext4 -F -d /path/to/rootfs/ rootfs.ext4
real 0m6.338s
user 0m3.824s
sys 0m1.356s
More than 25 seconds are saved.
[YOCTO #4083]
(From OE-Core rev: 6338fe9ba338615317a4e7ccc99287b236ac77ae)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The bbclass did the following:
do_diffconfig[depends] += "virtual/kernel:do_kernel_configme"
This clearly introduces a cross-kernel task dependency if the recipe
inheriting this class isn't the preferred provider of virtual/kernel, which is
obviously wrong, but further, will break the build if a kernel-yocto based
kernel is parsed and not skipped, but virtual/kernel refers to
a non-kernel-yocto recipe, which would not have the do_kernel_configme task.
Work around this by adding the in-recipe task dep programmatically with
bb.build.addtask when do_diffconfig exists.
(From OE-Core rev: 0e6881146d87f0d214d80bc92e54c113906db63a)
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
'git branch' may use ANSI escape codes in its output (to provide colour)
which doesn't play well with commands expecting pure plain text, e.g.
fatal: '^[[31mmaster^[[m' is not a valid branch name.
Use the --no-color option to ensure all branch names are plain text.
Cc: Bruce Ashfield <bruce.ashfield@gmail.com>
(From OE-Core rev: 87acfdb28380c26344a79a9dc0b4b403173bdc44)
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since tasks were renamed to packagegroups some time ago, this variable
name implies that its usage is necessarily related to them which is not
the case. Rename the variable to more closely represent what it does
(whilst still providing backwards-compatibility with a warning for
PACKAGE_GROUP).
(From OE-Core rev: d703e07ea5056624101e1bc48f10d25b602635e9)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Previously the "package-management" feature was only fully supported
when inheriting core-image.bbclass, which is not really ideal given that
this is the standard way of adding runtime packaging to an image in
OE-Core.
Part of the fix for [YOCTO #5424].
(From OE-Core rev: 18b8e526570b347d269fa47140949e4ea4800ac5)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* it's useful to know by how much we need to bump PR in original recipe to preserve upgrade path
(From OE-Core rev: 6e1633eb246fee3dee154513efa410d0930ea386)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The PRINC logic is now deprecated, the PR server should be used to handle
the automatic incrementing of the PR (package release) field. Add a warning
message to alert users to the change. The functionality will be removed
in the next release cycle.
(From OE-Core rev: 6f8d01e0097ded355a1eb38724f11ee65401392e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With this change, you can use shell like globbing expressions (as
supported by Python's fnmatch) for entries in SANITY_TESTED_DISTROS.
This makes it possible to say that, e.g. "all Debian 7 Wheezy releases
are supported" with the entry "Debian-7.*".
[YOCTO #5265]
(From OE-Core rev: 1e527136e2ac274735a25b957e0391f48b18beba)
Signed-off-by: Olof Johansson <olof.johansson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bitbake can't interpret the python execution of these functions so
include the dependency manually.
[YOCTO #4507]
(From OE-Core rev: 39c53d26a1ea0859ca30456b6af0a28b2ea16769)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changes to BAD_RECOMMENDATIONS or NO_RECOMMENDATIONS require the rootfs
for the image to be rebuilt.
[YOCTO #5898]
(From OE-Core rev: f271ec4748d604d956f2d011af1deb7f7e3a68f9)
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For machines other than qemu it will not be okay to run
multiple testimage tasks in parallel.
(From OE-Core rev: 9560305a9e28316438cb57421afc7877890c4b76)
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Introduce a AUTOTOOLS_COPYACLOCAL variable which forces the copy of the aclocal
files even when a configure.ac/.in file isn't present.
Use this new feature in alsa-tools.
(From OE-Core rev: 07db5222a970e40bff51c5df793f0021b0e2aba8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We still occasionally see race issues with cp-noerror, and it copies
too many files, we should limit the the m4 files to those explicitly in
the DEPENDS for the recipe.
This change takes advantage of the BB_TASKDEPDATA data from bitbake to
only copy in those files listed in the manifest of the recipes in DEPENDS.
I've had this testing locally for some time, its ready for wider
review/testing.
(From OE-Core rev: 79ea036de331bde65a88fb777647dc099ef05acf)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch goes through the OE-Core recipes and marks those which use autotools
but don't support a separate build directory (${S} != ${B}). A new class,
autotools-brokensep is used for this purpose.
This doesn't introduce any change in behaviour in its own right.
(From OE-Core rev: 006b8a7808a58713af16c326dc37d07765334b12)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The validate_branches routine is responsible for ensuring that the specified
SRCREV exists, and that the tree has been prepared for eventual patching
starting directly from that SRCREV.
On exit, the routine checks out the specified machine branch and the
preparation is complete .. except if a KMETA branch isn't used, we exit
early since the branch can't be validated.
To make the exit condition consistent for all cases, we can move the
KMETA validation inside a conditional and allow the same exit path for
both cases.
(From OE-Core rev: 6eb63237c3bf48377f75e48e637d76108c8666df)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The ValidError case makes parsing fail even if the U-Boot variant is
not in use for the specific machine and this is not desired. So
instead of raising a parsing error we skip the package.
(From OE-Core rev: d265216dab8146cda17b9ec6167346749896a505)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I was asked why we had these copy and update_data calls. I can
offer no good explanation other than them perhaps once being needed
for reasons long since forgotten and superceeded.
With modern bitbake these should not be needed and shouldn't have been
for a long time. Lets therefore remove them and simplify the code.
(From OE-Core rev: 33746924bea27e6f4d85898fe37d3e07d4317a3a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I have a feeling this code exists from the time before we had proper
coverage of one sstate task by another task. At that time it was a
"poor" persons version of that idea, we now have much better
code internal to bitbake which handles this.
Worse, this code actually breaks certain rebuild scenarios,
e.g.:
bitbake libtool-cross
bitbake libtool-cross -c cleansstate
rm tmp -rf
bitbake libtool-cross
would fail as binutils-cross wasn't installed from sstate.
The easiest fix is to remove the obsolete/broken code.
[YOCTO #5773]
(From OE-Core rev: ccad07f35fb7f959e24fd50d04c7d10dd5cf20d0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The reasons this task was introduced are lost in the mists of time. It
allowed for the a single "package_write" task instead of spelling out
the explicit package backends, however in all but one case we do that
anyway.
As such as might as well give in and delete the task, converting that
single reference into explicit dependencies.
This gives bitbake a bit less work to to when processing the runqueue
since there are less tasks (but more dependencies in some cases).
(From OE-Core rev: cf70e15f063716f3227d467ab1f4bfc0018286f6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Sort the list so it's at least in some form of logical order. I looked
at sorting by dependencies, but that's a topological sort, and given
no such function is shipped as part of the python standard libraries
it would seem excessive to pull one in just for this. In any case, I'm
not sure that for the data we have this would lead to any particularly
pleasing result.
* Show the doc values as defined in documentation.conf (where present)
as a description
Addresses [YOCTO #4856].
(From OE-Core rev: 36828f8a0db83b5222a8589984e4a02aeb00eada)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Avoid tar noticing that the directory is changing when
do_package_write_deb or do_package_write_ipk are running at the same
time as do_package_write_tar (because DEBIAN and CONTROL are being added
and removed while tar is running so the directory changes).
Fixes [YOCTO #5652]
(From OE-Core rev: d000761acdb2645ac879d8d9d6b022770545f644)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The code here that deletes stamps was also deleting the taint files; so
forcing an sstate task with -f would force it to execute and then
because the taint file was deleted in the process, the next execution
would simply restore the output from sstate again. We need to exclude
the taint files just like we did in bb.build.make_stamp().
Fixes [YOCTO #5805].
(From OE-Core rev: 4708859e5627488251dc4250d45cb5f4e9736b8a)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The working directory is changed in a subshell when executing cpio to
preserve the working directory for any subsequent commands. This is to
keep the working directory consistent when generating multiple image
types.
(From OE-Core rev: 5ff6cb920f8be9068a23f7bf0cb1b9a9ff1eda5b)
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In update-rc.d.bbclass it checks variable INHIBIT_UPDATERCD_BBCLASS to
inhibit from inheriting this class. But it is wrong logic that when
'sysvinit' is in 'DISTRO_FEATURES', INHIBIT_UPDATERCD_BBCLASS will not
be checked.
Replace 'or' with 'and' to fix it.
(From OE-Core rev: a0353102184892f09d3f97f018e457a4684550ea)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Don't force SYSLINUX_TIMEOUT and SYSLINUX_PROMPT if overrides have
been defined elsewhere for an image configuration.
(From OE-Core rev: a6522c19af9525a6e0bed241f2d926faaef76827)
Signed-off-by: Kyle Russell <bkylerussell@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The following dependencies were manually added in the image creation
code. However, in order to have an image dependency mechanism in place,
use a new variable, IMAGE_TYPEDEP, to declare that an image type depends
on another being already created.
The following dependencies are added by this commit:
elf -> cpio.gz
live -> ext3
vmdk -> ext3
iso -> ext3
hddimg -> ext3
This commit adds also another new variable: IMAGE_TYPES_MASKED. Currently,
masking out certain types from IMAGE_FSTYPES was hardcoded in the image
creation code.
[YOCTO #5830]
(From OE-Core rev: 5e2796aa28e02ae3a076c6593c6533753720b13d)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since generic compression solution has been introduced
(see revision b7e4ed41ee480f00b7265341e9e2d2c2b9135143),
CPIO_TOUCH_INIT() is only called by IMAGE_CMD_cpio.
(From OE-Core rev: e856e04e6134ce98e89027864f69b2ab48d40dcc)
Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
diffconfig() is a new task that makes a diff between the
old and new config files and writes to the fragment.cfg result file.
menuconfig() always copy the original config file, so the user
doesn't need to copy it.
(From OE-Core rev: f0dcbbdcc37da12f84f730b8235f50be8c150c50)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of using 'diff' command between two kernel config files,
the task diffconfig does the job creating the file
$WORKDIR/fragment.cfg that user should review and use.
[YOCTO #3862]
(From OE-Core rev: db2a44c8f08f2371a52ff6662d6bc64bc42ad551)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
below commit
commit 9d9bca8785911e8ae06d507bbfb99d6a811f072e
Author: Jonathan Liu <net147@gmail.com>
Date: Mon Feb 17 21:46:28 2014 +1100
lib/oe/image.py: fix working directory
The working directory needs to be changed before the image creation
commands instead of afterwards.
exposed an issue when generating tar images, where it would cd into
rootfs and then create the rootfs tarball and remain there since the
cmd to cd into deploy dir moved up the immediate following cmd like
tar.bz2 or tar.gz were still looking for tarball in current directory
which esentially was not deploy dir but IMAGE_ROOTFS instead
(From OE-Core rev: 9a98b8bfe13b94d89a9e39cca821f26fdeaeffc3)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License formatting and address for FSF in the COPYING and COPYING.LIB
has changed.
Dropped patched already upstream and patches that were workarounds for
older glibc and busybox
for e500 we have should pass --without-fp to eglibc/glibc 2.19 onwards
the code is merged from eglibc into glibc upstream under nofpu/ pretext
(From OE-Core rev: 875df27e56b82fcf970410b6d78e3672471c336a)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We don't need to depend on do_package anymore after the split out of
do_packagedata (which happened a while back in OE-Core commit
6107ee294afde395e39d084c33e8e94013c625a9). We do need dependencies on
do_packagedata though since the SDK construction needs to make use of
the pkgdata files.
(From OE-Core rev: 8491b998d290f9717d537ca84bc2beb475cf3ced)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
do_rootfs has ${S} in cleandirs, and during do_populate_sdk we call
exec_func() several times, which by default uses ${B} as the working
directory. If do_populate_sysroot and do_rootfs race against eachother,
the directory may not exist at the exact instant that the setup code
for do_populate_sdk tries to cd into it. We don't actually use ${B}
for do_populate_sysroot so we can set it to something else just for that
task to avoid the race.
NOTE: because this task name contains an underscore, the override will
not work; the BitBake patch that changes these to hyphens for the
task override is required for this patch to work (but won't break things
without it.)
(From OE-Core rev: 53578cef2cbc59dcc637d1cc561f63b3c448425a)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
So far, when do_split_packages is passed a non-existing folder, it will return nothing.
While building Mesa with PACKAGECONFIG="egl gles" for qemux86, do_package threw a nice exception on a line reading "pkgs += do_split_packages":
"Exception: TypeError: 'NoneType' object is not iterable"
I think a function should always return something, and in this specific case, returning an empty list should be right.
This patch simply fixes the return statement to do just that.
(From OE-Core rev: 39737e00e85bd4a6053f63f0c959fd424aa009be)
Signed-off-by: Josua Mayer <josua.mayer97@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The previous fix for this same issue (OE-Core rev
f31f6a70ec24e8c9515d69c5092e15effc5e7d4d) was not sufficient - we are
setting the PERLVERSION variable from the get_perl_version function, but
we're setting it using immediate expansion; thus the value is going into
the signature and is still different between the time the recipe is
cached on an empty TMPDIR and after perl is in the sysroot and we run
bitbake -S perf. We could remove the immediate expansion, but that would
mean the get_perl_version function would be called more often, so just set
vardepvalue on the PERLVERSION variable to fix the problem instead.
(From OE-Core rev: 262a62dff2d7f0902d717c734fcf5563e96a38bc)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Previous commit added support for sum 'compression' (rather
postprocessing) of jffs2 images. Drop support for sum.jffs2 image type.
(From OE-Core rev: 295c6c1452c8789a8b1d0090ff09a5cd7cf16507)
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I got hit by a missing dependency in generation of sum.jffs2 images - at
runtime, when images are generated using bitbake pool, it is possible
for sum.jffs2 image to be scheduled for generation before jffs2 image is
fully generated.
Insted of adding additional hacks, reimplement sum.jffs2 generation as a
compression scheme on top of plain jffs2 images. For now support for
sum.jffs2 images is left in, it will be removed by the subsequent
commit.
(From OE-Core rev: 2a15a364fdf85b0b18ba63fdb2a745a52b96478e)
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Class is used to save data about errors after every task that failed.
Errors saved as json files in ERROR_REPORT_DIR (defaults to tmp/log/error-report).
To use this class one has to add INHERIT += "report-error" to local.conf.
scripts/send-error-report is a simple script that sends the json file
to a HTTP server that collects data (git://git.yoctoproject.org/error-report-web
is a Django web interface that can be used to receive and visualize
the error reports). The script will give you an URL where you can
find your report.
(From OE-Core rev: f186b4c7c6c975638e60b30a512d669dc6dc390f)
Signed-off-by: Andreea Proca <andreea.b.proca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Package indexing is done in python and package-index.bb uses the new
routines.
(From OE-Core rev: 2ab1a2bccfbb4ed90fe3b877d1be80817ba32099)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bb.build.exec_func() does not allow passing arguments to the executed
scripts. Use wrappers instead.
(From OE-Core rev: c3dd44b751e351be52512e2aff885bf571c95fe5)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This solves a regression introduced by OE-Core:9b75f6a (kernel:
use oldnoconfig before yes '' | make oldconfig).
The original oe_runmake explicitly calls 'die' command in case of
failure so the fallback code never runs. The fallback code needs
to handle the oe_runmake return code to call the backward
compatible callback so we introduced a new command called
oe_runmake_call which is used by oe_runmake.
This does not change the functional behaviour of oe_runmake so it
avoids any change except for the code which does need to handle
the oe_runmake exit code.
(From OE-Core rev: 51707282fc2c5a74588b2d79b2229513a883924f)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit whitelists some common directories, so the multilib sanity
checks pass and also fixes an issue in lib/oe/rootfs.py when the
compared files do not exist.
(From OE-Core rev: 4615ac771175cd413f461c081f7d3191c49ccc4b)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, if you bitbake xxxx, it will restore the package_write_,
packagedata, populate_sysroot *and* the package data from sstate.
We generally care about the packagedata and the actual packages, we
no longer need/care about the do_package data itself unless something
is going to repackage.
By relaxing this constraint (and relying on the packagedata target), we
can save things being installed from sstate and hence speedup build times.
(From OE-Core rev: 4fda89477a2d7c1b3186bf4896297338ed64c448)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The virtclass overrides will go away at some point (apart from the multilib one).
Change them all to class-xxx instead since people enjoy copy and pasting them.
(From OE-Core rev: d1c073d2813bd913617990cd047507353ea0c09e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
After the change to allow target recipes to depend on native recipes, the
native checksums becomes all the more critical. Add to this that we're now
accounting for pre/postfuncs and we have a cache reuse issue since the
distro LSB string is getting coded in when it shouldn't be.
This excludes that string and allows one set of native sstate to share
checksums with another set from a different host distro. They're separated
into different directories so this is fine for our use cases.
(From OE-Core rev: 1fa7d4331d994b9eeb6f973d1a1f04cb4df92c13)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Postfuncs are now incorporated into task signatures as of BitBake
rev b84d010144de687667cf855ddcb41c9b863c236e, so we need to exclude
the one we're adding to do_fetch. The change to the SSTATEPOSTINSTFUNCS
variable value was also entering the signatures of do_populate_sysroot
and probably other tasks, so we need to use a slightly hacky trick to
avoid that as well.
Apart from the final do_rootfs / do_populate_sysroot, this now means
that adding and removing INHERIT += "buildhistory" will not cause tasks
to be re-run.
Also update the copyright date, properly this time.
(From OE-Core rev: 953df67eb877a6d0fc68d122964440a9a47de3c3)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Wihtout this patch, FEEDS functionality is broken, and creating
a manifest from recipe metadata may be faulty when using FEEDS.
(From OE-Core rev: d926c0bdc58ab6dda55eed52b66dbd5834ced64f)
Signed-off-by: David Nyström <david.nystrom@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The USERADD_ERROR_DYNAMIC needs to check that both users and groups that are
defined need to be represented as static ids, or an error should occur.
For the user check, we want to make sure the uid is a numeric value. (The gid
can be name, as the GROUPADD check will validate for a number there -- or
during install useradd will fail if that group is not defined.)
For the group check, we verify that the gid is specified and not left as a name.
Also two statements that can be uncommented for debugging were added so that
future development work on this code would be easier to do.
(From OE-Core rev: f35bbba65e3e41f8dea1f9ff872d3a9fbd84bf6d)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When --user-group is selected (it's on by default as well) we want
to translate that to a groupname and disable the --user-group. Before
we just disabled --user-group, but didn't always add the group to the
system.
This change ensures that we add the group (as long as we have enough
information to actually add the group), and we disable --user-group
in that case. If a static groupid is not specified we continue to
use the groupname, but via an explicit groupadd.
(From OE-Core rev: ae83db0fdcf0b807ffdfc901f4d1c463fffee82a)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Marks original commit message and variable documentation state that stripping and splitting are independent of eachother, but package.bbclass ANDs the two INHIBIT flags to see which files can be stripped and/or split.
Original behaviour:
INHIBIT_PACKAGE_STRIP: no strip, no debug split
INHIBIT_PACAKGE_DEBUG_SPLIT: no strip, no debug split
Behaviour after this patch:
INHIBIT_PACKAGE_STRIP: no strip, no debug split
INHIBIT_PACKAGE_DEBUG_SPLIT: strip, no split
(From OE-Core rev: 8ea3cc2c45d4e34bb68bd3e0bc359204c772133c)
Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The default value for HOMEPAGE of "unknown" has been in place since the
early OE-Classic days, but it doesn't really make sense - "unknown" is
not a valid URL and it just means we have to explicitly check for this
hardcoded string if we're displaying the value in some form of UI, such
as Toaster.
This has required some changes to the packaging classes as they
previously did not expect the value to be blank.
(From OE-Core rev: 244e1d73ef58e92d73c098044c66bd784644b933)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sometimes we may forget to actually build the image
we want to test (when testimage task is called manually).
Instead of an ugly traceback we should fail nicely.
The manifest is written after the rootfs so this ensures
the image was actually built.
(From OE-Core rev: 85c8dd4170a88a5d7f3d9ca181e75720302727c5)
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When using a defconfig, using yes '' | make oldconfig may not result in
the correct configuration being set. For example:
$ ARCH=mips make qi_lb60_defconfig
#
# configuration written to .config
#
$ grep USB_ETH .config
CONFIG_USB_ETH=y
# CONFIG_USB_ETH_RNDIS is not set
# CONFIG_USB_ETH_EEM is not set
$ cp arch/mips/configs/qi_lb60_defconfig .config
$ yes '' | make ARCH=mips oldconfig
[...]
$ grep USB_ETH .config
CONFIG_USB_ETH=m
# CONFIG_USB_ETH_RNDIS is not set
# CONFIG_USB_ETH_EEM is not set
Using make olddefconfig solves that but we'll use the oldnoconfig alias
for backward compatibility with older kernels.
$ cp arch/mips/configs/qi_lb60_defconfig .config
$ make ARCH=mips oldnoconfig
scripts/kconfig/conf --olddefconfig Kconfig
#
# configuration written to .config
#
$ grep USB_ETH .config
CONFIG_USB_ETH=y
# CONFIG_USB_ETH_RNDIS is not set
# CONFIG_USB_ETH_EEM is not set
(From OE-Core rev: 9b75f6a5786ff7b2e6219d78b38f0032f100c660)
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Removing files from the source tree via find, exec and rm is not the
most efficient operation, due to (among other things) the many forked
processes.
If we use -delete, it saves a significant amount of time. But -delete
does not work with -prune (since it forces -depth). To maintain the
lib, tools and scripts source files, we can hide them temporarily,
skip their hidden directories and then finally restore them.
Time for install before this change:
real 2m48.563s
user 0m35.220s
sys 0m33.036s
Time for install after this change:
real 1m21.301s
user 0m33.160s
sys 0m28.388s
We could further speed this up by using inline perl to delete the files,
but that complexity is avoided for now.
(From OE-Core rev: 01932d6bbc71e86fd903097b5339e91f76846388)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When using opkg as the PM backend, one has the option to provide custom
feeds to create the rootfs from.
This commit:
* fixes this in the refactored code;
* moves the custom config creation code to python;
* clean up the package-ipk.bbclass;
(From OE-Core rev: 19c538f57c8fa7c566e88a6dbe13ea4826d4f26c)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The old code no more needed since the job is done in python now.
(From OE-Core rev: 96bf2a93bb75fea23732014106039e14d72cd1c7)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit cleans up the functions that were ported to python.
(From OE-Core rev: a4fe5263a683b73d0318fe3c0c55382c084f25b5)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The sdk complementary install operation was defined in image.bbclass,
but the sdk recipe (such as meta-toolchain.bb) didn't inherit this
bbclass but populate_sdk, and both of image and populate_sdk bbclass
inherited populate_sdk_base bbclass, so move the sdk complementary
install definition to populate_sdk_base bbclass fixed this issue.
(From OE-Core rev: 907458935bab391f5bfba8f581ea9835078548d9)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since the list_installed_packages() function has refactored in
python, do the necessary adjustments to license_create_manifes-
t() and write_image_manifest() in license.bbclass and image.bb-
class respectively;
(From OE-Core rev: 4477991633d2971c17afbd0874b1ab2efb7d6eef)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The old code no more needed since the job is done in python now.
(From OE-Core rev: 58f06621aa1a5618dc969e8d1b537e32763a9461)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since rootfs_install_complementary() is now implemented in python for
each backend, remove it from POPULATE_SDK_POST_TARGET_COMMAND. Call it
directly in python.
(From OE-Core rev: c941fce37eb1ca7b77e5885c3e3e776f9538754b)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Lose the old shell populate_sdk_image() function and use the new python
implementation.
(From OE-Core rev: 5a81b8a0820ceac972a68af2caebdc8d2f3945a1)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove the directory, manually, in the Rootfs.create() function.
(From OE-Core rev: 37a9dc05272e7e49c8a475ccb3d10880dcee4763)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit cleans up the functions that were ported to python.
(From OE-Core rev: d950ef40a3eae4b54cc62828e66d84a62d78c447)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the packages are created from cache, we need to remove the stamp so
that we re-generate the index files at do_rootfs time.
(From OE-Core rev: dc06a91144b79a152eb481f6d36f6c328321b7c4)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit will:
* remove old bash code common to all backends;
* create a new do_rootfs() python function that will use the new
rootfs/image creation routines;
* allow creation of dpkg based images;
* fail for rpm/opkg (not implemented yet);
(From OE-Core rev: a83144bac8d67704ff66f5dc0fc56f5b63979694)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some recipes are installing libraries into ${base_libdir} (typically /lib) and
also use a foo-config binary to identify compile paths, for example
libusb-compat. Without mangling ${base_libdir} the ${base_libdir} path is
passed to the compiler, where it looks like a host path and results in
compile-host-path QA errors.
(From OE-Core rev: ccd9abdccb84d713427541b6ee29a0e217360e74)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #5436]
Automatic selection of static uid/gid is needed for a dynamically generated
passwd and group file to have a deterministic outcome.
When a package is installed and instructs the system to add a new user or
group, unless it selects a static uid/gid value, the next available uid/gid
will be used. The order in which packages are installed is dynamically
computed, and may change from one installation to the next. This results
in a non-deterministic set of uid/gid values.
Enabling this code by adding USERADDEXTENSION = "useradd-staticids", and
adding a preconfigured passwd/group file will allow the continued dynamic
generation of the rootfs passwd/group files, but will ensure a deterministic
outcome. (Dynamic generation is desired so that users and groups that have
no corresponding functionality are not present within the final system image.)
The rewrite params function will override each of the fields in the
useradd and groupadd calls with the values specified. Note, the password
field is ignored as is the member groups field in the group file. If the
field is empty, the value will not be overridden. (Note, there is no way
to 'blank' a field, as this would only generally affect the 'comment' field
and there really is no reason to blank it.)
Enabling USERADD_ERROR_DYNAMIC will cause packages without static uid/gid
to generate an error and be skipped for the purpose of building. This is
used to prevent non-deterministic behavior.
USERADD_UID_TABLES and USERADD_GID_TABLES may be used to specify the name
of the passwd and group files. By default they are assumed to be
'files/passwd' and 'files/group'. Layers are searched in BBPATH order.
(From OE-Core rev: 18c99dac52b746b88cd084eb4c2a2ef0329a6ff3)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When the system attempts to populate the sysroot's passwd/group files, it
does so in a single block. However, with the way it was previously
implemented, the system would always run through the code necessary to
populate the sysroot, even in the case of target packages. This had
the side effect that a cross-installed filesystem may not match a
target installed filesystem.
The code was slightly reorganized to ensure that the cross/target installed
pre-install script behavior is the same. It also moves the block that
configures the sysroot parameters to the sysroot specific section of
the code.
Also some minor validation was occuring even on nativesdk packages.
Nativesdk packages should be skipped when processing useradd ops.
(From OE-Core rev: 99fd0f14fd774c9194f62795e6023880e3aa5612)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add the ability to export the tests so that they can run independently of
the build system, as is required if you want to be able to hand the test
execution off to a scheduler.
Booting/deployment of the target is still handled by the build system,
as before, only the execution of the tests happens outside of the build system.
Tests exported are the ones defined in TEST_SUITES.
No tests have been changed as interesting parts of the data store have been
exported and tests can continue to query them as before. Small adjustments were made
for a couple of oeqa modules though.
[YOCTO #5613]
(From OE-Core rev: 155dd52e0f707e06f50756584a50f744ba6b7844)
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We've removed nostamp from do_rootfs in image.bbclass in OE-Core commit
8505008c115efb54d18e5f25441c7a938a32ffaf, and we should do the same for
do_populate_sdk here for the same reason - we can now rely on task
signatures so if nothing has changed, we don't need to re-run it.
(From OE-Core rev: de9b693f4ff311f1310a1c6005e0d5c225aabef6)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the package information contained unicode characters (for example, in
the package file listing) then writing them out as ASCII would fail, so
write them out using codecs.open() instead of open() using UTF-8. This
fixes ca-certificates failing in do_packagedata when buildhistory is
enabled.
(From OE-Core rev: dcf228fe69bfee4e22baad477ad407248c0f9cdb)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that bitbake is recursing into pre/postfuncs, we need to ensure
the dependencies of these functions is correct. We don't want dependencies
on MACHINE or other related variables. This patch adds in appropriate
variable exclusions to achieve this.
(From OE-Core rev: 8461283a648d7c5affd51971ebd9b35a8a4c625f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
OE-Core commit 259b8718a31b886f8a158aeb5de164840c9a28b2 fixed UTF-8
errors but broke decoding of escape sequences in strings (e.g.
pkg_postinst scripts had \n \t in them instead of newlines and tabs.)
We need a second call to decode() here as specifying 'string_escape' as
the second parameter won't do anything.
(From OE-Core rev: 15e0cdff08b8b9b826bbb9f00192a27318a3ee65)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Commit a5362de60c0051f16b88a40bd9cb41915bee0b0f restricted us to writing
only a single entry to the status file for any given package. This
avoids writing garbage entries (with no Status) when multiple versions
of the same package exist in the feed. However, in the case where the
same version exists for multiple architectures (for example, has been
built for both cortexa15 and generic armv7a), we do need to write out
status file entries for all of them since we can't trivially determine
which one opkg will decide to install.
Fix this by undoing a5362de60c0051f16b88a40bd9cb41915bee0b0f and writing
out an entry for everything that matches, but ensuring that we force the
Status to the correct value for each one.
(From OE-Core rev: 12d7b44c817bdf6eea425bda607379594057c3fb)
Signed-off-by: Phil Blundell <pb@pbcl.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the rootfs is read-only then we aren't going to be updating any
alternatives or modifying the password file and these binaries will
be redundant. In an ideal world we would be able to stop them from
being installed in the first place but this is non-trivial to arrange.
As a workaround in the meantime, let's just uninstall them once image
construction is finished.
(From OE-Core rev: d41097a970e9bfa553cd4bc3c9fad4b9073d7bd5)
Signed-off-by: Phil Blundell <pb@pbcl.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In python3 this has to be taken care of, it defines a variable to
denote ABI currently its at 'm' and it uses this to construct
the directory names for installing the python headers and library
names in sysroot. e.g. it will be something like ../python3.3m/...
We need this information when we are using distutils to cross build
python extentions and want to know the locations of python headers
and libraries install locations
(From OE-Core rev: 9a3e4ac4a4eeed64ec80d400130dff3d26daf336)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In line with python2 add distutils and setuptools
classes for handing python3
Use python-distribute instead of python-setuptools in setuptools bbclass
Remove --single-version-externally-managed since its setuptools
specific and we dont use it anymore
Do build_ext as separate step during compile
Add DISTUTILS_BUILD_EXT_ARGS for modules to pass flags to build_ext step
in setup.py
Add build_ext as sepate step during compile and add
the cross sysrooted library and headers since we are cross
compiling
Use ${PYTHON_PN} in place of hardcoding python name
Remove the /etc/share if its empty
Since OE-Core times we now have machine specific sysroots
for targets unlike before when we used arch specific sysroots
so reflect that here
Use MACHINE for sysroot when not building for build host
Python's machinery replaces directories in sysroot path to match OE's
staging area sysroots. Earlier we use to have HOST_SYS represent sysroot
always but now we use MACHINE to represent target sysroots but HOST_SYS
to represent host sysroot. This patch caters to that difference
(From OE-Core rev: 8bb0206ed67228c88dd5bc2d8b36ce28f48b78f4)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>