Patchwork [meta-fsl-arm,8/8] gpu-viv-bin-mx6q: Respect X11, DirectFB, FrameBuffer distro features

login
register
mail settings
Submitter Otavio Salvador
Date March 23, 2013, 1:39 p.m.
Message ID <1364045994-19617-9-git-send-email-otavio@ossystems.com.br>
Download mbox | patch
Permalink /patch/46791/
State Accepted
Delegated to: Otavio Salvador
Headers show

Comments

Otavio Salvador - March 23, 2013, 1:39 p.m.
As we cannot allow concurrent build of applications targetting
different backends we use the distro features to package the need
libraries for the backend. Currently it does:

 X11 support, if 'x11' feature is enabled
 DirectFB support, if 'x11' is not enabled AND 'directfb is enabled
 FrameBuffer, fallback

As 1.1.0 version of the Vivante libraries are build against DirectFB
1.4 we cannot support it for now, so we explicitly disable it for this
version so it is easy to add it back when new version, supporting
newer DirectFB, is released.

Change-Id: Ia8973b8107155b8a5f7fadc50d2290c1d5f28363
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc          | 25 ++++++++++++++--------
 .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb     |  4 ++++
 2 files changed, 20 insertions(+), 9 deletions(-)
John Weber - March 31, 2013, 5:38 p.m.
Otavio,

Should this change cause an error when building fsl-image-test?

I'm getting the following error:

| Computing transaction...error: Can't install 
gpu-viv-bin-mx6q-1:1.1.0-r5.0@wandboard_dual: no package provides libgal-fb-mx6 
 >= 12.09.01
|
| Saving cache...
|
| ERROR: Function failed: do_rootfs (see 
/mnt/YOCTOFSL/fsl-community-bsp/build/tmp/work/wandboard_dual-poky-linux-gnueabi/fsl-image-test/1.0-r0/temp/log.do_rootfs.12739 
for further information)
ERROR: Task 7 
(/mnt/YOCTOFSL/fsl-community-bsp/sources/meta-fsl-demos/recipes-fsl/images/fsl-image-test.bb, 
do_rootfs) failed with exit code '1'

Thanks,
John

On 3/23/13 8:39 AM, Otavio Salvador wrote:
> As we cannot allow concurrent build of applications targetting
> different backends we use the distro features to package the need
> libraries for the backend. Currently it does:
>
>   X11 support, if 'x11' feature is enabled
>   DirectFB support, if 'x11' is not enabled AND 'directfb is enabled
>   FrameBuffer, fallback
>
> As 1.1.0 version of the Vivante libraries are build against DirectFB
> 1.4 we cannot support it for now, so we explicitly disable it for this
> version so it is easy to add it back when new version, supporting
> newer DirectFB, is released.
>
> Change-Id: Ia8973b8107155b8a5f7fadc50d2290c1d5f28363
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ---
>   .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc          | 25 ++++++++++++++--------
>   .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb     |  4 ++++
>   2 files changed, 20 insertions(+), 9 deletions(-)
>
> diff --git a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
> index ce23f2e..e8e491e 100644
> --- a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
> +++ b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
> @@ -41,8 +41,8 @@ PACKAGES =+ "libclc-mx6 libclc-mx6-dev libclc-mx6-dbg \
>   	${@base_contains("DISTRO_FEATURES", "directfb", "${GPU_DFBLIBS}", "", d)} \
>   	"
>
> -KEEP_XLIBS = "${@base_contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
> -KEEP_DFBLIBS = "${@base_contains("DISTRO_FEATURES", "directfb", "yes", "no", d)}"
> +USE_X11 = "${@base_contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
> +USE_DFB = "${@base_contains("DISTRO_FEATURES", "directfb", "yes", "no", d)}"
>
>   # Inhibit warnings about files being stripped.
>   INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
> @@ -69,19 +69,26 @@ do_install () {
>       rm -r ${D}${includedir}/GL
>       cp -axr ${S}/opt ${D}
>
> -    if [ "${KEEP_XLIBS}" = "no" ]; then
> -        rm ${D}${libdir}/*-x11.so
> -    fi
> -    if [ "${KEEP_DFBLIBS}" = "no" ]; then
> -        rm ${D}${libdir}/*-dfb.so
> -    fi
> -
>       # FIXME: Drop default library as we need to explicit link to one
>       #        of supported backends
>       rm ${D}${libdir}/libEGL.so \
>          ${D}${libdir}/libGAL.so \
>          ${D}${libdir}/libVIVANTE.so
>
> +    if [ "${USE_X11}" = "yes" ]; then
> +        find ${D}${libdir} -name '*-dfb.so' -exec rm '{}' ';'
> +        find ${D}${libdir} -name '*-fb.so' -exec rm '{}' ';'
> +    else
> +        if [ "${USE_DFB}" = "yes" ]; then
> +            find ${D}${libdir} -name '*-x11.so' -exec rm '{}' ';'
> +            find ${D}${libdir} -name '*-fb.so' -exec rm '{}' ';'
> +        else
> +            # Regular framebuffer
> +            find ${D}${libdir} -name '*-x11.so' -exec rm '{}' ';'
> +            find ${D}${libdir} -name '*-dfb.so' -exec rm '{}' ';'
> +        fi
> +    fi
> +
>       find ${D}${libdir} -type f -exec chmod 644 {} \;
>       find ${D}${includedir} -type f -exec chmod 644 {} \;
>   }
> diff --git a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb
> index 3de9555..994c11c 100644
> --- a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb
> +++ b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb
> @@ -8,3 +8,7 @@ include gpu-viv-bin-mx6q.inc
>
>   SRC_URI[md5sum] = "60f4ba65f557fc63fde6dacfeef205a8"
>   SRC_URI[sha256sum] = "4238b72a6dad2d075d159bb1e86fb68bbed7c27894ce82c546a8e7c58ae5d683"
> +
> +# FIXME: 1.1.0 BSP release uses DirectFB 1.4 and Yocto has 1.6 so
> +# disable it for now
> +USE_DFB = "no"
>
John Weber - March 31, 2013, 8:18 p.m.
I'm sure this isn't the right solution, but to narrow down the error, I've 
confirmed that changing the following line in 
meta-fsl-arm/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb that 
the build of fsl-image-test completes.

# FIXME: 1.1.0 BSP release uses DirectFB 1.4 and Yocto has 1.6 so
# disable it for now
- USE_DFB = "no"
+ USE_DFB = "yes"


On 3/31/13 12:38 PM, John Weber wrote:
> Otavio,
>
> Should this change cause an error when building fsl-image-test?
>
> I'm getting the following error:
>
> | Computing transaction...error: Can't install
> gpu-viv-bin-mx6q-1:1.1.0-r5.0@wandboard_dual: no package provides libgal-fb-mx6
>  >= 12.09.01
> |
> | Saving cache...
> |
> | ERROR: Function failed: do_rootfs (see
> /mnt/YOCTOFSL/fsl-community-bsp/build/tmp/work/wandboard_dual-poky-linux-gnueabi/fsl-image-test/1.0-r0/temp/log.do_rootfs.12739
> for further information)
> ERROR: Task 7
> (/mnt/YOCTOFSL/fsl-community-bsp/sources/meta-fsl-demos/recipes-fsl/images/fsl-image-test.bb,
> do_rootfs) failed with exit code '1'
>
> Thanks,
> John
>
> On 3/23/13 8:39 AM, Otavio Salvador wrote:
>> As we cannot allow concurrent build of applications targetting
>> different backends we use the distro features to package the need
>> libraries for the backend. Currently it does:
>>
>>   X11 support, if 'x11' feature is enabled
>>   DirectFB support, if 'x11' is not enabled AND 'directfb is enabled
>>   FrameBuffer, fallback
>>
>> As 1.1.0 version of the Vivante libraries are build against DirectFB
>> 1.4 we cannot support it for now, so we explicitly disable it for this
>> version so it is easy to add it back when new version, supporting
>> newer DirectFB, is released.
>>
>> Change-Id: Ia8973b8107155b8a5f7fadc50d2290c1d5f28363
>> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
>> ---
>>   .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc          | 25 ++++++++++++++--------
>>   .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb     |  4 ++++
>>   2 files changed, 20 insertions(+), 9 deletions(-)
>>
>> diff --git a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
>> b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
>> index ce23f2e..e8e491e 100644
>> --- a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
>> +++ b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
>> @@ -41,8 +41,8 @@ PACKAGES =+ "libclc-mx6 libclc-mx6-dev libclc-mx6-dbg \
>>       ${@base_contains("DISTRO_FEATURES", "directfb", "${GPU_DFBLIBS}", "", d)} \
>>       "
>>
>> -KEEP_XLIBS = "${@base_contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
>> -KEEP_DFBLIBS = "${@base_contains("DISTRO_FEATURES", "directfb", "yes", "no",
>> d)}"
>> +USE_X11 = "${@base_contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
>> +USE_DFB = "${@base_contains("DISTRO_FEATURES", "directfb", "yes", "no", d)}"
>>
>>   # Inhibit warnings about files being stripped.
>>   INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
>> @@ -69,19 +69,26 @@ do_install () {
>>       rm -r ${D}${includedir}/GL
>>       cp -axr ${S}/opt ${D}
>>
>> -    if [ "${KEEP_XLIBS}" = "no" ]; then
>> -        rm ${D}${libdir}/*-x11.so
>> -    fi
>> -    if [ "${KEEP_DFBLIBS}" = "no" ]; then
>> -        rm ${D}${libdir}/*-dfb.so
>> -    fi
>> -
>>       # FIXME: Drop default library as we need to explicit link to one
>>       #        of supported backends
>>       rm ${D}${libdir}/libEGL.so \
>>          ${D}${libdir}/libGAL.so \
>>          ${D}${libdir}/libVIVANTE.so
>>
>> +    if [ "${USE_X11}" = "yes" ]; then
>> +        find ${D}${libdir} -name '*-dfb.so' -exec rm '{}' ';'
>> +        find ${D}${libdir} -name '*-fb.so' -exec rm '{}' ';'
>> +    else
>> +        if [ "${USE_DFB}" = "yes" ]; then
>> +            find ${D}${libdir} -name '*-x11.so' -exec rm '{}' ';'
>> +            find ${D}${libdir} -name '*-fb.so' -exec rm '{}' ';'
>> +        else
>> +            # Regular framebuffer
>> +            find ${D}${libdir} -name '*-x11.so' -exec rm '{}' ';'
>> +            find ${D}${libdir} -name '*-dfb.so' -exec rm '{}' ';'
>> +        fi
>> +    fi
>> +
>>       find ${D}${libdir} -type f -exec chmod 644 {} \;
>>       find ${D}${includedir} -type f -exec chmod 644 {} \;
>>   }
>> diff --git a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb
>> b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb
>> index 3de9555..994c11c 100644
>> --- a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb
>> +++ b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb
>> @@ -8,3 +8,7 @@ include gpu-viv-bin-mx6q.inc
>>
>>   SRC_URI[md5sum] = "60f4ba65f557fc63fde6dacfeef205a8"
>>   SRC_URI[sha256sum] =
>> "4238b72a6dad2d075d159bb1e86fb68bbed7c27894ce82c546a8e7c58ae5d683"
>> +
>> +# FIXME: 1.1.0 BSP release uses DirectFB 1.4 and Yocto has 1.6 so
>> +# disable it for now
>> +USE_DFB = "no"
>>

Patch

diff --git a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
index ce23f2e..e8e491e 100644
--- a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
+++ b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
@@ -41,8 +41,8 @@  PACKAGES =+ "libclc-mx6 libclc-mx6-dev libclc-mx6-dbg \
 	${@base_contains("DISTRO_FEATURES", "directfb", "${GPU_DFBLIBS}", "", d)} \
 	"
 
-KEEP_XLIBS = "${@base_contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
-KEEP_DFBLIBS = "${@base_contains("DISTRO_FEATURES", "directfb", "yes", "no", d)}"
+USE_X11 = "${@base_contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
+USE_DFB = "${@base_contains("DISTRO_FEATURES", "directfb", "yes", "no", d)}"
 
 # Inhibit warnings about files being stripped.
 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
@@ -69,19 +69,26 @@  do_install () {
     rm -r ${D}${includedir}/GL
     cp -axr ${S}/opt ${D}
 
-    if [ "${KEEP_XLIBS}" = "no" ]; then
-        rm ${D}${libdir}/*-x11.so
-    fi
-    if [ "${KEEP_DFBLIBS}" = "no" ]; then
-        rm ${D}${libdir}/*-dfb.so
-    fi
-
     # FIXME: Drop default library as we need to explicit link to one
     #        of supported backends
     rm ${D}${libdir}/libEGL.so \
        ${D}${libdir}/libGAL.so \
        ${D}${libdir}/libVIVANTE.so
 
+    if [ "${USE_X11}" = "yes" ]; then
+        find ${D}${libdir} -name '*-dfb.so' -exec rm '{}' ';'
+        find ${D}${libdir} -name '*-fb.so' -exec rm '{}' ';'
+    else
+        if [ "${USE_DFB}" = "yes" ]; then
+            find ${D}${libdir} -name '*-x11.so' -exec rm '{}' ';'
+            find ${D}${libdir} -name '*-fb.so' -exec rm '{}' ';'
+        else
+            # Regular framebuffer
+            find ${D}${libdir} -name '*-x11.so' -exec rm '{}' ';'
+            find ${D}${libdir} -name '*-dfb.so' -exec rm '{}' ';'
+        fi
+    fi
+
     find ${D}${libdir} -type f -exec chmod 644 {} \;
     find ${D}${includedir} -type f -exec chmod 644 {} \;
 }
diff --git a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb
index 3de9555..994c11c 100644
--- a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb
+++ b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_1.1.0.bb
@@ -8,3 +8,7 @@  include gpu-viv-bin-mx6q.inc
 
 SRC_URI[md5sum] = "60f4ba65f557fc63fde6dacfeef205a8"
 SRC_URI[sha256sum] = "4238b72a6dad2d075d159bb1e86fb68bbed7c27894ce82c546a8e7c58ae5d683"
+
+# FIXME: 1.1.0 BSP release uses DirectFB 1.4 and Yocto has 1.6 so
+# disable it for now
+USE_DFB = "no"