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 +++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'documentation/dev-manual') 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 -- cgit v1.2.3-54-g00ecf