Do not require wayland-protocols as dependency in the .pc file

Basically, I was building some packages on Guix. I figured out that
wayland-protocols was listed among propagated-inputs for gtk+ package
(gtk-3-24). propagated-inputs holds a list of runtime dependencies,
that should be available to any other package that depends on gtk+.
While discussing we clarified that wayland-protocols is not runtime
dependency. So I moved it to native-inputs of gtk+ package, which
means that, this dependency will be available only to gtk+ package and
only at build time. Once moved, building of other applications that
depening on gtk+ started to fail.

Investigation showed that, all .pc (pkg-config) files prepared by gtk+
package, was including:

Requires.private: ... wayland-protocols ...

Since it becomes requirement, other applications was failing with
missing dependency wayland-protocols of dependency gtk+, for instance:

-- Checking for module 'gtk+-3.0'
--   Package 'wayland-protocols', required by 'gdk-3.0', not found

While actually wayland-protocols is not even a build time dependency
of application that depends on gtk+. Advertisement of such
requirement, is a bit misleading, because one does not need it at
runtime, especially applications based on gtk.
This commit is contained in:
muradm 2021-09-16 19:40:56 +03:00
parent 5cccc2d975
commit 6efcbf4634
2 changed files with 3 additions and 3 deletions

View File

@ -439,7 +439,8 @@ fi
PKG_PROG_PKG_CONFIG PKG_PROG_PKG_CONFIG
WAYLAND_DEPENDENCIES="wayland-client >= wayland_required_version wayland-protocols >= wayland_protocols_required_version xkbcommon >= 0.2.0 wayland-cursor >= wayland_required_version wayland-egl" WAYLAND_RUNTIME_DEPENDENCIES="wayland-client >= wayland_required_version xkbcommon >= 0.2.0 wayland-cursor >= wayland_required_version wayland-egl"
WAYLAND_DEPENDENCIES="wayland-protocols >= wayland_protocols_required_version $WAYLAND_RUNTIME_DEPENDENCIES"
if test "$enable_wayland_backend" = "maybe" ; then if test "$enable_wayland_backend" = "maybe" ; then
AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no]) AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no])
PKG_CHECK_EXISTS($WAYLAND_DEPENDENCIES, [have_wayland_deps=yes], [have_wayland_deps=no]) PKG_CHECK_EXISTS($WAYLAND_DEPENDENCIES, [have_wayland_deps=yes], [have_wayland_deps=no])
@ -460,7 +461,7 @@ if test "$enable_wayland_backend" = "yes"; then
GDK_WINDOWING="$GDK_WINDOWING GDK_WINDOWING="$GDK_WINDOWING
#define GDK_WINDOWING_WAYLAND" #define GDK_WINDOWING_WAYLAND"
backend_immodules="$backend_immodules,wayland" backend_immodules="$backend_immodules,wayland"
WAYLAND_PACKAGES="$WAYLAND_DEPENDENCIES" WAYLAND_PACKAGES="$WAYLAND_RUNTIME_DEPENDENCIES"
AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no]) AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no])
AS_IF([test "x$WAYLAND_SCANNER" = "xno"], AS_IF([test "x$WAYLAND_SCANNER" = "xno"],
[AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols])]) [AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols])])

View File

@ -557,7 +557,6 @@ if wayland_enabled
wayland_pkgs = [ wayland_pkgs = [
'wayland-client', wayland_req, 'wayland-client', wayland_req,
'wayland-protocols', wayland_proto_req,
'xkbcommon', xkbcommon_req, 'xkbcommon', xkbcommon_req,
'wayland-cursor', wayland_req, 'wayland-cursor', wayland_req,
'wayland-egl', 'wayland-egl',