[Mesa-dev] [Mesa-stable] [PATCH 1/5] wayland-egl: allow shipping the library or not

Emil Velikov emil.l.velikov at gmail.com
Tue Jun 5 16:17:03 UTC 2018


On 5 June 2018 at 16:38, Eric Engestrom <eric.engestrom at intel.com> wrote:
> On Tuesday, 2018-06-05 16:24:59 +0100, Emil Velikov wrote:
>> On 5 June 2018 at 16:07, Eric Engestrom <eric.engestrom at intel.com> wrote:
>> > On Tuesday, 2018-06-05 15:14:30 +0100, Emil Velikov wrote:
>> >> From: Emil Velikov <emil.velikov at collabora.com>
>> >>
>> >> Recently the wayland-egl library and pkg-config file were moved to the
>> >> Wayland repository. With that a strange conflict came to be - which one
>> >> should be used and when.
>> >>
>> >> The long term goal is to remove the Mesa copies, but with this patch we
>> >> allow builders to explicitly select if they want it.
>> >>
>> >> Note: since the header (wayland-egl-backend.h) is now used by C++
>> >> people, s/private/driver_private/ was applied.
>> >>
>> >> Cc: Eric Engestrom <eric.engestrom at intel.com>
>> >> CC: 18.0 18.1 <mesa-stable at freedesktop.org>
>> >> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
>> >> ---
>> >>  configure.ac                            | 17 +++++++++++++++++
>> >>  meson.build                             | 12 ++++++++++++
>> >>  meson_options.txt                       |  6 ++++++
>> >>  src/Makefile.am                         |  2 ++
>> >>  src/egl/Makefile.am                     |  1 +
>> >>  src/egl/drivers/dri2/platform_wayland.c | 12 ++++++++++++
>> >>  src/egl/meson.build                     |  2 +-
>> >>  src/meson.build                         |  2 +-
>> >>  8 files changed, 52 insertions(+), 2 deletions(-)
>> >>
>> >> diff --git a/configure.ac b/configure.ac
>> >> index 02dca4547c8..5ea52242bd1 100644
>> >> --- a/configure.ac
>> >> +++ b/configure.ac
>> >> @@ -89,6 +89,7 @@ LIBOMXIL_BELLAGIO_REQUIRED=0.0
>> >>  LIBOMXIL_TIZONIA_REQUIRED=0.10.0
>> >>  LIBVA_REQUIRED=0.39.0
>> >>  VDPAU_REQUIRED=1.1
>> >> +# TODO: Bump to 1.15 -> the first version that ships wayland-egl-backend
>> >>  WAYLAND_REQUIRED=1.11
>> >>  WAYLAND_PROTOCOLS_REQUIRED=1.8
>> >>  XCB_REQUIRED=1.9.3
>> >> @@ -1766,6 +1767,18 @@ if test "x$enable_glx_read_only_text" = xyes; then
>> >>      DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT"
>> >>  fi
>> >>
>> >> +dnl
>> >> +dnl TEMPORARY: mostly for stable releases
>> >> +dnl
>> >> +dnl It will allow easier management as the wayland-egl library was
>> >> +dnl moved to the Wayland project
>> >> +dnl
>> >> +AC_ARG_ENABLE(bundled-wayland-egl,
>> >> +   [AS_HELP_STRING([--disable-bundled-wayland-egl],
>> >> +                [disable shipping of the wayland-egl library and pkg-config file @<:@default=enabled@:>@])],
>> >> +   [enable_wayland_egl=$enableval], [enable_wayland_egl=yes])
>> >> +AM_CONDITIONAL(BUILD_WAYLAND_EGL, test "x$enable_wayland_egl" = xyes)
>> >
>> > I'm not sure I see the benefit of your variant of adding all the
>> > complexity of a new option and immediately making it an error to use it.
>> > Could you explain your logic?
>> >
>> In all fairness, it should have been introduced when wayland-egl was
>> proposed for Wayland inclusion.
>
> Would've made sense back then, but not nowadays IMO.
>
Hindsight is always 20-20 :-\

>> Back then I was under the naive assumption that, distribution maintainers will:
>>  - read mesa-maintainers@ or the wayland release notes
>>  - will know how to address the multiple copies of libwayland-egl.so
>>
>> Since then a distribution (wish shall remain unnamed), kind of
>> foobar'd both of the above.
>>
>> All the complexity is ~40loc, with ~30 of which #idef guards. The
>> annoyance might be far greater though.
>>
>> If you think it's too much, sure - I'll more or less squash 1+2.
>
> squashing 1+2 is basically my patch, plus an option that can't be used ¯\_(ツ)_/¯
>
Almost. The devil is in the detail - egl{,-backend}, version, removed
over-linking.

> Like you said though, it's not so much code complexity as it is annoyance
> I think; I can live with it if there's a benefit, I just don't see it :)
>
In case you've missed it - this patch is for stable@ due to the fun
distros are having.

Just remembered that we'd want this for modular distros like Gentoo.
I don't think there's other way of keeping track of when to rm -rf
*wayland-egl*. The only solution is the toggle + the following, fairly
obvious, two-liner.

bundled-wayland-egl? (
<=dev-libs/wayland-1.15.0:=[${MULTILIB_USEDEP}]
)

Plus distros can drop their rm hacks as well ;-)

Did I manage to sway you to the dark side?
Emil


More information about the mesa-dev mailing list