aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/lib/wic
AgeCommit message (Collapse)Author
2017-03-22wic: don't set creator.bootimg_dir in pluginsEd Bartosh
Changing bootimg_dir in plugins is a dangerous hack as this value comes from wic command line and can be used by multiple plugins. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-22wic: remove rootfs_pcbios_ext pluginEd Bartosh
Removed broken unused plugin. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-21wic: partition.py: Add fsck to avoid corrupt EXT file systemsDaniel Schultz
This patch avoids the creation of a corrupt EXT file system. Since there are no checks if a EXT file system was successfully created, this should add to prevent possible system failures. Signed-off-by: Daniel Schultz <d.schultz@phytec.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21wic/partionedfs: Avoid reserving space for non-existing ext. partitionKristian Amlie
We don't need the gap that the extended partition occupies if we already know that we have less than five partitions. Saves up to one full alignment of space. Signed-off-by: Kristian Amlie <kristian.amlie@mender.io> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-11wic/direct.py: Avoid exception if using multiple rawcopy/no-table entries.Kristian Amlie
If we are both having a bootloader and a U-Boot environment file, we can end up with two entries using "--source rawcopy" and "--no-table", and since they reuse the same file [1], their cleanup handlers will try to delete the same file twice. So make sure we only do it once. [1] Although they reuse the same file, the resulting output is correct, so it appears the file is accessed in properly sequential order. Signed-off-by: Kristian Amlie <kristian.amlie@mender.io> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-10wic: filemap: Fixed spared_copy skipDaniel Schultz
This patches removes the empty space in front of the copied file which was skipped. Without this reduction it's not possible to place a partition with rawcopy and skip parameter on a desired alignment. Signed-off-by: Daniel Schultz <d.schultz@phytec.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-10wic: plugins: rawcopy: Fixed wrong variable typeDaniel Schultz
Without the int() function this variable will be a string. This will led to a error in Filemap on line 545 due wrong types. > [...] > File > ".../poky/scripts/lib/wic/filemap.py", line 545, in sparse_copy > if start < skip < end: > TypeError: unorderable types: int() < str() Signed-off-by: Daniel Schultz <d.schultz@phytec.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-04wic: add more targets to directdisk syslinux configEd Bartosh
Added 3 new targets to directdisk-bootloader-config.cfg to match hddimg syslinux config. This is a preparation for dropping hddimg in favor of wic. [YOCTO #11044] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: bootimg-pcbios: add support for syslinux vesamenuEd Bartosh
Installed vesamenu.c32 and its dependencies to support vesamenu ui in syslinux config. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: raise WicError instead of calling logger.errorEd Bartosh
Replaced forgotten calls of logger.error with raising WicError exception. Otherwise errors will be ignored. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: exec_native_cmd: fix undefined variable errorEd Bartosh
Defined variable 'out' to fix this exception: UnboundLocalError: local variable 'out' referenced before assignment Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: exec_native_cmd: improve debug messageEd Bartosh
Added search paths to the debug message to make it easier to see where the native command is searched. [YOCTO #11017] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: use 2 sysroots to find native executableEd Bartosh
Currently there is no way to specify a dependency on native tools for wic without modifying wic-tools recipe. Obvious way to make it more flexible is to use image sysroot and wic-tools together to find an executable. Modified run_native_cmd to use image and wic-tools sysroots to find native executable. [YOCTO #11017] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: pluginbase: use global dictionaryEd Bartosh
Made PluginMeta to populate global PLUGINS dictionary that is accessed by PluginMgr. This should make the code more understandable as PluginMgr don't need to get data directly from PlugnMeta attribute. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: move PluginMgr class to pluginbaseEd Bartosh
As PluginMgr class contains only one method it's better to move it to pluginbase to have all plugin related APIs in one module. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: plugin: cache results in get_pluginsEd Bartosh
Store results of PluginMgr.get_plugins to avoid loading plugins more than once. This should speed up finding plugins. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: remove PluginMgr.get_plugin_methodsEd Bartosh
Call methods directly instead of getting them with get_plugin_methods and then calling. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: throw exception if required API is not implementedEd Bartosh
Throw WicError if do_create method of imager plugin is not implemented. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: pluginbase: use python 3 metaclass syntaxEd Bartosh
Used more readable syntax to specify metaclass for the base plugin classes. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: reimplement PluginMgr.get_pluginsEd Bartosh
Removed all private methods and complicated logic. Put all code to get plugins into get_plugins method. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: reimplement PluginMgr.get_plugin_methodsEd Bartosh
Simplified the implementation of get_plugin_methods: - get rid of looping over the dicrtionary, used access by key instead - get rid of filling a dictionary that passed as a parameter Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: remove PluginMgr.get_source_pluginsEd Bartosh
Used get_plugins('source') instead of get_source_plugins to unify and simplify API to get plugins. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: use PluginMgr directlyEd Bartosh
Instead of making a singleton object of PluginMgr class it's simpler to use PluginMgr class directly as any class is a singleton. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: move WicError to lib/wic/__init__.pyEd Bartosh
Removed unused exceptions from error.py Moved definition of WicError to lib/wic/__init__.py Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: raise WicError instead of ImageError and CreatorErrorEd Bartosh
There is no need to raise special exceptions. Raising WicError should be enough. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: raise WicError in wic pluginsEd Bartosh
Replaced sys.exit with raising WicError in wic plugins. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: raise WicError in core modulesEd Bartosh
Replaced sys.exit with raising WicError in the core wic modules. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: move errors moduleEd Bartosh
Moved from lib/wic/utils/ to lib/wic as this is a core module. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: remove msger moduleEd Bartosh
Removed custom logger module msger as it's replaced by wic logger. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: use wic logger in wic source pluginsEd Bartosh
Replaced msger with wic logger in wic source plugins. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: use wic logger in imager direct pluginEd Bartosh
Replaced msger with wic logger in the direct plugin. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-03-04wic: use wic logger in core modulesEd Bartosh
Replaced msger with wic logger in the core wic modules. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: direct: move creation of PartitionedImage to __init__Ed Bartosh
Moved creation of PartitionedImage object from DirectPlugin.create method to init. It makes the code a bit more readable and logical. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: direct: move generation of part.realnum to PartitionedImageEd Bartosh
Moved the code that generates real partition numbers from DirectPlugin to PartitionedImage. The idea is to have all code that works with partitions in PartitionedImage class. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: direct: add PartitionedImage.prepare methodEd Bartosh
Moved code that calls prepare method of Partition objects from DirectPlugin to PartitionedImage.prepare. The idea is to have all code that works with partitions in PartitionedImage class. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: direct: set bootloader.source in the __init__Ed Bartosh
Moved setting of bootloader source from do_create method to __init__ as it doesn't have anything to do with image creation. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: direct: move UUID generation to PartitionedImageEd Bartosh
Moved code that generates partition UUIDs from DirectPlugin to PartitionedImage class as it's more logical to have it there. This allows the code to be reused by other imager plugins. Got rid of having yet another list of partitions in PartitionedImage. Reused the list passed from DirectPlugin. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: direct: add 'realnum' attribute to partitionEd Bartosh
Replaced call of _get_part_num method with an attribute. This eliminates the need to call the method and loop over partitions every time we need to know realnum for partition. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: direct: remove useless codeEd Bartosh
Removed catching CreatorError and raising it again. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: direct: don't catch ImagerErrorEd Bartosh
Don't transform ImagerError exception into warning. Let wic to catch it on the upper level. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: direct: remove set_bootimg_dir setterEd Bartosh
Removed java-like setter set_bootimg_dir. It's more pythonic to access public attributes directly. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: ksparser: set default disk to 'sda'Ed Bartosh
Set default value of --ondisk to 'sda' to ensure we always have disk name for the partition. This is a first step of replacing --ondisk with disk <name> attribute of .wks. This is better as all partitions share the same disk. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: remove utils/oe/__init__.pyEd Bartosh
This file and utils/oe folder are not needed anymore as all modules were removed or moved out of this directory. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: move PartitionedImage class to direct.pyEd Bartosh
As PartitionedImage is only used in direct.py it makes sense to move it there. It's easier to maintain (and refactor) it this way. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: move disk operations to PartitionImage classEd Bartosh
Disk operations were spread over DirectPlugin, DiskImage and Image code making the code hard to understand. Renamed Image class to PartitionedImage. Removed DiskImage class. Moved disk operations to PartitionedImage. There was an implicit support for multiple disks: if different devices were specified in .wks file (e.g. --ondisk sda and --ondisk sdb), wic would theoretically generate multiple images. This is quite confusing option and the code supporting it was broken for a long time. The same effect (multiple output images) can be achieved in obvious and clear way - by using multiple .wks files. This functionality was removed. PartitionedImage works only with one image. This makes the code less complex and easier to maintain. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
2017-02-15wic: Add --exclude-path option to rootfs source plugin.Kristian Amlie
It will omit the given path from the resulting partition, and if the given path ends in a slash, it will only delete the content, and keep the directory. Since mkfs only accepts whole directories as input, we need to copy the rootfs directory to the workdir so that we can selectively delete files from it. Since we want to use the copyhardlinktree() function, we need to put the generic oe lib in the module search path. Signed-off-by: Kristian Amlie <kristian.amlie@mender.io> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-15wic: remove unused argument scripts_pathEd Bartosh
There is no need to pass scripts_path from main wic module down the stack as it's not used there. Removed scripts_path argument from DirectPlugin class and wic_create function. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-15wic: direct: remove unused importEd Bartosh
Removed unused import of wic.errors module. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-15wic: direct: remove unused plugin attributesEd Bartosh
Removed unused _disks, _disk_format and _disk_names attributes from DirectPlugin class. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-15wic: make sure layout_partitions is called onceEd Bartosh
Removed artificial _partitions_layed_out attribute and unneeded call of layout_partitions method. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>