Merge lp:~directhex/indicator-application/gapi_is_a_pile_of_shit into lp:indicator-application/0.4

Proposed by Jo Shields
Status: Merged
Merged at revision: 162
Proposed branch: lp:~directhex/indicator-application/gapi_is_a_pile_of_shit
Merge into: lp:indicator-application/0.4
Diff against target: 85 lines (+14/-8)
4 files modified
bindings/mono/ApplicationIndicator.custom (+4/-4)
bindings/mono/Makefile.am (+7/-1)
bindings/mono/app-indicator.sources.xml (+2/-2)
bindings/mono/appindicator-sharp.dll.config.in (+1/-1)
To merge this branch: bzr merge lp:~directhex/indicator-application/gapi_is_a_pile_of_shit
Reviewer Review Type Date Requested Status
Indicator Applet Developers Pending
Review via email: mp+35963@code.launchpad.net

Description of the change

indicator-application stopped working in Mono apps, as it was built against SONAME 0, but the lib was bumped to SONAME 1. Sadly, due to a comedy of errors with the "gapi" code generator used by Mono against GObject, the fix extended far beyond simply fixing indicator-application's SONAME expectations.

This branch fixes the FTBFS problem with the Mono binding, and also (theoretically, I haven't been able to fully test it) fixes the problem with the wrong lib being dlopened by Mono, and also fixes package builds (which currently do not place a dependency on libappindicator1).

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bindings/mono/ApplicationIndicator.custom'
--- bindings/mono/ApplicationIndicator.custom 2010-01-12 04:59:17 +0000
+++ bindings/mono/ApplicationIndicator.custom 2010-09-19 20:12:49 +0000
@@ -1,10 +1,10 @@
1[DllImport ("libappindicator.so.0")]1[DllImport ("appindicator.dll")]
2static extern int app_indicator_get_status (IntPtr i);2static extern int app_indicator_get_status (IntPtr i);
33
4[DllImport ("libappindicator.so.0")]4[DllImport ("appindicator.dll")]
5static extern int app_indicator_get_category (IntPtr i);5static extern int app_indicator_get_category (IntPtr i);
66
7[DllImport ("libappindicator.so.0")]7[DllImport ("appindicator.dll")]
8static extern void app_indicator_set_status (IntPtr i, int s);8static extern void app_indicator_set_status (IntPtr i, int s);
99
10 [GLib.Property ("status")]10 [GLib.Property ("status")]
@@ -23,4 +23,4 @@
23 get {23 get {
24 return (Category) app_indicator_get_category (Handle);24 return (Category) app_indicator_get_category (Handle);
25 }25 }
26 }
27\ No newline at end of file26\ No newline at end of file
27 }
2828
=== modified file 'bindings/mono/Makefile.am'
--- bindings/mono/Makefile.am 2010-07-07 19:23:37 +0000
+++ bindings/mono/Makefile.am 2010-09-19 20:12:49 +0000
@@ -15,6 +15,8 @@
15POLICY = policy.$(POLICY_VERSION).$(ASSEMBLY_NAME)15POLICY = policy.$(POLICY_VERSION).$(ASSEMBLY_NAME)
16POLICY_VERSION = 0.016POLICY_VERSION = 0.0
17DLLPOLICY = $(POLICY).dll17DLLPOLICY = $(POLICY).dll
18WRAPPER_FREE_BINDING_SRC = ../../src/app-indicator.c
19WRAPPER_FREE_BINDING = app-indicator.c
1820
19TARGET = \21TARGET = \
20 $(ASSEMBLY) \22 $(ASSEMBLY) \
@@ -35,6 +37,7 @@
35 $(RAW_API) \37 $(RAW_API) \
36 $(TEST) \38 $(TEST) \
37 $(DLLPOLICY) \39 $(DLLPOLICY) \
40 $(WRAPPER_FREE_BINDING) \
38 $(POLICY).config41 $(POLICY).config
3942
40DISTCLEANFILES = $(ASSEMBLY).config43DISTCLEANFILES = $(ASSEMBLY).config
@@ -57,9 +60,12 @@
57references = $(GTK_SHARP_LIBS)60references = $(GTK_SHARP_LIBS)
58test_references = $(GTK_SHARP_LIBS) $(NUNIT_LIBS) -r:$(ASSEMBLY)61test_references = $(GTK_SHARP_LIBS) $(NUNIT_LIBS) -r:$(ASSEMBLY)
5962
60$(RAW_API): app-indicator.sources.xml63$(RAW_API): app-indicator.sources.xml $(WRAPPER_FREE_BINDING)
61 $(GAPI_PARSER) app-indicator.sources.xml64 $(GAPI_PARSER) app-indicator.sources.xml
6265
66$(WRAPPER_FREE_BINDING): $(WRAPPER_FREE_BINDING_SRC)
67 sed '/signals\[X_NEW_LABEL\] /,+6d' $(WRAPPER_FREE_BINDING_SRC) > $(WRAPPER_FREE_BINDING)
68
63$(MIDDLE_API): $(METADATA) $(RAW_API)69$(MIDDLE_API): $(METADATA) $(RAW_API)
64 cp $(srcdir)/$(RAW_API) $(MIDDLE_API)70 cp $(srcdir)/$(RAW_API) $(MIDDLE_API)
65 chmod u+w $(MIDDLE_API)71 chmod u+w $(MIDDLE_API)
6672
=== modified file 'bindings/mono/app-indicator.sources.xml'
--- bindings/mono/app-indicator.sources.xml 2010-06-17 17:43:06 +0000
+++ bindings/mono/app-indicator.sources.xml 2010-09-19 20:12:49 +0000
@@ -1,8 +1,8 @@
1<gapi-parser-input>1<gapi-parser-input>
2 <api filename="libappindicator-api.raw">2 <api filename="libappindicator-api.raw">
3 <library name="libappindicator.so.0">3 <library name="appindicator.dll">
4 <namespace name="AppIndicator">4 <namespace name="AppIndicator">
5 <file>../../src/app-indicator.c</file>5 <file>app-indicator.c</file>
6 <file>../../src/app-indicator-enum-types.c</file>6 <file>../../src/app-indicator-enum-types.c</file>
7 <file>../../src/app-indicator-enum-types.h</file>7 <file>../../src/app-indicator-enum-types.h</file>
8 <file>../../src/app-indicator.h</file>8 <file>../../src/app-indicator.h</file>
99
=== modified file 'bindings/mono/appindicator-sharp.dll.config.in'
--- bindings/mono/appindicator-sharp.dll.config.in 2009-12-16 21:15:30 +0000
+++ bindings/mono/appindicator-sharp.dll.config.in 2010-09-19 20:12:49 +0000
@@ -1,5 +1,5 @@
1<configuration>1<configuration>
2 <dllmap dll="appindicator-sharp.dll" target="libappindicator@LIB_PREFIX@.0@LIB_SUFFIX@"/>2 <dllmap dll="appindicator.dll" target="libappindicator@LIB_PREFIX@.1@LIB_SUFFIX@"/>
3 <dllmap dll="libgtk-2.0-0.dll" target="libgtk-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>3 <dllmap dll="libgtk-2.0-0.dll" target="libgtk-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
4 <dllmap dll="libglib-2.0-0.dll" target="libglib-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>4 <dllmap dll="libglib-2.0-0.dll" target="libglib-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
5 <dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>5 <dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>

Subscribers

People subscribed via source and target branches