summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/e2fsprogs/e2fsprogs
AgeCommit message (Collapse)Author
2019-07-16e2fsprogs: Remove patch that disabled 64bit for ext4 by defaultAdrian Bunk
OE no longer ships a git snapshot of e2fsprogs, so use the new upstream default now. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-12e2fsprogs: Skip slow ptest testsRichard Purdie
The slow tests run unreliably with our current setup/infrsstructure/timeouts. There are only five slow ones and having the other ~250 run reliably without timeouts is the priority right now. We can revisit the slow tests at some later date if wanted. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-01e2fsprogs: fix file system generation with large filesRoss Burton
When copying files into the file system the file offset was being truncated to a signed 32-bit value, so any files that are larger than 2^31 bytes were the right size, but no content after that point. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04e2fsprogs: fix stray quote in test configurationAnuj Mittal
Introduced during the last recipe upgrade and was causing tests to fail. Fixes [YOCTO #12946] Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-08-02e2fsprogs: 1.44.2 -> 1.44.3Robert Yang
Rebased ptest.patch. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-04e2fsprogs: 1.43.8 -> 1.44.2Robert Yang
- Rebased Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch - Removed backport patch 0001-libext2fs-fix-build-failure-in-swapfs.c-on-big-endia.patch - The LIC_FILES_CHKSUM changed because it updated the address, others are the same Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-11e2fsprogs: refresh patchesRoss Burton
The patch tool will apply patches by default with "fuzz", which is where if the hunk context isn't present but what is there is close enough, it will force the patch in. Whilst this is useful when there's just whitespace changes, when applied to source it is possible for a patch applied with fuzz to produce broken code which still compiles (see #10450). This is obviously bad. We'd like to eventually have do_patch() rejecting any fuzz on these grounds. For that to be realistic the existing patches with fuzz need to be rebased and reviewed. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-01-29e2fsprogs: 1.43.7 -> 1.43.8Huang Qiyu
Upgrade e2fsprogs from 1.43.7 to 1.43.8. Backport patch to fix build on BE systems Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-11-29e2fsprogs: remove aclocal/acinclude danceRoss Burton
Upstream has fixed their use of aclocal.m4 vs acinclude.m4, so now we can remove some hacks that were previously required. Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-11-21e2fsprogs: 1.43.5 -> 1.43.7Robert Yang
Remove reproducible-doc.patch which is already in the source. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-10-09e2fsprogs: modify ptest scriptJuro Bystricky
e2fsprog testsuite used to log results into its own log file into /usr/lib/e2fsprogs/ptest/test.log. Therefore console output was not available and redirecting ptest-runner output into a log file would not capture output of any individual tests. So overall the whole e2fsprogs testsuite consisting of about 300 tests was evaluated as a single test. This patch ensures the e2fsprogs test_script output is not automatically redirected while executing during run-ptest. Any redirection is up to the user. Additionally, the results of tests are prefixed by more canonical "PASS:" FAIL:" based on the actual test results. Aditionally, remove various files created by the testsuite. [YOCTO #12146] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-18e2fsprogs: set dir's mode correctlyRobert Yang
Fixed: 1) in pkg_postinst task set wanted file permissions: ---> chmod -R 521 "$D/opt/my_folder" 2) generate the rootfs image Results: my_folder hasn't correct permissions on rootfs ext4 image -> permissions are changed to 721 But it should be 521. [YOCTO #11652] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-08-25e2fsprogs: fix ptest scriptYi Zhao
* Fix hardcoded path for ptest script which would cause failure on mulitilib: ls: cannot access '/usr/lib/e2fsprogs/ptest/test/[a-zA-Z]_*': No such file or directory ./test_script: line 54: /usr/lib/e2fsprogs/ptest/test/test_post: No such file or directory * Add missing '$' for shell variable reference Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23e2fsprogs: 1.43.4 -> 1.43.5Robert Yang
Removed the following 2 patches which are already in the source: - 0001-e2fsck-exit-with-exit-status-0-if-no-errors-were-fix.patch - e2fsprogs-1.43-sysmacros.patch Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16e2fsprogs-doc: binary reproducibleJuro Bystricky
When compressing by gzip, do not save the original file name and time stamp. [YOCTO #11916] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-27meta: Add/fix missing Upstream-Status to patchesRichard Purdie
This adds or fixes the Upstream-Status for all remaining patches missing it in OE-Core. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-21e2fsprogs: Fix wrong error code after optimizationDaniel Schultz
fsck.ext will return an error code of 1 if a file systems was checked and successfully repaired. Even when an optimization was performed it will return this error code. This patch will change the error code to 0 if only optimizations had changed the file systems. The reason for this patch is a question I asked at the ext4 ML: http://www.spinics.net/lists/linux-ext4/msg55700.html Backport from git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git Based on commit bf9f3b6d5b10d19218b4ed904c12b22e36ec57dd Signed-off-by: Daniel Schultz <d.schultz@phytec.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-10e2fsprogs: expand @mkdir_p@ during configurationJoe Slater
If we do not do this, locale data will not be put into /usr/share/locale. Signed-off-by: Joe Slater <jslater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-01e2fsprogs: Fix build with glibc-2.25Martin Jansa
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-15e2fsprogs: 1.43.3 -> 1.43.4Robert Yang
* Rebased Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch. * The mkfs.ext4dev is gone. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17e2fsprogs: Fix missing check for permission denied.Jackie Huang
If the path to "ROOT_SYSCONFDIR /mke2fs.conf" has a permission denied problem, then the get_dirlist() call will return EACCES. But the code in profile_init will treat that as a fatal error and all executions will fail with: Couldn't init profile successfully (error: 13). But the problem should not really be visible for the target package as the path then will be "/etc/mke2fs.conf", and it is not likely that a user have no permission to read /etc. Signed-off-by: Jian Liu <jian.liu@windriver.com> Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-01e2fsprogs: tweak mke2fs ext4 featuresHongxu Jia
While e2fsprogs upgraded to 1.43, it dropped the patch Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch, we get it back and rebase for 1.43 to fix invoking grub-probe failed. Without the fix: ... root@localhost:~# mkfs.ext4 /dev/sda3 [skip] root@localhost:~# grub-probe --target=fs -d /dev/sda3 grub-probe: error: unknown filesystem. ... After apply the fix: ... root@localhost:~# mkfs.ext4 /dev/sda3 [skip] root@localhost:~# grub-probe --target=fs -d /dev/sda3 ext2 ... Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-06-14e2fsprogs: 1.42.99+1.43+git -> 1.43Robert Yang
* Removed patches already in the source: - Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch - xattr_ordering.patch * COPYING -> NOTICE, the md5sum is the same. * e2fsprogs_git.bb -> e2fsprogs_1.43..bb Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-03e2fsprogs: do not enable non-stable features by defaultJonathan Liu
Signed-off-by: Jonathan Liu <net147@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-15e2fsprogs: Update to upstream version of a patchRichard Purdie
Switch to the upstream version of the xattr patch. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-11e2fsprogs: Fix multiple xattr handlingRichard Purdie
There is an ordering issue when adding multiple xattr values to an ext filesystem build using the -d option to mkfs. This patch fixes that issue. Its been posted for discussion with the upstream community. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-17e2fsprogs: 1.42.9 -> 1.43 (master)Robert Yang
Upgrade to 1.43 (master) to make "mke2fs -d" support xattr, so that the layer which requires xattr such as meta-selinux can populate images easily. * Remove the following patches since they are alredy in the source. 0001-e2fsprogs-fix-cross-compilation-problem.patch 0001-libext2fs-fix-potential-buffer-overflow-in-closefs.patch 0001-mke2fs-add-the-ability-to-copy-files-from-a-given-di.patch 0002-misc-create_inode.c-copy-files-recursively.patch 0003-misc-create_inode.c-create-special-file.patch 0004-misc-create_inode.c-create-symlink.patch 0005-misc-create_inode.c-copy-regular-file.patch 0006-misc-create_inode.c-create-directory.patch 0007-misc-create_inode.c-set-owner-mode-time-for-the-inod.patch 0008-mke2fs.c-add-an-option-d-root-directory.patch 0009-misc-create_inode.c-handle-hardlinks.patch 0010-debugfs-use-the-functions-in-misc-create_inode.c.patch 0011-mke2fs.8.in-update-the-manual-for-the-d-option.patch 0012-Fix-musl-build-failures.patch CVE-2015-0247.patch copy-in-create-hardlinks-with-the-correct-directory-.patch fix-icache.patch misc-mke2fs.c-return-error-when-failed-to-populate-fs.patch * Remove cache_inode.patch since it is not needed any more * Updated mkdir.patch and ptest.patch * Add --enable-libblkid to EXTRA_OECONF since libblkid is not created by default. * Time of core-image-sato-sdk do_rootfs: - Before upgrade real 3m18.508s user 7m42.088s sys 1m1.984s - After upgrade real 3m21.552s user 7m38.496s sys 1m0.644s The are nearly the same * The "fsck -f" shows the image is OK, and also can boot. [YOCTO #8622] Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2016-01-11Add "CVE:" tag to current patches in OE-coreMariano Lopez
The currnet patches in OE-core doesn't have the "CVE:" tag, now part of the policy of the patches. This is patch add this tag to several patches. There might be patches that I miss; the tag can be added in the future. Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-10-24e2fsprogs: backport a patch to fix filetype for hardlinkRobert Yang
Backport a patch to fix hardlinks filetype: IMAGE_INSTALL_append = " e2fsprogs" $ ./tmp/sysroots/x86_64-linux/sbin/fsck.ext4 tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4 -f Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Setting filetype for entry 'fsck.ext2' in /sbin (80) to 1. Setting filetype for entry 'mkfs.ext4' in /sbin (80) to 1. Setting filetype for entry 'fsck.ext4' in /sbin (80) to 1. Setting filetype for entry 'mkfs.ext4dev' in /sbin (80) to 1. Setting filetype for entry 'fsck.ext3' in /sbin (80) to 1. Setting filetype for entry 'mkfs.ext2' in /sbin (80) to 1. Setting filetype for entry 'mkfs.ext3' in /sbin (80) to 1. Setting filetype for entry 'e2fsck' in /sbin (80) to 1. Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information test.img: ***** FILE SYSTEM WAS MODIFIED ***** test.img: 799/65536 files (0.1% non-contiguous), 14652/262144 blocks Now when run it again, we may get: [snip] Pass 3A: Optimizing directories [snip] test.img: ***** FILE SYSTEM WAS MODIFIED ***** test.img: 799/65536 files (0.1% non-contiguous), 14652/262144 blocks This is fine since it is optimizing, from "man e2fsck": e2fsck may sometimes optimize a few directories --- for example, if directory indexing is enabled and a directory is not indexed and would benefit from being indexed, or if the index structures are corrupted and need to be rebuilt. [YOCTO #8544] Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-09-12meta: Fix Upstream-Status statementsRoss Burton
Fix a variety of problems such as typos, bad punctuations, or incorrect Upstream-Status values. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-07e2fsprogs: fix the CVE-2015-1572Roy Li
Backport a patch to fix CVE-2015-1572 http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-1572 Signed-off-by: Roy Li <rongqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-21e2fsprogs: add ptestDmitry Eremin-Solenikov
Enable ptest for e2fsprogs by reusing provided testsuite. Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-03-16e2fsprogs: CVE-2015-0247Sona Sarmadi
Fixes a heap buffer overflow in lib/ext2fs/openfs.c which allows a trivial arbitrary memory write under certain conditions. References http://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/commit/?id=f66e6ce4 http://www.ocert.org/advisories/ocert-2015-002.html Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-02-21e2fsprogs: Add a patch to speedup mkfsRichard Purdie
See the patch description, this adds a tweak to an algorithm to improve core-image-sato-sdk mkfs time from over 8 minutes to about 35s. Needs discussion upstream but seems reasonable for our uses of it. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-10e2fsprogs: update acinclude.m4Ross Burton
Some macros have been added upstream and were not being executed, so refresh our fork of this file. Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-08-23e2fsprogs: Backport fixes for building with muslPaul Barker
Both of these fixes have been applied upstream and improve general code correctness. They are needed when building with TCLIBC=musl but shouldn't cause any harm with other libc implementations. Signed-off-by: Paul Barker <paul@paulbarker.me.uk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-21e2fsprogs: return error when failed to populate fsRobert Yang
We need return retval when "mke2fs -d" failed, otherwise the "$?" would be 0 which is misleading. [YOCTO #6011] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-11e2fsprogs: fix cross compilation problemChen Qi
When compiling e2fsprogs for qemumips64, we got compilation errors. The root cause is that parse-types.sh script would fail for mips64. However, the type size checking in parse-types.sh doesn't make much sense in case of cross compilation. This is because that the typedef statements in asm_types.h are for the target machine while the generated binary in parse-types.sh script is executed on build machine. This patch fixes such problem. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: populate-extfs.sh: remove itRobert Yang
Remove it since we don't need it anymore, and there is one inside the e2fsprogs. [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: mke2fs: update the manual for the -d optionRobert Yang
Update the manual for the -d option [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: debugfs: use the functions in misc/create_inode.cRobert Yang
* Use the functions in misc/create_inode.c, and remove the duplicated code. * The CREATE_INODE_DEPS in the debugfs/Makefile.in is used for recording create_inode.o's depends which is from misc/Makefile.in, we have to recompile create_inode.o because we need it to print more messages when it is used by debugfs, just like we recompile e2freefrag.o, but it seems that the e2freefrag.o's depends in debugfs/Makefile.in is incorrect, it would not rebuild when its depends (e.g.: lib/config.h) is changed, which would cause unexpected errors. Make duplicated code in debugfs/Makefile.in and misc/Makefile.in is not a good idea, maybe we'd better define CREATE_INODE_DEPS in the top Makefile, I'd like to send another patch and fix the e2freefrag if you are fine with it. [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: mke2fs: handle hardlinksRobert Yang
Create the inode and save the native inode number when we meet the hard link (st_nlink > 1) at the first time, use ext2fs_link() to link the name to the target inode number when we meet the same native inode number again. This algorithm is referred from the genext2fs. [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: mke2fs: add an option: -d root-directoryRobert Yang
This option is used for adding the files from a given directory (the root-directory) to the filesystem, it is similiar to genext2fs, but genext2fs doesn't fully support ext4. [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: mke2fs: set owner/mode/time for the inodeRobert Yang
Set the uid, gid, mode and time for inode. [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: mke2fs: create directoryRobert Yang
The do_mkdir_internal() is used for making dir on the target fs, most of the code are from debugfs/debugfs.c, the debugfs/debugfs.c will be modified to use this function. [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: mke2fs: copy regular fileRobert Yang
The do_write_internal() is used for copying file from native fs to target, most of the code are from debugfs/debugfs.c, the debugfs/debugfs.c will be modified to use this function. [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: mke2fs: create symlinkRobert Yang
The do_symlink_internal() is used for creating symlinks, most of the code are from debugfs/debugfs.c, the debugfs/debugfs.c will be modified to use this function. [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: mke2fs: create special fileRobert Yang
The do_mknod_internal() is used for creating special file which is block, character and fifo, most of the code are from debugfs/debugfs.c, the debugfs/debugfs.c will be modified to use this function. [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: mke2fs: copy files recursivelyRobert Yang
Use opendir() and readdir() to read the native directory, then use lstat() to identify the file type and call the corresponding function to add the file to the filesystem, call the populate_fs() recursively if it is a directory. NOTE: the libext2fs can't create the socket file. [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07e2fsprogs: mke2fs: add the ability to copy files from a given directoryRobert Yang
We will add a -d option which will be used for adding the files from a given directory to the filesystem, it is similiar to genext2fs, but genext2fs doesn't fully support ext4. * We already have the basic operations in debugfs: - Copy regular file - Create directory - Create symlink - Create special file We will move these operations into create_inode.h and create_inode.c, then let both mke2fs and debugfs use them. * What we need to do are: - Copy the given directory recursively, this will be done by the populate_fs() - Set the owner, mode and other informations - Handle the hard links TODO: - The libext2fs can't create the socket file (S_IFSOCK), do we have a plan to support it ? [YOCTO #4083] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>