Hi Vincent, On Fri, Oct 18, 2024 at 08:37:50PM +0200, Clemens Lang wrote: > This seems to only work on your system, or at least not in general. > For example, on my system libepoxy is installed with +quartz -x11, but > still has > > Requires.private: gl > > in its pkg-config file.
Following up on this, I believe this is a reproducibility bug in libepoxy. Its src/meson.build file contains | gl_reqs = [] | if gl_dep.found() and gl_dep.type_name() == 'pkgconfig' | gl_reqs += 'gl' | endif | […] | pkg = import('pkgconfig') | pkg.generate( | libraries: libepoxy, | name: 'epoxy', | description: 'GL dispatch library', | version: meson.project_version(), | variables: [ | 'epoxy_has_glx=@0@'.format(epoxy_has_glx), | 'epoxy_has_egl=@0@'.format(epoxy_has_egl), | 'epoxy_has_wgl=@0@'.format(epoxy_has_wgl), | ], | filebase: 'epoxy', | requires_private: ' '.join(gl_reqs), | ) In other words, when libepoxy is built in an environment where mesa is available, its pkg-config file will reference it. If mesa isn't installed while libepoxy is built, gtk3 will configure fine. If it is installed, gtk3 configure will fail when mesa is not installed. The correct fix is to patch this meson build file to not include the reference to gl when libepoxy is built -x11 +quartz. Until this is fixed, we should keep the build dependency in gtk3, because a broken build is a bad user experience, and a build-time dependency isn't the end of the world. -- Clemens