package/mesa3d: unconditionally needs expat
authorFabio Estevam <festevam@gmail.com>
Sat, 16 Jan 2021 16:09:48 +0000 (13:09 -0300)
committerYann E. MORIN <yann.morin.1998@free.fr>
Sat, 16 Jan 2021 17:17:57 +0000 (18:17 +0100)
mesa3d should only need expat for a limited set of drivers. However,
the condition in their meson.build is borked:

    required: not with_platform_android or with_any_broadcom or with_any_intel

So, as soon as the platform is not android, expat is required. If it
is not already present in the configuraiotn, then meson will try to be
helpful and will try to download its own copy under the table:

    Run-time dependency expat found: NO (tried pkgconfig and cmake)
    Looking for a fallback subproject for the dependency expat
    Downloading expat source from https://github.com/libexpat/libexpat/releases/download/R_2_2_5/expat-2.2.5.tar.bz2
    <urlopen error unknown url type: https>
    A fallback URL could be specified using source_fallback_url key in the wrap file

    ../O/build/mesa3d-20.3.3/meson.build:1366:2: ERROR: could not get https://github.com/libexpat/libexpat/releases/download/R_2_2_5/expat-2.2.5.tar.bz2 is the internet available?

Ideally, we would like to fix the condition in the meson.build, to drop
the spurious and dubious condition on the android platform. However it
is not totally obvious what the prupose was, and expat compiles quikly,
so we just add expat as an unconditional mandatory dependency.

Fixes:
    http://autobuild.buildroot.org/results/f71865771482b1d71d12e77767d236ca693785d5/
    http://autobuild.buildroot.org/results/98290b9681a38b3be820017823a4a4196d474476/
    ....

Reported-by: Titouan Christophe <titouanchristophe@gmail.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
[yann.morin.1998@free.fr:
  - make it a generic fix, not tied to freedreno, reported by Fabio
  - rewrite commit log to explain the root cause
  - also reported about virgl, by Titouan
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
package/mesa3d/Config.in
package/mesa3d/mesa3d.mk

index 45eb62b701a7e7e71bff531836f9da12665d36ca..a96fd46bbe2db26e5fd065d122455f7aeb7a123c 100644 (file)
@@ -4,6 +4,7 @@ menuconfig BR2_PACKAGE_MESA3D
        depends on !BR2_STATIC_LIBS
        depends on BR2_TOOLCHAIN_HAS_SYNC_1
        depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
+       select BR2_PACKAGE_EXPAT
        select BR2_PACKAGE_LIBDRM
        select BR2_PACKAGE_WAYLAND_PROTOCOLS if BR2_PACKAGE_WAYLAND
        select BR2_PACKAGE_ZLIB
@@ -138,7 +139,6 @@ comment "Gallium i915: Only one i915 provider can be built"
 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS
        bool "Gallium iris driver"
        depends on BR2_i386 || BR2_x86_64
-       select BR2_PACKAGE_EXPAT
        select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
        help
          Mesa driver for iris-based Intel GPUs.
@@ -263,7 +263,6 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA
 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D
        bool "Gallium v3d driver"
        depends on (BR2_arm && BR2_ARM_CPU_HAS_NEON) || BR2_aarch64
-       select BR2_PACKAGE_EXPAT
        select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
        select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
        select BR2_PACKAGE_LIBDRM_VC4
@@ -279,7 +278,6 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D
 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4
        bool "Gallium vc4 driver"
        depends on BR2_arm || BR2_aarch64
-       select BR2_PACKAGE_EXPAT
        select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
        select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
        select BR2_PACKAGE_LIBDRM_VC4
@@ -346,7 +344,6 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
 config BR2_PACKAGE_MESA3D_DRI_DRIVER_I915
        bool "DRI i915 driver"
        depends on BR2_i386 || BR2_x86_64
-       select BR2_PACKAGE_EXPAT
        select BR2_PACKAGE_MESA3D_DRI_DRIVER
        select BR2_PACKAGE_LIBDRM_INTEL
        help
@@ -356,7 +353,6 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
        bool "DRI i965 driver"
        depends on BR2_i386 || BR2_x86_64
        depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h
-       select BR2_PACKAGE_EXPAT
        select BR2_PACKAGE_MESA3D_DRI_DRIVER
        select BR2_PACKAGE_LIBDRM_INTEL
        help
@@ -395,7 +391,6 @@ config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
        depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h
        depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
        depends on BR2_PACKAGE_XORG7 # xorgproto
-       select BR2_PACKAGE_EXPAT
        select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
        select BR2_PACKAGE_XORGPROTO
        select BR2_PACKAGE_XLIB_LIBXSHMFENCE
index ce1197cc996959c53fcfe3c247370653b9026aa2..bc277bec5a833ee9bd47bd03d04f329124d360ed 100644 (file)
@@ -19,13 +19,10 @@ MESA3D_DEPENDENCIES = \
        host-bison \
        host-flex \
        host-python3-mako \
+       expat \
        libdrm \
        zlib
 
-ifeq ($(BR2_PACKAGE_EXPAT),y)
-MESA3D_DEPENDENCIES += expat
-endif
-
 MESA3D_CONF_OPTS = \
        -Dgallium-omx=disabled \
        -Dpower8=disabled