rootfs_rpm: Escape the backtick to ensure the ls runs on the target
PATCH 1/1 rootfs_rpm: Escape the backtick to ensure the ls runs on the target
This change ensures that the ls /etc/rpm-postinsts runs in the target at first boot time, rather than at the creation time of the script on the host.
This was causing the following error in the rootfs log:
+ install -d /srv/ssd/sgw/machines/fri2/tmp/work/fri2-poky-linux/core-image-minimal/1.0-r0/rootfs//etc/rcS.d
+ i=
+ ls /etc/rpm-postinsts/
ls: cannot access /etc/rpm-postinsts/: No such file or directory
--- meta/classes/rootfs_rpm.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/rootfs_rpm.bbclass +1 -1
@@ -108,7 +108,7 @@ fakeroot rootfs_rpm_do_rootfs () { i=\$i cat > ${IMAGE_ROOTFS}${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts << EOF #!/bin/sh -for i in `ls /etc/rpm-postinsts/`; do +for i in \`ls /etc/rpm-postinsts/\`; do i=/etc/rpm-postinsts/$i echo "Running postinst $i..." if [ -f $i ] && $i; then
Signature · 1 line
1.8.0.2
meta/classes/rootfs_rpm.bbclass fakeroot rootfs_rpm_do_rootfs () { · line 113
Quoted 8 lines · Saul Wold
This change ensures that the ls
/etc/rpm-postinstsruns in the target at first boot time, rather than at the creation time of the script on the host.
...meta/classes/rootfs_rpm.bbclass +1
-1-for i in `ls /etc/rpm-postinsts/`; do +for i in \`ls /etc/rpm-postinsts/\`; do i=/etc/rpm-postinsts/$i echo "Running postinst $i..."
are you really sure, this is enough? $i gets probably expanded too. A better way than to escape all and everything is to quote the EOF marker.
E.g. compare
i=abc
cat << "EOF"
echo $i
EOF
cat << EOF
echo $i
EOF
Enrico
Quoted 14 lines · Enrico Scholz
meta/classes/rootfs_rpm.bbclass fakeroot rootfs_rpm_do_rootfs () { · line 113
Quoted 8 lines · Saul Wold
This change ensures that the ls
/etc/rpm-postinstsruns in the target at first boot time, rather than at the creation time of the script on the host.
...meta/classes/rootfs_rpm.bbclass +1
-1-for i in `ls /etc/rpm-postinsts/`; do +for i in \`ls /etc/rpm-postinsts/\`; do i=/etc/rpm-postinsts/$i echo "Running postinst $i..."are you really sure, this is enough? $i gets probably expanded too. A better way than to escape all and everything is to quote the EOF marker.
Yes, I verified the out put in the S98run-postinsts script that is on disk and it's correct.
There a line above that sets i=\$i so the expansion occurs back to $i!
Sau!
Quoted 21 lines
E.g. compare
i=abc
cat << "EOF"
echo $i
EOFcat << EOF
echo $i
EOFEnrico
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core