bitbake.git
5 years agosiggen: Remove fsync that is causing performance issues
Richard Purdie [Sat, 18 Jan 2014 23:23:02 +0000 (23:23 +0000)]
siggen: Remove fsync that is causing performance issues

This fsync was added for belt and braces protection for things like sstate
on NFS. To be honest, it probably doesn't buy much, if the rename isn't
atomic, all bets are off anyway and there are bigger issues to worry about.

The issue is that at the end of every task, the dump_sig() code is triggered
to save out information about the task and this was triggering an fsync(fd).

Whilst it may select the file descriptor, on file systems like ext4, it will
require large parts of the journal to be written out so it can have
significant impact. latencytop showed an average fsync() call overhead of about
2s and if that happens for 5000 tasks, the time mounts up. This blocks the next
task execution by that time.

We therefore drop the fsync since in reality its causing problems and is unlikely
to buy much.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoaster: Toaster GUI, generic search, filter and order
Alexandru DAMIAN [Tue, 7 Jan 2014 13:10:42 +0000 (13:10 +0000)]
toaster: Toaster GUI, generic search, filter and order

This patch implements table searching, filtering and ordering, in a
generic mode reusable for all tables.

The search operates list of fields defined in the corresponding
class for each model, search_allowed_fields.

The search expression and filters are sent through GET requests
using a QuerySet-like input. The inputs are filtered and
validated before usage to prevent inadvertent or malicious use.

Filters and table headers are defined in the views for each table,
and rendered by generic code which is easily modified for various
tables.

The Build table and Configuration table are implemented using this
framework as an example of how it should be used.

    [YOCTO #4249]
    [YOCTO #4254]
    [YOCTO #4255]
    [YOCTO #4256]
    [YOCTO #4257]
    [YOCTO #4259]
    [YOCTO #4260]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: Build dashboard implementation
Alexandru DAMIAN [Fri, 13 Dec 2013 17:14:34 +0000 (17:14 +0000)]
toaster: Build dashboard implementation

This patch adds the build dashboard page implementation,
which is the landing page for the Toaster GUI.

Also adds correct links from the main build page
to the various parts of the dashboard.

    [YOCTO #4258]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: Create the base page navigation structure
Alexandru DAMIAN [Wed, 11 Dec 2013 16:42:34 +0000 (16:42 +0000)]
toaster: Create the base page navigation structure

Updating the general container pages to use the graphical
design and features from the design phase.

In the process of adapting the Simple UI to the designed
interface, we create all the pages and the navigation
structure for the Toaster GUI.

Views for each page have been added, and the url mapping
has been updated to reflect newly added pages.

The table page has been refactored to be component-oriented
instead of class-oriented in order to facilitate reusage.

Changes are made in different layers of the template
(base, basetable) in order to maximize code reuse among
different pages in the build.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: update static media for Toaster GUI
Alexandru DAMIAN [Wed, 11 Dec 2013 16:40:05 +0000 (16:40 +0000)]
toaster: update static media for Toaster GUI

In the process of making the GUI more usable, we
bring in the static assets used during the design
phase into the application.

Licenses used:

    Bootstrap 2.3.2 under Apache License 2.0
    Font Awesome under SIL OFL 1.1 (GPL compatible) and MIT licence
    GLYPHICONS Halflings released with Bootstrap, CC BY 3.0
    jQuery 2.0.3 under MIT licence
    prettify.js under Apache Licence 2.0

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: clone Simple UI as base for Toaster GUI
Alexandru DAMIAN [Wed, 18 Dec 2013 19:50:45 +0000 (19:50 +0000)]
toaster: clone Simple UI as base for Toaster GUI

This patch clones the Simple UI to provide the base code for
the development of the Toaster GUI. The clone takes the place
of the application that was reserved for Javascript MVC code.

The templates used for Simple UI are renamed to start with
an "simple_" to prevent name resolution conflict with the
Toaster GUI templates.

Minor changes are made to the settings.py and urls.py in the
toaster main section to account for the newly enabled application.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agofetch2/gitannex: Fix function arguments to match bitbake master
Richard Purdie [Wed, 8 Jan 2014 15:26:29 +0000 (15:26 +0000)]
fetch2/gitannex: Fix function arguments to match bitbake master

This code clearly uses an earlier fetcher API. Update it to match master.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agogitannex: Add missing file from previous commit
Richard Purdie [Wed, 8 Jan 2014 13:07:39 +0000 (13:07 +0000)]
gitannex: Add missing file from previous commit

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: fetch2/git: add description for nobranch
Zhenhua Luo [Wed, 8 Jan 2014 10:17:08 +0000 (18:17 +0800)]
bitbake: fetch2/git: add description for nobranch

Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: gitannex.py: Add Git Annex support
Otavio Salvador [Tue, 7 Jan 2014 15:58:33 +0000 (13:58 -0200)]
bitbake: gitannex.py: Add Git Annex support

This add a Git Annex backend which reuses the Git fetcher code; it
allows managing files with git, without checking the file contents
into git, being useful when dealing with files larger than git can
currently easily handle, whether due to limitations in memory, time,
or disk space.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: fetch2/git: add nobranch option for SRC_URI to skip SHA validating for branch
Zhenhua Luo [Tue, 7 Jan 2014 10:45:34 +0000 (18:45 +0800)]
bitbake: fetch2/git: add nobranch option for SRC_URI to skip SHA validating for branch

For rebased git tree, some commits doesn't exist in any branch, and such commits are
valid in tag, the change is useful for such case.

Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake/lib/bb/build.py: fix the task flags cleandirs
Robert Yang [Mon, 6 Jan 2014 09:52:35 +0000 (04:52 -0500)]
bitbake/lib/bb/build.py: fix the task flags cleandirs

The user manual said:

'cleandirs' - directories which should created before the task runs but should be empty

But it only removes the dir, doesn't create it

[YOCTO #5703]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: usermanual.xml: fix a typo
Robert Yang [Mon, 6 Jan 2014 09:52:36 +0000 (04:52 -0500)]
bitbake: usermanual.xml: fix a typo

Fixed:
"should created" -> "should be created"

[YOCTO #5703]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoaster: add two-stage commit startup logic
Alexandru DAMIAN [Tue, 10 Dec 2013 18:24:18 +0000 (18:24 +0000)]
toaster: add two-stage commit startup logic

Toaster start script lunches multiple process components
of the toaster system.

This patch adds logic into the startup script to
safely fail startup and do proper cleanup on any error
that may happen during system start.

Bitbake needs to return 0 if it will successfully lunches
the server-mode.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake/lib/bb/cooker.py: remove a duplicated self.data
Robert Yang [Fri, 3 Jan 2014 17:24:32 +0000 (01:24 +0800)]
bitbake/lib/bb/cooker.py: remove a duplicated self.data

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: fetcher2: clean(): remove the .patch.done
Robert Yang [Fri, 27 Dec 2013 06:51:51 +0000 (01:51 -0500)]
bitbake: fetcher2: clean(): remove the .patch.done

There was a problem:

$ bitbake xf86-video-omapfb -cfetch && bitbake xf86-video-omapfb -ccleanall

Everything should be removed, but the
0006-omapfb-port-to-new-xserver-video-API.patch.done still exists in the
DL_DIR, this is because the clean() in the fetch2/__init__.py skips
removing the local file, so that it will skip removing the .done.

The local file (file://) isn't needed to be removed since it is not
downloaded into DL_DIR, but the .done should be removed, this patch will
remove the .done, and it doesn't remove anything else since the clean()
in local.py does nothing.

[YOCTO #5687]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: fetcher2: git.py: clean(): remove the .tar.gz.done
Robert Yang [Fri, 27 Dec 2013 06:51:52 +0000 (01:51 -0500)]
bitbake: fetcher2: git.py: clean(): remove the .tar.gz.done

There was a problem:

$ bitbake xf86-video-omapfb -cfetch && bitbake xf86-video-omapfb -ccleanall

The git2_git.pingu.fi.xf86-video-omapfb.tar.gz has been removed from the
DL_DIR, but the git2_git.pingu.fi.xf86-video-omapfb.tar.gz.done still exists,
this is because the "open(ud.donestamp, 'w').close()" in try_mirror_url() will
create the git2_git.xxx.tar.gz.done, but no one removes it (the clean() in
fetch2/__init__.py removes the DL_DIR/git2/pkg.done)

This only happens on the git fetcher AFAIK.

[YOCTO #5688]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: replace 3 spaces with 4
Robert Yang [Fri, 27 Dec 2013 15:55:53 +0000 (23:55 +0800)]
bitbake: replace 3 spaces with 4

A part of fetch2/__init__.py uses 3 spaces as the indent, I
think that they should be typos.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agofetch2: avoid printing "no checksum" error message twice
Paul Eggleton [Fri, 20 Dec 2013 14:48:45 +0000 (14:48 +0000)]
fetch2: avoid printing "no checksum" error message twice

Because of the way we were handling this error, it was printed twice -
once via logger.error() (to avoid the log being printed) and a second
time when the exception gets wrapped in a FuncFailed at a higher level.
Call logger.error() earlier and change the text we send in the
exception to be more brief, so it more closely resembles the behaviour
when there is an invalid checksum.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agofetch2: fail checksum validation if SRC_URI checksums set to ""
Paul Eggleton [Fri, 20 Dec 2013 14:48:44 +0000 (14:48 +0000)]
fetch2: fail checksum validation if SRC_URI checksums set to ""

We were checking SRC_URI md5sum/sha256sum values against None here, so
if they were set to "" then no error was produced. Since the value is
still effectively unset in this case, this is not the right behaviour;
just check if the value doesn't evaluate to False instead.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agoUpdate to version 1.21.1 for master
Richard Purdie [Fri, 20 Dec 2013 12:23:12 +0000 (12:23 +0000)]
Update to version 1.21.1 for master

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agosiggen: Fix reversed difference output
Richard Purdie [Fri, 20 Dec 2013 12:07:20 +0000 (12:07 +0000)]
siggen: Fix reversed difference output

The output when comparing siginfo files for dict_diff is reversed and shows
additions when things were removed and vice versa. This patch reverses the operation
so the changes are shown correctly and makes the output less confusing.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agorunqueue: Further extend bitbake -S output to view signature differences
Richard Purdie [Thu, 19 Dec 2013 09:40:52 +0000 (09:40 +0000)]
runqueue: Further extend bitbake -S output to view signature differences

Based upon the list of difference starting points, we can use the siggen.find_siginfo()
function call and the difference printing code to provide a list of differences
between the current build target and whatever can be obtained from the sstate cache.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agosiggen: When printing signatures recursively, limit the output
Richard Purdie [Thu, 19 Dec 2013 09:37:39 +0000 (09:37 +0000)]
siggen: When printing signatures recursively, limit the output

Currently the code prints all differences. If the task dependencies have changed hash,
we recurse into those and print those differences as well. This leads to a lot
of output. The reality is if the parents changed signature, we might as well just
say that and recurse with no other output since we're much more interested in how
the parents changed in nearly all cases. The changes in the parent are probably
the same ones we'd have printed at each level anyway.

By doing this we focus the output more carefully on the thing the user wants/needs
to see.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agorunqueue: Fix data being written into siginfo/sigdata files
Richard Purdie [Thu, 19 Dec 2013 09:36:58 +0000 (09:36 +0000)]
runqueue: Fix data being written into siginfo/sigdata files

The way hash_deps was being generated was different to the way siggen generated
the data internally which lead to seemingly different sigdata/siginfo files
for the same checksum. The -S output correct but the files written during
builds contained superflous data which would look like a difference.

This patch removes the badly duplicated data and uses it from the source
which ensures its consistent.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agorunqueue: Add output for -S option for listing the changepoints compared with an...
Richard Purdie [Wed, 18 Dec 2013 16:21:27 +0000 (16:21 +0000)]
runqueue: Add output for -S option for listing the changepoints compared with an sstate cache

Its useful to understand where the delta starts against an existing sstate cache
for a given target. Adding this to the output of the -S option seems like a
natural fit.

We use the hashvalidate function to figure this out and assume it can find siginfo
files for more than just the setscene tasks.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobb.fetch2.git: reuse basecmd attribute
Olof Johansson [Thu, 12 Dec 2013 16:48:55 +0000 (17:48 +0100)]
bb.fetch2.git: reuse basecmd attribute

The basecmd is initialized in urldata_init; there's no need redoing that
work.

Signed-off-by: Olof Johansson <olof.johansson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agofetch2/git: Improve handling of unresolved names verses branches
Richard Purdie [Thu, 12 Dec 2013 16:48:54 +0000 (17:48 +0100)]
fetch2/git: Improve handling of unresolved names verses branches

Currently the fetcher doesn't distinguish between names that the fetcher
needs to resolve verses branch names that the user specified.

This meant that if you specify a tag and a branch, the fetcher broke. This
separates the two so that the branch name is preserved and can be used in
appropriate places.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobuild/ast: Create strong task add/del API in bb.build
Richard Purdie [Wed, 18 Dec 2013 10:45:02 +0000 (10:45 +0000)]
build/ast: Create strong task add/del API in bb.build

Currently its near impossible to control task addition/deletion from
metadata context. This adds stong add/deltask API to bb.build
which is traditionally where it resided. The rather broken
remove_tasks function was removed, it didn't appear to do anything
useful or have any users.

This allows us to clean up hacks currently in use in metadata and use
standard API for it instead.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agoast/BBHandler/build: Add support for removing tasks (deltask)
Richard Purdie [Wed, 18 Dec 2013 10:44:30 +0000 (10:44 +0000)]
ast/BBHandler/build: Add support for removing tasks (deltask)

Back in the depths of time we did support task removal. In the pre
AST days it was nearly impossible to continue supporting it, it wasn't
used so it was dropped. With the modern codebase we can easily now support
deltask and it would be very useful within the metadata since it can
massively simplify dependency trees.

As an example, a core-image-sato had 47703 inter task dependencies before
this patch and a patch to native.bbclass, afterwards with the noexec tasks
deleted, we had 29883. Such a significant simplification is worthwhile
and justifies adding a deltask operation to the system.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agodata_smart: Fix hash corruption issue
Richard Purdie [Fri, 13 Dec 2013 12:06:12 +0000 (12:06 +0000)]
data_smart: Fix hash corruption issue

We were accidentally using references to sets in the contains functionality
instead of creating a copy. This could cause data corruption and corruption
of the resulting sstate checksums.

This patch fixes this to make a copy of the set and resolved the corruption
issue.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agoprocess: Add timeout to select call
Richard Purdie [Tue, 10 Dec 2013 17:53:55 +0000 (17:53 +0000)]
process: Add timeout to select call

On some machines, a hang has been noticed where the system sits in
the select call despite the task having completed.

The exact reasons for this as unknown but adding a timeout unblocked
the builds and resolved the hangs in question.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agohob: after adding a layer, hob do not parse the configuration
Cristiana Voicu [Fri, 6 Dec 2013 12:23:04 +0000 (14:23 +0200)]
hob: after adding a layer, hob do not parse the configuration

Moved the parseConfiguration method before obtaining the machines and
other configurations from bitbake. If not, Hob doesn't see the new machines
added by the new layer.

[YOCTO #5632]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoaster: Add more information for tasks in Simple UI
Alexandru DAMIAN [Thu, 5 Dec 2013 14:34:55 +0000 (14:34 +0000)]
toaster: Add more information for tasks in Simple UI

This patch adds more information about Tasks in the Simple UI:
* all local file system information is not listed in a single
column, showing the common relationship
* adding the display for the location of the task source
* we display the work directory for each task

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: add pagination to the Simple UI
Alexandru DAMIAN [Thu, 5 Dec 2013 14:20:36 +0000 (14:20 +0000)]
toaster: add pagination to the Simple UI

In an effort to make the Simple UI more usable and
reponsive, this patch adds pagination support for the
pages with lots of entries: Builds, Configuration and
Tasks.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: migrate orm models to South
Alexandru DAMIAN [Tue, 3 Dec 2013 12:51:04 +0000 (12:51 +0000)]
toaster: migrate orm models to South

As Toaster advances, database schema alteration
will force users to delete old versions and lose
all data collected.

In order to prevent this, and to allow database
updates to happen without having to delete old data,
we use South to handle migrations for the ORM
application which stores the Toaster data.

    [YOCTO #5559]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: update to Django 1.5
Alexandru DAMIAN [Mon, 2 Dec 2013 15:58:31 +0000 (15:58 +0000)]
toaster: update to Django 1.5

In order to remain up to date with the relevant technologies,
Toaster is updated with this patch to Django 1.5. This also
makes headways to allow usage of emerging
Django-related technologies.

Changes include the startup script Django version check, usage
of TemplateView instead of deprecated simple function to do
redirects, and update to the new form of the _url_ template tag.

Support for Django 1.4.5 is now deprecated.

    [YOCTO #5558]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoasterui: do not link non-image targets
Alexandru DAMIAN [Mon, 2 Dec 2013 15:32:44 +0000 (15:32 +0000)]
toasterui: do not link non-image targets

In the Simple UI, builds table, targets that are images
have link to the list of installed packages.

There is no point in having links enabled for the non-image
targets, so we don't link in this case.

    [YOCTO #5366]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoasterui: fix version numbers for no PE specified
Alexandru DAMIAN [Mon, 2 Dec 2013 14:39:15 +0000 (14:39 +0000)]
toasterui: fix version numbers for no PE specified

PE is an optional field in recipes specifiying the epoch
for the recipe. The canonical form for the
full recipe version string is: PE:PV-PR

If no PE is specified, we shouldn't store the initial ":"
character, as it leads to inconsistency with how the
version string is used elsewhere. This patch drops the leading ":"

    [YOCTO #5459]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: change package storage model
Alexandru DAMIAN [Tue, 26 Nov 2013 18:12:43 +0000 (18:12 +0000)]
toaster: change package storage model

Up until this patch, package information lived in two
places - one table for build packages and one table for
target installed packaged. This situation leads to
two problems: there is no direct link between a build
package and a installed package, and a lot of data is duplicated.

This change unifies all package types in a single table.
The SimpleUI remains the same for continuity sake,
but the REST API will be changed in a future patch.

The package dependencies and package files are now
kept in a single table.

Since we collect target installed package information at all times,
we need to expand it to supplement missing information if a
package is not actually built in the current build.

Small changes to the Simple UI reflect the updated database schema.

    [YOCTO #5565]
    [YOCTO #5269]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: update build stats reading
Alexandru DAMIAN [Wed, 27 Nov 2013 16:38:29 +0000 (16:38 +0000)]
toaster: update build stats reading

In the processes of removing local system accesses
from toaster UI, we remove the build stats
code that was moved to toaster.bbclass, and
adapt the database writing code to read the data
from BuildStatsList event sent by the toaster.bbclass

    [YOCTO #5604]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: move layer information reading code
Alexandru DAMIAN [Wed, 27 Nov 2013 13:56:19 +0000 (13:56 +0000)]
toaster: move layer information reading code

In the processes of removing local system accesses
from toaster UI, we remove the layer data reading
code that was moved to toaster.bbclass, and
adapt the database writing code to read the data
from event sent by the toaster.bbclass

    [YOCTO #5604]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: remove Author field in SimpleUI
Alexandru DAMIAN [Thu, 21 Nov 2013 11:47:44 +0000 (11:47 +0000)]
toaster: remove Author field in SimpleUI

Removes a left-over Author field in the Simple UI
recipe page.

    [YOCTO #5449]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agotoaster: Analysis API variablehistory update
Alexandru DAMIAN [Mon, 18 Nov 2013 12:43:18 +0000 (12:43 +0000)]
toaster: Analysis API variablehistory update

This patch updates the Analysis REST API to expose
the variablehistory information. A UI tool can query
this API to get a picture on how a variable value got
to its final form.

The documentation for VariableHistory is updated on
Wiki https://wiki.yoctoproject.org/wiki/Analysis_REST_API_Contracts

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
5 years agodata: Ensure we add the contains keys in a particular order
Richard Purdie [Mon, 9 Dec 2013 10:18:31 +0000 (10:18 +0000)]
data: Ensure we add the contains keys in a particular order

If we don't sort the data, the values can reorder changing the
signatures meaning we get confused builds and significant cache
misses.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agofetch2/git: Ensure check is made in the correct directory
Richard Purdie [Fri, 6 Dec 2013 14:08:46 +0000 (14:08 +0000)]
fetch2/git: Ensure check is made in the correct directory

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoaster: exclude "set in documentation.conf" from variable history
Cristiana Voicu [Wed, 4 Dec 2013 13:58:06 +0000 (15:58 +0200)]
toaster: exclude "set in documentation.conf" from variable history

That has no impact on the builds themselves, so we should just
remove that line from the variable history.

[YOCTO #5561]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agohob: changes to INHERIT var should use "append" operation
Cristiana Voicu [Thu, 5 Dec 2013 14:09:15 +0000 (16:09 +0200)]
hob: changes to INHERIT var should use "append" operation

Setting INHERIT var means to remove other operations made on INHERIT.
This is too intrusive, so we decided to use append for this case.

[YOCTO #5448]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agofetch2/git: Add sanity check to ensure we really did fetch the correct revisions
Richard Purdie [Thu, 5 Dec 2013 15:21:38 +0000 (15:21 +0000)]
fetch2/git: Add sanity check to ensure we really did fetch the correct revisions

The fetcher made the rather bold assumption that if it fetched from the upstream,
the revisions were present and correct. These checks are fast and ensure that
really is the case. The avoids accidental network accessed and missing
branch configuration problems.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agoHob: check if warnings are related to package build
Valentin Popa [Tue, 3 Dec 2013 15:52:58 +0000 (17:52 +0200)]
Hob: check if warnings are related to package build

If warnings come from recipes parsing
and not from package build, 'parent' object
will be None; so don't update the color for it.

[YOCTO #5621]

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agohob: fix package property dialog for changes to FILES_INFO
Paul Eggleton [Mon, 2 Dec 2013 18:58:47 +0000 (18:58 +0000)]
hob: fix package property dialog for changes to FILES_INFO

The FILES_INFO structure is now much simpler, so remove all of the
horrible mangling we had to do here in order to read it.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agohob: name package files list variables appropriately
Paul Eggleton [Mon, 2 Dec 2013 18:58:46 +0000 (18:58 +0000)]
hob: name package files list variables appropriately

This treeview code was obviously copy-pasted from one of the config
dialogs and the variables were never renamed. Rename them now to improve
readability.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agolib/bb/ui: handle PKGSIZE change to bytes
Paul Eggleton [Mon, 2 Dec 2013 18:58:45 +0000 (18:58 +0000)]
lib/bb/ui: handle PKGSIZE change to bytes

PKGSIZE is now in bytes in pkgdata, so we need to treat it as such in
the UI code for Hob / Toaster.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agocooker/command/hob: Cleanup configuration init/reset functions and commands
Richard Purdie [Mon, 2 Dec 2013 17:48:40 +0000 (17:48 +0000)]
cooker/command/hob: Cleanup configuration init/reset functions and commands

initConfigurationData and loadConfigurationData are similar functions, the only
reason for them appears to be to be able to reset the pre/post configuration
files. The current code is confusing and unmaintainable.

Instead this patch creates a new Sync command which allows these to be explicitly
set. The init and load functions can then be merged into one. There is then no
need for a parseConfiguration command, we can simply reset the server to have the
settings take effect.

The reset fuction is not an instant value return and triggers an event so it should
be an Async command, not a sync one.

The number of calls for the set pre/post command is probably higher than it
need be but someone with more familiarity with the hob code base can probably
figure out the right places its needed (maybe just init_cooker?).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agohob: Use BASEDATASTORE_TRACKING feature
Richard Purdie [Mon, 2 Dec 2013 17:47:56 +0000 (17:47 +0000)]
hob: Use BASEDATASTORE_TRACKING feature

Might as well use this functionality now we have it available.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agocodeparser/data_smart: Optimise parsing speed
Richard Purdie [Tue, 3 Dec 2013 12:10:05 +0000 (12:10 +0000)]
codeparser/data_smart: Optimise parsing speed

The previous "contains" changes caused a ~3% parsing speed impact.
Looking at the cause of those changes was interesting:

* Use of defaultdict was slower than just checking for missing entries
  and setting them when needed.
* Even the "import collections" adversely affects parsing speed
* There was a missing intern function for the contains cache data
* Setting up a log object for each variable has noticeable overhead
  due to the changes in the code paths uses, we can avoid this.
* We can call getVarFlag on "_content" directly within VariableParse
  for a noticeable speed gain since its a seriously hot code path.

This patch therefore tweaks the code based on the above observations to
get some of the speed back.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agohob: fix rotating progress icon animation
Paul Eggleton [Mon, 2 Dec 2013 15:10:34 +0000 (15:10 +0000)]
hob: fix rotating progress icon animation

I've always found it somewhat annoying that this icon's rotation
animation wasn't quite correct; this was because it was looping around
to the second position instead of the first, which made it appear to
stutter.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agoimagedetailspage: Fix crash with more than 15 layers
Richard Purdie [Mon, 2 Dec 2013 17:41:58 +0000 (17:41 +0000)]
imagedetailspage: Fix crash with more than 15 layers

If you had more than 15 layers the system would crash since one more
value is added to one array than the other. This fixes the code
so equal numbers of values are added to the arrays and hence
doesn't crash when many layers are enabled.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake.lock: Add host:port to bitbake.lock for memres server
Jason Wessel [Mon, 25 Nov 2013 21:21:26 +0000 (15:21 -0600)]
bitbake.lock: Add host:port to bitbake.lock for memres server

The idea is to build on the --status-only option for bitbake and
expose a mechanism where the oe init scripts can easily switch between
memres server and the non-memres server.

In the case of the standard oe init script the following
can shut down the server:

if [ -z "$BBSERVER" ] && [ -f bitbake.lock ] ; then
    grep ":" bitbake.lock > /dev/null && BBSERVER=`cat bitbake.lock` bitbake --status-only
    if [ $? = 0 ] ; then
       echo "Shutting down bitbake memory resident server with bitbake -m"
       BBSERVER=`cat bitbake.lock` bitbake -m
    fi
fi

A similar function can be used to automatically detect if the server
is already running for the oe memres init script.  This new
functionality allows for the memres init script to be started in a new
shell and connect up to an alaready running server without seeing the
error of trying to start the server multiple times.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake, xmlrpc.py: Implement memory resident auto port configuration/restart
Jason Wessel [Mon, 25 Nov 2013 21:21:27 +0000 (15:21 -0600)]
bitbake, xmlrpc.py: Implement memory resident auto port configuration/restart

This patch adds the ability to dynamically select a port for the
bitbake memory resident server when the BBSERVER port is set to -1.
This allows for running multiple instances of the bitbake memory
resident server on the same system in different build directories.

The client portion of the bitbake instance can also request that the
server automatically start when using the auto port feature.  This is
to deal with a bitbake instance that eventually times out and exits or
that has died for some unknown reason.

The new functionality allows for lazy startup of the server after
sourcing the init script for the memory resident functionality.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: Add --status-only option
Jason Wessel [Mon, 25 Nov 2013 21:21:25 +0000 (15:21 -0600)]
bitbake: Add --status-only option

The --status-only option is purely to check the health of the server.
The idea is to use it from the oe environment script so as to know if
the server needs to be started or not.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agohob: disable layer drag and drop outside the containing widget
Cristiana Voicu [Fri, 29 Nov 2013 14:10:39 +0000 (16:10 +0200)]
hob: disable layer drag and drop outside the containing widget

[YOCTO #5577]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agoparse/ConfHander/BBHandler/utils: Fix cache dependency bugs
Richard Purdie [Fri, 29 Nov 2013 23:15:56 +0000 (23:15 +0000)]
parse/ConfHander/BBHandler/utils: Fix cache dependency bugs

Currently bitbake only adds files to its dependency list if they exist.
If you add 'include foo.inc' to your recipe and the file doesn't exist,
then later you add the file, the cache will not be invalidated.

This leads to another bug which is that if files don't exist and then
you add them and they should be found first due to BBPATH, again the
cache won't invalidate.

This patch adds in tracking of files we check for the existence of so
that if they are added later, the cache correctly invalidates. This
necessitated a new version of bb.utils.which which returns a list of
files tested for.

The patch also adds in checks for duplicate file includes and for now
prints a warning about this. That will likely become a fatal error at
some point since its never usually desired to include a file twice.

The same issue is also fixed for class inheritance. Now when a class
is added which would be found in the usual search path, it will cause
the cache to be invalidated.

Unfortunately this is old code in bitbake and the patch isn't the
neatest since we have to work within that framework.

[YOCTO #5611]
[YOCTO #4425]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agocooker: Fix support for wildcards in bbappend filenames
Nathan Rossi [Fri, 29 Nov 2013 05:19:11 +0000 (15:19 +1000)]
cooker: Fix support for wildcards in bbappend filenames

The 'bbappend in f' incorrectly compares the current recipe with the avaliable
bbappends recipes. This comparsion causes unrequested bbappend files to be
appended, e.g. in the case of 'libgcc_4.8.bb', the bbappends for 'libgcc_4.8.bb'
and 'gcc_4.8.bb' are added to the filelist (because 'gcc_4.8.bb' is contained in
the 'libgcc_4.8.bb' string) which in turn causes the gcc_4.8.bbappend files to
be appended to the libgcc_4.8 recipe.

This should be a 'bbappend == f' to match the previous implementation of this
function, such that if no wildcard is present the recipe names must match
exactly.

This issue was introduced by commit 31bc9af9cd56e7b318924869970e850993fafc5f,
which it related to [YOCTO #5411].

Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agocrumbs/builder.py: Fix typo for indefinite article
Yi Zhao [Wed, 27 Nov 2013 09:40:56 +0000 (17:40 +0800)]
crumbs/builder.py: Fix typo for indefinite article

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agoHob: force notebook refresh
Valentin Popa [Tue, 26 Nov 2013 09:30:41 +0000 (11:30 +0200)]
Hob: force notebook refresh

Redraw the entire notebook widget after
number-of-issues drawable is incremented
(because for this case, the notebook widget
doesn't refresh it's children automatically).

[YOCTO #5596]

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agodata/codeparser: Improve handling of contains functions
Richard Purdie [Mon, 25 Nov 2013 22:59:39 +0000 (22:59 +0000)]
data/codeparser: Improve handling of contains functions

One of the current frustrations with the sstate checksums is that
code like base_contains('X', 'y',...) adds a full dependency on X
and varies depend even on whitespace changes in X.

This patch adds special handling of the contains functions to expand
the first parameter and check for the flag specified by the second
parameter (assuming its a string).

The result is then appended to the value of the variable with a "Set"
or "Unset" status. If the flag is added/removed, the stored variable
value changes and hence the checksum changes. No dependency on X
is added so it is free to change with regard to other flags or
whitespace.

This code is far from ideal, ideally we'd have properly typed variables
however it fixes a major annoyance of the current checksums and
is of enough value its worth adding in a stopgap solution. It shouldn't
significantly restrict any propely typed variable implementation in
future.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: Share BB_TASKDEPDATA with tasks
Richard Purdie [Mon, 25 Nov 2013 23:18:22 +0000 (23:18 +0000)]
bitbake: Share BB_TASKDEPDATA with tasks

Currently tasks have no knowledge of which other tasks they depend
upon. This makes it impossible to do at least two things which would be
desirable/interesting:

a) Have the ability to create per recipe sysroots
b) Allow the aclocal files to be present only for the entries in
   DEPENDS (directly and indirectly)

By exporting task data through this new variable, tasks can inspect
their dependencies and then take actions based upon this.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agorunqueue: Optimise next_buildable_task()
Richard Purdie [Mon, 25 Nov 2013 23:12:27 +0000 (23:12 +0000)]
runqueue: Optimise next_buildable_task()

This unlikely looking function was found to be eating a lot of CPU time
since it gets called once per trip through the idle loop if we're not
running a maximum number of processes. This was particularly true in
world builds of 13,000 tasks.

Calling the computation code is pretty pointless because until some
other task finishes nothing is going to become available to build.
We can know when things become available so this patch teaches the
scheduler this knowledge.

It also:

* skips any coputation when nothing can be built
* if there is only one available item to build, ignore the priority map
* precomputes the stamp filenames, rather than doing it every time
* saves the length of the array rather than calculating it each time
  (the extra function overhead is significant)

Timing wise, initially, 5000 iterations through here was 20s, with
the patch 200000 calls takes the same time. The end result is that
builds get up and running faster.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agocodeparser: Drop unneeded variable separation
Richard Purdie [Mon, 25 Nov 2013 23:00:17 +0000 (23:00 +0000)]
codeparser: Drop unneeded variable separation

There is no good reason to separately track var_references and
references so merge them and remove the unneeded variable.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agofetch2: Correct a few calls to latest_revision()
Peter Kjellerstedt [Mon, 25 Nov 2013 11:41:16 +0000 (12:41 +0100)]
fetch2: Correct a few calls to latest_revision()

In 6a48474de9505a3700863f31839a7c53c5e18a8d the url parameter to a
number of functions was removed. However, not all calls to
latest_revision() were fixed...

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: fetch2: Remove the unused urldata from the git fetcher.
Florin Sarbu [Mon, 25 Nov 2013 10:33:50 +0000 (12:33 +0200)]
bitbake: fetch2: Remove the unused urldata from the git fetcher.

Signed-off-by: Florin Sarbu <florin.sarbu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agodata: Fix output inconsistencies for emit_var
Richard Purdie [Fri, 22 Nov 2013 16:17:39 +0000 (16:17 +0000)]
data: Fix output inconsistencies for emit_var

VAL = ""     (not shown)
VAL = " "    (shown as "")
VAL = " x"   (shown as "x")

would all show up rather differently to what would be expected in the
bitbake -e output. This fixes things so they appear consistently.

The output for running some shell functions may also change slightly
but shouldn't change in a way that is likely to cause problems.

[YOCTO #5507]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agoperforce: Fix path subdirectory issues
Richard Purdie [Fri, 22 Nov 2013 16:22:28 +0000 (16:22 +0000)]
perforce: Fix path subdirectory issues

With a SRC_URI = " \
p4://depot/folder/...;module=localfolder/localsubfolder;changeslist=${P4CHANGELIST} \
"

the subfolders of //depot/folder/... get renamed when mapped to the
local folder structure. They lose the first 3 letters. This
patch fixes that.

Issue reported by and patch sent from katutxakurra@gmail.com

[YOCTO #5380]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake-layers: avoid loading configuration when not needed
Paul Eggleton [Thu, 21 Nov 2013 14:09:46 +0000 (14:09 +0000)]
bitbake-layers: avoid loading configuration when not needed

In recent versions of bitbake, it is not possible to initialise a
BBCooker object without having it load the configuration first. Thus we
should avoid creating the Tinfoil object here in bitbake-layers which
does that internally until we actually need to, so you can run
"bitbake-layers help" and not have to wait several seconds for the
output.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agoHOB: Show warnings in Issues tab
Valentin Popa [Thu, 21 Nov 2013 11:55:13 +0000 (13:55 +0200)]
HOB: Show warnings in Issues tab

Proper update of warnings view during build.

[YOCTO #3496]

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agocooker: add support for using % as a wildcard in bbappend filename
Saul Wold [Thu, 21 Nov 2013 17:50:41 +0000 (09:50 -0800)]
cooker: add support for using % as a wildcard in bbappend filename

There has been a continuing call for supporting wildcard in bbappend
filenames. The wildcard is actually allow matching of the name and
version up to the point of encountering the %.  This approach will
allow for matching of the major or major.minor.

Exampes:

busybox_1.21.1.bb
busybox_1.21.%.bbappend will match
busybox_1.2%.bbappend will also match

if we update to busybox_1.3.0.bb the above won't match, but a busybox_1.%.bb
will.

[YOCTO #5411]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agorunqueue/bitbake-worker: Fix dry run fakeroot issues
Richard Purdie [Fri, 22 Nov 2013 13:31:47 +0000 (13:31 +0000)]
runqueue/bitbake-worker: Fix dry run fakeroot issues

When using the dry run option (-n), bitbake would still try and fire
a specific fakeroot worker. This is doomed to failure since it might
well not have been built.

Add in some checks to prevent the failures.

[YOCTO #5367]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agofetch2: Stop passing around the pointless url parameter
Richard Purdie [Tue, 19 Nov 2013 14:32:08 +0000 (14:32 +0000)]
fetch2: Stop passing around the pointless url parameter

There is no good reason to keep passing around the url parameter when
its contained within urldata (ud). This is left around due to
legacy reasons, some functions take it, some don't and its time
to cleanup.

This is fetcher internal API, there are a tiny number of external users
of the internal API (buildhistory and distrodata) which can be fixed up
after this change.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agofetch2: Clean up some url parameters to functions
Richard Purdie [Tue, 19 Nov 2013 13:59:14 +0000 (13:59 +0000)]
fetch2: Clean up some url parameters to functions

urldata contains the url so we might as well stop passing around
pointless function parameters. This was done for legacy reasons but
its time to clean this mess up.

This is a first step in cleanup and is a standalone patch but there is
more to be done in a second patch.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoasterui: fix typo
Alexandru DAMIAN [Tue, 19 Nov 2013 10:53:39 +0000 (10:53 +0000)]
toasterui: fix typo

A typo in buildinfo helper leads to a bug where
information about tasks is not correctly stored.

This patch fixes the typo.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobitbake: cooker, toaster: mark interrupted builds as failed
Alexandru DAMIAN [Tue, 19 Nov 2013 16:46:41 +0000 (16:46 +0000)]
bitbake: cooker, toaster: mark interrupted builds as failed

This patch changes bitbake to log an error to the
command line when the build is interrupted via Ctrl-C.

This is needed to inform the user that not all tasks
required for the build have been executed, and
the build is not complete.

Internally, the Bitbake server will return a CommandFailed
event that will be logged by Toaster as build failure.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agobuild.py: add single-quotes around already-expanded directory name
Peter Seebach [Wed, 20 Nov 2013 00:31:39 +0000 (18:31 -0600)]
build.py: add single-quotes around already-expanded directory name

If the computed name of a directory contains an undefined variable
reference, bitbake dutifully creates a directory with a name that has
${...} in it. However, the actual task script created then tries to cd
to that directory, and the cd command fails, because no such directory
exists -- because the shell has helpfully removed the ${...} which did
not match any actual variables.

Since we want the name to be used exactly-as-is, add single quotes around
the name so this doesn't cause strange failures running tasks, which
allows us to progress past such failures and get to a point where they
can be diagnosed.

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agorunqueue: Fix hole in setsceneverify skipped task logic
Richard Purdie [Wed, 20 Nov 2013 10:46:28 +0000 (10:46 +0000)]
runqueue: Fix hole in setsceneverify skipped task logic

We have do_bundle_initramfs which is a task inserted after compile and
before build. It is not covered by sstate.

If we run a build with a valid sstate cache present, the setsceneverify
function realises it will rerun the do_compile step (due to the
bundle_initramfs task) and hence marks do_populate_sysroot to rerun.
do_install, a dependency of do_populate_sysroot is left as marked as
covered by sstate.

What we need to do is traverse the dependency tree for any setsceneverify
invalided task and ensure any dependencies are also invalidated. We can
stop at any point we reach another setscene task though.

This means the do_populate_sysroot task has the data from do_install
available and doesn't crash.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agofetch2: Fix handling of SCM mirrors in MIRRORS
Richard Purdie [Tue, 19 Nov 2013 13:09:14 +0000 (13:09 +0000)]
fetch2: Fix handling of SCM mirrors in MIRRORS

If an SCM mirror is in PREMIRRORS, the tarball is downloaded and then found
by the "upstream" check and handled correctly.

If an SCM mirror is in MIRRORS, the tarball is downloaded but not used
since there is no "upstream" run after MIRRORS completes. It therefore
sits there useless and unused. This code change forces the upstream to
run after a mirror tarball is found and fixes the usage of SCM mirrors
in MIRRORS.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agogit: Use git branch for ancestor checks
Richard Purdie [Tue, 19 Nov 2013 13:08:59 +0000 (13:08 +0000)]
git: Use git branch for ancestor checks

Using git merge-base for checking for ancestors is nice but required git 1.8.0
which is not in many distrbutions yet. We therefore revert to a more ugly
check using git branch --contains until such times as we can upgrade.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agoserv.py: Give pr-server up to 5 seconds to commit data
Konrad Scherer [Fri, 15 Nov 2013 20:51:47 +0000 (15:51 -0500)]
serv.py: Give pr-server up to 5 seconds to commit data

The default value of 0.5 seconds before sending the pr-server a
SIGTERM is not enough to guarantee that sqlite has committed all
the pr data to the database. By polling the pid to see if it is
still running, this allows the pr-server process to shutdown
cleanly and finish the final pr data commit.

Signed-off-by: Konrad Scherer <Konrad.Scherer@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agogit: Use merge-base instead of log for testing if a commit is present
Richard Purdie [Mon, 18 Nov 2013 17:17:16 +0000 (17:17 +0000)]
git: Use merge-base instead of log for testing if a commit is present

The current use of git log to check if a given revision is present can be
a little fragile.

For example if revision X was on branch A, and then later added to branch
B, the update checks would not notice this since they just check for X
being in the repository.

We also had some autobuilder corruption where an older packed-refs file
was copied over a new repository containing newer pack files. There
was no update to the refs file since the revision was present but
not accessible in any branch.

The correct fix is to check that the required revisions are present
on the specific branches. This patch does this using merge-base.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agocooker, toaster: variable definition tracking
Alexandru DAMIAN [Thu, 14 Nov 2013 13:56:30 +0000 (13:56 +0000)]
cooker, toaster: variable definition tracking

In order to track the file where a configuration
variable was defined, this patch bring these changes:

* a new feature is defined in CookerFeatures, named
BASEDATASTORE_TRACKING. When a UI requests BASEDATASTORE_TRACKING,
the base variable definition are tracked when configuration
is parsed.

* getAllKeysWithFlags now includes variable history in the
data dump

* toaster_ui.py will record the operation, file path
and line number where the variable was changes

* toaster Simple UI will display the file path
and line number for Configuration page

There is a change in the models to accomodate the recording
of variable change history.

[YOCTO #5227]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoaster: task with outcome 2 (sstate), should have sstate_result!=0
Cristiana Voicu [Fri, 15 Nov 2013 11:34:46 +0000 (13:34 +0200)]
toaster: task with outcome 2 (sstate), should have sstate_result!=0

0 (not applicable) is not a valid sstate_result for tasks with
outcome 2 (sstate), which should return 3 (restored), 2
(failed) or 1 (missed).
Sstate_result for tasks with outcome 2 is equal to the outcome
of _setscene corespondent task.

[YOCTO #5220]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agohob/hoblistmodel: check if vals of packages/recipes names are not None
Cristiana Voicu [Mon, 23 Sep 2013 11:11:08 +0000 (14:11 +0300)]
hob/hoblistmodel: check if vals of packages/recipes names are not None

[YOCTO #5053]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agocooker: warn if user specifies a target listed in ASSUME_PROVIDED
Paul Eggleton [Thu, 14 Nov 2013 14:57:54 +0000 (14:57 +0000)]
cooker: warn if user specifies a target listed in ASSUME_PROVIDED

If the user explicitly asks to build a target that is listed in the
value of ASSUME_PROVIDED, show a warning mentioning that it will be
ignored.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agohob: refresh tables when the user is redirected to Edit packages
Cristiana Voicu [Wed, 13 Nov 2013 12:54:16 +0000 (14:54 +0200)]
hob: refresh tables when the user is redirected to Edit packages

When the build fails and I click "Edit packages", we should be returned
to the tab we launched the build from. Hob should remember the tab,
not the search state.

[YOCTO #5257]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoaster: fix path to buildstats file
Alexandru DAMIAN [Thu, 14 Nov 2013 10:53:00 +0000 (10:53 +0000)]
toaster: fix path to buildstats file

The buildstats file path changes based on the
optional PE variable that may be defined for a
recipe.

The toasterui simply ignored the PE value, and
as such it didn't correctly reach buildstats files
for some of the tasks.

This patch fixes the issue.

    [YOCTO #5073]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoasterui: mark failed sceneQueue tasks as failed
Alexandru DAMIAN [Thu, 14 Nov 2013 10:53:01 +0000 (10:53 +0000)]
toasterui: mark failed sceneQueue tasks as failed

This patch addresses an issue where a failed sceneQueue task
entry was not updated on the Fail event. As a result, it
always showed the task as not-available.

    [YOCTO #5216]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoaster: remove author field
Alexandru DAMIAN [Thu, 14 Nov 2013 10:52:59 +0000 (10:52 +0000)]
toaster: remove author field

The AUTHOR field in most recipes is not defined,
or it's not really consistently set in the metadata,
Also does it seem particularly useful.

This patch removes the AUTHOR variable from the
toaster system

    [YOCTO #5449]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoaster: fix tasks showing as NoExec
Alexandru DAMIAN [Thu, 14 Nov 2013 10:52:58 +0000 (10:52 +0000)]
toaster: fix tasks showing as NoExec

Tasks without script type information showed by default
as NoExec; this happens for all Prebuild or Covered
tasks, as script type information comes only on TaskStarted
event. Such a default value may drive confusion, as NoExec value
should be reserved for the NoExec-flagged tasks.

This patch adds a new default value named Unknown that will be
used for all tasks that don't have script type information
available.

    [YOCTO #5327]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agocooker: replace "w" file opening mode with "a" mode
Cristiana Voicu [Tue, 12 Nov 2013 16:12:17 +0000 (18:12 +0200)]
cooker: replace "w" file opening mode with "a" mode

Also removed some redundant file manipulation code
Based on patch sent by Stefan Stanacar <stefanx.stanacar@intel.com>

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agotoaster: convert build_package size to bytes to keep consistence
Cristiana Voicu [Tue, 12 Nov 2013 14:50:24 +0000 (16:50 +0200)]
toaster: convert build_package size to bytes to keep consistence

[YOCTO #5503]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 years agonewbb.vim: fix spelling
Trevor Woerner [Mon, 11 Nov 2013 18:51:30 +0000 (13:51 -0500)]
newbb.vim: fix spelling

Signed-off-by: Trevor Woerner <trevor.woerner@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>