This patch removes the symbolic links from the artifact list.
[YOCTO #7184]
(From OE-Core rev: cbb64f85dabefe267519e4b983d73c864b41e876)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In a similar manner to the kernel itself, which does the following to
bring a defconfig into the configuration:
defconfig: $(obj)/conf
ifeq ($(KBUILD_DEFCONFIG),)
$< --defconfig $(Kconfig)
else
@echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
$(Q)$< --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
endif
We do the same with the linux-yocto configuration processing. If a
defconfig is specified via the KBUILD_DEFCONFIG variable, we copy it
from the source tree, into a common location and normalized "defconfig"
name, where the rest of the process will include and incorporate it
into the configuration process.
If the fetcher has already placed a defconfig in WORKDIR (from the
SRC_URI), we don't overwrite it, but instead warn the user that SRC_URI
defconfigs take precedence.
[YOCTO: #7474]
(From OE-Core rev: 5f5595eebeb81be7e824d998228e4ef9f0bfac7d)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If /var/volatile is a mount point it shouldn't contain any files before
mount time. If files are there, they will no longer be able to be accessed
once the tmpfs gets mounted at /var/volatile.
This problem can be seen for instance when systemd creates
/var/volatile/log/journal as part of its package installation. It then
assumes the journal is persistent even though /var/volatile/log/journal
goes away shortly thereafter.
This change makes sure that there are no files in /var/volatile if it is
to be used as a mount point.
[Yocto #7388]
(From OE-Core rev: b574ac6f3c9e07f0054ed4261bc1f83583c29c53)
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Manifests should end with a newline character but don't currently. This
is the easiest fix for now, the alternative would be a rewrite of the
internal code which is something to consider in due course.
[YOCTO #7427]
(From OE-Core rev: 98230d2d049c742c349f35b256b13afbc3d26235)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When using KERNEL_MODULE_AUTOLOAD, autoload was empty, causing
"modprobe None" to get appended to the postinst script.
(From OE-Core rev: 2e3768075878b8fc0f7642cae89ab7b9d03fe52c)
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This behaviour matches dpkg's manpage and fixes deinstalling
alternatives for programs needed by the postrm script, e.g. /bin/sh.
(From OE-Core rev: 2a5484a90513b58c829a916bfe5268a0fde3512a)
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changes to SYSTEMD_SERVICE 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: 0a51f024e8212f011bb8b03d81f18bcd9aa6aa1f)
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The old code 'if not srcpath.find("{PN}") == -1:' looks strange, use
'if srcpath.find("{PN}") != -1:' and remove duplicated code.
(From OE-Core rev: bb3b8e4e7580c1dfdfe584d3b5f0fe6803826a43)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Addtask lint before do_build rather than do_fetch, otherwise it would
cause all the tasks after do_fetch run again every time since
do_lint[nostamp] = "1".
(From OE-Core rev: 122ef911aac96b311bbe19106fb9ecbe004fd51b)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the package doesn't contain any file, then the license isn't relevant
as far as the final image is concerned. So we skip the license checking
in license_create_manifest if such case.
(From OE-Core rev: f7b6684d2248f4a56e70b292891f9a454275449d)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Both vmdk and live use syslinux, but they have different/conflicted
configurations, the main conflictions are:
vmdk live
SYSLINUX_ROOT root=/dev/sda2 root=/dev/ram0
SYSLINUX_LABELS boot boot install
INITRD No yes
So it would make the boot menu strange and vmdk can't be boot, we need
add a few extra vars to fix the problem such as SYSLINUX_ROOT_VMDK
SYSLINUX_ROOT_LIVE, but that needs a lot of changes in the code, so just
add a sanity checking for it.
[YOCTO #6889]
(From OE-Core rev: 521737f456b6ea7f7f153132c77cb74c08f088dc)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: ddac4f3c1350c3a4e0ea4ae732de0689325d883f)
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The linux-yocto kernel has a meta-data component which accompanies the
actual tree. That meta-data is processed to generate a series file that
controls the patching and configuration of the kernel.
patching and configuration are two distinct phases, so when working on
kernel configuration, it doesn't make sense to always have to re-run
the patching step just to update configuration data in the meta-series.
To allow a more granular set of tasks, we break the meta-data generation
into a separate task, which runs before do_patch. This allows the task
to be explicitly called when working on configuration, but otherwise
has no impact on the build.
(From OE-Core rev: 1be4c68fb876b63f19d107275b701fe1c1c121db)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If SRC_URI contains local files (file:// references) these will almost
certainly be required at some point during the build process, so we need
to actually fetch these to ${WORKDIR} as we would normally.
(From OE-Core rev: f223ad3d5b5c90055e50d1b1be69230f55e06336)
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>
Without this patch the source archiver class is not allowed to
archive the same source archive for different builds.
(From OE-Core rev: 37284185912d496a974d507bde7208d93eefc29d)
Signed-off-by: Adrian <adrian.freihofer@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixed:
DEBUG: Executing shell function pixbufcache_sstate_postinst
g_module_open() failed for sysroots/x86_64-linux/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: libharfbuzz.so.0: cannot open shared object file: No such file or directory
(From OE-Core rev: 892c8d80e7cf36b3a45dca248969d49ce78c0cbf)
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>
The kernel-abiversion is now in STAGING_KERNEL_BUILDDIR not in S.
Fixed rpm pkg like perf: (note the None version)
perf-None-r9.qemux86.rpm
(From OE-Core rev: 85bb679f22b2f5fb308016e62356bd1d6ba455a0)
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>
Binaries linked with gold may contain a RUNPATH instead of an RPATH.
Update chrpath.bbclass process_file_linux() to handle both cases.
(From OE-Core rev: 46ceb4d035e4f49e6b4a3a83bf604944d2b991c1)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixed:
ERROR: Build of do_populate_lic failed
ERROR: Traceback (most recent call last):
File "bitbake/lib/bb/build.py", line 497, in exec_task
return _exec_task(fn, task, d, quieterr)
File "bitbake/lib/bb/build.py", line 437, in _exec_task
exec_func(func, localdata)
File "bitbake/lib/bb/build.py", line 212, in exec_func
exec_func_python(func, d, runfile, cwd=adir)
File "/home/nxadm/nx/ala-blade44.1/builds-2015-03-09-163005/qemuppc_world_oe_bp/bitbake/lib/bb/build.py", line 237, in exec_func_python
os.chdir(cwd)
OSError: [Errno 2] No such file or directory: 'bitbake_build/tmp/work/ppc7400-wrs-linux/taglib/1.9.1-r0/build'
When running setscene, the cwd is $B which maybe removed by
autotools.bbclass or cmake.bbclass when rebuild.
(From OE-Core rev: b3262af11094f93c9588f2e3edc70a5058491e6d)
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>
Some people like to have the devshell start in ${B} instead of ${S}, so allow
this to be overridden.
(From OE-Core rev: 217af639d13258429949b14c67110650288cba7a)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Started to run into this error on ubuntu 15.04
ERROR: Execution of event handler 'run_buildstats' failed
Traceback (most recent call last):
File "run_buildstats(e)", line 18, in run_buildstats(e=<bb.event.BuildStarted object at 0x7f93341c1b50>)
File "buildstats.bbclass", line 17, in set_device(e=<bb.event.BuildStarted object at 0x7f93341c1b50>)
SystemError: ../Objects/longobject.c:998: bad argument to internal function
ERROR: Command execution failed: Traceback (most recent call last):
File "/home/ubuntu/work/bleeding/openembedded-core/bitbake/lib/bb/command.py", line 102, in runAsyncCommand
commandmethod(self.cmds_async, self, options)
File "/home/ubuntu/work/bleeding/openembedded-core/bitbake/lib/bb/command.py", line 303, in buildTargets
command.cooker.buildTargets(pkgs_to_build, task)
File "/home/ubuntu/work/bleeding/openembedded-core/bitbake/lib/bb/cooker.py", line 1336, in buildTargets
bb.event.fire(bb.event.BuildStarted(buildname, fulltargetlist), self.data)
File "/home/ubuntu/work/bleeding/openembedded-core/bitbake/lib/bb/event.py", line 163, in fire
fire_class_handlers(event, d)
File "/home/ubuntu/work/bleeding/openembedded-core/bitbake/lib/bb/event.py", line 102, in fire_class_handlers
execute_handler(name, handler, event, d)
File "/home/ubuntu/work/bleeding/openembedded-core/bitbake/lib/bb/event.py", line 76, in execute_handler
ret = handler(event)
File "run_buildstats(e)", line 18, in run_buildstats
File "buildstats.bbclass", line 17, in set_device
SystemError: ../Objects/longobject.c:998: bad argument to internal function
similar to here
http://pycuda.2962900.n2.nabble.com/bad-argument-to-internal-function-td4063274.html
If it is right fix .. Dont know
Change-Id: I84f3a4043ad5246e080dfd7e2f066e5292d4af91
(From OE-Core rev: 5f85a7549d119177c5d39f965b949e957e07867e)
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>
Appending to PACKAGEFUNCS results in the font packages missing the
postinst/postrm scripts and the fontconfig cache not being generated
in /var/cache/fontconfig when creating images or installing font
packages. This is because the package data has already been emitted
by emit_pkgdata in PACKAGEFUNCS. Prepend to PACKAGEFUNCS to ensure
add_fontcache_postinsts is executed before emit_pkgdata.
[YOCTO #7410]
(From OE-Core rev: f0e3db4eaacc32423934ce09b91bc619dc5dbd21)
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The file ownership of the cache files in /var/cache/fontconfig needs to
be set to root:root otherwise it inherits the user and group id of the
build user.
[YOCTO #7411]
(From OE-Core rev: 23393c6685860d0b1c459874d35395360d0b6d3c)
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For now, if we enable 'multilib' and execute `bitbake uninative-tarball
-c populate_sdk', the command would fail, complaining nativesdk-glibc not
found in package feed.
The problem is that PKGDATA_DIR is not set correctly for nativesdk packages
when multilib is enabled.
For now, we have:
meta/conf/bitbake.conf:PKGDATA_DIR = "${STAGING_DIR_HOST}/pkgdata"
The above is overriden by the following is multilib is enabled.
meta/conf/multilib.conf:PKGDATA_DIR = "${STAGING_DIR}/${MACHINE}/pkgdata"
This is correct for normal packages. However, for nativesdk packages, this
is not correctly. This is because nativesdk.bbclass set STAGING_DIR_HOST as
follows.
meta/classes/nativesdk.bbclass:STAGING_DIR_HOST = "${STAGING_DIR}/${MULTIMACH_HOST_SYS}"
The above overrides the value in multilib.conf.
That's why we need to also set PKGDATA_DIR explicitly in nativesdk.bbclass.
(From OE-Core rev: 2f99ee5725ffc173bf32c0b707aa90adbc4eed95)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Previously, files with absolute paths in LIC_FILES_CHKSUM such as
"file://${COMMON_LICENSE_DIR}/foo" would not result in a qa failure
when the license file changed.
To fix this problem, add any files with absolute paths from
LIC_FILES_CHKSUM to the file-checksums varflag, so that changes in the
license file are detected and cause the qa task for licenses to run.
[Yocto #6450]
(From OE-Core rev: 5df681259ae078c9d04d426fb5971eaa79d35ba5)
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The new send-error-report will prompt for review of items and the server is
now specified by using the -s argument.
(From OE-Core rev: c195d70f35ea522854dcdd53aeae60eec6b7ad7e)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We don't require that a yocto custom kernel + defconfig have a full BSP
description (but of course it would be better if they did). Since this
isn't a requirement, we shouldn't alarm users by generating a BSP
description warning.
To implement this, we add a bsp audit level flag (like the one that
exists for kconfig audits), and only set it to activate in the versioned
linux-yocto recipes.
[YOCTO: #7370]
(From OE-Core rev: d2fb7fff291b83700d487be093223c1533d915ce)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
os.walk() returns symlinks to directories in the "dirs" lists, but then never
enters them by default. As a result, the old code applied neither the
directory handling (because that is active once a directory gets entered) nor
the file handling, and thus never packaged such symlinks.
The fix is simple: find such special directory entries and move them to the
"files" list. However, one has to be careful about the undefined behavior of
modifying a list while iterating over it.
This fix was required for packaging a modified base-files that created
symlinks into /usr for /sbin /lib and /sbin.
(From OE-Core rev: 9c4ab427b6acbc3f708860adace65393562227a7)
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This bbclass will create an SDK with a copy of bitbake and the metadata
and sstate for the target specified for the task. The idea is to let
"system" developers both work on applications and then test adding them
to an image without having to switch between workspaces or having to
download separate items.
Rather than running bitbake directly however, the primary way of running
builds within the extensible SDK is to use the "devtool" command. The
rest of the build system is fixed via locked shared state signatures,
and thus only the recipes you have added get built.
(From OE-Core rev: bf81d6bb7f6df5405b8f2148e2a22e0030c12757)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the buildsystem is copied into the sdk and its toolchain is to
be used, then the relocation provided in toolchain-shar-template.sh
isn't needed and will actually fail.
So break the relocation aspect out and essentially make it another
SDK_POST_INSTALL_COMMAND script.
(From OE-Core rev: 9721378688a05cd8d8443c6ee4be823e5c0688f6)
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To add some flexibility to setting up the paths for the toolchain,
add some parameters. This initial use will be in order to point at
the buildsystem toolchain copied in by copy_buildsystem.py.
(From OE-Core rev: 62930ea37cfd5ba787ee85bc8dab23c20a775253)
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If you create a build directory with poky, or set DISTRO to "poky" and
run bitbake, you'll get a bblayers.conf file with LCONF_VERSION set to
6. If you then set DISTRO to any other value where the new distro config
doesn't pull in poky's config, e.g. "nodistro", you would then get a
bblayers.conf version error which didn't immediately make sense. (The
layer versions have been out-of-step ever since meta-yocto-bsp was
split out of meta-yocto several years ago).
This is just painful and we'd rather users didn't have to deal with
it. Obviously it isn't an OE-Core problem per se, but a simple way to
resolve it for everyone is to bump OE-Core's version to 6 with an
automatic no-op upgrade. Also ensure that multiple upgrade functions
(such as the poky one) have a chance to execute by not breaking out of
the loop as we were before.
Fixes [YOCTO #6139].
(From OE-Core rev: 2fdeee2fad69445b0d97148826c7b027820be63a)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Add do_shared_workdir which was added recently
* Add do_fetch and do_unpack to this list, because at the moment if you
enable externalsrc through a bbappend the += in this class wipes out
the original value from externalsrc (which is set with ?=)
(From OE-Core rev: 5717e3b60731d2cb9394c13bff049a467c3aeec1)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Make sure there's no chance of anyone forgetting they have a recipe set
up for externalsrc; otherwise you could get confused about what is going
on. (With our default logging setup we can't make it a note because the
UI doesn't forward those; otherwise I would have used bb.note().)
(From OE-Core rev: 7b73473bc9d19331a103cf4958059d3ceb84b486)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Here we set SRC_URI to blank, however doing so means that the function
that is called when you expand the default value of SRCPV
(i.e. bb.fetch2.get_srcrev()) will fail, so any recipe that references
SRCPV in PV couldn't previously be used with externalsrc.
(At some point we may fix the function to work in the externalsrc case,
but then we would also need to ensure that ${B} did not change as a
result of PV changing any time the HEAD revision changes in the external
source tree, or you'll lose any intermediate build artifacts.)
(From OE-Core rev: 26f8060c3475ec988194b2163e422ba4e776fd8b)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kernel.bbclass adds ${S} do do_clean[cleandirs], but this means if you
run bitbake -c clean <kernelrecipe> then your external source tree will
be trashed, which could be a disaster. For safety, remove ${S} from
cleandirs for every task. We also have to do the same for ${B} in the
case where EXTERNALSRC_BUILD is set to the same value as EXTERNALSRC.
(From OE-Core rev: b5071fb2667b8751885d38ca62fa36c870177cd5)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This reverts commit 0b891265716c414ade29d587fc1a3c4ea7beadbe.
U-Boot does support AArch64, this however was only added to newer
versions of U-Boot and at the time of this original commit the U-Boot in
OE-Core did not support the 'arm64' architecture. OE-Core now has a
newer version of U-Boot for the mkimage recipe and thus supports the
'arm64' architecture.
(From OE-Core rev: fd8158134f3d7a7c795c818cc50eb2858a6cae06)
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 meta data (in tree or out of tree) that describes a BSP, its patches
and configuration is not always available when a new/default or manually
configured machine is built.
When this happens, the tools generate a skeleton BSP and use a
architecture defconfig for the build. If this is by design, the build
is typically sane and everything works fine. If an existing BSP
description was expected, chances are that the resulting kernel will not
be correct.
To avoid surprising the user when a default/skeleton BSP is used for the
build, we can make it obvious to the user by emitting a warning like
the following:
WARNING: [kernel]: An auto generated BSP description was used, this normally indicates a misconfiguration.
Check that your machine (myqemux86-64) has an associated kernel description.
[YOCTO: #3383]
(From OE-Core rev: f4a460afc4e2676cbf1daaa1d6723da9e6146526)
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>
After a linux-yocto style kernel is configured, a kernel configuration
audit is executed to detect common errors or issues with the config.
This output used to be visible, but was made less obvious to not alarm
users unnecessarily (since some configuration issues are acceptable).
There are some classes of configuration issue that are worth being
visible, and that is specified configuration values that do not make the
final .config. These dropped options can result in any number of runtime
failures, so flagging them at build time makes sense.
The visibility of auditing is controlled by KCONF_AUDIT_LEVEL:
0: no reporting
1: report options that are specified, but not in the final config
2: report options that are not hardware related, but set by a BSP
The default level is 1, with level 2 and above being for BSP development
only.
If these conditions are detected, warnings will be generated as follows:
WARNING: [kernel config]: specified values did not make it into the
kernel's final configuration:
Value requested for CONFIG_SND_PCSP not in final ".config"
Requested value: "CONFIG_SND_PCSP=y"
Actual value set: ""
or
WARNING: [kernel config]: BSP specified non-hw configuration:
CONFIG_BLOCK
CONFIG_CFG80211_WEXT
CONFIG_CORDIC
CONFIG_CRC8
CONFIG_EFIVAR_FS
CONFIG_EFI_PARTITION
CONFIG_NET
CONFIG_NETDEVICES
CONFIG_PARTITION_ADVANCED
CONFIG_WEXT_CORE
CONFIG_WEXT_PROC
CONFIG_WIRELESS
At this point thse are only a warnings, since there needs to be time for
layers and configuration fragments to be validated against this new
check.
[YOCTO: #6943]
(From OE-Core rev: ad4d59495194b37bc510e9891bd14c0a2ac30dba)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Allow globs in CONFFILES.
This patch changes the way of CONFFILES handling. After this change,
the CONFFILES can take the same form as FILES. That means, we don't
have to list a bunch of files for CONFFILES. It will just be expanded
like the FILES variable.
We don't assume default value for CONFFILES in OE. But distro vendors could
provide a default value for CONFFILES in their distro configuration file
like below.
CONFFILES = "${sysconfdir}"
In this way, files under /etc are treated as configuration files by
default. Of course, setting CONFFILES in recipes take precedence over
the CONFFILES. For example, if the recipe author decides that package A
should only treat files under ${sysconfdir}/default/ as config files,
he/she can write like this.
CONFFILES_A = "${sysconfdir}/default"
[YOCTO #5200]
(From OE-Core rev: 0d446ef0e5bbca7058eec7259e34f2a1637dfab1)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* add quotes around pkged_lic so that it works correctly with spaces
* fixes following error:
run.license_create_manifest.50601: 193: [: GPLv2: unexpected operator
(From OE-Core rev: 2bb8b2abb689d91b7b7e28e6bd528747bde94dd2)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If /etc/login.defs is treated as a configuration file, then we would meet
errors at do_rootfs time telling us that useradd/groupadd cannot execute
correctly.
This is because the dpkg handles config file specially, the login.defs
is temporarily renamed as login.defs.dpkg-new.
How ubuntu deals the user/group adding problem? They do it at postinst of the
package. And, the postinst script of a package would possibly do `chown' of
its files or directories.
The above strategy is not suitable for OE. Because we do chown in do_install
and add user/group in preinst scripts of the packages.
That's why we need this patch so that do_rootfs don't fail.
(From OE-Core rev: d98e5ec575f542b3afaabd96b07ae9a21e1c22f4)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use '-f' ('--force') option so that while removing packages using deb,
we don't fail because of the following error:
update-rc.d: $initd/$bn exists during rc.d purge (use -f to force)
Using '-f' option would make this a warning but continue to execute.
update-rc.d: $initd/$bn exists during rc.d purge (continuing)
We need this option because dpkg package backend have special handling for
configuration files. And if files under /etc/init.d are treated as configuration
files, we will have errors.
(From OE-Core rev: ebb2d557bbf410d98040cdaabbddd7e3ee0a9709)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Similar to commit 4569d74 for create_wrapper function, this commit fixes
hardcoded absolute build paths in create_cmdline_wrapper.
Otherwise we end up with incorrect paths in users of this function. For
example the 'file' wrapper in current released toolchain:
exec -a
/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-arm/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-file/5.18-r0/image//opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/bin/file
`dirname $realpath`/file.real --magic-file
/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/share/misc/magic.mgc
"$@"
(From OE-Core rev: 49ab89eb9f83388e99069a4b53bdc4cba22bb6f3)
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a check to the SDK so that it only runs on systems with kernel versions
it supports.
[YOCTO #6856]
(From OE-Core rev: b4caa8085aa15674162ff5135b13409998db9510)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Defines ${BLUEZ} to be the provider of bluez services as specified by
DISTRO_FEATURES.
Example recipe fragment:
inherit bluetooth
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}
PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5"
[YOCTO #5031]
(From OE-Core rev: 045484283530bced19bb1d3aea229c8f138f510a)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The midori is built well now.
(From OE-Core rev: 445135f4fdd5878a0660029d0876aec51f971e20)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add the new items to the validitems list, this is fully tested, initial testing
had been done with a local change that did not make the original commit request
[YOCTO #7308]
(From OE-Core rev: 6e48bc5fbd834f19bdcac17007d27a750cc5f331)
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>
* Use argparse instead of optparse for standardised help output, options
and a much cleaner code structure
* Look up pkgdata directory automatically so the user doesn't have to
specify it
* Use standard logging
NOTE: this does mean a slight change in syntax - if you do want to
specify the pkgdata directory (usually only necessary if you're calling
it from within the build process) you need to use the parameter -p (or
--pkgdata-dir) and specify this before the command, not after it.
Examples:
oe-pkgdata-util find-path /sbin/mke2fs
oe-pkgdata-util lookup-recipe libelf1
oe-pkgdata-util read-value PKGSIZE libc6
oe-pkgdata-util -p /home/user/oe/build/tmp/sysroots/qemux86-64/pkgdata read-value PKGSIZE libc6
(From OE-Core rev: 04dc571ac7c26f0dcf1a1fcd466482e22519998d)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The qmake_base class generates internal qt.conf for build with hardcoded
qt4 target paths. This is ok for qt4-x11 as this is the default
$QT_DIR_NAME, but it is wrong for qt4-embedded, because qtopia is its
default directory.
(From OE-Core rev: f4b8c0faa1cebda2a2742f8e4d622dcd024428e9)
Signed-off-by: Tomas Novotny <tomas.novotny@tbs-biometrics.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If a siteinfo enabled tasks re-executes at the wrong moment whilst something else is
in do_configure, the _config files can be removed which upsets autoconf and
causes build failures.
Use the same approach as we do for dealing with the aclocal files. We already
parse the manifests so look out any *_config files and if so, copy them, then
reference the copy from siteinfo instead. This has the advantage of also being
more deterministic.
[YOCTO #7101]
(From OE-Core rev: c8b7aad133c3e3319345d50f85a91cbd5116f842)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Checks in FILES and pkg_* variables, solves common mistake of
using ${D} instead of $D and warns the user accordingly.
[YOCTO #6642]
(From OE-Core rev: e3ea62b370f69d2435e76f6e444f5d3a3b25eb17)
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>
BUILDNAME is set by cooker as a string of current time. Letting do_rootfs
task depend on this variable gets us no benefit. Besides, letting do_rootfs
task depend on this variable will cause us trouble when executing
`bitbake -S none core-image-minimal'. With current code, this command
gives us error complaining about the different bashhash of do_rootfs task.
(From OE-Core rev: eb6305d03723527830976c3a4ce2342a0e09eefc)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Split the debug-tweaks into a more fine tunable set of IMAGE_FEATURES
which activate the component functions.
Clean-up image-core and image bbclass by having the ROOTFS_POSTPROCESS_COMMANDs
in in one place for the debug-tweaks related functions
[YOCTO #5344]
(From OE-Core rev: e52d8281eb98dbade2d82451fa9788285121437e)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Strictly speaking not all of these characters are operators, so reword
the message to describe them as separators. Also use the standard
"recipename: message" format.
(From OE-Core rev: 9e5da3e83f2a5d43620e07a31728b7427329d8f4)
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>
The ">" should be ">>".
We had got something like the following in pcap-config:
echo '--should-not-have-used-/usr/bin/pcap-config'
exit 1
(Lacks of #!/bin/sh)
(From OE-Core rev: d4adf9ac1b8318d4eb3f1c8dd82bbf04c6908eb5)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This adds support to build multiple U-Boot configs for a machine; this
is useful when we have support for different media boots which require
different U-Boot configuration (e.g: eMMC and NAND).
Below there's an usage example:
,----[ i.MX6Q SABRE AUTO based example ]
| UBOOT_CONFIG ??= "sd eimnor nand spinor"
| UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
| UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
| UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
| UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
`----
(From OE-Core rev: be997c70e4dec101786978b3ab5e49a1be87a85d)
Signed-off-by: Chunrong Guo <B40290@freescale.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
All non-arch-specific and non-distro-specific configuration is now kept in the
main 'opkg' recipe and package.
(From OE-Core rev: e8879cd1ec8914815c7a78f1d9b296b0e2b30fcf)
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The unknown-configure-option check is generally useful and should be enabled by
default.
(From OE-Core rev: 2f1909a6a78dec943800a0e8a39f890c007165b7)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If a recipe (say, wayland) has DEPENDS=wayland-native and BBCLASSEXTEND=native,
when built as wayland-native it has DEPENDS=wayland-native which results in a
circular dependency.
Typically this is resolved by having explicit DEPENDS_class-native statements
but as this is duplication which can lead to inconsistent dependencies,
automatically remove the circular dependency.
(From OE-Core rev: 3e9392c0965166462e0993d46f4cc2fb1832f1e5)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows an image to skip the creation of kernel depmod
data. It is useful for creating an image that will run as a
container image inside a host with no knowledge of the parent's
kernel.
(From OE-Core rev: ca641aedff5f6bd155796ead02cb2eb871f8c17a)
Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since the rewrite of the image construction code in python a few
releases ago, we remove a couple of packages from the image as one of
the final steps when constructing the image (notably update-rc.d and
run-postinsts). However, because of the order of operations, these
packages are still listed both in the buildhistory
installed_package*.txt files and in the manifest file created next to
the image, which is wrong.
There were two possible solutions to this: (1) change the order such
that the uninstallation occurs before calling ROOTFS_POSTPROCESS_COMMAND
or (2) add another hook variable in such that we can have the
package list collection code run at the right time. Because it's
currently possible (but very much not recommended) to install additional
packages within ROOTFS_POSTPROCESS_COMMAND, which may have postinstall
scripts and thus require the packages we would otherwise uninstall if we
were to take option 1, option 2 is really the least likely to cause
problems. Therefore, add ROOTFS_POSTUNINSTALL_COMMAND and make the image
and buildhistory classes use it.
Fixes [YOCTO #6479].
(From OE-Core rev: b198a189228648057c3be7d068598f50841b3bf9)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If you add an item to EXTRA_IMAGE_FEATURES in your local.conf that is
not supported by image.bbclass itself (such as "tools-sdk" which is
implemented in core-image.bbclass), it can be somewhat annoying to have
the parse fall over if you have a recipe that inherits image.bbclass
only. Change the error from bb.fatal to skip the recipe instead so that
you only see the error when attempting to build the recipe, plus add a
bit of logic to report if the feature is coming in via
EXTRA_IMAGE_FEATURES.
Fixes [YOCTO #5023].
(From OE-Core rev: cbe9d2f748125aa2dffc829570d46f8dbc1781a4)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In the daisy (1.6) timeframe, when we rewrote the image construction in
Python, we neglected to reimplement the support for the little used and
undocumented variable MACHINE_POSTPROCESS_COMMAND, and apparently nobody
noticed. We have a better method for implementing machine-specific image
formats that is in wider use (i.e. add a custom class which implements
the new image type, add the class to IMAGE_CLASSES and the type to
IMAGE_FSTYPES), and we now also have wic. Thus it makes more sense to
just call this variable unsupported now and drop the sole remaining
reference to it.
(From OE-Core rev: 46fef857d6c4ac25d89b71b542b019d0ed068c19)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If a log data cannot be decoded to utf-8 or read then handle this
gracefully. This can happen if a log file contains binary or something
goes wrong with the file open process.
(From OE-Core rev: 787ffc5e12f1639aa5e0917bb23deced53a0478e)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was added back in the depths of history (around 2006 in OE-Classic)
when apparently the host sed couldn't always be relied upon. We now call
the host sed all over the place without this dependency and don't have
any problems. On the other hand, having it around can lead to races
where we're calling sed in one task and staging it to the sysroot in
another, the result being nasty failures compiling binutils for example.
Since it isn't needed, let's just drop it completely.
Fixes [YOCTO #7264].
(From OE-Core rev: 863a3966e1a200e7a15fbdbb8e04dce6e3f6c1a2)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The newer btrfs-utils needs an empty file to build the filesystem in, so
create an empty file and use it for the mkfs to build the fs in.
[YOCTO #6804]
(From OE-Core rev: 224c24d8a8ea6230ed56ea61cdb86e78c5ec4311)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Using populate_sysroot for this data was a nice idea but flawed as it
doesn't work in multilib builds. Instead we can use PKGDATA_DIR since
this is consistent over multilib builds. It also turns out to be
slightly neater code too. Hopefully this resolves the problem once and
for all.
(From OE-Core rev: 6cccae3ca54c1177a1d91d23c3e151d74e735ee9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need the depmod data so that the kernel depmod command works successfully
at rootfs time. The fact this was working inconsistently is now highlighted
after the command was made to error out. A simple test case is:
bitbake virtual/kernel image
bitbake vrituak/kernel -c clean
bitbake image -c rootfs -f
We fix it by adding the missing dependency, the data is in PKGDATA_DIR and
hence we use packagedata.
(From OE-Core rev: 41f0f86ec0a3e0b6f6c9bb4ef71a4215c00bf66c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* it's not complete, but recipes depending on virtual/libx11 are easiest
to spot, I've long list of PNBLACKLIST for all recipes which cannot
be built in distro without x11 in DISTRO_FEATURES
(From OE-Core rev: fda535d5b5239b091c79e957f68a45d4eab0ab5d)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
--047d7b3a7fac0eebee050cb47483
Content-Type: text/plain; charset="UTF-8"
After we check the existence of 'machine_branch' with 'git show-ref'
the following if statement should change the 'machine_branch'
to the default (i.e. master) if the 'git show-ref' has returned an
exit code that is not 0, not the other way around.
Signed-off-by: Theodor Gherzan <theodor@resin.io>
(From OE-Core rev: cc95da21914d08bfbf1936830985f824e8813904)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The purpose of binconfig-disabled is to manipulate config scripts such that
using them causes errors. But that only works when the modified config script
really gets installed in the sysroot. That is not the case with the staging
code in binconfig.bbclass.
Only patched config files get staged. For that reason it seemed more
appropriate to change binconfig-disabled instead of binconfig.
The reason for the change was the observation that the swig recipe needs
pcre-config installed on the host system. Staging pcre-config removes that
host dependency. swig did not actually end up *using* the pcre-config from the
host, because later during do_compile the patched configure.ac is used to
re-generate configure.
(From OE-Core rev: 822df6d23c9c24e131c38fda9f0012c47ad7af46)
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Returning a non-zero exit code is not enough to cause errors when configure
scripts call the patched config scripts: for example, swig's configure script
uses PCRE_LIBS=`$PCRE_CONFIG --libs` and does not abort on errors. Using empty
output may then succeed, for example when the required library is available
indirectly.
Returning some nonsense command line arguments covers such cases, because
using them will definitely lead to errors during compilation. The faked
arguments were chosen such that these errors can be linked back to the root
cause.
(From OE-Core rev: d1ff61a16a3fcfdd7cf882bc89fb1d164cb1603a)
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For cpio images, do_rootfs() can operate on a dirty '${WORKDIR}/cpio_append'
directory which contains e.g. files from previous builds. This can cause
unwanted files in the image or can break the build.
E.g. when there is a cpio_append/init -> /sbin/init symlink symlink, the
'ln -sf' can fail due to SELinux restrictions:
| $ ls -la cpio_append/init
| lrwxrwxrwx. 1 ensc ensc 10 22. Jan 16:26 cpio_append/init -> /sbin/init
|
| $ strace ln -sf /sbin/init cpio_append/init
| ...
| stat("cpio_append/init", 0x7fffbb9ca310) = -1 EACCES (Permission denied)
| exit_group(1) = ?
Patch cleans up 'cpio_append' before executing the 'do_rootfs' task by
adding it to 'cleandirs'. An alternative implementation (which avoids
creation of this empty dir for non-cpio images) might remove it within
IMAGE_CMD_cpio, but this might break builds where people rely on the
existence of this directory (e.g. to add local files).
(From OE-Core rev: 4db3cc2360289c062fa0df4678f2f2ef990f0c1a)
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When /init is a dangling symlink or a symlink to a file which can not be
stated on the build system (e.g. due to SELinux restrictions), the '[ !
-e .../init ]' test will succeed which causes the manual creation of
/init.
E.g. here:
| $ ls -la cpio_append/init
| lrwxrwxrwx. 1 ensc ensc 10 22. Jan 16:26 cpio_append/init -> /sbin/init
|
| $ strace /bin/test -e cpio_append/init
| stat("cpio_append/init", 0x7fff374a9db0) = -1 EACCES (Permission denied)
| exit_group(1) = ?
To test for the existence of a file, both '-L' and '-e' checks must be
executed and to prevent SELinux noise, the '-L' should happen before
'-e'.
(From OE-Core rev: 2aa5d2880ee3578f4965f245addd365fb7b1c1ca)
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With the rpm package backend enabled, running:
bitbake <image>
bitbake virtual/kernel -c clean
bitbake <image> -c rootfs -f
results in an image with incorrect kernel module dependency information.
The problem is that the System.map and kernel-abiversion files are needed
for depmod and after the recent kernel changes, these are no longer in
sstate.
Its reasonable to require the kernel to unpack/build if you're
about to build a module against it. It is not reasonable to require this
just to build a rootfs.
Therefore stash the needed files specifically for depmod.
Also fix some STAGING_KERNEL_DIR references which were incorrect, found
whilst sorting through his change.
(From OE-Core rev: b851504dcf5e147c9efb1c7b6a4d22c1a1a87cd7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
PV is the package version as we need it to be during the build. PKGV is the
final version as it ends up in the package, and defaults to PV.
The packager handled builds without PR-server by replacing the AUTOINC string
in PKGV, but when the PR-server is being used, the script replaces the contents
of PKGV with the PV if the PV contains "AUTOINC". Thus the packager overrides
any change to PKGV the recipe might have made.
This breaks classes like gitpkgv that provide a correctly numbered PKGV, the
number as calculated by that class will simply be replaced with a 0-based index
from the PR-server.
This patch makes the packager look at the PKGV version instead of the PV, and
update the PKGV only based on the PKGV contents as set by the recipe.
See also the discussion here:
http://lists.openembedded.org/pipermail/openembedded-core/2015-January/100329.html
From investigating the history of the code and changes in the past year, the
use of "pv" instead of "pkgv" appears to be just an oversight, introduced in:
commit b27b438221e16ac3df6ac66d761b77e3bd43db67 "prs: use the PRServer to replace the BB_URI_LOCALCOUNT functionality"
A later commit 865d001de168915a5796e5c760f96bdd04cebd61 "package/prserv: Merge two similar functions into one"
silently fixed this only for the case without PR-server by using pkgv there.
(From OE-Core rev: 7895c0a67d381ff66668fca5207bd196f36c91db)
Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove bash specific syntax '[[ test ]]' replaced with '[ test ]'.
Fixes [YOCTO #7112]
(From OE-Core rev: f2ff849d5936d3dc5e24301e0620da265df50fea)
Signed-off-by: Vincent Génieux <vincent2014@startigen.fr>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently base.bbclass is creating S if it's not created by unpacking
an archive or fetching a repository. If we avoid creating S we can detect
when S hasn't been set correctly, since it will not exist. Then we can tell
the user that they should set S to a proper value, instead of just failing
with odd errors in later tasks.
Besides removing the auto-creation of S this change will introduce a warning
if S is set incorrectly. The reason for not display an error and return
is due to all external layers that might have recipes that will fail otherwise
and that might be a bit to hard to start with. So use a warning until people
have had a chance to cleanup affected recipes.
[YOCTO #5627]
(From OE-Core rev: 0d84b9a8ba408d168cb8a92e895d2f7338d6da1b)
Signed-off-by: Petter Mabäcker <petter@technux.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It makes us easier to see make clean failed.
(From OE-Core rev: c34d9e66a1a97952965128ab84c691202a60985b)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* n is a tuple since this commit:
commit d3aa7668a9f001044d0a0f1ba2de425a36056102
Author: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Mon Jul 7 18:41:23 2014 +0100
Subject package.bbclass: Improve shlibs needed data structure
since then 'n in private_libs' was always false and private libs
were always processed
* this is bad when we have libfoo in private libs, but also some package
providing libfoo, that way we ship own libfoo.so, but together with
runtime dependency on package providing libfoo
(From OE-Core rev: ec1d379683cedca4be1c252475d02c8041227142)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Always use use_icc to check if IceCC should be enabled. Move
ICECC_DISABLED variable checking to use_icc function. Also while we are
at it, fix condition in icc_is_allarch function.
(From OE-Core rev: 20b0168da47d6e30fcbaf6adab3bde0d398d0d00)
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There are some cases we want the manipulation cross-canadian performance
on TARGET_OS, there are also cases like meta-environment where we do not
want this manipulation.
We did try and use immediate expansion to avoid this problem and it
works in the non multilib case. If we have a multilib that used an
extension, like for example:
require conf/multilib.conf
MULTILIBS = "multilib:lib32 multilib:lib64"
DEFAULTTUNE = "mips32r2"
DEFAULTTUNE_virtclass-multilib-lib32 = "mips64-n32"
DEFAULTTUNE_virtclass-multilib-lib64 = "mips64"
then the n32 extension case will be misconfigured.
It turns out saving an unexpanded variable is hard. The best I could
come up with was:
SAVEDTOS := "${@d.getVar('TARGET_OS', False).replace("{", "*")}"
and then
localdata.setVar("TARGET_OS", d.getVar("SAVEDOS", False).replace('*','{'))
which is rather evil, I'd challenge someone to come up with a nicer way
of making it work though!
Rather than the above madness, we modify cross-canadian to make the
problamtic code conditional.
This fixes the original issue (where a linux-gnuspe target was seeing
'linux') of
http://cgit.openembedded.org/openembedded-core/commit/?id=0038634ee6e2b6035c023a2702547f20f67c103a
but also fixes the multilib one.
(From OE-Core rev: 85ff3d6491c54aa712ed238c561742cda4f4ba07)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
guilt is no longer used to manage linux-yocto kernel pathes, so
we no longer need to export variables that it needed to locate
patches in the tree.
(From OE-Core rev: eb0209360d14b57fbef6fa20bdd9948e8337f24b)
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>
Fixes [YOCTO 6818]
Update do_unpack[cleandirs] to include the STAGING_KERNEL_BUILDDIR, and
add the same set of updated cleandirs for do_clean.
(From OE-Core rev: 0726f8099c1407eea9e53a62be94defbab32265e)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
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>
commit 3b3f7e785e279 [kernel: Rearrange for 1.8] began the process of
moving the kernel source and build artefacts out of sstate control and
into a shared location.
This changed triggered some workflow issues, as well as bugs related
to the kernel source containing build output, and hence being dirty and
breaking kernel rebuilds.
To solve these issues, and to make it clear that the kernel is not under
sstate control, we move the source and build outputs to:
work-shared/MACHINE/kernel-source
work-shared/MACHINE/kernel-build-artifacts
Where kernel-build-artifacts is the kernel build output and
kernel-source is kept "pristine". The build-artifacts contain everything
that is required to build external modules against the kernel source,
and includes the defconfig, the kernel-abiversion, System.map files and
output from "make scripts".
External module builds should either pass O= on the command line, or
set KBUILD_OUTPUT to point to the build-artifacts. module-base.bbclass
takes care of setting KBUILD_OUTPUT, so most existing external module
recipes are transparently adapted to the new source/build layout.
recipes that depend on the kernel source must have a depedency on the
do_shared_workdir task:
do_configure[depends] += "virtual/kernel:do_shared_workdir"
With this dependency added, the STAGING_KERNEL_DIR will be populated and
available to the rest of the build.
(From OE-Core rev: 6a1ff0e7eacef595738f2fed086986fd622ec32a)
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>
Old Linux kernel versions rely on linux/version.h for modules; this
needs to be published for external modules to use. Copy it when
available.
(From OE-Core rev: 78226efe72c8221206594c70fa1d8742d4097af1)
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>
When the sstate hash changes for do_configure task, the do_configure
default implementation triggers the 'clean' to be run. For it to
succeed we need to have KERNEL_SRC defined in EXTRA_OEMAKE. Fixes
following error:
,----
| DEBUG: Executing shell function do_configure
| NOTE: make -e MAKEFLAGS= clean
| make -C M=.../tmp/work/... clean
| make[1]: *** M=.../tmp/work/...: No such file or directory. Stop.
| Makefile:20: recipe for target 'clean' failed
| make: *** [clean] Error 2
| ERROR: oe_runmake failed
`----
(From OE-Core rev: bc0f58f0713ea7db3c4c24a7d321435934d745d7)
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>
The do_configure may eventually call 'make clean' when the sstate
signature does not match. We should respect EXTRA_OEMAKE when doing
so, so use 'oe_runmake' for it.
(From OE-Core rev: 29cd284cab63fb1f6e82ad90bc8c92c1bbcafa88)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A previous change meant image/sdk recipes were removed unconditionally
by the class and did not respect RM_WORK_EXCLUDE. This fixes that
problem.
[YOCTO #7114]
(From OE-Core rev: 050de16968fe6efeba5d64761b11512549e9fdc2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The desktop-file-utils-native lacks a space.
(From OE-Core rev: 95f7d2c8fd5ee6ad0b7d202906073066f35a268d)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* slash at the end causes os.symlink(kernsrc, s) to use s as
directory name and fails with:
ERROR: Error executing a python function in /OE/build/owpb/webos-ports/meta-smartphone/meta-samsung/recipes-kernel/linux/linux-samsung-tuna_git.bb:
The stack trace of python calls that resulted in this exception/failure was:
File: 'base_do_unpack', lineno: 26, function: <module>
0022: subprocess.call(d.expand("mv /OE/build/owpb/webos-ports/tmp-glibc/work/maguro-webos-linux-gnueabi/linux-samsung-tuna/3_3.0.72+gitrAUTOINC+f8ed73f94a-r12/git/ /OE/build/owpb/webos-ports/tmp-glibc/sysroots/maguro/usr/src/kernel"), shell=True)
0023: os.symlink(kernsrc, s)
0024:
0025:
*** 0026:base_do_unpack(d)
0027:
File: 'base_do_unpack', lineno: 23, function: base_do_unpack
0019: bb.utils.mkdirhier(kernsrc)
0020: bb.utils.remove(kernsrc, recurse=True)
0021: import subprocess
0022: subprocess.call(d.expand("mv /OE/build/owpb/webos-ports/tmp-glibc/work/maguro-webos-linux-gnueabi/linux-samsung-tuna/3_3.0.72+gitrAUTOINC+f8ed73f94a-r12/git/ /OE/build/owpb/webos-ports/tmp-glibc/sysroots/maguro/usr/src/kernel"), shell=True)
*** 0023: os.symlink(kernsrc, s)
0024:
0025:
0026:base_do_unpack(d)
0027:
Exception: OSError: [Errno 2] No such file or directory
ERROR: Function failed: base_do_unpack
ERROR: Logfile of failure stored in: /OE/build/owpb/webos-ports/tmp-glibc/work/maguro-webos-linux-gnueabi/linux-samsung-tuna/3_3.0.72+gitrAUTOINC+f8ed73f94a-r12/temp/log.do_unpack.17042
ERROR: Task 0 (/OE/build/owpb/webos-ports/meta-smartphone/meta-samsung/recipes-kernel/linux/linux-samsung-tuna_git.bb, do_unpack) failed with exit code '1'
(From OE-Core rev: dba30c2395792b553b69ce0b44cc75ff2dbdb317)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The set_image_autologin function is GPE Login specific and the package
is not available in OE-Core so the function should be added in the
meta-gpe layer, if necessary. Drop this from the OE-Core as it is
unused.
(From OE-Core rev: a7191a7018c1fe43fe35a894a09d2a165af1a4d2)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| CMake Error at /home/a.mueller/tmp/oe-core-glibc/sysroots/x86_64-linux/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
| Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)
[RP: Added comment that is used by cmake]
(From OE-Core rev: 66455b8a0758176996028bf23f04391c7baf8abd)
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
New version of systemd implements a new feature of updating /etc
or /var when needed at boot. For details, please see link below.
Opointer.de/blog/projects/stateless.html
For now, at boot time, the systemd-sysusers.service would update user
database files (/etc/passwd, /etc/group, etc.) according to the configuration
files under /usr/lib/sysusers.d. This step is necessary for other systemd
services to work correctly. Examples of such services are systemd-resolved
and systemd-tmpfiles-setup.
The problem is that on a read-only file system, that is, if /etc is read-only,
the user database files could not be updated, causing failures of services.
This patch fixes this problem by adding users/groups at rootfs time.
(From OE-Core rev: 2501c2f03f24fbbefd9999dd444318704d8aa8c2)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixed:
* The os.link() reqiures write permission on the src file (suppose the
src file belongs to another user, then you need write permission to harlink to
it since the link count would change)
* Print more info when failed to copy
The warning was like:
WARNING: Could not copy license file COPYING: [Errno 1] Operation not permitted
We couldn't know which recipe print the warning from this message.
(From OE-Core rev: ebc185186c36fe839008d94dbfb779383df960c7)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add check_license_format function that shows warning if LICENSE don't have
valid operators and also if have space separated entries without operator,
add check_license_format validation into base class.
[YOCTO #6758]
(From OE-Core rev: 346a023a42f127881476e760e8fa4e04303849b9)
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>