Accepting request 116294 from home:dimstar:branches:GNOME:Factory

Hack to get extensions work...

OBS-URL: https://build.opensuse.org/request/show/116294
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-shell?expand=0&rev=112
This commit is contained in:
Vincent Untz 2012-05-16 07:11:54 +00:00 committed by Git OBS Bridge
parent ea8ab48f51
commit 34c0df51cd
3 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,77 @@
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
From 4d33ab1a50fa0a61554f4715fc035ea441db8350 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 | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/src/main.c b/src/main.c
index bac9524..a6fb8f6 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,17 @@ 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

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Wed May 2 05:59:51 UTC 2012 - dimstar@opensuse.org
- Add gnome-shell-link-ext.patch: Link libgnome-shell-js.so into
gnome-shell binary to ensure it the typelib can be loaded. This
is rather hacky, but as the .typelib is interfaced and loads
libs from non-standard folders this fails badly (bnc#755862,
bgo#670477).
- Add gnome-common BuildRequires and call to gnome-autogen.sh, as
above patch touches the build system.
-------------------------------------------------------------------
Wed Apr 18 07:37:51 UTC 2012 - vuntz@opensuse.org

View File

@ -24,6 +24,10 @@ License: GPL-2.0+
Group: System/GUI/GNOME
Url: http://live.gnome.org/GnomeShell
Source: http://download.gnome.org/sources/gnome-shell/3.4/%{name}-%{version}.tar.xz
# PATCH-FIX-OPENSUSE gnome-shell-load-ext.patch bnc#755862 bgo#670477 dimstar@opensuse.org - Ensure libgnome-shell-js.so is linked to gnome-shell. Upstream considers this not a bug.
Patch0: gnome-shell-load-ext.patch
# Needed by patch0
BuildRequires: gnome-common
BuildRequires: intltool
BuildRequires: translation-update-upstream
BuildRequires: update-desktop-files
@ -124,9 +128,12 @@ to enable, disable and install them.
%lang_package
%prep
%setup -q
%patch0 -p1
translation-update-upstream
%build
# Needed by patch0
NOCONFIGURE=1 gnome-autogen.sh
export BROWSER_PLUGIN_DIR=%{_libdir}/browser-plugins
%configure \
--disable-static \