summaryrefslogtreecommitdiff
path: root/meta/classes/image.bbclass
AgeCommit message (Collapse)AuthorFiles
2013-03-18image.bbclass: Drop legacy export of IMAGE_BASENAMERichard Purdie1
We used to export this in the days an external script handled the image generation. This is no longer the case and hence we no longer need this export. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-07image.bbclass: add a hook funtion to support readonly rootfsChen Qi1
read_only_rootfs_hook: this funtion is invoked only if 'read-only-rootfs' is in IMAGE_FEATURES. It tweaks some basic files and makes populate- volatile.sh script run at rootfs time. For now, it has real effect only if the init system is sysvinit. [YOCTO #3406] Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-03-05populate_sdk_base/image: Fix races for variable mappingsRichard Purdie1
When using the -c populate_sdk option, images are not generated quite as they should be under certain circumstances. For example the dropbear feature may not get replaced with openssh, leading to both being installed with an appropriate rootfs failure. This patch moves the remapping logic to later points in the code, ensuring there is no conflict. The result is slightly simpler too as an added bonus. [YOCTO #3749] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-01module.bbclass: Create a new depmodwrapper to assist cross-installsMark Hatle1
Previously the build path to STAGING_KERNEL_DIR was being embedded into the package post install scripts. We avoid this behavior by generating a special depmodwrapper script. This script contains that hard-coded path, ensuring that re-use of the sstate-cache (and/or packages) will always run through the wrapper generated by the current build with a checksum that includes STAGING_KERNEL_DIR. [ YOCTO #3962 ] Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12image.bbclass: add fall-back functionality when running interceptsLaurentiu Palcu1
If an intercept script fails, it would be helpful to fall-back to running the postinstall on target's first boot. In order to achieve that, the postinstalls that install a host intercept hook will have to return 1, so that the postinstall is marked as unpacked only. If the intercept hook fails, then we're ok, the postinstalls will be run on target anyway. If it succeeds, then mark the packages as installed. This logic was chosen mainly because of rpm backend which saves the failed postinstalls in /etc/rpm-postinsts. Hence, in order to mark the packages as installed, all we have to do is delete the scriptlets from there. Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-07image.bbclass: Add MLPREFIX to DEPENDSRichard Purdie1
Add MLPREFIX to DEPENDS to ensure the correct qemuwrapper is dependended upon. Its searched for in PATH so we need to do this to ensure the correct version is present. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06image.bbclass: add a proper error message if hook script failsLaurentiu Palcu1
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-01-25Split do_packagedata task from do_packageRichard Purdie1
Currently, do_rootfs has a dependency on all the do_package output being present due to its usage of the pkgdata directories. This means that if you run: bitbake xxxx-image -c rootfs you end up having to fetch and unpack all the do_package data which is usually large and inefficient. It also means rm_work has to leave all the do_package data lying around so rootfs works. This patch splits the actual creation of the pkgdata directory off into a separate task, "packagedata" which happens immediately after do_package. We can then remap the dependencies so this task is depended upon, not do_package. Sstate can then be programmed not to require do_package at the appropriate times. Whilst this patch doesn't do so, it opens the possibility of rm_work wiping out the do_package output from WORKDIR as long as it also removed the do_package stamp (both normal and setscene variants) and allowing more space savings with rm_work which has been regularly requested. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-18classes/image: improve debug-tweaks ssh server configurationPaul Eggleton1
Create a single postprocessing function that enables no-password logins for both openssh and dropbear when debug-tweaks is in IMAGE_FEATURES, changing its behaviour slightly: * Run it regardless of whether ssh-server-* are in IMAGE_FEATURES so that it still takes effect if these are installed by adding dropbear/openssh to IMAGE_INSTALL. * Enable it to be run from image.bbclass rather than core-image.bbclass so that it works for images that are using the former. Second half of the fix for [YOCTO #2578]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-01-07image.bbclass: quote TARGET_VENDOREnrico Scholz1
The buildsystem does not install locale files anymore, when TARGET_VENDOR is empty. This regression was introduced by ff01518c6667e1b6e87df4e5a435a701d0f38fa7 Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-25Add a new distro feature "ptest".Björn Stenberg1
This patch creates a new distro feature "ptest", which creates -ptest packages containing the test suite of the package for running on the target. Test files are installed in /usr/lib/<pkg>/ptest. The patch also includes a change to automake, splitting the "make check" target into separate steps for building and running the tests. Signed-off-by: Björn Stenberg <bjst@enea.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-12-19classes/image: handle multilibs in complementary package lookupPaul Eggleton1
For multilib the vendor string is altered, so we need to iterate over all of the multilib vendors when we do the glob processing for complementary packages. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> In addition, the RPM package arch have been munged by adding the multilib identifier. This identifier needs to be stripped when generating the installed_packages list for the complementary lookup code to work. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-12-07image/populate_sdk: Simplify imagetest inclusion and drop dummy class fileRichard Purdie1
Having to include some dummy class is suboptimal and we no longer need to do this. Also move this check to populate_sdk_base since we then don't need to include it in toolchains specifically. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-06image.bbclass: run postinst scripts once, at rootfs timeLaurentiu Palcu1
This patch will allow the repeating postinst scriptlets to be run only once, on host, at do_rootfs time. This will lower the time for rootfs generation and, also, instead of running some time consuming scriptlets at target's first boot, we will do on the host. Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-11-19image.bbclass: Add missing dependency on do_package dataRichard Purdie1
Since the packaging functions now reference the pkgdata files written out during do_package, we need to reference this dependency explicitly. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-12image.bbclass: Enable the complementary install to be called w/ globbing paramsMark Hatle1
If the image.bbclass is called with arguments, and these arguments are not "populate_sdk", they will be passed in as the expected GLOBS. This enables external components and scripting to use the rootfs_install_complementary code. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-09-10core-image: allow root login when debug-tweaks is enabledSaul Wold1
This allows root to login over ssh with an empty password just like dropbear when the debug-tweaks are enabled, it's important to disable debug-tweaks for a production system as this will leave open a security hole! Thanks to Marc for the settings. Cc: Marc Ferland <marc.ferland@gmail.com> [Yocto #3078] Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-09-03packagegroup-core-console: removePaul Eggleton1
This provides one package group, packagegroup-core-apps-console, which is usually brought in by adding "apps-console-core" to IMAGE_FEATURES. Aside from the naming inconsistencies, this is a group of mostly unrelated packages, none of which are actually "apps". Handling each one: * dbus: should mostly be brought in by package runtime dependencies * avahi-daemon: if you are using packagegroup-base (as all images that inherit from core-image do) this is brought in by having "zeroconf" in DISTRO_FEATURES. * portmap: not very useful by itself; should be brought in by selecting NFS server/client through other means. * psplash (or whatever SPLASH is set to): this has been changed to be an explicit item "splash" in IMAGE_FEATURES. Since this is a fairly fundamental feature, a piece of code has been added to automatically handle this for images still using apps-console-core (and show a warning). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-09-02image.bbclass: Convert runtime_mapping_rename to event handlerRichard Purdie1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-28classes/image: add staticdev-pkgs IMAGE_FEATURES featurePaul Eggleton1
Add a staticdev-pkgs feature that can be added to IMAGE_FEATURES in order to install all staticdev packages. Fixes [YOCTO #2531]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2012-07-28Rework installation of dev, dbg, doc, and locale packagesPaul Eggleton1
Use a similar mechanism that was previously used to install locales at rootfs generation time to install other "complementary" packages (e.g. *-dev packages) - i.e. install all of the explicitly requested packages and their dependencies, then get a list of the packages that were installed, and use that list to install the complementary packages. This has been implemented by using a list of globs which should make it easier to extend in future. The previous locale package installation code assumed that the locale packages did not have any dependencies that were not already installed; now that we are installing non-locale packages this is no longer correct. In practice only the rpm backend actually made use of this assumption, so it needed to be changed to call into the existing package backend code to do the complementary package installation rather than calling rpm directly. This fixes the doc-pkgs IMAGE_FEATURES feature to work correctly, and also ensures that all dev/dbg packages get installed for dev-pkgs/dbg-pkgs respectively even if the dependency chains between those packages was not ensuring that already. The code has also been adapted to work correctly with the new SDK-from-image functionality. To that end, an SDKIMAGE_FEATURES variable has been added to allow specifying what extra image features should go into the SDK (extra, because by virtue of installing all of the packages in the image into the target part of the SDK, we already include all of IMAGE_FEATURES) with a default value of "dev-pkgs dbg-pkgs". Fixes [YOCTO #2614]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2012-07-27image.bbclass: Fix a couple innocuous typoes, should cause no functional changeRobert P. J. Day1
"error_promt" -> "error_prompt" changed in both places "subfolers" -> "subfolders" since it's not referenced anyway Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-07-19Convert tab indentation in python functions into four-spaceRichard Purdie1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03image/core-image: Handle conflicting IMAGE_FEATURES.Lianhao Lu1
IMAGE_FEATURES such as 'ssh-server-dropbear' and 'ssh-server-openssh' can't be both enabled. User can use the following variables to define the relationship of image features: IMAGE_FEATURES_REPLACES_foo = "bar" means including image feature "foo" would replace the image feature "bar". IMAGE_FEATURES_CONFLICTS_foo = "bar" means including both image features "foo" and "bar" would cause an parsing error. Signed-off-by: Lianhao Lu <lianhao.lu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03image.bbclass: Add support to build the SDK in parallel with the imageMark Hatle1
When building an image recipe, you can now build a companion SDK by calling the populate_sdk task: bitbake -c populate_sdk core-image-minimal Note: there are still issues w/ the SDK not working completely with multilibs. A lock is required between rootfs and populate_sdk activities to prevent configuration file clashes and similar package management problems in ipk and deb based systems. (RPM already had a lock for a different reason.) Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2012-07-03Fix manual log file pathsMark Hatle1
When a recent change, the path to log files may be contained within an arbitrary directory. To generate the manual log files in the correct path we should be using the ${BB_LOGFILE}'s path instead of always assuming the logs go into ${WORKDIR}/temp. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2012-07-02EXTRA_IMAGEDEPENDS is used to ensure things like qemu-native are built andRichard Purdie1
these are not strictly dependencies of the do_rootfs task. This patch moves them to the do_build task allowing bitbake a little more flexibility about when things need to get built by. I noticed this when qemu-native failed to build and a rootfs was not generated which is not the intended behaviour. Also update the syntax to use appendVarFlag instead of get/setVarFlag Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-27classes/image: Allow openssh empty passwords login.Lianhao Lu1
Allow empty passwords login so that the default root user can login in through openssh. Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
2012-06-08rootfs_rpm.bbclass: save rpmlib rather than remove itRobert Yang1
The rpmlib was removed when images that add "remove_packaging_data_files" to ROOTFS_POSTPROCESS_COMMAND, which would make the increment rpm image generation doesn't work in the second build, since list_installed_packages would get incorrect value in the second build, move the rpmlib to ${T} rather than remove it, and move it back when INC_RPM_IMAGE_GEN =1. [YOCTO #2440] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25image.bbclass: Ensure ${S} is cleaned at the start of rootfs generationRichard Purdie1
Some image classes such as bootimg save files into ${S} as part of rootfs generation. For correctness we should therefore clean this at the start of image generation to ensure reproducibility. I found this issue when some files I thought should disappear from my rootfs would not disappear. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06image.bbclass,kernel.bbclass: Use kmod-native instead of module-init-tools-crossKhem Raj1
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2012-03-21gzip/pigz-native: Install into a prefix to avoid clashing with system binariesRichard Purdie1
Due to the system providing a copy of gzip, we face some issues when we 'shadow' that copy with our own leading to a varient of race type bugs, and issues for example if a dependency such as libz is missing but the binary is still present. We usually rely on our dependency logic to protect us from this but for gzip, we don't have this protection since its not listed by all its users (and doing so would be impractical). This patch installed pigz and gzip into their own directory which we only add to PATH when we explictly want these binaries in much the same way we do with perl-native. This means dependency logic is correct when we use the binary and everything should work well. The patch adds an explict dependency into image.bbclass since the accelerated speed of compression is most appreciated at rootfs time. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-19classes/image: avoid cp race condition when building multiple imagesPaul Eggleton1
Avoid a race condition when building multiple images by ignoring a failure to copy the README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt to DEPLOY_DIR_IMAGE. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2012-03-13image.bbclass: fix rootfs generation without package management toolsOtavio Salvador1
When building without package management tools the ROOTFS_BOOTSTRAP_INSTALL packages need to be available to provide the bare minimal for rootfs unconfigure postinsts to be on first boot. Those packages where being include in core-image.bbclass' based images however every image needs those available for proper rootfs generation. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2012-03-05meta: Convert getVar/getVarFlag(xxx, 1) -> (xxx, True)Richard Purdie1
Using "1" with getVar is bad coding style and "True" is preferred. This patch is a sed over the meta directory of the form: sed \ -e 's:\(\.getVar([^,()]*, \)1 *):\1True):g' \ -e 's:\(\.getVarFlag([^,()]*, [^,()]*, \)1 *):\1True):g' \ -i `grep -ril getVar *` Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-01image-vmdk: Create image_vmdk class and setup image and image_types to use itSaul Wold1
This creates a new image_vmdk class similar to live. The image_vmdk class needs to have a hddimg created by the image-live class, so it inherits it directly. The changes to image_types is to ensure that both live and vmdk images get the ext3 tools and dependencies. Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-29image.bbclass: do not create image manifest link if IMAGE_LINK_NAME is emptyOtavio Salvador1
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-28image_types: Refactor compression code into a generic compression solutionRichard Purdie1
The current approach of adding each different compressed image type doesn't scale. This patch changes the code so compressed images for each form are automatically available using the form <type>.<compression type> in IMAGE_FSTYPES. This doesn't change any existing externally visible behaviour and the image generation process becomes more efficient as a result too. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-26More quoting fixesMartin Jansa1
* We have various variables which are either not quoted at all or are half quoted. This patch fixes the bad exmaples so everything is consistent. Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-24image.bbclass: Ensure timestamp matches format used in initscripts after ↵Richard Purdie1
recent changes Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-11Incremental rpm image generationRobert Yang1
Incremental rpm image generation, the rootfs would be totally removed and re-created in the second generation by default, but with INC_RPM_IMAGE_GEN = "1", the rpm based rootfs would be kept, and will do update(remove/add some pkgs) on it. NOTE: This is not suggested when you want to create a productive rootfs For example: 1) Add the follow config option to a conf file: INC_RPM_IMAGE_GEN = "1" 2) bitbake core-image-sato modify a package bitbake core-image-sato The rootfs would not be totally removed and re-created in the second generation, it would be simply updated based on the "package". Implatation: 1) Figure out the pkg which need to be removed or re-installed, then use 'rpm -e to remove the old one. Use the rpm's BUILDTIME to determine which pkg has been rebuilt. 2) Figure out the pkg which is newly added, and use 'rpm -U' to install it. This only for the rpm based rootfs, the deb and ipk based rootfs would be done later. [YOCTO #1651] Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2012-01-06image.bbclass: Use ?= to set LINGUAS_INSTALLDongxiao Xu1
Hob may dynamically sets BBLAYERS to bitbake server, thus we need a flexible way to load LINGUAS_INSTALL value. Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-02classes/image: implement generic locale package installationPaul Eggleton1
Let each package-specific rootfs implementation provide basic functions to query the existence of a package and install a list of packages and then have a generic install function so this logic is in one place. Note: unlike previous versions of this code in OE-Core this uses the IMAGE_LINGUAS variable and not IMAGE_LOCALES - note that IMAGE_LINGUAS was what was used in OE-Classic and it is already used in OE-Core in order to install locale-base-*. This will mean that if IMAGE_LINGUAS is left at the default you will now get more packages installed. If you don't want these language support packages then you should set IMAGE_LINGUAS explicitly. This restores locale installation to the same state as OE-Classic, only we now support all the packaging backends. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2011-12-08bitbake.conf/image.bbclass: Ensure images use the correct passwd/group filesRichard Purdie1
We need pseudo to use the rootfs passwd/group files belonging to the rootfs when building images. This patch ensures that we use the rootfs files instead of those in the sysroot which can lead to incorrect file ownership issues. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-10Convert to use direct access to the data store (instead of bb.data.*Var*())Richard Purdie1
This is the result of running the following over the metadata: sed \ -e 's:bb.data.\(setVar([^,()]*,[^,()]*\), *\([^ )]*\) *):\2.\1):g' \ -e 's:bb.data.\(setVarFlag([^,()]*,[^,()]*,[^,()]*\), *\([^) ]*\) *):\2.\1):g' \ -e 's:bb.data.\(getVar([^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \ -e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \ -e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^() ]*\) *):\2.\1):g' \ -e 's:bb.data.\(getVar([^,()]*\), *\([^) ]*\) *):\2.\1):g' \ -i `grep -ril bb.data *` Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-08Add new IMAGE_CLASSES variable for classes for image generationMatthew McClintock1
Allows us to import classes only for images and not to the global namespace Signed-off-by: Matthew McClintock <msm@freescale.com>
2011-11-08multilib: Drop MULTILIB_IMAGE_INSTALLDongxiao Xu1
There should just be a single IMAGE_INSTALL variable. If the package backends need this split into different multilib components they should be responsible for doing this, not the user. This commit removes the MULTILIB_IMAGE_INSTALL variable. [YOCTO #1564] Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-10-06image.bbclass: No need to run most tasks except do_rootfsRichard Purdie1
Running fetch/unpack/patch/compile/install etc. is pointless since the only image task that does anything is the rootfs task. Hence mark the useless tasks as noexec so we don't bother running them. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-10-04image.bbclass: improve comments regarding exported functionsOtavio Salvador1
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2011-09-16image/package.bbclass: Revise multilib support for DEBIAN_NAME.Lianhao Lu1
[YOCTO #1486] 1. image.bbclass: In multilib_sanity_check, duplicated files except those matching to MULTILIBRE_ALLOW_REP are allowed if they're equal. 2. pacakge.bbclass: Allow DEBIAN_NOAUTONAMES variable to be automatically mapped in multilib case. Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>