Gentoo Archives: gentoo-commits

From: Alexandre Restovtsev <tetromino@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
Date: Fri, 06 Apr 2012 18:23:11
Message-Id: 1333736161.7761a59e3e4995c132b0fd59c0e024eb89b9fc24.tetromino@gentoo
1 commit: 7761a59e3e4995c132b0fd59c0e024eb89b9fc24
2 Author: Alexandre Rostovtsev <tetromino <AT> gentoo <DOT> org>
3 AuthorDate: Fri Apr 6 18:16:01 2012 +0000
4 Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
5 CommitDate: Fri Apr 6 18:16:01 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=7761a59e
7
8 gnome-base/gnome-shell: fix extension loading
9
10 Force /usr/bin/gnome-shell to link to libgnome-shell-js.so to fix
11 extensions; see https://bugzilla.gnome.org/show_bug.cgi?id=670477
12
13 ---
14 ...e-shell-3.4.0-libgnome-shell-js.so-link-1.patch | 30 ++++++++++++++
15 ...e-shell-3.4.0-libgnome-shell-js.so-link-2.patch | 43 ++++++++++++++++++++
16 ...ll-3.4.0.ebuild => gnome-shell-3.4.0-r1.ebuild} | 4 ++
17 3 files changed, 77 insertions(+), 0 deletions(-)
18
19 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
20 new file mode 100644
21 index 0000000..9f07884
22 --- /dev/null
23 +++ b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch
24 @@ -0,0 +1,30 @@
25 +From 73f565d27166420bbf4a7bb49a30ea5bf5d98566 Mon Sep 17 00:00:00 2001
26 +From: "Owen W. Taylor" <otaylor@××××××××.net>
27 +Date: Wed, 4 Apr 2012 17:48:47 -0400
28 +Subject: [PATCH] Link the gnome-shell binary to libgnome-shell-js.so
29 +
30 +Depending on the exact linker options and versions, rpath's written
31 +into the binary may, or may not, be honored by dlopen(). Work around
32 +this by simply linking the gnome-shell binary to gnome-shell-js, since
33 +then dlopen() doesn't need to search paths.
34 +
35 +https://bugzilla.gnome.org/show_bug.cgi?id=670477
36 +---
37 + src/Makefile.am | 2 +-
38 + 1 file changed, 1 insertion(+), 1 deletion(-)
39 +
40 +diff --git a/src/Makefile.am b/src/Makefile.am
41 +index 95f1a41..7bafb6a 100644
42 +--- a/src/Makefile.am
43 ++++ b/src/Makefile.am
44 +@@ -187,7 +187,7 @@ libgnome_shell_la_gir_sources = \
45 + gnome_shell_real_SOURCES = \
46 + main.c
47 + gnome_shell_real_CPPFLAGS = $(gnome_shell_cflags)
48 +-gnome_shell_real_LDADD = libgnome-shell.la $(libgnome_shell_la_LIBADD)
49 ++gnome_shell_real_LDADD = libgnome-shell.la libgnome-shell-js.la $(libgnome_shell_la_LIBADD)
50 + gnome_shell_real_DEPENDENCIES = libgnome-shell.la
51 +
52 + EXTRA_DIST += test-gapplication.js
53 +--
54 +1.7.9.3
55 \ No newline at end of file
56
57 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
58 new file mode 100644
59 index 0000000..718eb30
60 --- /dev/null
61 +++ b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch
62 @@ -0,0 +1,43 @@
63 +From 6fa762baaee77c9d1a8aacc758ab5c3c3c33df43 Mon Sep 17 00:00:00 2001
64 +From: Alexandre Rostovtsev <tetromino@g.o>
65 +Date: Fri, 6 Apr 2012 14:00:48 -0400
66 +Subject: [PATCH] Prevent the link to libgnome-shell-js.so from being removed
67 +
68 +Add a dummy call to shell_js_add_extension_importer() to ensure that the
69 +link to libgnome-shell-js.so is not removed when using -Wl,--as-needed,
70 +which is the default on many distros.
71 +---
72 + src/main.c | 13 +++++++++++++
73 + 1 files changed, 13 insertions(+), 0 deletions(-)
74 +
75 +diff --git a/src/main.c b/src/main.c
76 +index bac9524..c11c8d7 100644
77 +--- a/src/main.c
78 ++++ b/src/main.c
79 +@@ -24,6 +24,7 @@
80 + #include "shell-a11y.h"
81 + #include "shell-global.h"
82 + #include "shell-global-private.h"
83 ++#include "shell-js.h"
84 + #include "shell-perf-log.h"
85 + #include "st.h"
86 +
87 +@@ -342,3 +343,15 @@ main (int argc, char **argv)
88 +
89 + return ecode;
90 + }
91 ++
92 ++/* HACK:
93 ++ Add a dummy function that calls into libgnome-shell-js.so to ensure it's
94 ++ linked to /usr/bin/gnome-shell even when linking with --as-needed.
95 ++ This function is never actually called.
96 ++ https://bugzilla.gnome.org/show_bug.cgi?id=670477
97 ++*/
98 ++
99 ++void _shell_link_to_shell_js(void) {
100 ++ shell_js_add_extension_importer (NULL, NULL, NULL, NULL);
101 ++}
102 ++
103 +--
104 +1.7.8.5
105 +
106
107 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
108 similarity index 96%
109 rename from gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild
110 rename to gnome-base/gnome-shell/gnome-shell-3.4.0-r1.ebuild
111 index e653998..666e6b7 100644
112 --- a/gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild
113 +++ b/gnome-base/gnome-shell/gnome-shell-3.4.0-r1.ebuild
114 @@ -135,6 +135,10 @@ src_prepare() {
115 # Make networkmanager optional, bug #398593
116 epatch "${FILESDIR}/${PN}-3.4.0-optional-networkmanager.patch"
117
118 + # Force /usr/bin/gnome-shell to link to libgnome-shell-js; fixes extensions
119 + # https://bugzilla.gnome.org/show_bug.cgi?id=670477
120 + epatch "${FILESDIR}/${PN}-3.4.0-libgnome-shell-js.so-link"-{1,2}.patch
121 +
122 [[ ${PV} != 9999 ]] && eautoreconf
123 gnome2_src_prepare