aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel-yocto.bbclass
AgeCommit message (Collapse)Author
2014-12-20kernel-yocto: make sure git tags get dereferenced properly in do_patch()Jeff Wang
Commit 92c1ece6c347030d48995a36f4c67861356e59d3 causes the test in do_patch() in kernel-yocto.bbclass to fail if ${machine_srcrev} is an annotated tag. The check is meant to ensure that ${machine_srcrev} is an ancestor of HEAD, but if ${machine_srcrev} is a tag, then "$(git rev-parse --verify ${machine_srcrev})" evaluates to the SHA of the tag instead of what it's pointing to. Replacing "$(git rev-parse --verify ${machine_srcrev})" with "$(git rev-parse --verify ${machine_srcrev}~0)" fixed the problem by finding the object pointed to by the tag, and not the tag itself. This also works for commit IDs that are not tags, hence is safe in a scenarios. Jeff Wang <jeffrey.wang@ll.mit.edu> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-12-20kernel-yocto: fix non-git buildsBruce Ashfield
The ability to build non-git repositories was broken by two changes: - The existence of an empty 'patches' directory created during the unpack phase. This dir was incorrectly identified as a valid meta directory and broke the build. By ensuring that it is removed before creating the empty repository, it will no longer be found instead of the real meta directory. - The attempt to reset the git repository to a specific SRCREV when no SRCREV was provided. By checking for a SRCREV of 'INVALID', we avoid any processing and failed git operations. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-12-20kernel: Rearrange for 1.8Richard Purdie
In 1.8 we want to streamline the kernel build process. Basically we currently have multiple copies of the kernel source floating around and the copying/compression/decompression is painful. Lets assume we have a kernel source per machine since in most cases this is true (and we have a sysroot per machine anyway). Basically, instead of extracting a source into WORKDIR, then copying to a sysroot, we now set S to point straight at STAGING_DIR_KERNEL. Anything using kernel source can then just point at it and use: do_configure[depends] += "virtual/kernel:do_patch" to depend on the kernel source being present. Note this is different behaviour to DEPENDS += "virtual/kernel" which equates to do_configure[depends] += "virtual/kernel:do_populate_sysroot". Once we do this, we no longer need the copy operation in do_populate_sysroot, in fact there is nothing to do there (yay). The remaining part of the challenge is to kill off the horrible do_install. This patch splits it off to a different class, the idea here is to have a separate recipe which depends on the virtual/kernel:do_patch and just installs and packages the source needed to build modules on target into a specific package. Right now this code is proof of concept. It builds kernels and kernel modules. perf blows up in do_package with issues on finding the kernel version which can probably be fixed by adding back the right bit of do_install, and adding a dependency of do_package[depends] += "virtual/kernel:do_install" to perf. The whole thing needs a good write up, the corner cases testing and probably a good dose of cleanup to the remaining code. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-05kernel-yocto.bbclass: fix shell syntax errorPaul Eggleton
Spaces aren't valid around = in an assignment statement (not even with bash). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-10-24kernel-yocto: fix branch validation for AUTOREV, non machine_meta kernelsBruce Ashfield
The simplication of do_validate_branches missed a case where a custom kernel can supply SRCREV="${AUTOREV}", and not use SRCREV_machine at all. In this case, we will incorrectly try and test the tree for a non-existent commit, and break the build. By simplying the condition of the check to look for an empty SRCREV_machine, we can skip manipulating the tree and testing for a SRCREV. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-09-29kernel-yocto.bbclass: Fixup shell condition test syntax errorDarren Hart
A warning is issued when run about an unexpected operator due to a syntax error with an extra if empedded in the shell conditional. Remove the extra if. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: replace --is-ancestor with basic git porcelain commandsBruce Ashfield
--is-ancestor is a relatively new git option [commit 5907cda1, Aug 30 2012]. To support build machines with older versions of git installed, we can use the basic porcelain commands to acheive the same check. merge-base: "--is-ancestor A B" can be replaced with: if test "$(git rev-parse --verify A)" = "$(git merge-base A B)" Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-01kernel-yocto: convert echo statements to bb* equivalentsBruce Ashfield
Use the bbinfo, bberror, bbfatal equivalents to the existing echo statements within the kernel-yocto processing. This makes us consistent with the other messages from the build system. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: allow custom non-meta, SRCREV format buildsBruce Ashfield
When custom respositories are built (like a pure kernel.org repo), the machine_meta SRCREV format is not applicable. As such, we shouldn't check for the meta branch and we shouldn't only check SRCREV_machine based revisions. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: clean overly complex branch checkoutBruce Ashfield
Since the git fetcher ensures that branches exist, we no longer need to validate the branch and have a conditional checkout of the source. We can remove some checks and ensure that whenever we exit the do_kernel_checkout routine that a branch is always checked out. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: use show-ref instead of branch -aBruce Ashfield
It's better to check a branches existence via show-ref versus the end user branch commands. So we make the switch. Also as part of this change, we move the conversion of remote branches to local branches above the meta branch checking. This is required to ensure that the branch is local for the show-ref check. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: simplify branch SRCREV validationBruce Ashfield
The checking of machine and meta branch SRCREVs was inconsistent and didn't allow a mixed AUTOREV machine/meta branch combination. By simplifying the checks and changing the logic, we can now allow this combination. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: remove KBRANCH_DEFAULTBruce Ashfield
KBRANCH_DEFAULT was introduced as a way to trigger the enforced build of a particular branch of the tree. With the fetcher now enforcing SRCREVs existing on a branch, we can simply validate that the SRCREV is reachable from the final branch and no longer care about enforcing a given branch. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: remove branch existence checking in do_validate_branchesBruce Ashfield
Now that the fetcher will enforce branch existence, we no longer need to confirm that a branch exists, and that it was the branch requested to be built. We know the branch exists and we'll confirm that the specified SRCREV is going to be built after we've patched the tree. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: remove SRC_URI kbranch validationBruce Ashfield
We no longer need to check if the KBRANCH matches the branch specified in the SRC_URI. This is taken care of by the fetcher at the beginning and SRCREV ancestor validation after patching. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: remove containing branch checkBruce Ashfield
The bitbake fetcher now enforces that a commit is contained by a branch, so this code can be dropped from do_validate_branches. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: move SRCREV validation to patching phaseBruce Ashfield
Rather than attempting to condition the entire tree to machine SRCREV (since we don't know what branch will be built), we can instead wait until patching has completed and then confirm that we are indeed building a decendant of the specified SRCREV. The result is a much simpler check, and no mangling of the tree. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: use cat-file instead of git-showBruce Ashfield
Parsing the output of git show is error prone, since it changes based on the type of issue with bad comit IDs. Since the output is no longer used in the case of a valid ref, we can switch to git-cat-file and simply check the return code. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-09-01kernel-yocto: remove redundant SRCREV checkBruce Ashfield
do_validate_branches checks to ensure that a valid machine SRCREV was set. A test against an empty SRCREV is done in two separate locations, we only need one, since the first check immediately returns and the second check never hits. At the same time, we can stop referring to the same commit hash by 3 different names. Instead we assign to a local variable at the top of the routine, and refer to it at all times. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-05-06kernel-yocto: quote kconfig mode checkBruce Ashfield
We allow inheriting recipes to control the kconfig mode used by merge_config.sh via the KCONFIG_MODE variable. An error crept into the variable reference, and since it is not quoted, the true condition always runs. The result is that operations without an explicit kconfig mode cannot trigger allnoconfig for defconfig builds, which can result in some options being dropped from the final .config. Quoting the reference allows it to evaluate properly. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2014-03-11kernel-yocto: replace '=' with '+='Ming Liu
The dependency to CCACHE_DIR was moved to ccache.bbclass in commit 2acf8da4f13c175ea818b9514677b7059de1e3e2: [ ccache: Separate out into its own class ] then the '=' should be replaced by '+=', otherwise, it will overwrite the original ${CCACHE_DIR} in dirs. Signen-off-by: Ming Liu <ming.liu@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07kernel-yocto: fix diffconfig/kernel_configme breakageChristopher Larson
The bbclass did the following: do_diffconfig[depends] += "virtual/kernel:do_kernel_configme" This clearly introduces a cross-kernel task dependency if the recipe inheriting this class isn't the preferred provider of virtual/kernel, which is obviously wrong, but further, will break the build if a kernel-yocto based kernel is parsed and not skipped, but virtual/kernel refers to a non-kernel-yocto recipe, which would not have the do_kernel_configme task. Work around this by adding the in-recipe task dep programmatically with bb.build.addtask when do_diffconfig exists. Signed-off-by: Christopher Larson <kergoth@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07kernel-yocto: Disable ANSI escape codes from git branchMatt Fleming
'git branch' may use ANSI escape codes in its output (to provide colour) which doesn't play well with commands expecting pure plain text, e.g. fatal: '^[[31mmaster^[[m' is not a valid branch name. Use the --no-color option to ensure all branch names are plain text. Cc: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-28kernel-yocto: always checkout machine branch when existing validate_branchesBruce Ashfield
The validate_branches routine is responsible for ensuring that the specified SRCREV exists, and that the tree has been prepared for eventual patching starting directly from that SRCREV. On exit, the routine checks out the specified machine branch and the preparation is complete .. except if a KMETA branch isn't used, we exit early since the branch can't be validated. To make the exit condition consistent for all cases, we can move the KMETA validation inside a conditional and allow the same exit path for both cases. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2014-02-20kernel-yocto: Add do_diffconfig taskJoão Henrique Ferreira de Freitas
Instead of using 'diff' command between two kernel config files, the task diffconfig does the job creating the file $WORKDIR/fragment.cfg that user should review and use. [YOCTO #3862] Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-10-11kernel-yocto: Add a missing '['Peter Kjellerstedt
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06kernel-yocto: improve error checking on non-git reposBruce Ashfield
While non-git kernel repos are not the preferred format for a kernel upstream, they are supported. Depending on the creator of the archive the expanded source directory name varies. If the recipe for the kernel doesn't properly set S to the right value, a cryptic git error message is produced. We can detect the situation and offer some advice on how to fix the issue. A second check is also added in this commit for archive based kernel repos which won't have a SRCREV to validate. If we have no SRCREV or SRCREV is INVALID, we can exit the branch validation step immediately. This saves yet another cryptic git error message and simplifies a custom tgz based recipe. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-01meta: Don't use deprecated bitbake APIRichard Purdie
These have been deprecated for a long time, convert the remaining references to the correct modules and prepare for removal of the compatibility support from bitbake. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-26kern-tools: usability, bug fixes and no guiltBruce Ashfield
Updating the kern-tools SRCREV to pick up the following fixes: 60a894e kgit-s2q: add proper commit ID handling for mixed am/apply usage 3b08257 kgit-s2q: delete pruning of path support. c5868b4 kgit-s2q: Restore implicit exit status to "git apply" section 1bd00b9 kgit-scc: mask warnings from cleanup phase 5 bb75299 kgit-s2q: fix commit warp when running "git am --abort" ef9571b kgit-scc: cleanup git rebase-apply dir fdb7d21 kgit-scc: ensure treegen stops if a meta series fails 008987b config: add kconfig cleaning options 69ff569 kgit-s2q: strip blank lines and comments e7b4540 kgit-init: disable garbage collection on a new tree 417eaed kgit-s2q: delete old LTSI patch dir finding code 21f2200 kgit-scc: better error checking on resume ad5084c kern-tools: use .meta as meta data container 1deb5d8 kgit-meta: don't push patches without a series file eb431a1 kgit-s2q: aid patch reject resolution via helper scripts f859c40 kgit-s2q: only use patch annotations when explicitly asked 333ae18 kgit: speed patch application by batching patches bf6991d kgit: teach tools about non-default meta dirs bcfc712 kgit-s2q: usability improvements cb28803 kgit-s2q: fix patch prefix stripping. 37f40e1 kgit-s2q: warn/exit with error if patch not in series f4704d2 kgit-s2q: consistent rm usage e11819c kgit-s2q: standardize on use of git mailinfo 36a5eda kgit: remove guilt dependency c461a4f spp/scc: export mark commands to meta-series 5311162 updateme: ensure that generated features are only used once 4f7a263 kgit-checkpoint: clear .gitignore for meta branch 21ee6f2 updateme: enforce a matching machine b08749d kgit-scc: remove -meta files after consruction These are bug fixes, usability changes as well as the removal of the guilt dependency. During the uprev of the guilt package, the amount of circumvention of the typical guilt workflow and checks meant that using it as a series -> branch manager was no longer appropriate. As a result a new tools kgit-s2q (series 2 queue) was created based on git-quiltimport, git am, and the LTSI tree generation scripts. The result is better series to branch validation, faster application and a simpler management model. This tool is backwards compatible with any tree previously constructed with guilt. We are now "guilt free" Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09classes/lib: Fix getcmdstatus breakageRichard Purdie
I mistakenly thought subprocess had getcmdstatus in python 2. It doesn't so lets add a wrapper and have this work in both worlds. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09sanity/patch.py: Remove commands module usageRichard Purdie
The commands module is removed in python3. Use the subprocess module instead and the pipes module to replace the mkargs usage. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-04-02kernel-yocto: use KBRANCH as default build branchBruce Ashfield
commit 61001aa [kernel-yocto: respect SRC_URI modified branch selection] changed branch processing such that a branch specified in the SRC_URI would set the branch forced as the build branch. This change broke compatibility with the yocto-bsp, linux-yocto-custom based recipes. These recipes specify the branch to be built via KBRANCH, but allow the fetcher to use master for keeping the repository up to date. This means that no explicit branch is set in the SRC_URI and the routines return the default branch of 'master', which is not what is set in KBRANCH. To support this case, we simply pass a default branch into the routine returning the branch to build, and ensure that the default is KBRANCH so if no branch is passed in the SRC_URI, KBRANCH is always built. [YOCTO #4145] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-01kernel-yocto: allow building from fetcher source dirBruce Ashfield
The linux-yocto recipes themselves always set S="${WORKDIR}/linux" and arrange for the fetcher default of ${WORKDIR}/git to be renamed before building. Part of this rename involves an assumption that the directory used by the fetcher can be removed as part of the renaming process, or in fact that renaming is required. If a derived recipe uses S="${WORKDIR}/git", the checkout phase fails since the kernel source is removed as part of the processing. To fix this the code now detects this situation and does not clean the source directory before renaming the fetcher default (and in fact does not rename it at all). Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-03-01kernel-yocto: respect SRC_URI modified branch selectionBruce Ashfield
Although the setting of KBRANCH is the suggested/primary way to interact with the yocto kern-tools and the fetcher, some users may be more comfortable modifying the SRC_URI branch parameter directly. If they do, the tools will not force their branch and build output will be different then they expect, in non obvious ways. It's easy enough to detect this scenario, but checking the SRC_URI in the same way that the git fetcher checks for the branch (and SRCREV). If we take the value from the SRC_URI and use it directly in the patch/validate/update routines, we'll stay consistent with KBRANCH if it is used, and also automatically adapt to a manually changed branch parameter on the SRC_URI. For all other users, there are no visible or behavioural changes as a result of this change Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-02-04kernel-yocto/linux-yocto-custom: support low bandwidth optionsBruce Ashfield
To support configurations where active development is not being done within the oe/bitbake build environment and restricted bandwidth situations, this commit allows the SRC_URI to point to a kernel tgz instead of a full git repository. Outside of the upstream tgz instead of a kernel git repository, the restrictions, config and patch process is the same as any linux-yocto-custom recipe. An example linux-yocto-custom based recipe would have a configuration like this to build the 3.7 kernel, using an externally supplied config, from the 3.7 tgz: SRC_URI = "http://kernel.org/pub/linux/kernel/v3.0/linux-3.7.tar.bz2" PV = "3.7" S = "${WORKDIR}/linux-3.7" SRC_URI[md5sum] = "5323f3faadd051e83af605a63be5ea2e" SRC_URI[sha256sum] = "dc08d87a579fe2918362e6666e503a95a76296419195cb499aa9dd4dbe171a9e" [YOCTO #2686] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-02-04kernel-yocto: allow multiple / shared kernel feature directoriesBruce Ashfield
To promote the reuse and sharing of configuration fragments this change allows any kernel-yocto based recipe to have multiple alternate git repositories which provide kernel feature directory trees listed on the SRC_URI. These feature directories are in addition to any in-tree kernel meta data branches that may be available (described via the KMETA variable in linux-yocto recipes). Features found within these directories can be used from recipes via the KERNEL_FEATURES variable. Features found within a feature directory are free to include any other features that are available in any directories. In both cases the path to a feature description (a .scc file) is relative to the root of a given feature directory (which is how existing .scc files work) The search order for features is determined by the order that repositories appear on the SRC_URI. Normal SRC_URI rules apply to any repository that is added as a kernel feature container. A SRCREV must be supplied and it must be unpacked to a unique directory, which is controlled via the "destsuffic" url parameter. In addition to these standard requirements, any kernel feature repository reference should identify itself via the "type=kmeta" url parameter. If type=kmeta is not supplied, the repository will not be processed for kernel features. As an example, the following in a linux-yocto bbappend makes two additional feature directories available to KERNEL_FEATURES and fragments. SRC_URI += "git://git.yoctoproject.org/yocto-kernel-cache;protocol=git;branch=master;type=kmeta;name=feat1;destsuffix=kernel-cache/" SRC_URI += "git://${KSRC_linux_yocto_3_4};protocol=file;branch=meta;name=feat2;type=kmeta;destsuffix=kernel-features-experimental/" SRCREV_feat1 = "${AUTOREV}" SRCREV_feat2 = "${AUTOREV}" Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-02-04kernel-yocto: fix .scc and .cfg matchingBruce Ashfield
SRC_URIs that contained git repositories or other constructs that resulted in an extension of "." or a substring of "scc" or "cfg" were matching the tests for patches and configs. This was due to a python tuple being used instead of an array. Switching to an array makes the match exact and the behaviour we want. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-02-04kernel-yocto: make configuration audit details debug onlyBruce Ashfield
The details of the kernel configuration audit are typically a debug action, so should be moved to bb.debug(). But in order to maintain visibility of the results, a reference to the log file is provided in the standard message. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-01-18kernel-yocto: add KBUILD_OUTPUT to OE_TERMINAL_EXPORTSBruce Ashfield
Since linux-yocto based recipes have a split build and source directory, we should export KBUILD=${B} to the devshell. This allows the kernel to be incrementally build within the shell and not dirty the source directory (which breaks subsequent full builds). Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-18kernel-yocto: remove unnecessary non-bare warningBruce Ashfield
In the past working from a non-bare clone would cause problems, due to branches not existing in the WORKDIR clone. This hasn't been true for some time, since the routines which convert remotes into local branches have been functioning without problems. So we no longer need the warning and it can be removed. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-03kernel-yocto: checkout known branch before leaving do_validate_branchesBruce Ashfield
We should always leave the tree on a BSP branch or master when do_validate_branches completes to avoid modifying version tracked files are part of the build process. Modifying these files will lead to errors when changing branches, since the contents would be lost. This is evident in the case that a the meta branch is reset to a known SRCREV and the tree was left on the meta branch. This branch tracks the meta/meta-series, and other artifacts of the original tree construction. When the build process runs, it updates these same files, which creates a conflict when switching branches. This has been fixed in the tree construction scripts to not track these files, but a secondary fix is also required of not leaving the build on these branches, to allow arbitrary trees to be built. [YOCTO #3413] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-22kernel-yocto: clarify KMETA branch commentsBruce Ashfield
Having a meta branch is not strictly required by the tools (and recipes like linux-yocto-custom do not have meta branches), but the comments in the kernel-yocto.bbclass could lead someone to think that it was required. This commit clearifies the comment to the following: # We can fix up the kernel repository even if it wasn't a bare clone. # If KMETA is defined, the branch must exist, but a machine branch # can be missing since it may be created later by the tools. [YOCTO #3422] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-14kernel-yocto: fix kernel configuration audit for custom yocto kernelsBruce Ashfield
It was reported that the kernel configuration checks for custom yocto kernels had the following output: NOTE: validating kernel configuration grep: /meta-series: No such file or directory grep: /meta-series: No such file or directory WARNING: Can't find any BSP hardware or required configuration fragments. WARNING: Looked at //cfg///hdw_frags.txt and //cfg///required_frags.txt in directory: //cfg// NOTE: Tasks Summary: Attempted 375 tasks of which 367 didn't need to be rerun and all succeeded. which is not inspire confidence in the output of the process. Completely inhibiting the check is one option to remove the messages, but that removes the ability see output, which can help move users to a better or more fully configured linux-yocto based kernel. To fix this, we have to ensure that the path to the meta-series is always valid, and that the tools can deal with not all files existing in the audit directory. Since custom yocto kernels do not set KMETA (they don't have a meta branch), we ensure that a default of 'meta' is passed to the audit ('meta' is always valid), and that kconf_check itself can deal with an incomplete set of input audit files. The net result is output like this (using a defconfig with invalid options for the kernel being built): NOTE: validating kernel configuration This BSP sets 19 invalid/obsolete kernel options. These config options are not offered anywhere within this kernel. The full list can be found in your kernel src dir at: meta/cfg/standard/qemux86/invalid.cfg There were 1 instances of config fragment errors. The full list can be found in your kernel src dir at: meta/cfg/standard/qemux86/fragment_errors.txt The full list can be found in your kernel src dir at: meta/cfg/standard/qemux86/missing_required.cfg Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-09-04linux-yocto: check for bad SRCREV before branch checksBruce Ashfield
do_validate_branches ensures that the desired SRCREV is at the tip of every branch that contains the revision. To do this, it looks for containing branches and processes them. This processing was mistakenly placed before the check for an invalid SRCREV, hence a git error message is seen in the log if a bad SRCREV is used, rather than a clear message. reordering the checks, and fixing a check for master, ensures that clear messages are generated in all cases. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-04linux-yocto: fix unapplied patch error messageBruce Ashfield
When patches fail to apply, the status of all pending patches should be exported to the logs and to the user. Currently, a missing export of GUILT_BASE makes it look more like an internal error, than a 'normal' patch failure: | [ERROR] unable to complete push | pending patches are: | Patches directory doesn't exist, try guilt-init With this variable exported, we have this: | [INFO] validating against known patches (qemux86-standard-meta) | error: patch failed: Makefile:2 | error: Makefile: patch does not apply | To force apply this patch, use 'guilt push -f' | [ERROR] unable to complete push | pending patches are: | links/files/0002-makefile-patch.patch Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-25kernel-yocto: don't require meta branch for custom reposBruce Ashfield
The commit a9f11849 [linux-yocto: explicitly export KMETA to scripts] allows the meta branch name to be changed by exporting it to all phases of the build. But if a custom kernel without a meta branch is built, we end up passing an empty string to the creation scripts, which breaks the build since input is expected. Inhibiting the export of KMETA to the creation scripts when empty fixes the problem. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-08-25kernel-yocto: set master branch to a defined SRCREVBruce Ashfield
To support custom repositories that set a SRCREV and that only have a single master branch, do_validate_branches needs a special case for 'master'. We can't delete and recreate the branch, since you cannot delete the current branch, instead we must reset the branch to the proper SRCREV. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-08-19linux-yocto: explicitly export KMETA to scriptsBruce Ashfield
The kern-tools scripts can support a meta branch and directory of a name that isn't "meta", but they need the name passed through the environment variable KMETA. ensuring that KMETA is exported in the shell environment sets the stage to support flexible meta branch name. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-08-19linux-yocto: make KBRANCH the exception and not the ruleBruce Ashfield
The kernel branch is no longer required by the yocto-kern-tools to locate BSP feature descriptions (it is the MACHINE:KTYPE descriptor), so we no longer require that the BSP branch be explicitly set. If a kernel branch is explicitly set, it is now used to trigger a checks to ensure that the branch really is being built. Otherwise the branch that the machine description creates will be built (just as it always was). This further simplies the use and configuration of a linux-yocto based kernel recipe. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-07-22kernel-yocto.bbclass: Delete superfluous creation of ${S}/.git directoryRobert P. J. Day
In do_kernel_checkout(), replace the creation of ${S}/.git with just the creation of ${S} since the .git subdirectory is created only a few lines later using a "mv". Here's the original code: rm -rf ${S} mkdir -p ${S}/.git echo "WARNING. ${WORKDIR}/git is not a bare clone." echo "Ensure that the SRC_URI includes the 'bareclone=1' option." # we can fix up the kernel repository, but at the least the meta # branch must be present. The machine branch may be created later. mv ${WORKDIR}/git/.git ${S} <-- See? There it is. There's no functional change here, it's just less confusing. Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>