ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #02375
[Merge] lp:~directhex/indicator-application/gapi_is_a_pile_of_shit into lp:indicator-application
directhex has proposed merging lp:~directhex/indicator-application/gapi_is_a_pile_of_shit into lp:indicator-application.
Requested reviews:
Indicator Applet Developers (indicator-applet-developers)
Related bugs:
#636132 Tomboy does not start, indicator-application version skew
https://bugs.launchpad.net/bugs/636132
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).
--
https://code.launchpad.net/~directhex/indicator-application/gapi_is_a_pile_of_shit/+merge/35963
Your team ayatana-commits is subscribed to branch lp:indicator-application.
=== 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 @@
-[DllImport ("libappindicator.so.0")]
+[DllImport ("appindicator.dll")]
static extern int app_indicator_get_status (IntPtr i);
-[DllImport ("libappindicator.so.0")]
+[DllImport ("appindicator.dll")]
static extern int app_indicator_get_category (IntPtr i);
-[DllImport ("libappindicator.so.0")]
+[DllImport ("appindicator.dll")]
static extern void app_indicator_set_status (IntPtr i, int s);
[GLib.Property ("status")]
@@ -23,4 +23,4 @@
get {
return (Category) app_indicator_get_category (Handle);
}
- }
\ No newline at end of file
+ }
=== 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 @@
POLICY = policy.$(POLICY_VERSION).$(ASSEMBLY_NAME)
POLICY_VERSION = 0.0
DLLPOLICY = $(POLICY).dll
+WRAPPER_FREE_BINDING_SRC = ../../src/app-indicator.c
+WRAPPER_FREE_BINDING = app-indicator.c
TARGET = \
$(ASSEMBLY) \
@@ -35,6 +37,7 @@
$(RAW_API) \
$(TEST) \
$(DLLPOLICY) \
+ $(WRAPPER_FREE_BINDING) \
$(POLICY).config
DISTCLEANFILES = $(ASSEMBLY).config
@@ -57,9 +60,12 @@
references = $(GTK_SHARP_LIBS)
test_references = $(GTK_SHARP_LIBS) $(NUNIT_LIBS) -r:$(ASSEMBLY)
-$(RAW_API): app-indicator.sources.xml
+$(RAW_API): app-indicator.sources.xml $(WRAPPER_FREE_BINDING)
$(GAPI_PARSER) app-indicator.sources.xml
+$(WRAPPER_FREE_BINDING): $(WRAPPER_FREE_BINDING_SRC)
+ sed '/signals\[X_NEW_LABEL\] /,+6d' $(WRAPPER_FREE_BINDING_SRC) > $(WRAPPER_FREE_BINDING)
+
$(MIDDLE_API): $(METADATA) $(RAW_API)
cp $(srcdir)/$(RAW_API) $(MIDDLE_API)
chmod u+w $(MIDDLE_API)
=== 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 @@
<gapi-parser-input>
<api filename="libappindicator-api.raw">
- <library name="libappindicator.so.0">
+ <library name="appindicator.dll">
<namespace name="AppIndicator">
- <file>../../src/app-indicator.c</file>
+ <file>app-indicator.c</file>
<file>../../src/app-indicator-enum-types.c</file>
<file>../../src/app-indicator-enum-types.h</file>
<file>../../src/app-indicator.h</file>
=== 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 @@
<configuration>
- <dllmap dll="appindicator-sharp.dll" target="libappindicator@LIB_PREFIX@.0@LIB_SUFFIX@"/>
+ <dllmap dll="appindicator.dll" target="libappindicator@LIB_PREFIX@.1@LIB_SUFFIX@"/>
<dllmap dll="libgtk-2.0-0.dll" target="libgtk-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
<dllmap dll="libglib-2.0-0.dll" target="libglib-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
<dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
Follow ups