From e2232e6813d503db33bb2fc29b57fbb7a0f7bca0 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Mon, 3 Apr 2017 11:58:29 -0700 Subject: dev-manual, ref-manual: Added PACKAGE_WRITE_DEPS and concept support Fixes [YOCTO #11274] When a post-installation or pre-installation script uses tools that have dependencies, you need to specify the tools using the new PACKAGE_WRITE_DEPS variable. I added this information at the end of the "Post Installtion Scripts" section in the dev-manual. I also added a new variable entry for the PACKAGE_WRITE_DEPS variable in the glossary. (From yocto-docs rev: 4d130b63cba5ebabd4af52b62421d387a4b54353) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- .../dev-manual/dev-manual-common-tasks.xml | 24 ++++++++++++++++----- documentation/ref-manual/ref-variables.xml | 25 ++++++++++++++++++++++ 2 files changed, 44 insertions(+), 5 deletions(-) (limited to 'documentation') diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index bdf9cfc241..f9b2910578 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml @@ -3207,21 +3207,21 @@ a package on the target or during image creation when a package is included in an image. To add a post-installation script to a package, add a - pkg_postinst_PACKAGENAME() function to + pkg_postinst_PACKAGENAME() function to the recipe file (.bb) and replace - PACKAGENAME with the name of the package + PACKAGENAME with the name of the package you want to attach to the postinst script. To apply the post-installation script to the main package for the recipe, which is usually what is required, specify ${PN} - in place of PACKAGENAME. + in place of PACKAGENAME. A post-installation function has the following structure: - pkg_postinst_PACKAGENAME() { + pkg_postinst_PACKAGENAME() { # Commands to carry out } @@ -3250,7 +3250,7 @@ To delay script execution until boot time, use the following structure in the post-installation script: - pkg_postinst_PACKAGENAME() { + pkg_postinst_PACKAGENAME() { if [ x"$D" = "x" ]; then # Actions to carry out on the device go here else @@ -3268,6 +3268,20 @@ when executed on the first boot. + + If you have recipes that use pkg_postinst + scripts and they require the use of non-standard native + tools that have dependencies during rootfs construction, you + need to use the + PACKAGE_WRITE_DEPS + variable in your recipe to list these tools. + If you do not use this variable, the tools might be missing and + execution of the post-installation script is deferred until + first boot. + Deferring the script to first boot is undesirable and for + read-only rootfs impossible. + + Equivalent support for pre-install, pre-uninstall, and post-uninstall scripts exist by way of diff --git a/documentation/ref-manual/ref-variables.xml b/documentation/ref-manual/ref-variables.xml index 758de36e70..ae2abdeddc 100644 --- a/documentation/ref-manual/ref-variables.xml +++ b/documentation/ref-manual/ref-variables.xml @@ -9318,6 +9318,31 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3" + PACKAGE_WRITE_DEPS + + PACKAGE_WRITE_DEPS[doc] = "Specifies post-installation and pre-installation script dependencies on native/cross tools." + + + + + Specifies a list of dependencies for post-installation and + pre-installation scripts on native/cross tools. + If your post-installation or pre-installation script can + execute at rootfs creation time rather than on the + target but depends on a native tool in order to execute, + you need to list the tools in + PACKAGE_WRITE_DEPENDS. + + + + For information on running post-installation scripts, see + the + "Post-Installation Scripts" + section in the Yocto Project Development Manual. + + + + PACKAGECONFIG PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis." -- cgit v1.2.3-54-g00ecf