[gnome-shell] Use the versioned libmutter*.so versions
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] Use the versioned libmutter*.so versions
- Date: Tue, 14 Feb 2017 03:23:42 +0000 (UTC)
commit a46ea3f8a07376f27cb08c42484f23b145800404
Author: Jonas Ådahl <jadahl gmail com>
Date: Mon Nov 28 12:54:38 2016 +0800
Use the versioned libmutter*.so versions
Mutter now provides versioned libraries and pkg-config files, meaning
an application using libmutter and friends need to depend on a specific
version of the API.
https://bugzilla.gnome.org/show_bug.cgi?id=777317
configure.ac | 28 +++++++++++++++++++---------
js/Makefile.am | 1 +
js/misc/config.js.in | 2 ++
js/ui/environment.js | 4 +++-
src/Makefile.am | 4 ++--
5 files changed, 27 insertions(+), 12 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 04e2159..3652c6f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -41,6 +41,15 @@ GLIB_GSETTINGS
AM_PATH_PYTHON([3])
AC_SUBST(PYTHON)
+# We depend on a specific version of the libmutter API. The mutter variants of
+# the Cogl and Clutter libraries also use this API version.
+LIBMUTTER_API_VERSION=0
+
+LIBMUTTER=libmutter-$LIBMUTTER_API_VERSION
+LIBMUTTER_COGL=mutter-cogl-$LIBMUTTER_API_VERSION
+LIBMUTTER_COGL_PANGO=mutter-cogl-pango-$LIBMUTTER_API_VERSION
+LIBMUTTER_CLUTTER=mutter-clutter-$LIBMUTTER_API_VERSION
+
# We need at least this, since gst_plugin_register_static() was added
# in 0.10.16, but nothing older than 0.10.21 has been tested.
GSTREAMER_MIN_VERSION=0.11.92
@@ -52,7 +61,7 @@ if $PKG_CONFIG --exists gstreamer-1.0 '>=' $GSTREAMER_MIN_VERSION ; then
AC_MSG_RESULT(yes)
build_recorder=true
recorder_modules="gstreamer-1.0 gstreamer-base-1.0 x11 gtk+-3.0"
- PKG_CHECK_MODULES(TEST_SHELL_RECORDER, $recorder_modules mutter-clutter-1.0)
+ PKG_CHECK_MODULES(TEST_SHELL_RECORDER, $recorder_modules $LIBMUTTER_CLUTTER)
else
AC_MSG_RESULT(no)
fi
@@ -74,7 +83,6 @@ AS_IF([test x$enable_systemd != xno], [
AC_MSG_RESULT($enable_systemd)
-CLUTTER_MIN_VERSION=1.21.5
GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1
GJS_MIN_VERSION=1.47.0
MUTTER_MIN_VERSION=3.23.3
@@ -98,8 +106,8 @@ SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION
gjs-1.0 >= $GJS_MIN_VERSION
$recorder_modules
gdk-x11-3.0 libsoup-2.4
- mutter-clutter-1.0 >= $CLUTTER_MIN_VERSION
- mutter-cogl-pango-1.0
+ $LIBMUTTER_CLUTTER >= $MUTTER_MIN_VERSION
+ $LIBMUTTER_COGL_PANGO
libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
libcanberra libcanberra-gtk3
@@ -111,16 +119,18 @@ if test x$have_systemd = xyes; then
fi
PKG_CHECK_MODULES(GNOME_SHELL, $SHARED_PCS)
-PKG_CHECK_MODULES(MUTTER, libmutter >= $MUTTER_MIN_VERSION)
+PKG_CHECK_MODULES(MUTTER, $LIBMUTTER >= $MUTTER_MIN_VERSION)
PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-1.0 >= $GJS_MIN_VERSION)
-PKG_CHECK_MODULES(ST, mutter-clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.8 x11)
+PKG_CHECK_MODULES(ST, $LIBMUTTER_CLUTTER gtk+-3.0 libcroco-0.6 >= 0.6.8 x11)
PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
-PKG_CHECK_MODULES(TRAY, mutter-clutter-1.0 gtk+-3.0)
+PKG_CHECK_MODULES(TRAY, $LIBMUTTER_CLUTTER gtk+-3.0)
PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0)
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.21.3)
+AC_SUBST(LIBMUTTER_API_VERSION)
+
AC_ARG_ENABLE(browser-plugin,
[AS_HELP_STRING([--enable-browser-plugin],
[Enable browser plugin [default=yes]])],,
@@ -145,10 +155,10 @@ AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR])
GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
-MUTTER_GIR_DIR=`$PKG_CONFIG --variable=girdir libmutter`
+MUTTER_GIR_DIR=`$PKG_CONFIG --variable=girdir $LIBMUTTER`
AC_SUBST(MUTTER_GIR_DIR)
-MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir libmutter`
+MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir $LIBMUTTER`
AC_SUBST(MUTTER_TYPELIB_DIR)
GJS_CONSOLE=`$PKG_CONFIG --variable=gjs_console gjs-1.0`
diff --git a/js/Makefile.am b/js/Makefile.am
index 6d9b85b..6369c75 100644
--- a/js/Makefile.am
+++ b/js/Makefile.am
@@ -11,6 +11,7 @@ misc/config.js: misc/config.js.in Makefile
-e "s|[@]datadir@|$(datadir)|g" \
-e "s|[@]libexecdir@|$(libexecdir)|g" \
-e "s|[@]sysconfdir@|$(sysconfdir)|g" \
+ -e "s|[@]LIBMUTTER_API_VERSION@|$(LIBMUTTER_API_VERSION)|g" \
$< > $@
js_resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --sourcedir=$(builddir)
--generate-dependencies $(srcdir)/js-resources.gresource.xml)
diff --git a/js/misc/config.js.in b/js/misc/config.js.in
index 9c4795d..82f20c6 100644
--- a/js/misc/config.js.in
+++ b/js/misc/config.js.in
@@ -15,3 +15,5 @@ const LOCALEDIR = '@datadir@/locale';
/* other standard directories */
const LIBEXECDIR = '@libexecdir@';
const SYSCONFDIR = '@sysconfdir@';
+/* g-i package versions */
+const LIBMUTTER_API_VERSION = '@LIBMUTTER_API_VERSION@'
diff --git a/js/ui/environment.js b/js/ui/environment.js
index 68ddaa7..cc13621 100644
--- a/js/ui/environment.js
+++ b/js/ui/environment.js
@@ -1,6 +1,8 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
-imports.gi.versions.Clutter = '1.0';
+const Config = imports.misc.config;
+
+imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION;
imports.gi.versions.Gio = '2.0';
imports.gi.versions.Gdk = '3.0';
imports.gi.versions.GdkPixbuf = '2.0';
diff --git a/src/Makefile.am b/src/Makefile.am
index 506bf91..3347a06 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -335,7 +335,7 @@ INTROSPECTION_GIRS += ShellMenu-0.1.gir
CLEANFILES += ShellMenu-0.1.gir
Shell-0.1.gir: gnome-shell St-1.0.gir ShellMenu-0.1.gir
-Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 Soup-2.4
+Shell_0_1_gir_INCLUDES = Clutter-$(LIBMUTTER_API_VERSION) ClutterX11-$(LIBMUTTER_API_VERSION)
Meta-$(LIBMUTTER_API_VERSION) TelepathyGLib-0.12 Soup-2.4
if HAVE_NETWORKMANAGER
Shell_0_1_gir_INCLUDES += NetworkManager-1.0 NMClient-1.0
endif
@@ -350,7 +350,7 @@ INTROSPECTION_GIRS += Shell-0.1.gir
CLEANFILES += Shell-0.1.gir
St-1.0.gir: libst-1.0.la
-St_1_0_gir_INCLUDES = Clutter-1.0 Gtk-3.0
+St_1_0_gir_INCLUDES = Clutter-$(LIBMUTTER_API_VERSION) Gtk-3.0
St_1_0_gir_CFLAGS = $(st_cflags) -DST_COMPILATION
St_1_0_gir_LIBS = libst-1.0.la
St_1_0_gir_FILES = $(filter-out %-private.h $(st_non_gir_sources), $(addprefix $(srcdir)/,$(st_source_h))) \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]