Commit Graph

175 Commits

Author SHA1 Message Date
Chris Larson 2a05bd9be0 oe.packagegroup: add code for package groups (sync from OE)
This includes some utility functions for dealing with groups of packages
defined in the metadata.  Metadata syntax:

    PACKAGE_GROUP_<group> = "<list of packages>"

If the packages in the group are optional:

    PACKAGE_GROUP_<group>[optional] = "1"

(From OE-Core rev: 4df212e9c2a1dd7c80d180fd13b67e9f2799d3e1)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-20 19:07:51 +01:00
Chris Larson fc55b224ca base.bbclass: use oe.data for OE_IMPORTS
(From OE-Core rev: e02c0d809732bed3d170880c6faedafce8c60c21)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-20 17:34:23 +01:00
Chris Larson adceb2e272 Shift oe import logic out of the event handler
This can be useful if we need the imports from another config parsed event
handler, and can't rely upon the base one running before that one.

(From OE-Core rev: dc579ce4dcf9a3743ced9eae4fe510a079961faf)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-20 17:34:22 +01:00
Chris Larson 6bdfae902e base.bbclass: switch to current OE's imports handling
The current mechanism makes it easier for classes to add new oe modules to be
automatically imported, and thereby made available to python snippets (${@}).

(From OE-Core rev: 0c560a2a7954412f714db86b1aaadb7acbe72d1b)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-20 17:34:22 +01:00
Chris Larson e4921fda5b Implement variable typing (sync from OE)
This implementation consists of two components:

- Type creation python modules, whose job it is to construct objects of the
  defined type for a given variable in the metadata
- typecheck.bbclass, which iterates over all configuration variables with a
  type defined and uses oe.types to check the validity of the values

This gives us a few benefits:

- Automatic sanity checking of all configuration variables with a defined type
- Avoid duplicating the "how do I make use of the value of this variable"
  logic between its users.  For variables like PATH, this is simply a split(),
  for boolean variables, the duplication can result in confusing, or even
  mismatched semantics (is this 0/1, empty/nonempty, what?)
- Make it easier to create a configuration UI, as the type information could
  be used to provide a better interface than a text edit box (e.g checkbox for
  'boolean', dropdown for 'choice')

This functionality is entirely opt-in right now.  To enable the configuration
variable type checking, simply INHERIT += "typecheck".  Example of a failing
type check:

BAZ = "foo"
BAZ[type] = "boolean"

$ bitbake -p
FATAL: BAZ: Invalid boolean value 'foo'
$

Examples of leveraging oe.types in a python snippet:

PACKAGES[type] = "list"

python () {
    import oe.data
    for pkg in oe.data.typed_value("PACKAGES", d):
        bb.note("package: %s" % pkg)
}

LIBTOOL_HAS_SYSROOT = "yes"
LIBTOOL_HAS_SYSROOT[type] = "boolean"

python () {
    import oe.data
    assert(oe.data.typed_value("LIBTOOL_HAS_SYSROOT", d) == True)
}

(From OE-Core rev: a04ce490e933fc7534db33f635b025c25329c564)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-20 17:34:22 +01:00
Khem Raj 339d4933a5 base.bbclass: Fix PR increment bug when PR number is a single digit
PRINC which should add to base PR value has a problem when
the PR is single digit e.g. r0 - r9. Current algorithm
needed atleasts 2 digits to successfully populate end and begin
markers.

We reimplement the incrementing algorithm using regular expressions
which addressed the above mentioned problem and
simplifies the logic a bit and gets rid of loops and conditionals

(From OE-Core rev: 9aeaae7b786a42d213ad4224743dfd49e2324077)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-17 15:14:44 +01:00
Darren Hart 7ec1a51e8a logging: delete the oe(note|warn|fatal|debug) functions
The new logging.bbclass replaces the oe* logging functions with bb* equivalents.
There are no longer any users of the oe* API within oe-core. Remove the oe*
functions.

(From OE-Core rev: 168d94be0e28fcbefda9df07d6d1b0cfd96e75fc)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-04 00:54:37 +01:00
Darren Hart fc934af7c8 logging: update existing oe* logging users to the bb* interface
The new bash logging class provides bbnote, bbwarn, bbfatal, and bbdebug
replacements (as well as bbplain and bberror) for the oe* equivalents. Use the
new bb* API in preparation to delete the oe* logging API.

This patch was automatically generated by a sed script. The result has been
visually inspected and used to build core-image-sato for qemux86.

(From OE-Core rev: a1f09fce5caba389d0484b169f0cde85d64514fa)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-04 00:54:37 +01:00
Richard Purdie 39e469cfdb base.bbclass: Create a BASEDEPENDS variable other classes can use to add to the base dependencies, avoiding native/nativesdk issues
(From OE-Core rev: fe2f1e1708e34758c70db37ce480453e10fc4eb1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-04 00:40:39 +01:00
Darren Hart 753bc3e919 logging: add bb* logging mechanisms for bash recipe functions
The following logging mechanisms are to be used in bash functions of recipes.
They are intended to map one to one in intention and output format with the
python recipe logging functions of a similar naming convention: bb.plain(),
bb.note(), etc.

For the time being, all of these print only to the task logs. Future
enhancements may integrate these calls with the bitbake logging infrastructure,
allowing for printing to the console as appropriate. The interface and intention
statements reflect that future goal. Once it is in place, no changes will be
necessary to recipes using these logging mechanisms.

I opted to write new functions instead of modifying the oe* logging functions
from base.bbclass (and utils.bbclass in oe) for a couple reasons. First, one of
my goals was to generate a uniform logging API between bash and python in
recipes. Second, there are no users of oe* logging in meta (oe-core) or
meta-yocto, while several oe recipes do use them. I wanted to make a clean start
with the freedom to change behavior without forcing the oe recipes to change or
experience unexpected logging changes. Eventually, the oe recipes can be
migrated to the new bb* logging routines and the existing oe* routines can be
retired (deleted).

(From OE-Core rev: 7cb3f0206619b725e404282fa7a3ac50b4609f1e)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-04-28 10:45:41 +01:00
Darren Hart 43493742a0 logging: fix oedebug loglevel test
When the existing test for loglevel fails, the syntax used results in the recipe
exiting with a silent failure. Performing any bash command after the test block
resolves the problem, such as "shift" or "echo ''". Rewriting with 'if []; then'
blocks provides a cleaner syntax and also resolves the failure.

(From OE-Core rev: 5857516404411040598b69c85d184ccdfc0af2e0)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-04-28 10:44:44 +01:00
Richard Purdie b5e03a1a17 base/kernel/image.bbclass: Clean up do_deploy ordering to ensure it just happens before a build completes
(From OE-Core rev: a3b80688465ba5ba7e6d514f9a40ee224a9d3a28)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-03-29 14:01:49 +01:00
Richard Purdie f8ca2383e1 base/utility-tasks.bbclass: Drop do_setscene and do_rebuild
The do_setscene task only exists for rebuild support now as all its other
functionality has been superceeded. The rebuild task currently crashes due
to removal of the working directory and therefore isn't working for anyone.
It also interacts extremely badly with the newer sstate technology to the
point of being dangerous.

Summary, if we want rebuild support it needs a reimplementation so remove
this version and all its remnants and hacks.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-03-01 00:10:56 +00:00
Beth Flanagan 411056041b Buildstats commit: buildstats.bbclass
Used to track some basic build metrics by build and task/event level.

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
2011-02-15 09:59:51 +00:00
Saul Wold 14dea89521 fetch2: Correct the clean() mechanism for the fetcher2 code
This create a clean() method in each of the fetcher modules
and correctly cleans the .done stamp file and lock files

Signed-off-by: Saul Wold <sgw@linux.intel.com>
2011-02-10 23:49:25 +00:00
Richard Purdie 984e90f4d7 meta/classes: Update classes to use new fetcher API
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-02-07 09:06:37 +00:00
Richard Purdie 604037de4b base.bbclass: Update after fetcher changes
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-02-07 09:06:35 +00:00
Yu Ke e2ac26e7b1 base/sstate.bbclass: Rename fetcher "go" method to "download" when using fetch v2
Signed-off-by: Yu Ke <ke.yu@intel.com>
2011-01-25 12:25:47 +00:00
Yu Ke 8615b0e282 base.bbclass: use bb.fetch2 unpack API
Signed-off-by: Yu Ke <ke.yu@intel.com>
2011-01-25 12:25:47 +00:00
Paul Eggleton 297f2a7afc base.bbclass: fix parse error on recipes with '++' in their name
Fixes "multiple repeat" or "nothing to repeat" errors when parsing recipes
with '++' in the file name.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2011-01-20 21:36:59 +00:00
Richard Purdie 3f78c071b7 base.bbclass: Use the new stampfile function in bitbake to determine the path to the stampfile
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-06 19:49:17 +00:00
Yu Ke 30d27115ec base.bbclass: add lock file for do_unpack task
This patch intend to fix the random unpack failure of linux-libc-headers-yocto
and linux-yocto.

The root cause of the unpack failure is that: these two recpies has the same URL, thus
has the same dest file during the fetch and unpack phase:
do_fetch  : create tar ball ${DL_DIR}/git_git.pokylinux.org.linux-yocto-2.6.37.tar.gz
do_unpack : extract tar ball ${DL_DIR}/git_git.pokylinux.org.linux-yocto-2.6.37.tar.gz
fetch phase is protected by lockfile, so it works fine. but unpack phase is not lock protected,
thus there is race condition like: when linux-yocto do_unpack is extracting the tar ball,
linux-libc-headers-yocto do_fetch starts to create tar ball thus overwrite linux-yocto's
tar ball and cause linux-yocto do_unpack failure

To fix this issue, do_unpack also need to be protected by lock

Signed-off-by: Yu Ke <ke.yu@intel.com>
2011-01-04 09:46:37 -08:00
Richard Purdie cb79459c30 base.bbclass: Add error message for base_do_unpack failures
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-12-31 11:13:45 +00:00
Richard Purdie 278aad440e base.bbclass: Correct bb.debug parameters
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-12-31 09:51:18 +00:00
Richard Purdie edd290bd1a base/utils.bbclass: Drop former checksum code now bitbake is handling this for us
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-12-20 15:34:50 +00:00
Saul Wold 50911329d4 base.bbclass/poky.conf: Fix INCOMPATIBLE_LICENSE Whitelist checking
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-11-14 16:50:18 -08:00
Richard Purdie 8e2150e5dc meta/classes: Mark do_package_write and do_build as noexec tasks
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-11-06 14:33:45 +00:00
Richard Purdie a9c46e44d4 base/utils.bbclass: Sync up overlapping functions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-11-02 11:50:50 +00:00
Richard Purdie 48b42dae51 classes: Only enable fakeroot on setscene tasks with packaging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 16:34:06 +01:00
Richard Purdie 36f1ae42fe pseudo/fakeroot: Move the pseudo directory creation into bitbake
If sstate was used to accelerate a build, the pseudo directory might not have
been created leading to subsequent task failures.

Also, sstate packages were not being installed under pseudo context meaning
file permissions could have been lost.

Fix these problems by creating a FAKEROOTDIRS variable which bitbake ensures
exists before running tasks and running the appropriate setscene tasks under
fakeroot context.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 13:00:40 +01:00
Richard Purdie 6e277cb014 base.bbclass: Ensure an empty do_build tasks exists to silence a warning
The message "WARNING: Function do_build doesn't exist" doesn't look professional,
so fix the underlying problem even if this warning is harmless.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 12:53:36 +01:00
Richard Purdie fd4457199e base/sstate: Add cleanall task to remove downloads and sstate cached files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 10:22:34 +01:00
Richard Purdie a743e823bc base.bbclass: Fix spelling mistakes and change log level
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 16:25:03 +01:00
Saul Wold 7d42965565 base.bbclass: add support for commercial license check
This addresses [BUGID #410], require implict action by someone to enable
functionality that may have license implications.

By default this diables mp3 and mpeg decoding

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-08 16:46:33 +01:00
Richard Purdie 425435f403 base.bbclass: Implement PRINC, a way to increment the PR variable in .bbappend files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-05 22:26:32 +01:00
Richard Purdie 904ae4a753 Improve FILESPATH usage in .bbappend recipes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-05 22:26:32 +01:00
Richard Purdie e3d7890cac Make invalid LICENSE fields fatal
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 20:46:23 +01:00
Richard Purdie e6566322bd meta/classes: Fix whitespace mismatch and broken functions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-31 12:02:24 +01:00
Zhai Edwin c3232ed2da base.bbclass: Add xz-native as depends when finding *.xz in SRCURI
Just adding xz-native as DEPENDS in one bb file could not make its unpack run
after xz-native build done.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-27 13:04:38 +01:00
Saul Wold 179e056519 base.bbclass: Initial work to add GPLv2 Only Build with Whitelist for GPLv3 Native tools
[tweaks from Richard Purdie]

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20 16:53:36 +01:00
Richard Purdie 657188bfef Revert "base.bbclass: Temporarily disable fakeroot for install/package until other fixes get merged"
This reverts commit 2225e12142 and reenables
the functionality now its safe to do so.
2010-08-19 22:41:00 +01:00
Richard Purdie a45e1d54e1 Remove packaged-staging.bbclass
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 20:06:25 +01:00
Richard Purdie 2225e12142 base.bbclass: Temporarily disable fakeroot for install/package until other fixes get merged
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-17 12:13:31 +01:00
Richard Purdie 6cbd557cf5 base: Allow unpack to handle localpath=None
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-13 11:35:11 +01:00
Mark Hatle 4e2c84f6b4 pseudo: Change pseudo integration to better support local DBs
Change the pseudo integration:
  * Uprev to latest open source version
  * Restructure the patches to allow for many local DBs, as well as
    pseudo specific lib dirs.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-04 15:40:56 -07:00
Mark Hatle aed7ee04fd base.bbclass: Enable fakeroot (pseudo) usage during install and packaging
Use the virtual fakeroot program when installing a package and also
during packaging.  This is important as it allows us to track full
permissions, owners, groups and special files generated by packages.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-04 10:40:49 -07:00
Joshua Lock a4fb2c9666 pseudo: Enhancements
Enable changing the data directory on the fly from the environment and then use
this feature within poky to confine pseudo usage to each WORKDIR.

This fixes issues that could be seen under heavy inode reusage e.g.
with rm_work.

Work based mainly off a patch from Joshua Lock but finished by Richard
Purdie.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-24 00:39:58 +01:00
Richard Purdie 2160dddcc1 base.bbclass: Fix after bb.decodeurl was fixed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-07 21:16:16 +01:00
Joshua Lock e7fa3529f3 Update classes to use lib/oe
Adapt modifications from upstream to make Poky classes use lib/oe for the
common Python functionality.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-06 12:53:16 +01:00
Richard Purdie 14196cb031 base.bbclass: Sync minor layout changes with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-06 12:22:44 +01:00