Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This wks is just a copy of gummiboot wks with bootloader
changed to systemd-boot. A very basic boot test on a X86
target is done with a direct-boot image generated by:
Because we plan to replace gummiboot with systemd-boot at any
time in the future, we summarize history (as much as I can) of
the current gummiboot wks before it's gone:
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-----------------------------------------------------------------
wic: add systemd-boot option in EFI boot image plugin
The new systemd-boot enabled in OE is the old gummiboot
merged into systemd project. Our intention is to replace
gummiboot with systemd-boot in OE once every feature based
on gummiboot is supported with systemd-boot.
Before we can purge gummiboot, we temporarily keep both of
the two bootloaders supported.
Patch doesn't do replacement for every "gummi" occurrence.
We think cleaning can be done in background after we disable
people to use gummiboot, so we just keep change small and
safe this time.
We explicitly set the hash style to gnu in our LDFLAGS. Setting the default to
this in the toolchain, while convenient, actually hides bugs, as a failure to
obey LDFLAGS isn't noticed. By removing this, it's not dissimilar to how we
poison the sysroot -- rather than relying on the default, notice right away if
somoeone isn't obeying the needed flags.
This will result in a failure to obey LDFLAGS causing a GNU_HASH QA failure,
which is what's often seen with external toolchains. This brings us all on the
same page, and makes sure a failure to obey LDFLAGS is seen early.
This is limited to cross, to retain ease of use for SDKs.
Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>
Ed Bartosh [Mon, 11 Jul 2016 09:43:09 +0000 (12:43 +0300)]
sstate.bbclass: make PV to depend on PV variable value
Currently PV is defined in meta/conf/bitbake.conf as a python
expression: "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE',
False),d)[1] or '1.0'}". As FILE is whitelisted it causes PV to
not depend on it. This causes sstate code to not detect that
PV changes when recipe filename changes.
Making PV to explicitly depend on PV variable value overrides default
behaviour. Instead of depending on python expression bitbake depends
on evaluated value of PV variable, which should fix the above
mentioned issue.
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
python{3}-numpy: Predefine of sizeof off_t on mips/mipsel/ppc
Fixes below errors as seen on musl
| In file included from numpy/core/include/numpy/ndarraytypes.h:4:0,
| from numpy/core/include/numpy/ndarrayobject.h:18,
| from numpy/core/include/numpy/arrayobject.h:4,
| from numpy/core/src/multiarray/compiled_base.c:7:
| numpy/core/include/numpy/npy_common.h:167:10: error: #error Unsupported size for type off_t
| #error Unsupported size for type off_t
| ^~~~~
| In file included from numpy/core/include/numpy/ndarraytypes.h:4:0,
| from numpy/core/include/numpy/ndarrayobject.h:18,
| from numpy/core/include/numpy/arrayobject.h:4,
| from numpy/core/src/multiarray/compiled_base.c:7:
| numpy/core/include/numpy/npy_common.h:167:10: error: #error Unsupported size for type off_t
| #error Unsupported size for type off_t
| ^~~~~
linux-yocto: Enable debug/printk.scc KERNEL_FEATURE on qemuall machines.
We are experimenting some issues in the Autobuilder infraestructure
possible due to high I/O loads, in order to provide more information
about intervals of times in printk enable by default debug/printk.scc
on qemu development images.
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Maxin B. John <maxin.john@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>
image_types.bbclass: support template .wks.in files for wic
These files are treated as the contents of a bitbake variable, so usual
bitbake variable references are supported. I considered using another
templating mechanism, for example the one used by yocto-layer, but then we'd
end up largely mapping metadata variables to template fields anyway, which is
a pointless indirection. Let bitbake expand the variables directly instead.
This feature lets us, for example, reference ${APPEND} in --append, and avoid
hardcoding the serial console tty in the wks file, and let the user's changes
to APPEND affect wic the way they do the other image construction mechanisms.
The template is read in and set in a variable at parse time, so changes to the
variables referenced by the template will result in rebuilding the image.
Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Fri, 8 Jul 2016 16:41:46 +0000 (12:41 -0400)]
linux-yocto/4.4: pwm and mei updates
Backporting upstream mei changes, and two pwm changes from
Mika Westerberg's pwm-4.4 branch:
pwm: lpss: Prevent on_time_div overflow on lower frequencies
pwm: lpss: fix base_unit calculation for PWM frequency
mei: don't use wake_up_interruptible for wr_ctrl
mei: fix waiting for wr_ctrl for corner cases.
mei: don't clean control queues on notify request timeout
mei: drop global me_client_index
mei: do not pin module if cldrv->probe() failed
mei: bus: use scnprintf in *_show
mei: fix format string in debug prints
mei: fix double freeing of a cb during link reset
mei: wd: drop AGAIN the watchdog code from the core mei driver
mei: split amthif client init from end of clients enumeration
mei: hbm: send immediate reply flag in enum request
mei: bus: run rescan on me_clients list change
mei: drop reserved host client ids
mei: hbm: warn about fw-initiated disconnect
mei: fixed address clients for the new platforms
mei: fill file pointer in read cb for fixed address client
mei: discard replies from unconnected fixed address clients
mei: clean write queues and wake waiters on disconnect
mei: wake blocked write on link reset
mei: drop superfluous closing bracket from write traces
mei: bus: fix notification event delivery
mei: bus: fix RX event scheduling
mei: amthif: interrupt reader on link reset
mei: amthif: use rx_wait queue also for amthif client
mei: amthif: drop parameter validation from mei_amthif_write
mei: amthif: replace amthif_rd_complete_list with rd_completed
mei: amthif: allow only one request at a time
mei: rename variable names 'file_object' to fp
mei: constify struct file pointer
mei: amthif: don't drop read packets on timeout
mei: amthif: don't copy from an empty buffer
mei: call stop on failed char device register
mei: fix possible integer overflow issue
mei: debugfs: allow hbm features list dump in earlier stages
mei: debugfs: adjust active clients print buffer
mei: trace pci configuration space io
watchdog: mei_wdt: re-register device on event
watchdog: mei_wdt: register wd device only if required
mei: bus: whitelist the watchdog client
watchdog: mei_wdt: add status debugfs entry
watchdog: mei_wdt: implement MEI iAMT watchdog driver
mei: wd: drop the watchdog code from the core mei driver
mei: drop nfc leftovers from the mei driver
mei: always copy the read buffer if data is ready
mei: prevent queuing new flow control credit.
mei: bus: remove redundant uuid string in debug messages
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Eric Ernst <eric.ernst@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>
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>
Bruce Ashfield [Thu, 7 Jul 2016 18:39:07 +0000 (14:39 -0400)]
linux-yocto/config: mei, gpio and usb type c
Merging the following configuration changes into the 4.1 and
4.4 linux-yocto kernel meta data:
mei.cfg: mei driver is no longer in staging
bsp/intel-common: add keyboard-gpio to intel-common-drivers
features/thermal: Enable Intel PMIC thermal feature
broxton: Enable USB Type C feature for broxton
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>
Bruce Ashfield [Thu, 7 Jul 2016 18:39:05 +0000 (14:39 -0400)]
linux-yocto/4.1/4.1: mei, usb and extcon changes
Backporting the following mainline changes to the 4.1 and 4.4
kernels:
device property: Avoid potential dereferences of invalid pointers
device property: convert to use match_string() helper
lib/string: introduce match_string() helper
device property: fix for a case of use-after-free
device property: fwnode->secondary may contain ERR_PTR(-ENODEV)
xhci: harden xhci_find_next_ext_cap against device removal
xhci: rework xhci extended capability list parsing functions
xhci: parse xhci protocol speed ID list for usb 3.1 usage
extcon: Redefine the unique id of supported external connectors without 'enum extcon' type
extcon: Remove optional print_name() function pointer of extcon_dev
extcon: Update the prototype of extcon_register_notifier() with enum extcon
extcon: Use capital letter for the name of external connectors
extcon: Use the unique id for external connector instead of string
extcon: Remove the optional name of extcon device
extcon: adc-jack: Remove the unneeded num_cables field
extcon: Alter MHL-TA cable name to TA cable name
extcon: Unify the dock device names on max8997/77693
extcon: Unify the jig cable names on rt8973 and max14577/77693/77843
extcon: Fix the checkpatch warning and minor coding style issue
extcon: Add extcon_get_edev_name() API to get the extcon device name
extcon: Modify the device name as extcon[X] for sysfs
extcon: Add manufactor name of each extcon device
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>
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>
Ed Bartosh [Mon, 18 Jul 2016 16:07:18 +0000 (19:07 +0300)]
bitbake: bitbake: main: implement server autostart feature
If environment variable BBSERVER == 'autostart' bitbake will
automatically load server if it's not running yet.
If host and port are in bitbake.lock then bitbake tries to check
if server is running and responses to commands and starts new
server only if this check fails.
Ed Bartosh [Mon, 18 Jul 2016 16:07:16 +0000 (19:07 +0300)]
bitbake: bitbake: xmlrpc: implement check of connection to server
Implemented check_connection function. The purpose of this function
is to check if bitbake server is accessible and functional.
To check this this function tries to connect to bitbake server and
run getVariable command.
This API is going to be used to implement autoloading of bitbake
server.
Scott Rifenbark [Thu, 14 Jul 2016 19:54:34 +0000 (12:54 -0700)]
ref-manual: Added review changes to BBCLASSEXTEND description
Fixes [YOCTO #9909]
Added some technical clarifications to the existing note to be clear
about what is causing the limitations in this case. Applied some
formatting fixed to for the use of the include word.
Ed Bartosh [Tue, 12 Jul 2016 18:19:03 +0000 (11:19 -0700)]
toaster-manual: splitted long line
The TOASTER_DIR=... checksettings line is too long and got truncated
when documenation in pdf format is made. Splitting it to two lines
should fix this.
Ed Bartosh [Tue, 12 Jul 2016 18:05:59 +0000 (11:05 -0700)]
toaster-manual: add OpenSUSE to the list of distros
Updated instructions of restarting apache. As OpenSUSE way of
restarting apache is the same as Ubuntu and Debian it's enough to
just add OpenSUSE to the list of distros.
Ed Bartosh [Tue, 12 Jul 2016 17:47:55 +0000 (10:47 -0700)]
toaster-manual: update runbuilds instructions
Added sample configuration files and instructions for the runbuilds
systemd service. Service runs runbuilds in a screen session for user
convenience. User can attach to the session to see the runbuilds
output, monitor logs and build environment.
Ed Bartosh [Tue, 12 Jul 2016 17:25:33 +0000 (10:25 -0700)]
toaster-manual: change mysql driver
Here is a quote from Django 1.9 documentation regarding this:
mysqlclient is a fork of MySQLdb which notably supports Python 3
and can be used as a drop-in replacement for MySQLdb. At the time
of this writing, this is the recommended choice for using MySQL
with Django.
Ed Bartosh [Tue, 12 Jul 2016 17:14:29 +0000 (10:14 -0700)]
toaster-manual: update list of packages
Changed mod_wsgi package names as Toaster requires python 3 version
of mod_wsgi. Added missing python3-pip, mariadb-server, mariadb-devel
and python3-devel to the list of packages for Fedora.
brian avery [Tue, 12 Jul 2016 17:04:34 +0000 (10:04 -0700)]
toaster-manual: Switch to pip3 dependency installer
Our switch to python3 requires us to dump the virtualenv approach
as long as we need python to resolve to python2 in the same shell
that python3 resolves to python3. To enable users to install
Toaster's python package dependencies locally, we are changing to
using pip3 and these doc changes explain how to do that.
Scott Rifenbark [Mon, 11 Jul 2016 23:04:19 +0000 (16:04 -0700)]
ref-manual: Added a new section on setscene task variants
Fixes [YOCTO #9251]
I added a new section on the task variants for setscene, which uses
the shared state cache. The section describes the BitBake processing
that helps the build system to not have to build everything from scratch.
Scott Rifenbark [Wed, 29 Jun 2016 15:32:49 +0000 (08:32 -0700)]
ref-manual: Updated the PR variable description.
Fixes [YOCTO #9843]
The variable description was very brief. These changes added some
substance to the description and how the OpenEmbedded build system
uses the variable.
Scott Rifenbark [Tue, 28 Jun 2016 19:46:38 +0000 (12:46 -0700)]
ref-manual: Updated the flag descriptions for shared state details
Fixes [YOCTO 9823]
I added more details to the explanations of how shared state is
implemented. Included a bulleted list of the various statements
of code to help explain flags and settings.
Scott Rifenbark [Tue, 21 Jun 2016 21:26:58 +0000 (14:26 -0700)]
ref-manual: Updated the DISTRO_FEATURES description of Bluez5
Edits to explain that by default, DISTRO_FEATURES backfills
bluetooth support with Bluez5. If the user wants to use the
Bluez4 feature, they need to backfill consider Bluez5.
Paul Eggleton [Wed, 6 Jul 2016 04:26:10 +0000 (16:26 +1200)]
bitbake: fetch2: implement progress support
Implement progress reporting support specifically for the fetchers. For
fetch tasks we don't necessarily know which fetcher will be used (we
might initially be fetching a git:// URI, but if we instead download a
mirror tarball we may fetch that over http using wget). These programs
also have different abilities as far as reporting progress goes (e.g.
wget gives us percentage complete and rate, git gives this some of the
time depending on what stage it's at). Additionally we filter out the
progress output before it makes it to the logs, in order to prevent the
logs filling up with junk.
At the moment this is only implemented for the wget and git fetchers
since they are the most commonly used (and svn doesn't seem to support
any kind of progress output, at least not without doing a relatively
expensive remote file listing first).
Line changes such as the ones you get in git's output as it progresses
don't make it to the log files, you only get the final state of the line
so the logs aren't filled with progress information that's useless after
the fact.
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>
Elliot Smith [Tue, 12 Jul 2016 22:54:28 +0000 (15:54 -0700)]
toaster.bbclass: only scan files-in-image.txt if it exists
We can reach the method in toaster.bbclass which tries to read from
the files-in-image.txt file via a build which doesn't create that
file (e.g. "bitbake core-image-minimal -c rootfs"). This causes
the build to fail with an exception.
Check that this file exists before trying to read from it.
Elliot Smith [Tue, 12 Jul 2016 22:54:27 +0000 (15:54 -0700)]
toaster.bbclass: remove directory scan logic for detecting artifacts
toaster.bbclass does a scan of the image deploy and SDK directories
when a build finishes. However, this brings no benefit and could be
better managed and made easier to modify if moved to toasterui and
carried out when the BuildCompleted event occurs.
Remove the image scan code from toaster.bbclass, prior to moving it
to toasterui and buildinfohelper.
Also remove the license manifest update code, as this can also be
done from toasterui.
The postfuncs for do_populate_sdk are retained, but no longer
do the directory scan for SDK artifacts. Instead, they fire
an event with the value of the TOOLCHAIN_OUTPUTNAME variable,
as this is only accessible at the point when the do_populate_sdk
and do_populate_sdk_ext tasks are run. The value of this can then
be used by buildinfohelper to find the SDK artifacts produced by a
target.
Elliot Smith [Tue, 12 Jul 2016 22:54:56 +0000 (15:54 -0700)]
bitbake: toaster-tests: add tests for build artifact display on build dashboard
Add tests for display of image, kernel and SDK artifacts on the
build dashboard, checking that the "Images" option in the left-hand
menu and the "Build artifacts" section display correctly for
different types of build.
Also add metadata to elements on the build dashboard so it's clearer
what they represent, and to assist in finding them in the tests.
Add a method to the test helper to make it more convenient to check
whether a single element matching a selector exists.
Elliot Smith [Tue, 12 Jul 2016 22:54:55 +0000 (15:54 -0700)]
bitbake: toaster: the customise image button shouldn't rely on targets
The build dashboard customise image button (for creating a new
custom image based on an image recipe used by a build) shouldn't
rely on targets: whether a new custom image can be created or not
depends on whether any of the recipes used by the build are image
recipes.
Modify the method used to determine whether a build has customisable
images to look at the image recipes used during the build, rather
than whether the targets run by the build refer to image recipes.
Elliot Smith [Tue, 12 Jul 2016 22:54:54 +0000 (15:54 -0700)]
bitbake: toaster: add package manifest path to Target objects
Store the path to the *.rootfs.manifest file for targets which
generate images.
A link to the package manifest is displayed in the build dashboard
for targets which produce image files.
Like the license manifest path, if a target would have produced
the package manifest (but didn't, because it already existed), that
path is copied from the target which did produce the package
manifest.
Elliot Smith [Tue, 12 Jul 2016 22:54:53 +0000 (15:54 -0700)]
bitbake: toaster: better display of targets which produced no images
SDK targets (populate_sdk) produce SDK artifacts but no image files.
Currently, these targets appear under the "Images" heading in the
build dashboard, even though they aren't strictly image targets.
Change the heading to "Build artifacts". Also remove the section
which states that a build produced no image files: this is not
correct for populate_sdk targets (those targets don't produce
image files under any circumstances); and other changes mean
that all targets which do produce images will now show those
files.
The check for whether to display the "Build artifacts" section also
needs to change, as we show targets here which didn't produce any
images but did produce SDK artifacts.
Elliot Smith [Tue, 12 Jul 2016 22:54:51 +0000 (15:54 -0700)]
bitbake: toaster: only show "New custom image" button for builds with image targets
Add a has_image_targets() method to Build, and use that to hide
the "New custom image" button on the build dashboard if a build
has no targets which build images.
Elliot Smith [Tue, 12 Jul 2016 22:54:50 +0000 (15:54 -0700)]
bitbake: toaster: use has_images() methods to display images correctly
In the build dashboard, we had issues with showing images correctly,
as we were using the is_image property of targets to determine
whether a target would have image files. This property can
be set to True if a target refers to an image recipe
(e.g. "core-image-minimal"), even if the task used in the build
didn't produce any image files.
By adding has_images() methods to the Target and Build objects,
which count associated Target_Image_File objects,
we can correctly determine whether a target has image files
associated with it, and if any of the targets for a build has
image files. This means that we can screen out the left-hand
"Images" menu options for builds which contained image-related
targets (e.g. "core-image-minimal") but which didn't produce
any images (e.g. "rootfs" task).
Elliot Smith [Tue, 12 Jul 2016 22:54:49 +0000 (15:54 -0700)]
bitbake: buildinfohelper: only record image files for tasks which make images
If a target is built which is classified as an "image" target
(e.g. "core-image-minimal"), Toaster reads the list of files in
the image (from the files-in-image.txt file).
However, Toaster continues to do this for builds which don't
produce images, if the recipe providing the target is an
image recipe. This can result in a list of files in the image
being attached to a target which didn't produce an image (e.g.
rootfs).
When associating files with an image, ensure that only targets
with a task which produces an image have "files in the image"
associated with them.
Elliot Smith [Tue, 12 Jul 2016 22:54:48 +0000 (15:54 -0700)]
bitbake: toaster: improve scan for SDK artifacts
SDK artifacts were previously picked up by toaster.bbclass and
notified to buildinfohelper (via toasterui). The artifacts
were then added to the Build object, so that it wasn't clear
which artifact went with which target; we were also unable
to attach SDK artifacts to a Build if they had already been
attached to a previous build.
Now, toaster.bbclass just notifies the TOOLCHAIN_OUTPUTNAME when
a populate_sdk* target completes. The scan is moved to buildinfohelper,
where we search the SDK deploy directory for files matching
TOOLCHAIN_OUTPUTNAME and attach them to targets (not builds).
If an SDK file is not produced by a target, we now look for a
similar, previously-run target which did produce artifacts.
If there is one, we clone the SDK artifacts from that target
onto the current one.
This all means that we can show SDK artifacts by target, and should
always get artifacts associated with a target, regardless of whether
it really build them.
This requires an additional model, TargetSDKFile, which tracks
the size and path of SDK artifact files with respect to Target
objects.
Elliot Smith [Tue, 12 Jul 2016 22:54:47 +0000 (15:54 -0700)]
bitbake: buildinfohelper: fix retrieval of targets
When buildinfohelper records the targets for a build, it looks
up any existing targets for a build and creates them if they
are not present. This is because in the case of Toaster-triggered
builds, the Target objects have already been created (inside
triggerBuild()) and don't need to be recreated; but in the case
of cli builds, the Target objects have to be created by
buildinfohelper.
The issue is that the code for retrieving an existing target for
a build only looks for Targets with a matching target and build,
e.g. Targets for build X with target "core-image-minimal". But it
is perfectly legitimate to call bitbake with a command like
"bitbake core-image-minimal:do_populate_sdk
core-image-minimal:do_populate_sdk_ext". In such a case, the
code which looks for matching targets finds two objects, as it
doesn't filter by task.
Add the task into the filter for the Target so that only one
Target object is be returned. Note that a command
line like "bitbake recipe:task recipe:task" will still cause an
error as bitbake doesn't de-duplicate the command line arguments
and will run the recipe:task combination twice.
Elliot Smith [Tue, 12 Jul 2016 22:54:46 +0000 (15:54 -0700)]
bitbake: toaster: attach kernel artifacts to targets
The bzImage and modules files were previously attached to a build,
rather than to the target which produced them. This meant it was
not possible to determine which kernel artifact produced by a
build came from which target; which in turn made it difficult to
associate existing kernel artifact with targets when those
targets didn't produce artifacts (e.g. if the same machine + target
combination was built again and didn't produce a bzImage or modules
file because those files already existed).
By associating kernel artifacts with the target (via a new
TargetArtifactFile model), we make it possible to find all
the artifacts for a given machine + target combination. Then, in
cases where a build is completed but its targets don't produce
any artifacts, we can find a previous Target object with the same
machine + target and copy its artifacts to the targets for a
just-completed build.
Note that this doesn't cover SDK artifacts yet, which are still
retrieved in toaster.bbclass and show up as "Other artifacts",
lumped together for the whole build rather than by target.
Refactor retrieval of suffix from image file path, making it a
a method on Target_Image_File. This makes it easier to use this
in the build dashboard for individual images, plus reduces the
complexity of the code required to get all of the image file
suffixes for a build.
Robert Yang [Mon, 18 Jul 2016 03:42:51 +0000 (20:42 -0700)]
bitbake: lib/bb/utils.py: return sorted OrderedDict in explode_dep_versions2
The OrderedDict's item is sorted by insertion order, there might be a
problem when build the same recipe again, for example:
- First build of acl:
Depends: libattr1 (>= 2.4.47), libc6 (>= 2.24)
- Second build of acl:
Depends: libc6 (>= 2.24), libattr1 (>= 2.4.47)
They are exactly the same depends, but tools like "diff" doesn't think
so. Return sorted OrderedDict will fix the problem.
Paul Eggleton [Fri, 15 Jul 2016 08:54:30 +0000 (20:54 +1200)]
bitbake: knotty: avoid errors when fetching outside of a task
In a few places we use the fetcher code to fetch files outside of a
task, for example uninative in OE. In that case the pid of the event is
0 and that was causing an error in BBUIHelper.eventHandler(). Check the
pid and do nothing if it's 0.
Ross Burton [Thu, 14 Jul 2016 18:56:22 +0000 (19:56 +0100)]
bitbake: build: don't use $B as the default cwd for functions
When bitbake executes a shell or Python function it can cd/chdir() into a
directory before executing the task. If no directory is specified then the
default of $B is used. However $B is an OpenEmbedded variable and BitBake
shouldn't be aware of it.
To solve this change the semantics slightly so that if no directory is
specified, the current working directory isn't changed. There's also a sanity
check that emits a warning if a Python task does os.chdir() without restoring
the old path, and the previous working directory is restored.
This does change semantics: whereas before a function in OE would have $B as the
working directory unless specified, now the working directory is the top of the
build tree. Any breakage this causes can be solved by either adding
do_some_task[dirs] = "${B}" or by using absolute paths in the task.
Ross Burton [Fri, 15 Jul 2016 10:25:42 +0000 (11:25 +0100)]
bitbake: lib/bb/build.py: decode the command as UTF-8
The messaging FIFO is UTF-8, so decode the command as UTF-8 as well as the value
as otherwise "bberror" != b("bberror") and none of the messages from shell
functions are ever displayed.
Also add an else to the command parser so unhandled commands are noticed.
In Python3 the itertools module's imap function has been migrated to the
globalname space as map(). Calling itertools.imap() will fail because it
no longer exists.
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>