summaryrefslogtreecommitdiff
path: root/scripts/lib
AgeCommit message (Collapse)AuthorFiles
2015-08-24wic: add mkhybridiso kickstart fileMihaly Varga1
Add kickstart file for generating a hybrid bootable iso image using isoimage-isohybrid plugin, the output image is HYBRID_ISO_IMG-cd.iso, the label is HYBRIDISO, and the rootfs.img file is an image with ext3 file system, and uses grub as bootloader for EFI boot and syslinux for legacy boot. Signed-off-by: Mihaly Varga <mihaly.varga@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-08-24wic: Add plugin for hybrid iso imageMihaly Varga1
This plugin creates a hybrid, legacy and EFI bootable ISO image. The generated image can be used on optical media as well as USB media. Legacy boot uses syslinux and EFI boot uses grub or gummiboot (not implemented yet) as bootloader. The plugin creates the directories required by bootloaders and populates them by creating and configuring the bootloader files. The plugin adds an image file to the iso which contains the directory tree of the rootfs folder specified by the --rootfs argument or by the IMAGE_ROOTFS bitbake variable. Using the isohybryd tool, the created .iso image is enhanced by a MBR for booting from disk storage devices, consequently the provided iso image could be copyed directly by dd comand onto USB drive or could be burned to an optical media by using a suitable image burner. The plugin depends on parted, e2fstools, syslinux, grub, cdrtools, dosfstools and mtools program. Some of the functions in this plugin were inspired from bootimg-efi.py and bootimg-pcbios.py plugins implemented by Tom Zanussi. Signed-off-by: Mihaly Varga <mihaly.varga@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-08-19lib/oe/recipeutils: avoid parsing in get_var_files()Paul Eggleton1
Let's have the caller do this and then the function is a bit more flexible (e.g. we can choose to parse with bbappends or not); fix up calls to this function appropriately (of which there are only two, both within devtool). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-08-19devtool: fix handling of BBCLASSEXTENDed recipesPaul Eggleton1
If a recipe is BBCLASSEXTENDed (e.g. to -native), its PN value and the name of the bbappend will be different; we were assuming them to be the same when reading in the workspace, leading to us seeing the base recipe name everywhere afterwards. Also add a test so we ensure this doesn't regress in future. Fixes [YOCTO #8157]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-08-19devtool: extract: remove patches subdirectory when S == WORKDIRPaul Eggleton1
Ensure that the "patches" subdirectory is removed from the right location when S == WORKDIR (e.g. devtool extract makedevs). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-08-19devtool: extract: prevent externalsrc from interfering with extractionPaul Eggleton1
In case the user has set up externalsrc outside of devtool, force EXTERNALSRC to blank for the recipe when extracting so that the original source URI is still in SRC_URI and we're still able to extract it. (This isn't a problem with devtool itself because the bbappends within the workspace layer that apply externalsrc are explicitly filtered out when devtool parses a recipe). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-08-19canned-wks: added a qemux86* directdisk recipe for wicCristian Iorga1
qemu-directdisk.wks creates a raw disk image that a qemux86* machine can boot from. Signed-off-by: Cristian Iorga <cristian.iorga@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-08-09wic: code cleanup: pylint misc.pyEd Bartosh1
Fixed pylint warnings. Increased pylint score from 8.02 to 9.40. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-09wic: code cleanup: remove unused codeEd Bartosh1
Removed unused global variable wks_vars and 2 unused functions get_wks_var and add_wks_var. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-09wic: Report recipe name for native commandsEd Bartosh1
exec_native_cmd was modified to report recipe to build native programs. Pairs executable->recipe are hardcoded as it's not possible to obtain this information automatically. [YOCTO #7631] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-09wic: Improve 'wic help overview' contentEd Bartosh1
Included full console output and example of the .wks file into the 'wic help overview' content. Used qemux86-64 machine instead of crownbay to make example working without cloning additional layers. [YOCTO #7940] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-09wic: improved usage textEd Bartosh1
Made command line specification less confusing. Reformatted usage output. [YOCTO #7938] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-27devtool: also load plugins from BBPATHChristopher Larson1
This makes it easier to extend, as a layer can add its own sub-commands. Argument parsing is also separated into two steps, the same way it's done in recipetool, as we need access to the global command-line arguments early, before plugins are loaded, both for debugging arguments and for the bitbake path (we need to load the bitbake module to get tinfoil, which is now needed to load the plugins). Rather than constructing tinfoil once and passing it through into sub-commands for their use, we have to construct it for configuration metadata, use it, and then shut it down, as some sub-commands call out to recipetool, which needs its own tinfoil instance, and therefore needs to acquire the bitbake lock. If we're still holding the lock at that point, that's clearly a problem. [YOCTO #7625] Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-07-27recipetool.append: add extralines arg to appendsrcChristopher Larson1
This makes the function more reusable for other sub-commands. Signed-off-by: Christopher Larson <kergoth@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-07-22recipetool: appendsrcfile: handle S == STAGING_KERNEL_DIRChristopher Larson1
When determining the path from WORKDIR to the extracted sources, we're using S, but if S is in work-shared, that's problematic and won't give us good results, so assume 'git' for that case, warning when appropriate. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-22recipetool: appendsrcfile: use -D, not -d for destdirChristopher Larson1
-d is already taken for --debug. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-22recipetool: appendsrcfile: fix duplicate SRC_URI checkChristopher Larson1
Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-12recipetool/append: Fix selftest failure with multilibRichard Purdie1
If you have multilib enabled, it finds lib32-base-files instead of base-files for test_recipetool_appendfile_basic causing a test failure. Add a fix for this. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-10wic: Set default set of bitbake variablesEd Bartosh1
Set default set of bitbake variables to the set of variables for the first parsed image. This allows wic to find proper bitbake varibale values if it's called with '-e <image>' even without specifying image in the call of get_bitbake_var. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-02wic: Code cleanup: unused importsEd Bartosh8
Fixed pylint warning unused-import Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Code cleanup: long lines, identation and whitespacesEd Bartosh9
Fixed pylint warnings bad-continuation, bad-continuation and line-too-long. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Remove __write_partition methodEd Bartosh1
Moved code of __write_partition to 'assemble' method. This way it should be more readable. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Refactor fstab update codeEd Bartosh1
Made the code to backup and restore fstab only if it's modified. Cleaned up the code. Made it more pythonic. Improved code readability by moving code from several tiny methods into one place. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Add --uuid partition optionEd Bartosh2
Added --uuid option to the configuration of wks parser. This option specifies partition UUID. The code to process it is already in place. It was implemented for --use-uuid option. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Fix naming conflictEd Bartosh1
Image file name is not unique for the partitions without label. This causes image being rewritten and used as a source for all partitions without label. Wic produces broken or incorrect result images because of that. Added wks line number to the image name to make it unique.
2015-07-02wic: Remove duplicated codeEd Bartosh1
Moved duplicated code of geting rootfs size out of prepare_rootfs* methods.
2015-07-02wic: Refactor prepare_empty_partition APIEd Bartosh1
Moved code out of prepare_empty_partition* methods to avoid code duplication. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Call methods better wayEd Bartosh1
Shortened code by using getattr to obtain a method to call for prepare_empty_partition_* and prepare_rootfs_* methods. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Get rid of useless variable 'image_rootfs'Ed Bartosh1
Removed useless variable 'image_rootfs' from 4 prepare_rootfs_* methods. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Rename partition imagesEd Bartosh1
Renamed partition images into <final image>.p<partition number> This should make output directory look more organized and easier to understand. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Refactor prepare_rootfs APIEd Bartosh1
Moved code out of prepare_roots* methods to avoid code duplication. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Turn off debug output for 'bitbake -e'Ed Bartosh1
Switched debug level to 'normal' to prevent huge 'bitbake -e' output to go into wic debug output. This should help to make wic debug info much more clean and easier to read. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Remove annoing debug messageEd Bartosh1
Wic tries to find plugins in every layer and prints a message 'Plugin dir is not a directory or does not exist' if layer doesn't have plugin dir. It causes a lot of duplicated messages in the debug output, which makes it hard to find useful info there. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Include mount point into image reportEd Bartosh1
Wic doesn't show any information for the partition if label is not set. Fixed this by adding mount point to the report. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Refactor getting bitbake variablesEd Bartosh4
Wic gets bitbake variables by parsing output of 'bitbake -e' command. This implementation improves this procedure as it runs 'bitbake -e' only when API is called and does it only once, i.e. in a "lazy" way. As parsing results are cached 'bitbake -e' is run only once and results are parsed only once per requested set of variables. get_bitbake_var became the only API call. It replaces find_artifacts, find_artifact, find_bitbake_env_lines, get_bitbake_env_lines, set_bitbake_env_lines and get_line_val calls making API much more clear. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-07-02wic: Test rootfs plugin using image recipesEd Bartosh1
Added canned wks and testcase to create multi-rootfs images referring bitbake image recipes. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-06-27recipetool: add appendsrcfile(s) sub-commandsChristopher Larson1
This adds the `appendsrcfile` and `appendsrcfiles` sub-commands, which let the user add or replace one or more files in the recipe sources, either in a path relative to `S` or `WORKDIR`. Each file gets added to `SRC_URI` as a file:// URI, using the subdir= parameter to specify the destination directory. Examples: # Adds our defconfig as file://defconfig. If it's already in SRC_URI, it # won't be duplicated. recipetool appendsrcfile --workdir meta-mylayer linux-mel defconfig recipetool appendsrcfiles --workdir meta-mylayer linux-mel defconfig # Does the same, handling the different local filename recipetool appendsrcfile --workdir meta-mylayer linux-mel defconfig.mine defconfig # Adds our device tree files to the source tree recipetool appendsrcfiles --destdir arch/arm/boot/dts meta-mylayer linux-mel *.dts Of course, for the latter example to be of use, the new dts files would need to be added to `KERNEL_DEVICETREE` as well, and depending on the kernel, `DEFCONFIG` or `KERNEL_DEFCONFIG` may need to be set. Cc: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Christopher Larson <kergoth@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-27recipetool.append: use argparse types for validationChristopher Larson1
This validates the arguments early, when argparse is parsing the arguments, in a consistent way. Cc: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Christopher Larson <kergoth@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-26wic: Make code more pythonicEd Bartosh1
Used more pythonic way to make a list. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-06-26wic: Implement image compressingEd Bartosh1
Implemented compressing result image with specified compressor. Updated reporting code to show compressed image. [YOCTO #7593] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-06-26wic: Add new argument to direct pluginEd Bartosh3
Added 'compressor' argument to Direct plugin API to pass a name of compressor utility. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-06-26wic: Add new argument to wic_create functionEd Bartosh1
Added 'compressor' argument to wic_create to pass a name of compressor utility to the wic engine. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-06-26wic: Add --compress-with command line optionEd Bartosh1
Added -c/--compress-with command line option to 'wic create' subcommand. This option is used to specify compressor utility to compress the image produced by wic. gzip, bzip2 and xz compressors are supported in this implementation. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-06-26lib/devtool/standard: Fix patch cleanupRichard Purdie1
If patches fail to apply with git, quilt it used as a fallback. If that happens, the code in this class is meant to handle cleanup of these patch files. In the case where ${S} is a subdir of the git tree, the code doesn't correctly set the patches directory. This change correctly sets the patches directory (which is different to the location of the git repository). [YOCTO #7911] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-23wic: removed unused command line optionEd Bartosh2
Removed -i/--infile wic command line option. Removed properties_file and properties arguments of wic_create function. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-06-23wic: code cleanup: superfluous-parensEd Bartosh8
Removed unncecessary parents after 'if' 'del' and 'print' keywords. Fixed pyling warning: Unnecessary parens after 'xxx' keyword Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-06-23wic: Return error code when wic fails to invoke commandEd Bartosh1
Return 1 if command doesn't exist or wic is called without any commmand. Return result of invoke_command as wic return code. Added tests for unsupported command and no command. Fixed typo in test case test02_createhelp spotted by this fix. [YOCTO #7856] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2015-06-23wic: Integrated plugin docstrings into 'wic help plugins' outputEd Bartosh1
Added mechanism to show docstrings of plugin classes as a part of plugins help page. For missing plugins the following warning message is shown: <class '<plugin class spec>'> is missing docstring. [YOCTO #7118] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-06-23wic: Add missing docstrings to plugin classesEd Bartosh7
Docstings from plugin classes are used as part of output of 'wic help plugins'. Adding them makes help page more informative. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-06-23wic: Code cleanup: bad-classmethod-argumentEd Bartosh8
Fixed wrong name for the first argument in class methods. Pylint complains about the issue this way: Class method should have 'cls' as first argument Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>