summaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)AuthorFiles
2016-05-11devtool: Fix build-sdk when pn doesn't match filenameRandy Witt2
If an image with the filename foo.bb could be built using the name "bar" instead, then build-sdk would fail to create the derivative sdk. This was because the code assumed that the file name matched the target, which is not necessarily the case. Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-09combo-layer: implement "update with history"Patrick Ohly1
The core idea is that all commits get imported, including merge commits, and joined into one big merge commit that imports the changes from the individual components into the main branch of the combined repository. This is done by copying the files in each commit and removing deleted ones, instead of trying to patch the combined repository. The advantages of doing updates in this mode are: - works for arbitrary upstream repos, not just those which support conversion into a linear set of patches - listing history shows that commits where developed independently in the different components, instead of artificially showing them as if they had been developed one after the after (component "aaaa" before "bbbb", then "ccc", ...) - bisecting becomes easier: when upstream repos only ensure consistency when merging into their "master" branches, then those merge commits are good candidates for test builds also in the combined repo - more data mining can be done, for example showing who merged a commit and when Selecting a subset of the files is supported, albeit with a slight different semantic for wild card matching compared to other code paths (/ is matched by * and ?). Empty commits get skipped because typically they are a result of filtering (but that is not checked, so intentionally empty commits also get skipped). Other code paths are intentionally left unchanged, to avoid regressions. However, the downside is that some opportunities for refactoring (in particular regarding file filtering) were ignored. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-09combo-layer: runcmd() enhancementsPatrick Ohly1
Allow setting the environment. Due to a subprocess quirk, it must always be set explicitly (reuses the one from the previous call if not set, instead of falling back to os.environ). Embedding nul characters will be useful for parsing git output more reliably; support dumping such output a bit better. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-09combo-layer: dummy "update with history"Patrick Ohly1
When setting "history = True" in combo-layer.conf consistently for the components involved in an update or using "update" together with the "--history" command line flag, a new mode for updating will be used that does not rely on exporting/importing patches. A config setting is used because it should be used consistently by everyone using the same config, without having to remember to use an additional command line parameter. There are no real global settings, so the setting is checked separately for each component although the setting has to be set consistently. This restriction could be removed later. In practice, putting "history" into the "[DEFAULT]" section is the easiest approach for configuring it. The actual code changes split up action_update and the combo-layer.conf handling in preparation for this new mode, without implementing the mode itself. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-06ddimage: if 'pv' is installed, use itChristopher Larson1
This gives us a progress bar for the image write, which is quite helpful. See https://www.ivarch.com/programs/pv.shtml. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-06recipetool: create: fix falling back to declared license for npm packagesPaul Eggleton2
Fix two problems falling back to the "license" field from package.json when no license file is present: 1) The function that was supposed to return the license field value was always explicitly returning None, and this was never noticed (because the test cases never exercised the fallback as they provided license files for each module). 2) Fix the main package not falling back because it had a default of an empty list, which evaluates to '' instead of 'Unknown'. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06scripts/lib/argparse_oe: also change 'positional arguments' to 'arguments'Christopher Larson1
This aligns with our existing 'optional arguments' to 'options' change, and seems more intuitive for users. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06scripts/lib/argparse_oe: simplify options title changeChristopher Larson1
There's no need to iterate over the action groups here, as self._optionals and self._positionals are available. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06scripts/lib/argparse_oe: show subparser help for unrecognized argsChristopher Larson1
As an example, `recipetool create foo bar baz` shows `recipetool: error: unrecognized arguments: bar baz` and then displays the main help, not the help for the create command. Fix by saving the subparser name and using it in parse_args() to look up the subparser. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06scripts/lib/argparse_oe: show self.prog in the error messageChristopher Larson1
This aligns our subclassed error() with that in the original class, using _print_message and self.prog. Also add a docstring based on the original. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06wic: use sparse_copy to preserve sparsenessEd Bartosh1
Used sparse_copy API in favor of dd/cp in rawcopy plugin to preserve sparseness of the copied raw content. [YOCTO #9099] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06wic: use sparse_copy to copy partitionsEd Bartosh1
Copied partition images into final partitioned image using sparse_copy API. This method preserves sparseness of the final image. It also makes wic much faster, as unmapped blocks of the partition images are not copied. [YOCTO #9099] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06wic: add sparse_copy APIEd Bartosh1
In order to make wic images sparse sparse_copy function has been copied from meta-ostro: https://github.com/kad/meta-ostro/blob/master/meta-ostro/lib/image-dsk.py This function uses filemap APIs to copy source sparse file into destination file preserving sparseness. The function has been modified to satisfy wic requirements: parameter 'skip' has been added. [YOCTO #9099] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06wic: add FIEMAP and SEEK_HOLE / SEEK_DATA APIsEd Bartosh1
In order to make wic images sparse set of APIs has been copied from bmap-tools project. filemap.py module is taken from bmap-tools project: https://github.com/01org/bmap-tools/blob/master/bmaptools/Filemap.py It implements two ways of get information about file block: FIEMAP ioctl and the 'SEEK_HOLE / SEEK_DATA' features of the file seek syscall. Note that this module will be removed as soon as bmaptool utility supports copying sparse source file into destination file (this is already agreed with the maintainer of bmap-tools project). [YOCTO #9099] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06wic: moved DiskImage to direct.pyEd Bartosh2
Moved DiskImage class from utils/fs_related.py to imager/direct.py as it's only used there. Removed fs_related module as it doesn't contain anything except of DiskImage. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06wic: get rid of fs_related.makedirsEd Bartosh1
Removed fs_related.makedirs as is not used anywhere. The name is easy to confuse with os.makedirs. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06wic: get rid of inheritance Disk->DiskImageEd Bartosh1
There is no need in this inheritance as DiskImage class is used only in one module and no other classes are inherited. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-06wic: use truncate utility to create sparse filesEd Bartosh2
Used truncate instead of dd to create wic images for the following reasons: - dd doesn't preserve sparseness - truncate syntax is much more clear - dd requires additional calculations of the image size in blocks - the way dd was used in the code is not always correct. In some cases it was writing one block to the file which makes it not 100% sparse. [YOCTO #9099] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-29wic: add help for --system-id optionEd Bartosh1
Added explanation of --system-id option to the output of wic help kickstart. [YOCTO #9096] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-29wic: set partition system idEd Bartosh1
Used sfdisk to set partition system id if --system-id parameter is used for a partition in wks file. [YOCTO #9096] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-29wic: add system_id argument to Image.add_partitionEd Bartosh2
Added new argument to add_partition call to pass partition system id down the stack. [YOCTO #9096] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-29wic: add system_id attribute to PartitionEd Bartosh1
Added Partition.system_id attribute and initialized it from parse result of wks option --system-id. It will be used by the wic code below the call stack to set partition system id. [YOCTO #9096] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-29wic: add sfdisk to the list of utilitiesEd Bartosh1
Added sfdisk -> util-linux pair to the dictionary executable -> recipe as sfdisk is going to be used by wic to set partition system id. [YOCTO #9096] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-29wic: add --system-id wks optionEd Bartosh1
Added new option --system-id to wks parser. The option will be used to set partition system id. [YOCTO #9096] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-29wic: isoimage-isohybrid: fix splash file pathsIoan-Adrian Ratiu1
os.path.join discards the cr_workdir var contents if the path of the second arguments is absolute. Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-29wic: isoimage-isohybrid: add grubefi configfile supportIoan-Adrian Ratiu1
The latest wic kickstart refactoring introduced a bootloader option "--configfile" which lets wks' specify a custom grub.cfg for use while booting. This is very useful for creating stuff like boot menus. This change lets isoimage-isohybrid use --configfile; if this option is not specified in a wks, it generates a default cfg as before. Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-29recipetool.newappend: fix syntax error for 'not path_ok' errorChristopher Larson1
Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-19devtool: sdk-update: fix handling of UNINATIVE_CHECKSUM changesPaul Eggleton1
If UNINATIVE_CHECKSUM changes over an SDK update, bitbake within the extensible SDK will be broken because it will see that the matching uninative tarball doesn't exist and if there is a default value of UNINATIVE_URL it will attempt to download the file and will then fail because the checksums don't match up; alternatively if no UNINATIVE_URL is set then it'll also fail with an error about misconfiguration. To fix this, add some logic to devtool sdk-update to download the matching uninative tarball(s) for the checksum(s) in the newly fetched SDK configuration. Fixes [YOCTO #9301]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-18oe-selftest: Correct the usage examplesPeter Kjellerstedt1
Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-18devtool: sdk-update: reset git metadata on updateStephano Cetola2
Replace git pull with fetch and reset to avoid the merge logic in the event that the layers repo in the published SDK we're updating to isn't fast-forward merge from the local repo. Also add gitignore and committer info during publish to avoid errors and to be sure that the first commit has a dummy user in it. [ YOCTO #9368 ] Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-15devtool: upgrade: handle recipes where source is not first entry in SRC_URIPaul Eggleton1
It is unusual but not impossible to find recipes whose first entry is not the main source URL but instead some patch or other local file, for example python-cryptography in meta-python (which sets SRC_URI before inheriting pypi). There's nothing inherently wrong with this, and we shouldn't assume that the first entry is the main source URL, so just take the first non-local entry instead. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-14runqemu: let ramfs equal to cpio.gzRobert Yang1
For example, support both: $ runqemu qemux86-64 ramfs $ runqemu qemux86-64 cpio.gz (new) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-14wic: fix bug in handling fsoptionsEd Bartosh1
Partitions specifying --fsoptions were silently skipped by wic due to the old bug introduced when removing code related to subvolume handling: - if mountpoint == "/" or not fsopts or fsopts.find("subvol=") == -1 + if mountpoint == "/" or not fsopts: [YOCTO #9396] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-13Revert "wic/utils/partitionedfs.py: assemble .wic images as sparse files"Ross Burton1
It turns out that dd's conv=sparse doesn't look at the file extents, but simply checks if a "block" is all zero. If the block of zero was meaningful it gets lost and if the image is subsequently written to media using a sparse-aware writer then the block of zeros won't be written at all. This reverts commit 5fd592fbae2e046bcb8c3a6c3ef4993fe0400676. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-09wic/utils/partitionedfs.py: assemble .wic images as sparse filesJoshua Lock1
The individual partitions created by wic are sparse but without this change the assembled image is written as one (potentially very) large file. Preserve sparseness in the assembled image by passing the sparse conversion symbol. [YOCTO #9099] Signed-off-by: Joshua Lock <joshua.lock@collabora.co.uk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-08build-perf-test: add eSDK installed size to metricsRoss Burton1
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-08devtool: Create unlocked-sigs.inc containing items in the workspaceRandy Witt1
When a recipe is added to the workspace, the signatures for the tasks will change. This means that bitbake must be told to allow the signatures to be different if they are in locked-sigs.inc. This is done by creating an unlocked-sigs.inc file which contains all the recipes in the workspace each time devtool reads the workspace. So not only will necessary things get added, previously added items will be removed by virtue of them no longer being in the workspace. This also makes sure that the extensible sdk picks up unlocked-sigs.inc as part of the configuration. [YOCTO #9195] Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06runqemu-gen-tapdevs: Add note about NetworkManager & tap devicesSaul Wold1
NetworkManager can clobber tap devices if left alone, this gives a note about how to set tap* as unmanaged [YOCTO #8587] Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06create-pull-request: fix for newer gitRobert Yang1
Fixed when git > 2.1.0: $ ./scripts/create-pull-request -r HEAD^ -u contrib -b rbt/git fatal: Not a valid revision: rbt/git ERROR: git request-pull reported an error This is because newer git requires both local and remote branch named as rbt/git, but usually, we only named the remote branch as rbt/foo, and foo for local branch. Add a option '-l' to fix the problem, default is HEAD. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-05scripts/oe-selftest: avoid the creation of coverage file when coverage not ↵Humberto Ibarra1
installed Coverage subprocessing file is being created even when coverage is not installed, which causes errors of "module not found" to be send to the oe-selftest output. This patch adds indent to the block of code creating this coverage file, so it can only be executed when coverage is actually installed. [Yocto #9334] Signed-off-by: Humberto Ibarra <humberto.ibarra.lopez@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-05scripts/oe-selftest: remove coverage file if any coverage option is givenHumberto Ibarra1
Coverage temporal file for sub-processing is being removed only when the --coverage option was found. This is wrong since the file is created when any coverage option (source, include or omit) is given, even if --coverage is not one of them. This patch makes sure to remove the file if any coverage option was given. Signed-off-by: Humberto Ibarra <humberto.ibarra.lopez@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-05scripts/oe-selftest: remove unneeded coverage warningHumberto Ibarra1
There is a message that warns the user about enabling subprocessing for coverage to work. After the fix for Yocto #8930, this task is done automatically, so the warning is not needed anymore. Signed-off-by: Humberto Ibarra <humberto.ibarra.lopez@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-05scripts/oe-buildenv-internal: Fix regression in BB_ENV_EXTRAWHITE settingOtavio Salvador1
The commit OE-Core:ada4639 (oe-buildenv-internal: simplify derivation of BB_ENV_EXTRAWHITE) changed the format of BB_ENV_EXTRAWHITE variable to: ,---- | BB_ENV_EXTRAWHITE='ALL_PROXY | BB_NO_NETWORK | BB_NUMBER_THREADS | ... | ' `---- Instead of: ,---- | BB_ENV_EXTRAWHITE='ALL_PROXY BB_NO_NETWORK BB_NUMBER_THREADS...' `---- The old format allow for external script parsing easier and there is no need to change the format as it has no benefit from usage perspective. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-04classes/buildhistory: optimise getting package size listPaul Eggleton1
Invoking oe-pkgdata-util in turn for every package in the list was slow with a large image. Modify oe-pkgdata-util's read-value command to take an option to read the list of packages from a file, as well as prefix the value with the package name; we can then use this to get all of the package sizes at once. This reduces the time to gather this information from minutes to just a second or two. Fixes [YOCTO #7339]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-03wic/isoimage-isohybrid.py: change cpio generated uid&gid to rootIoan-Adrian Ratiu1
By default cpio preserves the uid&guid's of the original user which leads to host contamination and boot failures because commands like mount from initramfs expect to be run by root and the original host user might not even exist on the target. Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-03wic/isoimage-isohybrid.py: use glob to find initramfs locationIoan-Adrian Ratiu1
Some filenames can omit 'initramfs', or use other names. This makes detection more flexible by using only the image name, machine arch and image type in a glob wildcard. Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-31relocate_sdk: additional error checksJuro Bystricky1
When installing SDK in a non-default location and the path length of the SDK install location is longer than the path length of the default SDK location, relocation of .ldsochache section will overwrite file location outside of the .ldsocache section size. In addition, additional checks were added to ensure that any path in sections .gccrelocprefix and .ldsochache will not exceed the space allocated for it within the file, which would also result in file corruption. [YOCTO #9268] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-31devtool: modify: call shutdown on tinfoil when donePaul Eggleton1
Strictly speaking we ought to explicitly shut down a tinfoil instance when we're done with it. This doesn't affect modify's operation but is important if you want to be able to call into modify() from another plugin (though anyone doing so should be advised that the function is by no means a stable API and is subject to change in future releases). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-31oe-publish-sdk: exclude sstate-cache if publishing minimal SDKPaul Eggleton1
If SDK_EXT_TYPE is set to "minimal" then the SDK won't contain many sstate artifacts, and you're required to set up an sstate mirror in this case anyway so there's no point publishing the "stub" sstate-cache directory from within the SDK since it won't be useful for update purposes and may be confused with the real sstate-cache. There is however a possibility that people might publish the real sstate-cache directory under the same output directory provided to oe-publish-sdk, thus deleting it after extracting (as we were doing with other files we wanted to clean up at the end) would be problematic, besides which extracting it and then deleting it is wasteful. Thus, introduce a "-p" command line option to the SDK installer that we can use to tell tar not to extract the items we don't want when publishing. This has the added benefit of mostly keeping references to these in the place they belong i.e. in populate_sdk_ext.bbclass. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-31oe-publish-sdk: prevent specifying a directory for the SDK argumentPaul Eggleton1
The SDK argument is expected to be an installer .sh file; if a directory is specified we can get an ugly failure later on; best to check up front. Fixes [YOCTO #9065]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>