summaryrefslogtreecommitdiffstats
path: root/meta/classes/image.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* image.bbclass: additional output in create_symlinksPatrick Ohly2016-05-221-3/+5
| | | | | | | | | | | | | When a symlink does not get created, it is useful for debugging to log what would have been created and why it was skipped. (From OE-Core rev: d2b4da7d21ce5295442bd2d5c760e64cf843aabb) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: support duplicate compression typesPatrick Ohly2016-05-221-1/+9
| | | | | | | | | | | | | | | | | | | | | | When a derived distro adds a certain type, say zip, to COMPRESSIONTYPES and later OE-core does the same, we end up with the type being listed twice, and that would have undesired effects (commands generated twice). So to support such loosely coupled extension, we de-duplicated the list of types first. Alternatively, such a situation could also be treated as error. But that seems unnecessary because typically commands for the same type will also do the same thing. (From OE-Core rev: 85855af359c2c3bfc1eaa942c95f1f7d7cc6698e) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Fix IMAGE_FEATURES determinism issueRichard Purdie2016-05-111-1/+1
| | | | | | | | | | | | | remain_features uses a dict which means the order is not deterministic. This can lead to the task hash changing depending on the state of the memory at parse time. This is particularly noticeable under python v3. Since the dict is helpful in constructing the data, pass the data through sort() so the order is always deterministic. (From OE-Core rev: b08344e28dd33e3af5596007b11185d04fce255e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: don't execute compression commands multiple timesAlexander D. Kanevskiy2016-04-291-2/+6
| | | | | | | | | | | | | In case of chained conversion methods are used via COMPRESS_CMD_* there is chance that some of steps would be executed multiple times. [YOCTO #9482] (From OE-Core rev: 94f61c2682e5cfd819ac84535650c3e0a654415a) Signed-off-by: Alexander D. Kanevskiy <kad@kad.name> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: don't emit redundant IMAGE_CMD_xxx functionsAndre McCurdy2016-04-291-0/+4
| | | | | | | | | | | | | | IMAGE_CMD_xxx commands are always inlined within do_image_xxx. When IMAGE_CMD_xxx is defined as a function (e.g. IMAGE_CMD_btrfs, IMAGE_CMD_cpio, etc), a redundant copy of the function will be emitted by default. Remove IMAGE_CMD_xxx 'func' flags to prevent that. (From OE-Core rev: 118c1ca4d8d62162e87caf287f96d90707ee5903) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: The wrong name is being used for the debug filesystemMark Hatle2016-04-191-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | [YOCTO #9487] The debug filesystem file name is ending in "debug_tar", it should be simply "tar". Strip the "debug_" piece as necessary. To avoid deleting the tar ball, when we've asked for just the tarball we need to check 't' and not 'realt'. The two hunks were suggested by RP. I've implemented and verify they work with the settings: PACKAGE_CLASSES = "package_rpm" IMAGE_GEN_DEBUGFS = '1' IMAGE_FSTYPES_DEBUGFS = "tar.bz2" IMAGE_FSTYPES_DEBUGFS = "tar.gz" and IMAGE_FSTYPES_DEBUGFS = "tar" (From OE-Core rev: ca088bebfc3603ef206b20501916019f0572f955) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: add DEB_{PRE, POST}PROCESS_COMMANDS to ↵Bill Randle2016-04-141-1/+1
| | | | | | | | | | | | | | | | rootfs_command_variables list Remove duplicate ROOTFS_POSTPROCESS_COMMAND in the rootfs_command_variables list. Add DEB_PREPROCESS_COMMANDS and DEB_POSTPROCESS_COMMANDS to rootfs_command_variables list for consistency with the RPM_ and OPKG_ versions of those variables. Note: the package manager specific pre and post process commands may removed entirely in Yocto 2.2 or later. (From OE-Core rev: e951a8970b456de71f6596f061211a48adce3e3a) Signed-off-by: Bill Randle <william.c.randle@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: use max() instead of indexing booleansRoss Burton2016-04-131-3/+1
| | | | | | | | | | There's some code dotted around OE that uses (a, b)[foo < bar] instead of the more idiomatic "test and a or b". Or in this case, just max(). (From OE-Core rev: 7ee49f8a41b4b5c48fd283ac2768564c7ebb5332) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Fix debugfs image type recursion loopFreudiger Raphael2016-04-031-2/+3
| | | | | | | | | | | The debugfs prefix is striped from t, but not from baset. Therefore baset never matches t. (From OE-Core rev: 2862cbf74925cb084d3f9c206d3448112ba6a0aa) Signed-off-by: Freudiger Raphael <raphael.freudiger@siemens.com> Signed-off-by: Pascal Bach <pascal.bach@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-live.bbclass/image-vm.bbclass: remove duplicated codeRobert Yang2016-03-311-12/+0
| | | | | | | | | Move the common code to live_vm_common.bbclass and remove duplicated ones. (From OE-Core rev: 4a70cc59a0350f06d4cc48c12c3053a39191ba07) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: Make unneeded packages for a read-only rootfs configurablePeter Kjellerstedt2016-03-311-1/+5
| | | | | | | | | | | | | | | | Previously the list of packages that are considered unneeded for a read-only rootfs was hardcoded. This made it impossible to, e.g., have shadow installed on a system with a read-only rootfs, but where /etc is mounted writable. This also lists ${VIRTUAL-RUNTIME_update-alternatives} rather than update-alternatives (as was previously the case) since this should actually remove the intended package. (From OE-Core rev: e3b881d4168e5b02ff00f5c470ba472ab8bbc747) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: run wicenv task only for wic imagesEd Bartosh2016-03-281-1/+1
| | | | | | | | | | | | | | | | | | Currently do_wicenv task is run for all images. However, its result is used only to produce wic image. It's better to run this task only for wic images. If another rootfs is required to produce wic image, dependency to its do_wicenv must be added to the wic image recipy. Stopped running do_wicenv for all images. Added explicit dependency to this task in wic-image-minimal recipe. [YOCTO #9095] (From OE-Core rev: b81c176fb2f1ee818b6049c39ef353a7d7d5e078) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* grub-efi.bbclass: make it can build vm and live togetherRobert Yang2016-03-251-1/+1
| | | | | | | | | | | | * Make it can build vm and live (e.g., iso + vmdk) together as we did for syslinux. * GRUBCFG -> GRUB_CFG as other GRUB_FOO vars (From OE-Core rev: e38039e43f22d55a443064efa91752e2943fda79) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass: fix settings for grub-efi.bbclassRobert Yang2016-03-251-0/+13
| | | | | | | | | | | | | | | | | Fixed: - Found potential conflicted var LABELS ... Set LABELS to "boot install" would build out broken images when build vm + live together, use set_live_vm_vars() to fix the problem. - Use ROOT and LABEL in boot-directdisk.bbclass and image-foo.bbclass, they are not only used by syslinux.bbclass, but also grub-efi.bbclass, add "SYSLINUX_" prefix would mislead users. (From OE-Core rev: d7d1e0193c94abb1cd2daf1c298c8c1788f3616d) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: track ROOTFS_POSTUNINSTALL_COMMAND in do_rootfs vardepsPatrick Ohly2016-03-201-1/+1
| | | | | | | | | | | | | The list of variables influencing do_rootfs was not updated when introducing ROOTFS_POSTUNINSTALL_COMMAND. As a result, making changes in commands listed there or the variables they depend on did not trigger a re-run of do_rootfs. (From OE-Core rev: 66b461ce9df7ed06d7651b9b54a49a950b97a1d4) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: support chaining compression (aka conversion) commandsPatrick Ohly2016-03-091-3/+24
| | | | | | | | | | | | | | | | | | | | | | | | | It makes sense to use the compression mechanism also for conversion, for example of a whole-disk image into .vdi (VirtualBox). That part already works, like this: COMPRESSIONTYPES_append = " vdi" COMPRESS_CMD_vdi = "qemu-img convert -O vdi ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vdi" IMAGE_DEPENDS_vdi = "qemu-native" But then it also makes sense to allow compressing the resulting image, which only works after enhancing the image.bbclass. For example, suppose a custom image command produces "dsk" images. Then it becomes possible to set IMAGE_FSTYPES = " dsk.xz dsk.vdi.xz" and do_image_dsk will automatically produce the intermediate images, convert to dsk.xz resp. dsk.vdi -> dsk.vdi.xz and delete all intermediate images. Symlinks are also set correctly. (From OE-Core rev: 588f14370372a66329b54606071175519ce88f1e) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: fix incomplete .rootfs customizationPatrick Ohly2016-03-071-1/+1
| | | | | | | | | | | | | | | The patch for making the .rootfs configurable was incomplete: in the python create_symlinks() method the new variable must be expanded explicitly. Not doing so broke the symlink creation and that led to hard build failures in image types depending on the boot-directdisk.bbclass (like qcow2) because the build_boot_dd() method relied on the symlink. (From OE-Core rev: 0d02159c8d66bb136f7da2c10fda7d1a57f40cec) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image creation: allow overriding .rootfs suffixPatrick Ohly2016-03-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | By default, the image file name contains ".rootfs" to distinguish the image file from other files created during image building. However, for certain image types (for example, .hddimg) the ".rootfs" suffix is redundant because the type suffix alone already uniquely identifies the main image file (core-image-minimal-intel-corei7-64.hddimg instead of core-image-minimal-intel-corei7-64.rootfs.hddimg). With this change, distros that prefer the shorter image name can override the .rootfs suffix unconditionally with IMAGE_NAME_SUFFIX ?= '' in their distro configuration or with some condition check like this: python () { if <whole-disk image format active>: d.setVar('IMAGE_NAME_SUFFIX', '') } The exact logic when to remove the extra suffix depends on the distro and how it enables its own image type. (From OE-Core rev: 380ee36811939d947024bf78de907e3c071b834f) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Run do_rootfs_wicenv after do_imageRichard Purdie2016-02-281-1/+1
| | | | | | | | | do_image can modify the content of the rootfs directory so we need to run do_rootfs_wicenv after do_image compeltes or the command can fail. (From OE-Core rev: 8f5429b5e543e122072a51b518cc137dfc8ec442) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image/populate_sdk: seprate variables to fix dependencyChen Qi2016-02-181-9/+7
| | | | | | | | | | | | | | | | Previously, do_rootfs depends on variables like SDK_OS, SDK_OUTPUT, etc. And changing variables like POPULATE_SDK_POST_HOST_COMMAND doesn't cause do_populate_sdk to rerun. This patch separates variables so that do_rootfs and do_populate_sdk could correctly depend on their related variables. [YOCTO #8670] (From OE-Core rev: 590cf4be70f1355622d3a94d76b4cc6d525d4a34) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: check INITRAMFS_MAXSIZERobert Yang2016-01-261-1/+13
| | | | | | | | | | | | | | | | | | | | | | | Usually, the initramfs' maxsize can be 1/2 of ram size since modern kernel uses tmpfs as initramfs by dafault, and tmpfs allocates 1/2 of ram by default at boot time, which will be used to locate the initramfs. Set INITRAMFS_MAXSIZE to 131072K (128M) by default (ram 256M), the initramfs is small usually, for example, core-image-minimal-initramfs is about 21M (uncompressed, 17M * 1.3) by default, but if the user add a lot pkgs to initramfs, we can error and stop to let the user know ealier rather than fail to boot (e.g., OOM-killer) at boot time. Please see the bug for more info: https://bugzilla.yoctoproject.org/show_bug.cgi?id=5963 [YOCTO #5963] (From OE-Core rev: 155ba626b46bf71acde6c24402fce1682da53b90) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Don't create tasks with '.' in the nameRichard Purdie2016-01-261-2/+2
| | | | | | | | | | | | | Similarly to "-", "." doesn't work well in task names but is used in some real world image classes. Work around this with some replacements for now to unbreak layers. (Issues don't show themselves until runtime, e.g. with --dry-run) Tested-By: Otavio Salvador <otavio.salvador@ossystems.com.br> (From OE-Core rev: f94d9be17d727b37dc655e7be272db2f290436aa) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Handle image types containing '-' correctlyRichard Purdie2016-01-191-4/+6
| | | | | | | | | | Shell function names can't contain '-' characters, which means our image task names also can't. Add some mapping to use '_' instead of the '-' so images like "rpi-sdimg" work again. (From OE-Core rev: e609a4dea2f6d9744e7d2a6650bebf2c02398907) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Always run do_rootfs_wicenvRichard Purdie2016-01-191-1/+1
| | | | | | | | | | | The wic command can be used externally but for this to work, the wic environment file needs to be present. Therefore write this out universally, it runs in parallel with other image construction so any performance implications are negligible. (From OE-Core rev: b2576f2eab10e4c5dd86449312b417a269cc578e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg/image: Enhance bootimg to respect RM_OLD_IMAGERichard Purdie2016-01-191-4/+5
| | | | | | | | | | Currently, iso and hddimg links don't respect RM_OLD_IMAGE. This updates them to use the common symlinks code so that they behave like the rest of the system. (From OE-Core rev: 6a05cb64dfafd531d50454ef7141ff0290d01ca9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Ensure we don't expand TMPDIR in image commandsRichard Purdie2016-01-191-0/+2
| | | | | | | | | | Similarly to DATETIME, don't expand TMPDIR in image commands. This ensures some of the stamp comparisons we make in the QA tests work correctly. (From OE-Core rev: a8c377beadb85b0ff503ec8ddd1a2cd05e363c19) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Fix instability of do_image_* checksumsRichard Purdie2016-01-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | The do_image_* tasks contained the expanded version of DATETIME. Due to the expansion, we couldn't exclude the value from the task checksum which meant the task would rerun. We fix this by deleting the DATETIME value during expansion so we don't expand any references to at that time. This means the task's hash can be stable rather than having hardcoded date/time values. It will get expanded at execution time. This also fixes errors shown by -S: NOTE: Reparsing files to collect dependency data Writing locked sigs to /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build/locked-sigs.inc ERROR: Bitbake's cached basehash does not match the one we just generated (/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/recipes-sato/images/core-image-sato.bb.do_image_tar)! ERROR: The mismatched hashes were 77872792556367f1dde49a1425caf1a0 and 9bb0aca6286ab7dd22d3c69964beb665 (From OE-Core rev: ecbc1db7ed1f9848dee69507de8eb289b8ddeba0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Fix wic environment issuesRichard Purdie2016-01-191-3/+5
| | | | | | | | | | | | | | | | | | | | | The wic environment function needs to run after the rootfs size is setup. We move this code to a specific task, and depend on that task from the wic images and other places its needed. This fixes: ====================================================================== FAIL: test_image_env (oeqa.selftest.wic.Wic) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/utils/decorators.py", line 106, in wrapped_f return func(*args, **kwargs) File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/wic.py", line 218, in test_image_env self.assertTrue(var in content, "%s is not in .env file" % var) AssertionError: False is not true : ROOTFS_SIZE is not in .env file (From OE-Core rev: 606f9e2d7d8d389c8d4f5c3090139d3bb780e09c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image/image-live: Add back IMAGE_TYPES_MASKED supportRichard Purdie2016-01-151-2/+5
| | | | | | | | | | | | | IMAGE_TYPES_MASKED support was accidentally removed. The original idea behind it was to remove some of the hardcoding in the core image code, so do that for image-live and ensure the dependency and masked variables correctly reflect the needs of the class. This means we can remove all the hardcoded special cases since image-vm already has the needed markup. (From OE-Core rev: 9a2d4a3b8d7bb1cf7f1fb7fe47d5c002d9941c89) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: Handle image base type dependency properlyOtavio Salvador2016-01-151-0/+3
| | | | | | | | | | | | | | | | When a base image type has an implicit dependency (from IMAGE_TYPEDEP) this has to be taken into account. This is a regression introduced by OE-Core:c2dab18 (image: Create separate tasks for rootfs construction). The issue has been found when building meta-fsl-arm based images which does not include the rootfs image type explicitly in IMAGE_FSTYPES but instead is added, using IMAGE_TYPEDEP, for the 'sdcard.gz' image. Reported-by: Fabio Berton <fabio.berton@ossystems.com.br> (From OE-Core rev: 191c7be3a6cc52911f244323072433f6a1172bf1) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: Unconditional includes of populate_sdk_ext failsMark Hatle2016-01-151-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | populate_sdk_ext requires uninative support, which is only available on glibc based SDKMACHINES. For instance, when using mingw32 a dependency error will occur: NOTE: Runtime target 'nativesdk-glibc' is unbuildable, removing... ERROR: Required build target 'core-image-minimal' has no buildable providers. Missing or unbuildable dependency chain was: ['core-image-minimal', 'uninative-tarball', 'nativesdk-glibc'] This is dues to populate_sdk_ext.bbclass having: do_populate_sdk_ext[depends] += "buildtools-tarball:do_populate_sdk uninative-tarball:do_populate_sdk" addtask populate_sdk_ext Since bitbake can't determine for dependency resolution if the task is going to be run yet, it blows up and says it simply can't be resolved. Workaround this problem by making the inherit conditional on the SDK_OS containing 'linux'. (From OE-Core rev: e471ce3464d5ae024315d4839cccd4c651f9ba83) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Fix do_rootfs referencesRichard Purdie2016-01-111-2/+2
| | | | | | | | | After the separation of do_rootfs, some rootfs references need changing to image_complete. (From OE-Core rev: 59a5f596ca29b1eb8283706e3c60fbb39f9c2c23) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Create separate tasks for rootfs constructionRichard Purdie2016-01-111-23/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch splits the code in lib/oe/image into separate tasks, one per image type. This removes the need for the simple task graph code and defers to the bitbake task management code to handle this instead. This is a good step forward in splitting up the monolithic code and starting to make it more accessible to people. It should also make it easier for people to hook in other tasks and processes into the rootfs code. Incidentally, the reason this code was all combined originally was due to limitations of fakeroot where if you exited the session, you lost permissions data. With pseudo this constraint was removed. We did start to rework the rootfs/image code previously and got so far with untangling it however we did prioritise some performance tweaks over splitting into separate tasks and in hindsight, this was a mistake and should have been done the other way around. That work was suspended due to changes in the people working on the project but this split has always been intended, now is the time to finish it IMO. There were some side effects of doing this: * The symlink for the manifest moves to the rootfs-postcommands class and into the manifest function. * There is no seperate "symlink removal" and "symlink creation", they are merged * The date/time stamps of the manifest and the built images can now be different since the tasks can be run separately and the datetime stamp will then be different between do_rootfs and the do_image_* tasks. (From OE-Core rev: c2dab181c1cdabac3be6197f4b9ea4235cbbc140) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Move pre/post process commands to bbclassRichard Purdie2016-01-111-2/+23
| | | | | | | | | | As the next step in splitting up do_image, move the pre and post processing commands to separate tasks. This also creates the do_image_complete task which acts as the end marker task for image generation. (From OE-Core rev: 800528eaa421d451b596545125cb218e08989151) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: Separate out image generation into a new task, do_imageRichard Purdie2016-01-111-4/+10
| | | | | | | | | | | | | | | | | | I've heard complaints from people trying to create more interesting image types about how hard it is to understand the rootfs/image generation code and that its a pain to develop/test/debug. Having looked at it myself, the internal construction of shell functions which then gets passed into a multiprocessing pool is rather convoluted and it places rather odd constraints on when variables are expanded. Its therefore no wonder people find it confusing/complex. This patch starts the process of splitting this up by separating out image generation from the do_rootfs task into a new do_image task. (From OE-Core rev: 57578d0ca6c3aaf6edf0af2c4862d43c97415156) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Really remove lockfiles flagRichard Purdie2016-01-071-1/+0
| | | | | | | | | This was supposed to be removed by a previous patch but was readded. Really remove it. (From OE-Core rev: 5661d8cb7849df62358368743134c0aaf523965e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Condense do_rootfs function/flagsRichard Purdie2016-01-061-27/+17
| | | | | | | | | Various prefuncs and flags and addtask statements make sense to belong together in one clearer function now, this patch cleans things up a bit. (From OE-Core rev: eae0cf7875197f9520be54370bc670e27338aad3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image/rootfs-postcommands: Separate out post rootfs commands to separate classRichard Purdie2016-01-061-239/+1
| | | | | | | | | | | | | | Reading image.bbclass is a little difficult as it has many post rootfs helper functions and its hard to separate those from the core contents of the rootfs/image code. Moving it to a separate class would be one way of making it clearer what these functions are. There are some comment layout improvements but no code changes. (From OE-Core rev: df4cb51c8e60fa46d4d15be8da3d84287ff08ae7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Remove pointless rootfs lockRichard Purdie2016-01-061-1/+0
| | | | | | | | | It was added in aa3141e979326a9d931ff03bad75923faa1d9dc6 back in 2008 but I don't see why multiple images would need this now. (From OE-Core rev: 2eaeac6d98c310cb2602ba194d934c5b7bed253d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: tweak the key location for dropbear when rootfs is readonlyAlexander Kanavin2015-10-011-0/+11
| | | | | | | | | In the same way it's done for openssh. (From OE-Core rev: a4b91f5199dd4d1302484cbd972a484d36f7886f) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: when building a readonly rootfs, tweak ssh settings ↵Alexander Kanavin2015-10-011-12/+12
| | | | | | | | | | | regardless of init system in use Previously it was done only if sysvinit was in DISTRO_FEATURES. (From OE-Core rev: 8aa5c66a29c1394e0418e94bdd49e5b268ffc790) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image types: add hdddirectPatrick Ohly2015-09-281-1/+1
| | | | | | | | | | | | | | | | | | When image-vm.bbclass was introduced, it indirectly also introduced a ".hdddirect" image type based on boot-directdisk.bbclass. However, one could only get that image when also enabling at least one of the virtual machine images. The .hdddirect images are useful by themselves. By registering image-vm.bbclass as implementation of it, it becomes possible to select them with: IMAGE_FSTYPES = "hdddirect" (From OE-Core rev: e3ff509091cbbfdef851f8a3c9e31c7b76d37e89) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: add do_rootfs vardeps for {COMPRESS, IMAGE}_CMD_*Christopher Larson2015-09-181-1/+17
| | | | | | | | | | | | | | | We want do_rootfs to rerun if the fstype or compression commands or dependencies change for any of our configured fstypes (IMAGE_FSTYPES). IMAGE_TYPEDEP isn't explicitly handled, as it's traversed already, so the end result will change if it does, and we only really care about the results, not how we got there. This uses oe.image.Image()._get_image_types() to get the info about the image and compression types in use. (From OE-Core rev: a3473d1ee30f8ec688d57dddb6e3c2b887194384) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: add rootfs_check_host_user_contaminatedChristopher Larson2015-09-041-0/+14
| | | | | | | | | | This function is intended to be used in ROOTFS_POSTPROCESS_COMMAND, and checks for any paths outside of /home which are owned by the user running bitbake. (From OE-Core rev: 72903f7534cccad35886f2cad8aac98a59392ec7) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: re-run do_rootfs when feature packages changeChristopher Larson2015-08-301-0/+2
| | | | | | | | | | | | | | | Currently, FEATURE_PACKAGE_<feature> isn't in any vardeps, so changing the packages for a feature won't change the checksum for do_rootfs. Rather than explicitly adding those to vardeps, just use the expanded form of FEATURE_INSTALL and FEATURE_INSTALL_OPTIONAL, so the actual list of packages from the features goes into the checksum. (From OE-Core rev: fdd1669e04bd8219344b1896b9d9c6a187e4f84e) (From OE-Core rev: 9697d13e48633515b80b2ab9bab84ca54ce3ed48) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Support for qcow2Christian Ziethén2015-07-251-1/+1
| | | | | | | | | | | Add support for qcow2 image format. Implemented in the same way as the previously existing vmdk and vdi solutions. (From OE-Core rev: c1f9ed400e4b5fe5be4fac86021dea11a7546035) Signed-off-by: Christian Ziethén <christian.ziethen@linaro.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* *image.bbclass: Consolidate ROOTFS_POSTPROCESS_COMMANDsGary Thomas2015-07-231-0/+6
| | | | | | | | | | | | | Move ROOTFS_POSTPROCESS_COMMANDs from core-image.bbclass to image.bbclass so that images built using just image.bbclass will benefit from them. Without this change, an image built using image.bbclass did not honor read-only-rootfs image feature. (From OE-Core rev: 2d310470d95f7b387dcde605e4691ee505fc3b4d) Signed-off-by: Gary Thomas <gary@mlbassoc.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Add explict getVar param for (non) expansionRichard Purdie2015-06-231-1/+1
| | | | | | | | | | | | | | Rather than just use d.getVar(X), use the more explict d.getVar(X, False) since at some point in the future, having the default of expansion would be nice. This is the first step towards that. This patch was mostly made using the command: sed -e 's:\(getVar([^,()]*\)\s*):\1, False):g' -i `grep -ril getVar *` (From OE-Core rev: ab7c1d239b122c8e549e8112c88fd46c9e2b061b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Support for VDIJuro Bystricky2015-06-111-3/+3
| | | | | | | | | | | | | Added support for VirtualBox VDI format. The support was implemented by merging with the already existing VMDK support for VM player by creating a new class image-vm.bbclass. This class replaces the previous VMDK only image-vmdk.class. (From OE-Core rev: 0a3e8eb9f592c3f1edd2c7521855f7406541651a) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: Add a method for creating a companion debug filesystemMark Hatle2015-05-241-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | The companion debug filesystem contains only the package database and the complementary *-dbg packages for the main filesystem component. This is useful in a production environment to produce a companion filesystem capable of remote system debugging, without requiring corresponding debug symbols or source code on the device. (From OE-Core rev: 1a6ed48c65f922c66b005aa966d7ee4878ee95e3) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> If dbg pkgs have already been installed to the rootfs image, the installation to companion debug filesystem will fail, because both of image creation make use of the same pm database. In this situation, try to copy installed dbg files from rootfs image to companion debug filesystem. Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Acked-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>