summaryrefslogtreecommitdiffstats
path: root/scripts/lib
Commit message (Collapse)AuthorAgeFilesLines
* wic: do not overwrite autogenerated /etc/fstab with original too earlyMaciej Borzecki2014-07-261-1/+4
| | | | | | | | | | | | | | | | | | | DirectImageCreator.__write_fstab() generates new /etc/fstab in sysroot with rootfs contents. The fstab entries are generated base on the initialn contents of /etc/fstab, plus any extra (other than / or /boot) partitions listed in *.wks. A backup of original /etc/fstab is done in a temp location. Subsequent call to __restore_fstab() restores the backup copy, replacing the autogenerated one. Calling __restore_fstab() before Wic_PartData.prepare() brings back the original fstab before the partition image file actually is created. As such, the autogenerated /etc/fstab will not make it to the partition. (From OE-Core rev: a9e59d7b1fa1ed33ce9678fb77a367800d7a8f87) Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl> Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: squashfs partition supportMaciej Borzecki2014-07-251-0/+61
| | | | | | | | | | | | It is possible to instruct wic to create a squashfs partition by setting --fstype=squashfs in *.wks. For now this is only useable for rootfs partitions (note that you must have squashfs support in the kernel). An attempt to create an empty partition will produce a warning. (From OE-Core rev: 30266a0be946bd0ce76d6920e7afe840c6c3bf80) Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: --fsoptions handlingMaciej Borzecki2014-07-251-1/+9
| | | | | | | | | | | Add handling of --fsoptions in parition definition. If no options are specified, 'defaults' is used. (From OE-Core rev: e91c0db15db74237606fae96c9b7d21936519a86) Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl> Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Remove fstype from mkefidisk canned wksTom Zanussi2014-07-231-1/+1
| | | | | | | | | | The bootimg-efi plugin specifies the fstype internally, so remove it from the partition definition. (From OE-Core rev: e9365e9d9e8a8696849fda182ec260398059089a) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add help entry for wic kickstartTom Zanussi2014-07-231-0/+1
| | | | | | | | | | | Previous patches added help for 'wic kickstart' but forgot to add an entry in the main help page showing its availability. Add an entry for it. (From OE-Core rev: 5aa212f990c3d9b90a4f06cea346b82fc5d376ba) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Fix bad directory name in bootimg-efiTom Zanussi2014-07-231-1/+1
| | | | | | | | | | The original move of the mkefidisk code to the bootimg-efi plugin resulted in a bad hdddir - fix it. (From OE-Core rev: ab337705521d8734f12be612709e70a163111fe3) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Error on zero-sized partitionsTom Zanussi2014-07-161-0/+2
| | | | | | | | | | | | It doesn't make sense to create zero-sized partitions so assume user error and notify the user they should be using a non-zero --size for partitions that don't specify a --source. (From OE-Core rev: 3231562c3c9f8173ddcc0812001aadf0988c8892) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add kickstart reference to help systemTom Zanussi2014-07-162-1/+115
| | | | | | | | | | | Add a 'wic kickstart' help section to make it easy for users to access the kickstart reference without having to go to an external website. (From OE-Core rev: 136137ec1c124aee89d2120abded60a5cf0562b0) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add wic overview to help systemTom Zanussi2014-07-161-0/+209
| | | | | | | | | | | Add a general overview of wic to the help system as 'wic overview', along with some introductory examples. (From OE-Core rev: fa108caaa53878152e4856d32ce1ab7fe3802287) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add vfat supportTom Zanussi2014-07-161-0/+74
| | | | | | | | | | | | | | Add vfat as a supported rootfs type (in addition to the current ext2/3/4 and btrfs support). vfat partitions can now be created using --source rootfs along with --fstype=vfat, or without --source but specifying a --size. (From OE-Core rev: d9efc110fd73822629b2a3326761f2256b9f23b0) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Error on parted non-zero error codeTom Zanussi2014-07-161-1/+1
| | | | | | | | | | | | | | | The current code uses msger.debug() to note errors, effectively squelching them if --debug isn't used. Apparently this is because it can return non-zero for some loop device failures. We don't care about loop devices, and not paying attention to the error code actually results in invalid images, so error out on parted failures as we should be. (From OE-Core rev: b1c68e5446080f0743f7f8a530f3b00f90c8717d) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add general 'plugins' help topicTom Zanussi2014-07-101-1/+100
| | | | | | | | | | | Add a category for help topics with an initial help topic discussing source plugins. (From OE-Core rev: a3dbe46dd28a6fd9e6c21f6bbb6a12578df9dff3) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Print error if a partition specifies an invalid --sourceTom Zanussi2014-07-101-0/+5
| | | | | | | | | | | | | If a partition specified in a .wks file specifies a nonexistent --source, print an error to that effect and exit. The error text also points the user to a command listing valid sources, and help on adding a new source plugin. (From OE-Core rev: 4dff6945d2606cebc0ab26e877c5d8c7b457e179) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add help text for 'wic list source-plugins'Tom Zanussi2014-07-101-3/+17
| | | | | | | | | | | Add both short and long text for the new 'wic list source-plugins' command. (From OE-Core rev: 4f20acc10b18c7353bd73f253943372dacd957ca) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add command to list available source pluginsTom Zanussi2014-07-102-0/+29
| | | | | | | | | | | | | Add a 'wic list source-plugins' command enabling users to get a list of valid partition --sources. This is useful not only for determining sources to use in .wks partition statements, but also for making sense of errors in .wks partition processing. (From OE-Core rev: 37db9423e7872012fabde67e8858db5b512832f6) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* yocto-bsp: Drop GLIBC_ADDONS settingRichard Purdie2014-07-042-4/+0
| | | | | | | | | This has been copied and pasted around and is not needed, simply drop it. The defaults in the recipe work just fine. (From meta-yocto rev: 037bce9a5f196df3cded9dfe6200188c1dd1d84a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* yocto-bsp: Update qemu inclusion listsRichard Purdie2014-07-041-2/+3
| | | | | | | | | | Update qemu tune definitions to match changes in main qemu machines. [YOCTO #6482] (From meta-yocto rev: 0d78ffd509c6caba6c74c6e75c485fb8d923cd31) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts: fix no newline at end of fileRobert Yang2014-07-031-1/+1
| | | | | | | | | | | Add a '\n' to the last line of the file to fix: No newline at end of file (From meta-yocto rev: 58cc5c502bd0309feed65ab7836ed8fbaab6ced9) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts: consolidate code to find bitbake pathPaul Eggleton2014-06-251-0/+42
| | | | | | | | | | | | | | Several of these scripts were using duplicated code (and slightly different methods) to find the path to bitbake and add its lib subdirectory to the Python import path. Add some common code to do this and change the scripts to use it. Fixes [YOCTO #5076]. (From OE-Core rev: 0b5e94e168819134dcda0433c8ae893df4ab13ce) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: check if BBLAYERS is valid before useJoão Henrique Ferreira de Freitas2014-06-062-6/+8
| | | | | | | | | | | | If wic is running as raw mode, it's better to check if BBLAYERS is valid before inspect it. No functional changes. (From OE-Core rev: a3ee9cc7aebaecfa2223552a2c1865a9337de664) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: default plugin type directory should be added only onceJoão Henrique Ferreira de Freitas2014-06-061-2/+2
| | | | | | | | | | | | Fix 'for' statement identention so plugin type directory will be added only once in layers_dirs list. No functional changes. (From OE-Core rev: ba88329115a3d6f964febcbf554af8391e1b84a1) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: add support to look in all layers and get pluginsJoão Henrique Ferreira de Freitas2014-05-211-5/+23
| | | | | | | | | | | | | | | | Plugins are looked in 'scripts/lib/mic/plugins/[type]/' directory on all BBLAYERS variable returned by bitbake environment. If found, it will be load at runtime. The user could create your own plugin and keep it inside its layers. For now the path must be <layer-dir>/scripts/lib/mic/plugins/[type]/. Where 'type' could be 'imager' or 'source'. (From OE-Core rev: bb6f5d7de1c7ce2680874a74949903db0f5bb91a) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: add support to look in all layers and get .wks fileJoão Henrique Ferreira de Freitas2014-05-211-29/+43
| | | | | | | | | | | | | | | .wks file are looked in 'scripts/lib/image/canned-wks' directory on all BBLAYERS variable returned by bitbake environment. If found, it will be used. The user could create your own .wks and keep it inside its layers. For now the path must be <layer-dir>/scripts/lib/image/canned-wks. (From OE-Core rev: 1f3e312211f277a1befd707a59a0c0a9bf6cbcbc) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Extend indirect string connection to support image names and rootfsJoão Henrique Ferreira de Freitas2014-05-131-3/+24
| | | | | | | | | | | | | | | | | | | | | | | | The wic command-line param --rootfs-dir gets extended to support multiple directories and image names. Each '--rootfs-dir' could be connected using a special string. This special string is a image name which gets expanded by bitbake to get 'IMAGE_ROOTFS' or a rootfs-dir path pointing to rootfs directory. Like this: wic create ... --rootfs-dir rootfs1=core-image-minimal \ --rootfs-dir rootfs2=core-image-minimal-dev .wks: part / --source rootfs --rootfs-dir="rootfs1" --ondisk sda --fstype=ext3 \ --label primary --align 1024 part /standby --source rootfs --rootfs-dir="rootfs2" \ --ondisk sda --fstype=ext3 --label secondary --align 1024 (From OE-Core rev: 58417093d7ce83c8a2f683a356fddc23aaee5e8e) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: add find_artifact() to get a specific bitbake variableJoão Henrique Ferreira de Freitas2014-05-131-0/+14
| | | | | | | | | | This helper is used by source plugins to get specific bitbake variable. (From OE-Core rev: b8e51f73bc8e67ca60b7dd8d67091257aad62efd) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Move find_bitbake_env_line() to oe.miscJoão Henrique Ferreira de Freitas2014-05-132-17/+16
| | | | | | | | | | Move find_bitbake_env_line() since they're going to need to be accessible from source plugins. (From OE-Core rev: d881ec6136255fd0f4a8cf36f9ce148ade02c103) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Globally replace 'base_contains' calls with 'bb.utils.contains'Otavio Salvador2014-04-251-1/+1
| | | | | | | | | | | The base_contains is kept as a compatibility method and we ought to not use it in OE-Core so we can remove it from base metadata in future. (From meta-yocto rev: 5021839af713cb34bea5888981f2184104b6d35e) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* yocto-bsp: Update templates to 3.14 kernelTom Zanussi2014-04-0931-283/+69
| | | | | | | | | Add 3.14 kernel support, and remove support for 3.4. (From meta-yocto rev: 342dce5873a9f1844fd7ce52a1c2656dcfb43053) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Drop beagleboard, replaced by beagleboneRichard Purdie2014-03-311-1/+0
| | | | | | (From meta-yocto rev: b125761e5e31fc506f7b5b87308850cd573ab1b6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Extend --rootfs-dir to connect rootfs-dirsJoão Henrique Ferreira de Freitas2014-03-303-11/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The wic command-line param --rootfs-dir gets generalized to support multiple directories. Each '--rootfs-dir' could be connected using a special string, that should be present in .wks. I.e: wic create ... --rootfs-dir rootfs1=/some/rootfs/dir \ --rootfs-dir rootfs2=/some/other/rootfs/dir part / --source rootfs --rootfs-dir="rootfs1" --ondisk sda --fstype=ext3 \ --label primary --align 1024 part /standby --source rootfs --rootfs-dir="rootfs2" \ --ondisk sda --fstype=ext3 --label secondary --align 1024 The user could use harded-code directory instead of connectors. Like this: wic create ... hard-coded-path.wks -r /some/rootfs/dir part / --source rootfs --ondisk sda --fstype=ext3 --label primary --align 1024 part /standby --source rootfs --rootfs-dir=/some/rootfs/dir \ --ondisk sda --fstype=ext3 --label secondary --align 1024 (From OE-Core rev: 719d093c40e4c259a4c97d6c8a5efb5aeef5fd38) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Report all ROOTFS_DIR artifactsJoão Henrique Ferreira de Freitas2014-03-303-4/+28
| | | | | | | | | | When a .wks has more than one ROOTFS_DIR it's better to report all ROOTFS_DIR that was used to create the image. (From OE-Core rev: a8762f3be215678a6806cabe49647083f42323a8) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add option --rootfs-dir to --sourceJoão Henrique Ferreira de Freitas2014-03-301-0/+6
| | | | | | | | | | | | | | | The '--rootfs-dir' option is optional and only takes efect is a partition is set up like this: part /standby --source rootfs --rootfs-dir=<special rootfs> ... So '--rootfs-dir' is used instead of bitbake ROOTFS_DIR variable or '-r' param. (From OE-Core rev: d486db593e6643bd10b8fe90257d547a9f341043) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Use partition label to be part of rootfs filenameJoão Henrique Ferreira de Freitas2014-03-301-2/+2
| | | | | | | | | | | | | | | | | | When a partition from .wks file is set up like this: part /standby --source rootfs --rootfs-dir=<special rootfs> ... --label \ --label secondary This means that 'rootfs' must use '<special rootfs>' as rootfs and the default partition filename in /var/tmp/wic/build/ will be create using the '--label' as part of the name. E.g: /var/tmp/wic/build/rootfs_secondary.ext3 (From OE-Core rev: c7efb3a21618ce3069811042279a0d898237ac0f) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add rootfs_dir argument to do_prepare_partition() methodJoão Henrique Ferreira de Freitas2014-03-303-3/+3
| | | | | | | | | | | | | | | The do_prepare_partition() method from RootfsPlugin class need to know what will be the rootfs_dir. This makes sense when .wks file has a partition set up like this: part /standby --source rootfs --rootfs-dir=<special rootfs> ... then do_prepare_partition() will work with the correct rootfs. (From OE-Core rev: 6042b097a8fc24f2b85eb9848fb007a3c6c090a9) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Hook up RootfsPlugin pluginJoão Henrique Ferreira de Freitas2014-03-301-16/+12
| | | | | | | | | | | | | Remove the 'rootfs' case when internal call code is used and replace to call the general-purpose plugin. For now RootfsPluing class continues to invoke prepare_rootfs() method from Wic_PartData. However RootfsPlugin could implement them. (From OE-Core rev: 26cd93b79318cbfaebb971d1e728041904e015f1) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add RootfsPluginJoão Henrique Ferreira de Freitas2014-03-301-0/+58
| | | | | | | | | | | | | Implement RootfsPlugin class. The do_prepare_partition() method is implemented using code in Wic_PartData class. This class have 'rootfs' name, which is the name that should be used in the --source parameters of the .wks partition commands. (From OE-Core rev: 68dd66849bbaca6e3a0cf00beec0dba1c08e9070) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Fix bitbake_env_command for 'None' caseTom Zanussi2014-03-301-1/+4
| | | | | | | | | | bitbake_env_command will choke if it isn't given an image, make sure it does the right thing in that case. (From OE-Core rev: a17f879cd5bc7401597ccee908801f8e3efa34c0) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add SD/MMC-Cards support to '--ondisk' paramJoão Henrique Ferreira de Freitas2014-03-271-2/+6
| | | | | | | | | | | | The special case when wic is set up to use SD/MMC-Cards in place of sdX disks is not handled properly. Append 'p' to the rootdev when disk is SD/MMC-Cards fix this situation. (From OE-Core rev: 3a95c4549f743aa47456c76e687a863c64c7a7f4) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Use pseudo for ext mkfs commandTom Zanussi2014-03-121-1/+1
| | | | | | | | | | The switchover from populate-exfs.sh to mke2fs forgot to preserve pseudo, add it back. (From OE-Core rev: 032309928f931b32cf63a0ebf174de029ba17401) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Use mke2fs to create the ext2/3/4 imageJoão Henrique Ferreira de Freitas2014-03-121-4/+2
| | | | | | | | | | | OE-core commit f3a95ca6886b55e5819b068bdbd2cceb882d91a6 removed the populate-extfs.sh. So mke2fs should be used to create ext2/3/4 image. (From OE-Core rev: 4dea928eef325364922b1e0cbabc2a581356e804) Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Make exec_native_command() fail if a command isn't foundTom Zanussi2014-02-201-2/+9
| | | | | | | | | | | | | | | | | | Because exec_cmd() return values can in certain cases be non-zero yet non-fatal, we don't want to automatically make them fatal (though there should at least be a warning in such cases, which this patch also does); non-zero return values are definitely fatal however if they mean that a native command wasn't found, so have exec_native_cmd() check the return value of exec_cmd() for that case, and bail out if so. [YOCTO #5835] (From OE-Core rev: 43ac6e3216c5d985d6f90a28e727e397df616267) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Fix exec_native_cmd() pathTom Zanussi2014-02-201-1/+1
| | | | | | | | | | | The path exported in exec_native_cmd() includes bogus 'PATH=' which means the native paths for all but the first will be ignored. (From OE-Core rev: e10c1102d958ffc6b521fb36c6bc51d896503218) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Honor --size for --source partititionsTom Zanussi2014-02-094-10/+68
| | | | | | | | | | | | | | Instead of simply creating partitions large enough to contain the contents of a --source partition (and adding a pre-specified amount of padding), use the --size used in the partition .wks statement. If --size isn't used, or is smaller than the actual --source size, retain the current behavior. (From OE-Core rev: 23b6c5ea4d48cdf731e5202991961a0e4b10ff29) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Hook up --debug optionTom Zanussi2014-02-041-1/+4
| | | | | | | | | | | Hook up the existing --debug option to toggle the wic debug loglevel, which is indispensible when things go wrong, and make it easy to use from the command-line. (From OE-Core rev: a5ece6f37656fa56b97fd8faf52917345238d015) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Hook up BootimgEFIPlugin and BootimgPcbiosPlugin pluginsTom Zanussi2014-02-046-279/+86
| | | | | | | | | | | | | | | | | | | Remove all the Wic_PartData and DirectImageCreator code now implemented by the BootimgEFIPlugin and BootimgPcbiosPlugin plugins, as well as all the special-cased boot_type code, significantly cleaning up the code. Replace the calling code with general-purpose plugin invocations, in essence calling the appropriate implementations at run-time based on the --source value in effect. Change the directdisk.wks and mkefidisk.wks scripts to make use of the new plugins. (From OE-Core rev: 43558610a5793888ff2b18bd3a27c7ab558e5ad0) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add BootimgEFIPlugin and BootimgPcbiosPluginTom Zanussi2014-02-042-0/+348
| | | | | | | | | | | | | | | Implement the BootimgPcbiosPlugin and BootimgEFIPlugin SourcePlugin classes. The configure/prepare_partition() methods are implemented using code derived from similar code in the Wic_PartData class. These classes have the corresponding names 'bootimg-pcbios' and 'bootimg-efi', which are the names that should be used in the --source parameters of the .wks partition commands. (From OE-Core rev: 6e147488b40f730e07f1e0f232083ed75388daa0) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add SourcePlugin classTom Zanussi2014-02-042-3/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define the SourcePlugin class, which is the class that should be subclassed to create a 'source' plugin. 'Source' plugins provide a mechanism to customize various aspects of the image generation process in wic, mainly the contents of partitions. The initial version of wic defined a --source param for partitions, which was in the first revision hard-coded to two possible values: rootfs and bootimg. This patch essentially removes the hard-coded --bootimg param and replaces it with a plugin system that maps the value specified as --source to a particular 'source' plugin instead. A 'source' plugin is created as a subclass of SourcePlugin and the plugin file containing it is added to scriptsl/lib/mic/plugins/source/ to make the plugin implementation available to the wic implementation. When the wic implementation needs to invoke a partition-specific implementation, it looks for the plugin that has the same name as the --source param given to that partition. For example, if the partition is set up like this: part /boot --source bootimg-pcbios ... then the methods defined as class members of the plugin having the matching .name class member would be used. To be more concrete, here's the plugin definition that would match a '--source bootimg-pcbios' usage, along with an example method that would be called by the wic implementation when it needed to invoke an implementation-specific partition-preparation function: class BootimgPcbiosPlugin(SourcePlugin): name = 'bootimg-pcbios' @classmethod def do_prepare_partition(self, part, ...) If the subclass itself doesn't implement a function, a 'default' version in a superclass will be located and used, which is why all plugins must be derived from SourcePlugin. This scheme is extensible - adding more hooks is a simple matter of adding more plugin methods to SourcePlugin and derived classes. The code that then needs to call the plugin methods the uses plugin.get_source_plugin_methods() to find the method(s) needed by the call; this is done by filling up a dict with keys containing the methon names of interest - on success, these will be filled in with the actual methods. fPlease see the implementation for examples and details. Note that a source plugin need not restrict itself to methods that apply directly to partitions - methods can also be defined for higher level processing such as at the 'disk' level. The get_default_source_plugin() of DirectImageCreator allows the default source plugin to be retrieved; by default this is set to be the same plugin used for the /boot partition, but that can be overridden by specifying a different --source and therefore different plugin on the 'bootloader' line. This isn't ideal, but it avoids forcing a new high-level object to be defined for that purpose. Note that the '--source rootfs' param remains as its current hard-coded value, which is just the rootfs to be used to populate the partition - by default, that's just the value of the bitbake ROOTFS_DIR variable (or whatever was passed in using the -r param). Note that this also could also be overridden by creating a source plugin using a different name; at this point, unlike with bootimg, there's been no need to do so. (From OE-Core rev: 663833d8ecccb36ab42150bc5c9c00be79fa5b93) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add wic-specific bootloader subclassTom Zanussi2014-02-043-2/+65
| | | | | | | | | | | | | Add a new wic-specific bootloader subclass so we can add a --source param to hang non-partition plugin off of. By default, the bootloader gets the /boot partition source plugin, but this can be overridden by the --source bootloader param if needed. (From OE-Core rev: f90e4097c4e69d4f61c69923cb5d1ebb6b74d2ff) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Create and use new functions for getting bitbake variablesTom Zanussi2014-02-042-5/+31
| | | | | | | | | | Add get_bitbake_var() and bitbake_env_lines() functions for use by plugins, which will need access to them for customization. (From OE-Core rev: f0bb47b0d7ab6520c105ce131844269172de3efd) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Move some common items to oe.miscTom Zanussi2014-02-043-13/+12
| | | | | | | | | | Move a couple items into a more common location since they're going to need to be accessible from source plugins. (From OE-Core rev: 95ca523949e838850b5afa090ba16f91b8557c12) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>