summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* tiff: fix CVE-2019-7663Ross Burton2019-07-162-1/+79
| | | | | | | (From OE-Core rev: d06d6910d1ec9374bb15e02809e64e81198731b6) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* tiff: fix CVE-2019-6128Ross Burton2019-07-162-1/+54
| | | | | | | (From OE-Core rev: 7293e417dd9bdd04fe0fec177a76c9286234ed46) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* tiff: remove redundant patchRoss Burton2019-07-162-28/+1
| | | | | | | | | The patching to make the new libtool work (from 2008) is no longer needed. (From OE-Core rev: 4210fafa851d011023f5a58ed3887148168f861c) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* e2fsprogs: Remove patch that disabled 64bit for ext4 by defaultAdrian Bunk2019-07-162-37/+0
| | | | | | | | | | OE no longer ships a git snapshot of e2fsprogs, so use the new upstream default now. (From OE-Core rev: f5edce401cfb31ebd0200adaba9a201caf7ea705) Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* xauth:upgrade 1.0.10 -> 1.1Zang Ruochen2019-07-161-2/+2
| | | | | | | | | -Upgrade from xauth_1.0.10.bb to xauth_1.1.bb. (From OE-Core rev: abe86c04ab3f5fec851bc28841fe52e19f6550a7) Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* iproute2: update to 5.2.0Oleksandr Kravchuk2019-07-161-2/+2
| | | | | | | (From OE-Core rev: e7844826305000f61e80268b74bf9cb85a005d4b) Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* msmtp: use alternatives to manage /usr/lib/sendmailChen Qi2019-07-161-5/+4
| | | | | | | | | | There are several packages which all provide /usr/lib/sendmail when lsb is enabled. So use alternative to manage it. (From OE-Core rev: 0a433802a9b7a41ab6732bc1915571b7a190985f) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* mdadm: fix ptest hangMingli Yu2019-07-162-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | | Before commit[80d17497b7 mdadm: improve the run-ptest], the mdadm ptest just run some tests without "--keep-going" option. After the option added in commit 80d17497b7, all test cases have chance to be called. But the logic in mdadm upstream commit [e2a8e9d tests: wait for complete rebuild in integrity checks] will make the test enter infinite loop especially in qemu env as commit e2a8e9d update the logic from "check wait" to "check state 'U*'" for testcase tests/01r5integ and tests/01raid6integ. Considering all other cases still use "check wait" logic, so revert e2a8e9d to make tests/01r5integ and tests/01raid6integ also use "check wait" logic to avoid the infinite loop. [YOCTO #13368] (From OE-Core rev: b507793f4adde0c60588b06520d7d0b70acfd82a) Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* conf/poky: add debian-10 to the supported distribution listRoss Burton2019-07-151-0/+1
| | | | | | | | | | Debian 10 is the new stable release and is being tested on the autobuilder, so add this to the supported distribution list. [ YOCTO #13432 ] Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: uihelper: No longer listen to scenequeue task startedRichard Purdie2019-07-151-1/+1
| | | | | | | | | | With the merge of the scenequeue with real tasks, this now confuses the statistics. The real tasks are the definitive progress so monitor only those. (Bitbake rev: 20956b508a082224139c8f56b68299edff6e0443) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: tests: Add initial scenario based test for runqueueRichard Purdie2019-07-1510-0/+442
| | | | | | | | | | We need some tests for runqueue, its been something which has been hard to test for a long time. Add some dummy metadata to allow this, mirroring the OE structure in spirit. (Bitbake rev: 37564d7440c5d7aa05ec537f3b79026b1c83bb68) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Complete the merge of scenequeue and normal task executionRichard Purdie2019-07-151-117/+109
| | | | | | | | | | | | This combines the scqenequeue and normal task execution into one function and simplifies the state engine accordingly. This is the final set of cleanup to fully merge things without adding the extra noise to the previous commits. (Bitbake rev: 56f3396d8c7cfbebd175877c9d773e4e35f8dea1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Alter setscenewhitelist handlingRichard Purdie2019-07-151-49/+30
| | | | | | | | | | | | | | | | Since there is now parallel execution of setscene and normal tasks, the way setscenewhitelist handling worked can't function the way it did. Paul and I never liked its error output anyway. This code tries a different approach, checking the task at execution time but printing the uncovered task list. This code may need improvement after real world usage but can work with the new task flows. (Bitbake rev: a08d8ba5f5194a09391b1904ee31c04c5f0b1e28) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Merge the queues and execute setscene and normal tasks in ↵Richard Purdie2019-07-151-54/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | parallel This is the serious functionality change in this runqueue patch series of changes. Rather than two phases of execution, the scenequeue setscene phase, followed by normal task exeuction, this change allows them to execute in parallel together. To do this we need to handle marking of tasks as covered/uncovered in a piecemeal fashion on a task by task basis rather than in a single function. The code will block normal task exeuction until any setcene task which could cover that task is executed and its status is known. There is a slight optimisation which could be possible here at the risk of races but that doesn't seem worthwhile. The state engine isn't entirely cleaned up in this commit (see FIXME) and the setscenewhitelist functionality is broken by it (see following patches) however its good enough to test with normal workflows. (Bitbake rev: 58b3f0847cc2d47e76f74d59dcbbf78fe41b118b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Clarify scenequeue_covered vs. tasks_coveredRichard Purdie2019-07-151-8/+12
| | | | | | | | | | It wasn't clear whether the variable contained just setscene covered tasks or all covered tasks. We need both sets of data so lets just have two clearly named variables. (Bitbake rev: a9fb55627762e7c8b3df30b335ad0b2f1adc080e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Further scheduler buildable tasks cleanupRichard Purdie2019-07-151-8/+1
| | | | | | | | The code for setting up buildable tasks can be simplified. (Bitbake rev: ce3cd2df5b034f8dbdcf9834e8b9a393b6b01aad) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Remove pointless variableRichard Purdie2019-07-151-9/+10
| | | | | | | | | Its now clear a variable is pointless, remove it and tweak the logic so the data structure of the existing variable matches what we need. (Bitbake rev: c257c7b93b86dd794d31307e820215301c7ccf3b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Code simplificationRichard Purdie2019-07-151-4/+1
| | | | | | | | Simplfy some looping code which no longer has any purpose. (Bitbake rev: 01dfc37095e5c661f275917d22aa1c1ad7f24d8d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Tweak comments and debug codeRichard Purdie2019-07-151-1/+4
| | | | | | | | | Add some extra comments to build_scenequeue_data() and fix the debug code so it actually works. (Bitbake rev: 8ea6d8193fc89b4596da69e400fbc50e5a443f9f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Simplify scenequeue unskippable calculationRichard Purdie2019-07-151-32/+13
| | | | | | | | | | | | | The existing code to compute the 'unskippable' setscene task list is overcomlicated, so replace it with something functionally equivalent but simpler and more efficient. We don't need to process all chains, just the 'top' ones to the first setscene tasks. This also makes the code more readable. (Bitbake rev: 06982c82f10cbdbea0b601e5cf0450a2a99c14c2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Add covered_tasks (or 'collated_deps') to scenequeue dataRichard Purdie2019-07-151-0/+6
| | | | | | | | | | | | Its useful to have a list of all the tasks a given setscene task covers and we can easily generate this data whilst doing other data processing. This is used in later changes to runqueue rather than trying to compute it on the fly which is difficult. (Bitbake rev: 63ddc2fec40bd1b456702b97091f9dc5ef70a941) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: event/runqueue: Drop StampUpdate event, its pointless/unusedRichard Purdie2019-07-154-35/+0
| | | | | | | | | | Whilst this class has existed for years, it doesn't have any users and has a questionable interface. Drop it to allow for further simplification and changes. (Bitbake rev: 3ab51764f7965d696bb2c5a872bf161473df4289) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Fold remains of the scenequeue setup into RunQueueExecuteRichard Purdie2019-07-151-47/+42
| | | | | | | | | Also move the scheduler init over, apart for the builtable tasks part which need to remain called later. (Bitbake rev: ad30a16cd30f9eab0224eb271f98f9a24516b621) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Simplify _execute_runqueue logicRichard Purdie2019-07-151-22/+24
| | | | | | | | | Cleanup to the _execute_runqueue logic to reduce indentation, drop the dummy executor class concept and prepare for further changes. (Bitbake rev: 726e3c61a69fef16e605ba9b911a17cd99f1a2c3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Remove RunQueueExecuteScenequeue and RunQueueExecuteTasksRichard Purdie2019-07-151-56/+43
| | | | | | | | | | Replace the remains of the Tasks and Scenequeue Tasks classes with simple function calls. Also drop the dummy version of the execution class to simplify further changes as its not needed. (Bitbake rev: 33805394310046cd58c2194f6d063b3946811014) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Fix counter/task updating glitchRichard Purdie2019-07-151-1/+1
| | | | | | | | | | | Some tasks were not being marked as covered/notcovered since internal calls were being made without using the external call points. Fix the accounting issues by using the correct external call points. (Bitbake rev: fe0a7be03e8baed22f6b0915cd5f7956ba3fbf83) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Merge scenequeue and real task queue code togetherRichard Purdie2019-07-151-258/+258
| | | | | | | | | Merge the unique functions from the Tasks and Scenequeue Tasks classes into the common base class. (Bitbake rev: 7539fe22bc831bb835901e3aca77985ab4ebc4c7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Merge stats handling together for setscene/real tasksRichard Purdie2019-07-151-19/+20
| | | | | | | | | Use a seperate stats class for scenequeue tasks and move the setup into the base class. Update references accordingly. (Bitbake rev: 32f39bbd5d3b7394689da9ba05be2c15b4523b27) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Uniquely namespace the scenequeue functionsRichard Purdie2019-07-151-39/+47
| | | | | | | | | | | | In preparation for merging the setscene and normal task execution, uniquely namespace the scenequeue specific functions. For the one shared function, add the "sq_live" variable so we know which functions to send the results to. (Bitbake rev: 2cbe9399902ba67dca566c7344b2247412cf4d5c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Factor out the process_setscene_whitelist checksRichard Purdie2019-07-151-40/+45
| | | | | | | | | For ease of refactoring, move this code to its own separate function until it becomes clear what we should do with it. (Bitbake rev: 4b96b204f986dd62fba485876b7208665c14268d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Remove unused function parameterRichard Purdie2019-07-151-2/+3
| | | | | | | | | The function is only used by setscene code so the parameter is pointless, remove it. (Bitbake rev: b52dbf5e9cb327f8434213d286ad333f5dbad1d3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Move scenequeue data generation to a separate functionRichard Purdie2019-07-151-224/+244
| | | | | | | | | | | Move the bulk of the scenequeue data generation to its own function allowing for refactoring of the code. Create the start of an object to represent this data. (Bitbake rev: 68326e0426f25a1bbfd5ae3aa278656a3744053e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Remove now uneeded codeRichard Purdie2019-07-151-25/+1
| | | | | | | | | | With the removal of the setcene verify code, this additional code block is also now unneeded since tasks can't be forced at this point in the code any move. This effectively reverts f21910157d873c030b149c4cdc5b57c5062ab5a6. (Bitbake rev: 4514fe4f045d595cc9b938f9326f66f2b3e99f71) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Drop unused BB_SETSCENE_VERIFY_FUNCTION2Richard Purdie2019-07-151-30/+3
| | | | | | | | | | | | Nothing in OE-Core uses this and hasn't since 2017. It wasn't needed by core metadata since the switch to recipe specific sysroots. Since this function would be hard to implement with the planned changes to runqueue, drop it which allows simplification and further code cleanup. (Bitbake rev: 5deaa5df730a8a846f3192b4a639b7a2a72c1b71) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Tweak buildable variable handling in schedulerRichard Purdie2019-07-151-4/+5
| | | | | | | | | Work off a copy of the 'buildable' class variable, allowing easier future code changes. (Bitbake rev: e851169acfebba404514135bf512e6f045739a13) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: siggen: Use unique hashes for tasksRichard Purdie2019-07-151-2/+3
| | | | | | | | | | | | Now that runqueue optimises based on task hash, we need to ensure tasks have unique hashes even in the simplest siggen mode. Use the task name to calculate a unique hash. This fixes runqueue tests when hash optimisations are added. (Bitbake rev: 8ede873ef4ef492fbaf01474685c1ca8b34d80d5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: siggen: Fix default handlerRichard Purdie2019-07-151-1/+2
| | | | | | | | | After the unihash changes the default signature handler didn't work. Tweak it to adapt to those changes (allowing the runqueue tests to work). (Bitbake rev: 7d486d3fb7176a3486f3f2484457724d7185df58) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache: Set packages for skipped recipesRobert Yang2019-07-151-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | The provides and rprovides had been set for skipped recipes, packages are similar to them (all of them provide something), so also set it. This makes it easier to figure out the RDEPENDS issues, for example, lmsensors (lmsensors_3.5.0.bb) RRECOMMENDS lmsensors-config-fancontrol (lmsensors-config_1.0.bb), but lmsensors-config is skipped for some reasons, then if we run: $ bitbake lmsensors ERROR: Nothing RPROVIDES 'lmsensors-config-fancontrol' (but /path/to/lmsensors_3.5.0.bb RDEPENDS on or otherwise requires it) NOTE: Runtime target 'lmsensors-config-fancontrol' is unbuildable, removing... Missing or unbuildable dependency chain was: ['lmsensors-config-fancontrol'] ERROR: Required build target 'lmsensors' has no buildable providers. Missing or unbuildable dependency chain was: ['lmsensors', 'lmsensors-config-fancontrol'] We had no way to know who rprovides lmsensors-config-fancontrol, we can figure it out by bitbake/contrib/dump_cache.py after this patch. (Bitbake rev: 9cf7a5e5a28e676427970a821893e9d930973969) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache: Remove duplicated lines for provides and rprovidesRobert Yang2019-07-151-4/+2
| | | | | | | | | | Whether skip or not, they are always set, so move the lines ahead to avoid duplicated lines. (Bitbake rev: c1a8ebb8f83e5108b667f291c924fc2fbd2ac769) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/icecc: Disable remote pre-processing by defaultJoshua Watt2019-07-151-1/+1
| | | | | | | | | | | | | | | | | | | Unfortunately, GCC has a number of outstanding bugs related to using -fdirectives-only, which causes a lot of errors when using Icecream. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47254 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88475 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89658 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91152 Until many of these are addressed, it is better to disable remote preprocessing. (From OE-Core rev: 762528a66e5a6e3444f9c13c04ecac7f5bc8efd5) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* ninja: use Python 3Ross Burton2019-07-151-2/+2
| | | | | | | | | | As part of the mission to remove the use of Python 2, explicitly bootstrap Ninja with Python 3. (From OE-Core rev: b6a84fff1fbdab49af626d221085f3c052c4021d) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu: use Python 3 to buildRoss Burton2019-07-152-1/+2
| | | | | | | | | | As part of the mission to remove the use of Python 2, explicitly use Python 3 when building qemu. (From OE-Core rev: 9b3ed6f7ab8bf56a05a074162ed37ead12f248cf) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* grub: build with python 3Ross Burton2019-07-151-0/+2
| | | | | | | | | | As part of the mission to remove the use of Python 2, explicitly use Python 3 when building grub. (From OE-Core rev: f2286cc31bd92d75c7f8662abe816867ab041d50) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* libpsl: update Upstream-StatusRoss Burton2019-07-151-1/+1
| | | | | | | (From OE-Core rev: 5904f257cb3b9059959c3619e0c7fee248ab1d51) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Remove remnants of bluez4 supportAdrian Bunk2019-07-1513-38/+18
| | | | | | | | | | | | | | bluez4 was removed from meta-oe 2 years ago. Simplfy the setup of the two level bluetooth and bluez4/bluez5 distro features by removing the bluez4/bluez5 distro features. This also removes the no longer required bluetooth class. (From OE-Core rev: dcf889e93401f7c4de0055d53271eacc3882eccc) Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemurunner.py: fix race condition at qemu startupChen Qi2019-07-151-7/+14
| | | | | | | | | | | | | | When handling pid file, qemu would first create the file, stat it, lock it and then write actually contents to it. So it's possbile that when reading the pid file, the content is empty. [YOCTO #13390] (From OE-Core rev: 170e59b203a02f8438b9aeab3a45f6fcd6608b1f) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime/rpm: Move test_rpm_query_nonroot test case to RpmBasicTestChen Qi2019-07-151-29/+30
| | | | | | | | | | The test_rpm_query_nonroot test case was in RpmInstallRemoveTest. But it should logically belong to RpmBasicTest. So move it there. (From OE-Core rev: 506388a10a26613524602dcb4e630f216c6fee60) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime/rpm: ensure no user process running before deleting userChen Qi2019-07-151-0/+15
| | | | | | | | | | | | | | | | | | In case of systemd, `su -c 'xxx' test1' via ssh will create several processes owned by test1, e.g. /lib/system/systemd --user. These processes are actually managed by user@UID.service (e.g. user@1000.service). And such service is managed automatically by systemd. In other words, it will be cleaned up by systemd automatically. So we need to wait for systemd to clean it up before trying to use `userdel' to delete the user. (From OE-Core rev: 9d398be42a69d25277b929d760aaed1679f3cd54) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* glibc-package.inc: Do not use bitbake variable syntax for shell variablesPeter Kjellerstedt2019-07-151-24/+24
| | | | | | | | | | | | | | Using bitbake variable syntax (i.e., ${FOO}) for shell variables is bad practice. First of all it is confusing, but more importantly it can lead to weird problems if someone actually defines a bitbake variable with the same name as the shell variable. Also correct the indentation in stash_locale_cleanup(). (From OE-Core rev: 4e303063db731feae192314bab2ca16d26192dbb) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sysstat: Use sysstat.service in source for cron with systemdHaiqing Bai2019-07-151-4/+7
| | | | | | | | | | | | The sysstat.service script in source launchs sysstat-collect and sysstat-summary services when cron is installed with systemd. At this time, the upstream sysstat.service must be installed. (From OE-Core rev: 06a596ff8100f4a6506ff8d7f9ec93dd6aac6cb2) Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>