public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in gnome-base/gnome-shell/files: gnome-shell-3.4.0-optional-networkmanager.patch gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch
@ 2012-05-14  0:04 Alexandre Rostovtsev (tetromino)
  0 siblings, 0 replies; only message in thread
From: Alexandre Rostovtsev (tetromino) @ 2012-05-14  0:04 UTC (permalink / raw
  To: gentoo-commits

tetromino    12/05/14 00:04:36

  Added:                gnome-shell-3.4.0-optional-networkmanager.patch
                        gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch
                        gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch
  Log:
  Version bump for gnome-3.4 with lots of changes. Drop old.
  
  (Portage version: 2.2.0_alpha104/cvs/Linux x86_64)

Revision  Changes    Path
1.1                  gnome-base/gnome-shell/files/gnome-shell-3.4.0-optional-networkmanager.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.4.0-optional-networkmanager.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.4.0-optional-networkmanager.patch?rev=1.1&content-type=text/plain

Index: gnome-shell-3.4.0-optional-networkmanager.patch
===================================================================
From 411d751935c9bdc485b113678284edf0cc9e545e Mon Sep 17 00:00:00 2001
From: Michael Biebl <biebl@debian.org>
Date: Thu, 22 Dec 2011 22:04:12 +0100
Subject: [PATCH] Make NM optional

[ Alexandre Rostovtsev <tetromino@gentoo.org> :
  * use config.js (and AC_SUBST HAVE_NETWORKMANAGER appropriately);
  * take care to not import ui.status.network if nm is disabled;
  * do not try to reassign to const variables;
  * no point really in fiddling with the list of installed js files;
  * don't build shell-mobile-providers if nm is disabled;
  * use "networkmanager" instead of "network_manager" because THE
    BIKESHED SHOULD BE BLUE, also because the upstream package name is
    NetworkManager, not Network_Manager. ]
---
 configure.ac         |   47 ++++++++++++++++++++++++++++++++++++++++++++++-
 js/Makefile.am       |    1 +
 js/misc/config.js.in |    2 ++
 js/ui/main.js        |    8 ++++++--
 js/ui/panel.js       |    3 ++-
 src/Makefile.am      |   17 ++++++++++++-----
 6 files changed, 69 insertions(+), 9 deletions(-)

diff --git a/configure.ac b/configure.ac
index c6ad636..f228ebd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -94,9 +94,42 @@ PKG_CHECK_MODULES(GNOME_SHELL, gio-unix-2.0 >= $GIO_MIN_VERSION
                                telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
                                telepathy-logger-0.2 >= $TELEPATHY_LOGGER_MIN_VERSION
                                polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes
-                               libnm-glib libnm-util gnome-keyring-1
+                               gnome-keyring-1
                                gcr-3 >= $GCR_MIN_VERSION)
 
+##########################
+# Check for NetworkManager
+##########################
+NM_MIN_VERSION=0.9
+AC_ARG_ENABLE(networkmanager,
+              AS_HELP_STRING([--disable-networkmanager],
+                             [disable NetworkManager support @<:@default=auto@:>@]),,
+              [enable_networkmanager=auto])
+
+if test "x$enable_networkmanager" != "xno"; then
+   PKG_CHECK_MODULES(NETWORKMANAGER,
+                     [libnm-glib libnm-util gnome-keyring-1],
+                     [have_networkmanager=yes],
+                     [have_networkmanager=no])
+
+   GNOME_SHELL_CFLAGS="$GNOME_SHELL_CFLAGS $NETWORKMANAGER_CFLAGS"
+   GNOME_SHELL_LIBS="$GNOME_SHELL_LIBS $NETWORKMANAGER_LIBS"
+else
+   have_networkmanager="no  (disabled)"
+fi
+
+if test "x$have_networkmanager" = "xyes"; then
+   AC_DEFINE(HAVE_NETWORKMANAGER, [1], [Define if we have NetworkManager])
+   AC_SUBST([HAVE_NETWORKMANAGER], [1])
+else
+   if test "x$enable_networkmanager" = "xyes"; then
+      AC_MSG_ERROR([Couldn't find NetworkManager.])
+   fi
+   AC_SUBST([HAVE_NETWORKMANAGER], [0])
+fi
+
+AM_CONDITIONAL(HAVE_NETWORKMANAGER, test "$have_networkmanager" = "yes")
+
 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)
@@ -289,3 +322,15 @@ AC_CONFIG_FILES([
   man/Makefile
 ])
 AC_OUTPUT
+
+echo "
+Build configuration:
+
+	Prefix:                                 ${prefix}
+	Source code location:                   ${srcdir}
+	Compiler:                               ${CC}
+	Compiler Warnings:                      $enable_compile_warnings
+
+	Support for NetworkManager:             $have_networkmanager
+	Support for GStreamer recording:        $build_recorder
+"
diff --git a/js/Makefile.am b/js/Makefile.am
index e7751cc..5eb4c18 100644
--- a/js/Makefile.am
+++ b/js/Makefile.am
@@ -8,6 +8,7 @@ misc/config.js: misc/config.js.in Makefile
 	    -e "s|[@]PACKAGE_VERSION@|$(PACKAGE_VERSION)|g" \
 	    -e "s|[@]GJS_VERSION@|$(GJS_VERSION)|g" \
 	    -e "s|[@]HAVE_BLUETOOTH@|$(HAVE_BLUETOOTH)|g" \
+	    -e "s|[@]HAVE_NETWORKMANAGER@|$(HAVE_NETWORKMANAGER)|g" \
 	    -e "s|[@]SHELL_SYSTEM_CA_FILE@|$(SHELL_SYSTEM_CA_FILE)|g" \
 	    -e "s|[@]GETTEXT_PACKAGE@|$(GETTEXT_PACKAGE)|g" \
 	    -e "s|[@]datadir@|$(datadir)|g" \
diff --git a/js/misc/config.js.in b/js/misc/config.js.in
index 4a0db16..3df3394 100644
--- a/js/misc/config.js.in
+++ b/js/misc/config.js.in
@@ -8,6 +8,8 @@ const PACKAGE_VERSION = '@PACKAGE_VERSION@';
 const GJS_VERSION = '@GJS_VERSION@';
 /* 1 if gnome-bluetooth is available, 0 otherwise */
 const HAVE_BLUETOOTH = @HAVE_BLUETOOTH@;
+/* 1 if networkmanager is available, 0 otherwise */
+const HAVE_NETWORKMANAGER = @HAVE_NETWORKMANAGER@;
 /* The system TLS CA list */
 const SHELL_SYSTEM_CA_FILE = '@SHELL_SYSTEM_CA_FILE@';
 /* gettext package */
diff --git a/js/ui/main.js b/js/ui/main.js
index ac9330c..7ca91ee 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -12,6 +12,7 @@ const St = imports.gi.St;
 
 const AutomountManager = imports.ui.automountManager;
 const AutorunManager = imports.ui.autorunManager;
+const Config = imports.misc.config;
 const CtrlAltTab = imports.ui.ctrlAltTab;
 const EndSessionDialog = imports.ui.endSessionDialog;
 const PolkitAuthenticationAgent = imports.ui.polkitAuthenticationAgent;
@@ -26,7 +27,7 @@ const PlaceDisplay = imports.ui.placeDisplay;
 const RunDialog = imports.ui.runDialog;
 const Layout = imports.ui.layout;
 const LookingGlass = imports.ui.lookingGlass;
-const NetworkAgent = imports.ui.networkAgent;
+const NetworkAgent = Config.HAVE_NETWORKMANAGER ? imports.ui.networkAgent : null;
 const NotificationDaemon = imports.ui.notificationDaemon;
 const WindowAttentionHandler = imports.ui.windowAttentionHandler;
 const Scripting = imports.ui.scripting;
@@ -85,7 +86,10 @@ function _createUserSession() {
     telepathyClient = new TelepathyClient.Client();
     automountManager = new AutomountManager.AutomountManager();
     autorunManager = new AutorunManager.AutorunManager();
-    networkAgent = new NetworkAgent.NetworkAgent();
+    if (Config.HAVE_NETWORKMANAGER) {
+        networkAgent = new NetworkAgent.NetworkAgent();
+    }
+
 }
 
 function _createGDMSession() {
diff --git a/js/ui/panel.js b/js/ui/panel.js
index 329f118..865ce05 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
@@ -45,7 +45,8 @@ if (Config.HAVE_BLUETOOTH)
     STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION['bluetooth'] = imports.ui.status.bluetooth.Indicator;
 
 try {
-    STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION['network'] = imports.ui.status.network.NMApplet;
+    if (Config.HAVE_NETWORKMANAGER)
+        STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION['network'] = imports.ui.status.network.NMApplet;
 } catch(e) {
     log('NMApplet is not supported. It is possible that your NetworkManager version is too old');
 }
diff --git a/src/Makefile.am b/src/Makefile.am
index 95f1a41..637455e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -110,9 +110,7 @@ shell_public_headers_h =		\
 	shell-gtk-embed.h		\
 	shell-global.h			\
 	shell-idle-monitor.h		\
-	shell-mobile-providers.h	\
 	shell-mount-operation.h		\
-	shell-network-agent.h		\
 	shell-perf-log.h		\
 	shell-screenshot.h		\
 	shell-screen-grabber.h		\
@@ -134,6 +132,10 @@ shell_private_sources = \
 	gactionobserver.h		\
 	gactionobserver.c
 
+if HAVE_NETWORKMANAGER
+shell_public_headers_h += shell-mobile-providers.h shell-network-agent.h
+endif
+
 libgnome_shell_la_SOURCES =		\
 	$(shell_built_sources)		\
 	$(shell_public_headers_h)	\
@@ -159,9 +161,7 @@ libgnome_shell_la_SOURCES =		\
 	shell-idle-monitor.c		\
 	shell-keyring-prompt.h		\
 	shell-keyring-prompt.c		\
-	shell-mobile-providers.c	\
 	shell-mount-operation.c		\
-	shell-network-agent.c		\
 	shell-perf-log.c		\
 	shell-polkit-authentication-agent.h	\
 	shell-polkit-authentication-agent.c	\
@@ -181,6 +181,10 @@ libgnome_shell_la_SOURCES =		\
 	$(NULL)
 
 
+if HAVE_NETWORKMANAGER
+libgnome_shell_la_SOURCES += shell-mobile-providers.c shell-network-agent.c
+endif
+
 libgnome_shell_la_gir_sources = \
 	$(filter-out %-private.h $(shell_private_sources), $(shell_public_headers_h) $(libgnome_shell_la_SOURCES))
 
@@ -296,7 +300,10 @@ libgnome_shell_la_LIBADD =		\
 libgnome_shell_la_CPPFLAGS = $(gnome_shell_cflags)
 
 Shell-0.1.gir: libgnome-shell.la St-1.0.gir
-Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 TelepathyLogger-0.2 Soup-2.4 GMenu-3.0 NetworkManager-1.0 NMClient-1.0 Folks-0.6
+Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 TelepathyLogger-0.2 Soup-2.4 GMenu-3.0 Folks-0.6
+if HAVE_NETWORKMANAGER
+Shell_0_1_gir_INCLUDES += NetworkManager-1.0 NMClient-1.0
+endif
 Shell_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir)
 Shell_0_1_gir_LIBS = libgnome-shell.la
 Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources)
-- 
1.7.8.5




1.1                  gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch?rev=1.1&content-type=text/plain

Index: gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch
===================================================================
From 6fa762baaee77c9d1a8aacc758ab5c3c3c33df43 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Fri, 6 Apr 2012 14:00:48 -0400
Subject: [PATCH] Prevent the link to libgnome-shell-js.so from being removed

Add a dummy call to shell_js_add_extension_importer() to ensure that the
link to libgnome-shell-js.so is not removed when using -Wl,--as-needed,
which is the default on many distros.
---
 src/main.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/main.c b/src/main.c
index bac9524..c11c8d7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -24,6 +24,7 @@
 #include "shell-a11y.h"
 #include "shell-global.h"
 #include "shell-global-private.h"
+#include "shell-js.h"
 #include "shell-perf-log.h"
 #include "st.h"
 
@@ -342,3 +343,15 @@ main (int argc, char **argv)
 
   return ecode;
 }
+
+/* HACK:
+   Add a dummy function that calls into libgnome-shell-js.so to ensure it's
+   linked to /usr/bin/gnome-shell even when linking with --as-needed.
+   This function is never actually called.
+   https://bugzilla.gnome.org/show_bug.cgi?id=670477
+*/
+
+void _shell_link_to_shell_js(void) {
+  shell_js_add_extension_importer (NULL, NULL, NULL, NULL);
+}
+
-- 
1.7.8.5




1.1                  gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch?rev=1.1&content-type=text/plain

Index: gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch
===================================================================
From 73f565d27166420bbf4a7bb49a30ea5bf5d98566 Mon Sep 17 00:00:00 2001
From: "Owen W. Taylor" <otaylor@fishsoup.net>
Date: Wed, 4 Apr 2012 17:48:47 -0400
Subject: [PATCH] Link the gnome-shell binary to libgnome-shell-js.so

Depending on the exact linker options and versions, rpath's written
into the binary may, or may not, be honored by dlopen(). Work around
this by simply linking the gnome-shell binary to gnome-shell-js, since
then dlopen() doesn't need to search paths.

https://bugzilla.gnome.org/show_bug.cgi?id=670477
---
 src/Makefile.am |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 95f1a41..7bafb6a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -187,7 +187,7 @@ libgnome_shell_la_gir_sources = \
 gnome_shell_real_SOURCES =		\
 	main.c
 gnome_shell_real_CPPFLAGS = $(gnome_shell_cflags)
-gnome_shell_real_LDADD = libgnome-shell.la $(libgnome_shell_la_LIBADD)
+gnome_shell_real_LDADD = libgnome-shell.la libgnome-shell-js.la $(libgnome_shell_la_LIBADD)
 gnome_shell_real_DEPENDENCIES = libgnome-shell.la
 
 EXTRA_DIST += test-gapplication.js
-- 
1.7.9.3





^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-05-14  0:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-14  0:04 [gentoo-commits] gentoo-x86 commit in gnome-base/gnome-shell/files: gnome-shell-3.4.0-optional-networkmanager.patch gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch Alexandre Rostovtsev (tetromino)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox