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

Eric Engestrom eric.engestrom at intel.com
Tue Jun 5 16:53:13 UTC 2018


On Tuesday, 2018-06-05 17:17:03 +0100, Emil Velikov wrote:
> 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.

OK, I'll look carefully at the devil^Wdetails tomorrow :)

> 
> > 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.

It's too late for distros, they've had to manually delete
libwayland-egl.so for several months now. I don't think adding code to
change the behaviour of 18.1 mid-cycle is a good idea at this point, I'd
rather leave that branch as is, and delete cleanly for 18.2

> 
> 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