diff mbox

[oe,meta-oe] android-tools: fix do_install

Message ID 1479464791-28098-1-git-send-email-koen.kooi@linaro.org
State New
Headers show

Commit Message

Koen Kooi Nov. 18, 2016, 10:26 a.m. UTC
The previous patch introduced 2 bugs that made packaging fail:

1) Always failing grep
2) Conditionally install systemd files

Systemd.bbclass doesn't handle conditional installation and will throw an error.

Tested with -native and regular cross builds.

Signed-off-by: Koen Kooi <koen.kooi@linaro.org>

---
 .../android-tools/android-tools_5.1.1.r37.bb          | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

-- 
2.4.11

-- 
_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Comments

André Draszik Nov. 18, 2016, 10:59 a.m. UTC | #1
On Fri, 2016-11-18 at 11:26 +0100, Koen Kooi wrote:
> The previous patch introduced 2 bugs that made packaging fail:
> 
> 1) Always failing grep
> 2) Conditionally install systemd files
> 
> Systemd.bbclass doesn't handle conditional installation and will throw an
> error.
> 
> Tested with -native and regular cross builds.
> 
> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
> ---
>  .../android-tools/android-tools_5.1.1.r37.bb          | 19 ++++++++++++
> -------
>  1 file changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/meta-oe/recipes-devtools/android-tools/android-
> tools_5.1.1.r37.bb b/meta-oe/recipes-devtools/android-tools/android-
> tools_5.1.1.r37.bb
> index 1769b6a..5041465 100644
> --- a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
> +++ b/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
> @@ -108,7 +108,10 @@ do_compile() {
>  }
>  
>  do_install() {
> -    if [ grep -q "ext4_utils" "${TOOLS}" ] ; then
> +    export TOOLSFILE="${WORKDIR}/tools.txt"
> +    echo ${TOOLS} > ${TOOLSFILE}
> +
> +    if grep -q "ext4_utils" ${TOOLSFILE} ; then

Why not simply echo instead of doing file i/o:
if echo ${TOOLS} | grep ....


>          install -D -p -m0755 ${S}/system/core/libsparse/simg_dump.py
> ${D}${bindir}/simg_dump
>          install -D -p -m0755 ${S}/system/extras/ext4_utils/mkuserimg.sh
> ${D}${bindir}/mkuserimg

BTW, if ext4_utils is not in TOOLS, then none of the following TOOLS will
install correctly, because ${D}${bindir} is created only in this block here.

>  
> @@ -120,21 +123,23 @@ do_install() {
>          install -m0755 ${B}/ext4_utils/simg2simg ${D}${bindir}
>      fi
>  
> -    if [ grep -q "adb " "${TOOLS}" ] ; then
> +    if grep -q "adb " ${TOOLSFILE} ; then
>          install -m0755 ${B}/adb/adb ${D}${bindir}i
                                                    ^

This doesn't look right.


>      fi
>  
> -    if [ grep -q "adbd" "${TOOLS}" ] ; then
> +    if grep -q "adbd" ${TOOLSFILE} ; then
>          install -m0755 ${B}/adbd/adbd ${D}${bindir}
> -        install -D -p -m0644 ${WORKDIR}/android-tools-adbd.service \
> -          ${D}${systemd_unitdir}/system/android-tools-adbd.service
>      fi
>  
> -    if [ grep -q "fastboot" "${TOOLS}" ] ; then
> +    # Outside the if statement to avoid errors during do_package
> +    install -D -p -m0644 ${WORKDIR}/android-tools-adbd.service \
> +      ${D}${systemd_unitdir}/system/android-tools-adbd.service
> +
> +    if grep -q "fastboot" ${TOOLSFILE} ; then
>          install -m0755 ${B}/fastboot/fastboot ${D}${bindir}
>      fi
>  
> -    if [ grep -q "mkbootimg" "${TOOLS}" ] ; then
> +    if grep -q "mkbootimg" ${TOOLSFILE} ; then
>           install -m0755 ${B}/mkbootimg/mkbootimg ${D}${bindir}
>      fi
>  }
> -- 
> 2.4.11
>
Nicolas Dechesne Nov. 18, 2016, 11:08 a.m. UTC | #2
On Fri, Nov 18, 2016 at 11:26 AM, Koen Kooi <koen.kooi@linaro.org> wrote:
> -    if [ grep -q "ext4_utils" "${TOOLS}" ] ; then

> +    export TOOLSFILE="${WORKDIR}/tools.txt"

> +    echo ${TOOLS} > ${TOOLSFILE}

> +

> +    if grep -q "ext4_utils" ${TOOLSFILE} ; then



how about this instead?

echo  "${TOOLS}" | grep -q "ext4_utils"

it looks simpler and more readable to me.
-- 
_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
diff mbox

Patch

diff --git a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
index 1769b6a..5041465 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
+++ b/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
@@ -108,7 +108,10 @@  do_compile() {
 }
 
 do_install() {
-    if [ grep -q "ext4_utils" "${TOOLS}" ] ; then
+    export TOOLSFILE="${WORKDIR}/tools.txt"
+    echo ${TOOLS} > ${TOOLSFILE}
+
+    if grep -q "ext4_utils" ${TOOLSFILE} ; then
         install -D -p -m0755 ${S}/system/core/libsparse/simg_dump.py ${D}${bindir}/simg_dump
         install -D -p -m0755 ${S}/system/extras/ext4_utils/mkuserimg.sh ${D}${bindir}/mkuserimg
 
@@ -120,21 +123,23 @@  do_install() {
         install -m0755 ${B}/ext4_utils/simg2simg ${D}${bindir}
     fi
 
-    if [ grep -q "adb " "${TOOLS}" ] ; then
+    if grep -q "adb " ${TOOLSFILE} ; then
         install -m0755 ${B}/adb/adb ${D}${bindir}i
     fi
 
-    if [ grep -q "adbd" "${TOOLS}" ] ; then
+    if grep -q "adbd" ${TOOLSFILE} ; then
         install -m0755 ${B}/adbd/adbd ${D}${bindir}
-        install -D -p -m0644 ${WORKDIR}/android-tools-adbd.service \
-          ${D}${systemd_unitdir}/system/android-tools-adbd.service
     fi
 
-    if [ grep -q "fastboot" "${TOOLS}" ] ; then
+    # Outside the if statement to avoid errors during do_package
+    install -D -p -m0644 ${WORKDIR}/android-tools-adbd.service \
+      ${D}${systemd_unitdir}/system/android-tools-adbd.service
+
+    if grep -q "fastboot" ${TOOLSFILE} ; then
         install -m0755 ${B}/fastboot/fastboot ${D}${bindir}
     fi
 
-    if [ grep -q "mkbootimg" "${TOOLS}" ] ; then
+    if grep -q "mkbootimg" ${TOOLSFILE} ; then
          install -m0755 ${B}/mkbootimg/mkbootimg ${D}${bindir}
     fi
 }