summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Rostovtsev2012-04-06 18:16:01 (GMT)
committerAlexandre Rostovtsev2012-04-06 18:16:01 (GMT)
commit7761a59e3e4995c132b0fd59c0e024eb89b9fc24 (patch)
tree84bd4990556b83266ee35c3b46cc3aab5df86242
parent6d6051b1252b334462735eac53412524275584cc (diff)
gnome-base/gnome-shell: fix extension loading
Force /usr/bin/gnome-shell to link to libgnome-shell-js.so to fix extensions; see https://bugzilla.gnome.org/show_bug.cgi?id=670477
-rw-r--r--gnome-base/gnome-shell/Manifest4
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch30
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch43
-rw-r--r--gnome-base/gnome-shell/gnome-shell-3.4.0-r1.ebuild (renamed from gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild)4
4 files changed, 80 insertions, 1 deletions
diff --git a/gnome-base/gnome-shell/Manifest b/gnome-base/gnome-shell/Manifest
index 5fa107c..20051a2 100644
--- a/gnome-base/gnome-shell/Manifest
+++ b/gnome-base/gnome-shell/Manifest
@@ -1,5 +1,7 @@
AUX gnome-shell-3.2.1-automagic-gnome-bluetooth.patch 1841 RMD160 4b57dfeb42f299ef74799409132778b60ddc7a09 SHA1 4acf93b0bda58660b6c7ed5c8fdb6b06df86c035 SHA256 df5f86858b8abc08225ffb7679e829250e05a419b439b2ecad0f02bd93b670b2
+AUX gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch 1137 RMD160 70ddaa8b6c08e78404b2325699ac309595a73bf5 SHA1 f21e78ba4fd2703c4e096ce2f63b2e9dba61b14a SHA256 ae1b5f47e29de890a9bec2bb425a29f66e965b5479a0dfe82a336149ef79bea7
+AUX gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch 1238 RMD160 0679b2b0aadbc00383890c1d739b7dc0c8549412 SHA1 1a89e077d956597e058c441f3df5646c5f950c97 SHA256 f5fd78df90bc3616765e5b9f04ab9aecc2436bdf124d23ea9d4498c483c0f3b3
AUX gnome-shell-3.4.0-optional-networkmanager.patch 8532 RMD160 6519f66a7b189f8e837e23a79d0904bb45a38f7e SHA1 897771c4038c19c4be62576f104d9a1fc7c6dacb SHA256 487bfd9772799cdd1969b252056af4934870de4704a0bea581876b966e9c754c
DIST gnome-shell-3.4.0.tar.xz 1249520 RMD160 234d79c98b4288785c73d47dbab0f376688a0b25 SHA1 469547999cf4c7b605df1fb2f6cdd890c8fa89d1 SHA256 b6a706da199a99540a008a5fec609bbeff194b1a933e2fc73e51e667d4599a85
-EBUILD gnome-shell-3.4.0.ebuild 6461 RMD160 2335eab6114aa6eddb8bde24dfed1f2db16e0894 SHA1 dc49ebf51667ab0e27c594b410e24a12be5a9753 SHA256 bf7813ced67400ce78533eafaf35e78c039a1b6fcceee0b3c3f762f8ebc02d83
+EBUILD gnome-shell-3.4.0-r1.ebuild 6664 RMD160 f3306d1fafdf7373c1c13d6d6e8eac25bbdbcbf0 SHA1 a3495a3f6bc79580771448094dc3a4532c348de8 SHA256 2800a5fe52fca08e8f07969f142370827a3d291caa7bce48488096d294da6d82
EBUILD gnome-shell-9999.ebuild 6461 RMD160 2335eab6114aa6eddb8bde24dfed1f2db16e0894 SHA1 dc49ebf51667ab0e27c594b410e24a12be5a9753 SHA256 bf7813ced67400ce78533eafaf35e78c039a1b6fcceee0b3c3f762f8ebc02d83
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch
new file mode 100644
index 0000000..9f07884
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch
@@ -0,0 +1,30 @@
+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 \ No newline at end of file
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch
new file mode 100644
index 0000000..718eb30
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch
@@ -0,0 +1,43 @@
+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
+
diff --git a/gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild b/gnome-base/gnome-shell/gnome-shell-3.4.0-r1.ebuild
index e653998..666e6b7 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.4.0-r1.ebuild
@@ -135,6 +135,10 @@ src_prepare() {
# Make networkmanager optional, bug #398593
epatch "${FILESDIR}/${PN}-3.4.0-optional-networkmanager.patch"
+ # Force /usr/bin/gnome-shell to link to libgnome-shell-js; fixes extensions
+ # https://bugzilla.gnome.org/show_bug.cgi?id=670477
+ epatch "${FILESDIR}/${PN}-3.4.0-libgnome-shell-js.so-link"-{1,2}.patch
+
[[ ${PV} != 9999 ]] && eautoreconf
gnome2_src_prepare