run-postinsts runs a given set of scripts during the first boot of the device, when one of these scripts prints something to stdout (isnt daemonized correctly), since stdout is not available at that time, the script execution immediately returns with an error (exit_group()), this error causes the script to terminate all threads within the process, causing undesired behavior since the script might still had to execute some other code.
Replace eval built-in with $(), since $() executes in a different shell, even if one of the scripts exits, all threads of that process will only be within that session, this ensures other scripts meant to be run are still run afterwards. This was only required on the line that actually executes the scripts: "eval sh -c $i $append_log", other replacements were put for consistency, and generally, it is recommended to use $() instead of eval anyway. [YOCTO #13266] Signed-off-by: Alejandro Enedino Hernandez Samaniego <[email protected]> --- .../recipes-devtools/run-postinsts/run-postinsts/run-postinsts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts index 95eff04..419796f 100755 --- a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts +++ b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts @@ -65,13 +65,13 @@ exec_postinst_scriptlets() { for i in `ls $pi_dir`; do i=$pi_dir/$i echo "Running postinst $i..." - [ "$POSTINST_LOGGING" = "1" ] && eval echo "Running postinst $i..." $append_log + [ "$POSTINST_LOGGING" = "1" ] && $(echo "Running postinst $i..." $append_log) if [ -x $i ]; then - eval sh -c $i $append_log + $(sh -c $i $append_log) rm $i else echo "ERROR: postinst $i failed." - [ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i failed." $append_log + [ "$POSTINST_LOGGING" = "1" ] && $(echo "ERROR: postinst $i failed." $append_log) remove_pi_dir=0 fi done @@ -81,11 +81,11 @@ remove_pi_dir=1 if $pm_installed; then case $pm in "ipk") - eval opkg configure $append_log + $(opkg configure $append_log) ;; "deb") - eval dpkg --configure -a $append_log + $(dpkg --configure -a $append_log) ;; esac else -- 2.7.4 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
