Bug#849932: libindicate: FTBFS (Fields cannot have void type)
On Mon, 27 Mar 2017 22:43:32 +0200 Andreas Henrikssonwrote: > Hello Gilles Filippini, > > Thanks for your thorough investigations. > > On Fri, Feb 03, 2017 at 12:19:26AM +0100, Gilles Filippini wrote: > [...] > > > This is caused by gtk-sharp2 2.12.40 generating this line in file > > > ListenerServer.cs: > > > static void _gtype = new void > > > (indicate_listener_server_get_type(listener == null ? IntPtr.Zero : > > > listener.Handle, server == null ? IntPtr.Zero : server.Handle, > > > cb_wrapper.NativeDelegate, IntPtr.Zero)); > > > > > > This line doesn't appear when building against the previous gtk-sharp2 > > > release from snapshot.d.o (2.12.10). According to [1] it works with > > > gtk-sharp2 2.12.29 as well. A bisect between releases 2.12.29 and 2.12.40 > > > of gtk-sharp2 might give something. > [...] > > I have no idea what I'm doing here, but attached is my naive attempt. > The solution looked obvious enough based on all your previous input. > > Could you please test if this solves the issue with libindicate for you? Upstream has applied the patch to their 2.12 branch [1]. [1] https://github.com/mono/gtk-sharp/commit/f03881939ec60cb829177d2213c6189de94f4bb9 Thanks, _g. signature.asc Description: OpenPGP digital signature
Bug#849932: libindicate: FTBFS (Fields cannot have void type)
Andreas Henriksson a écrit le 27/03/2017 à 22:43 : > Hello Gilles Filippini, > > Thanks for your thorough investigations. > > On Fri, Feb 03, 2017 at 12:19:26AM +0100, Gilles Filippini wrote: > [...] >>> This is caused by gtk-sharp2 2.12.40 generating this line in file >>> ListenerServer.cs: >>> static void _gtype = new void >>> (indicate_listener_server_get_type(listener == null ? IntPtr.Zero : >>> listener.Handle, server == null ? IntPtr.Zero : server.Handle, >>> cb_wrapper.NativeDelegate, IntPtr.Zero)); >>> >>> This line doesn't appear when building against the previous gtk-sharp2 >>> release from snapshot.d.o (2.12.10). According to [1] it works with >>> gtk-sharp2 2.12.29 as well. A bisect between releases 2.12.29 and 2.12.40 >>> of gtk-sharp2 might give something. > [...] > > I have no idea what I'm doing here, but attached is my naive attempt. > The solution looked obvious enough based on all your previous input. > > Could you please test if this solves the issue with libindicate for you? Yes, it works fine for libindicate. Thanks, _g. signature.asc Description: OpenPGP digital signature
Bug#849932: libindicate: FTBFS (Fields cannot have void type)
Hello Gilles Filippini, Thanks for your thorough investigations. On Fri, Feb 03, 2017 at 12:19:26AM +0100, Gilles Filippini wrote: [...] > > This is caused by gtk-sharp2 2.12.40 generating this line in file > > ListenerServer.cs: > > static void _gtype = new void > > (indicate_listener_server_get_type(listener == null ? IntPtr.Zero : > > listener.Handle, server == null ? IntPtr.Zero : server.Handle, > > cb_wrapper.NativeDelegate, IntPtr.Zero)); > > > > This line doesn't appear when building against the previous gtk-sharp2 > > release from snapshot.d.o (2.12.10). According to [1] it works with > > gtk-sharp2 2.12.29 as well. A bisect between releases 2.12.29 and 2.12.40 > > of gtk-sharp2 might give something. [...] I have no idea what I'm doing here, but attached is my naive attempt. The solution looked obvious enough based on all your previous input. Could you please test if this solves the issue with libindicate for you? Regards, Andreas Henriksson diff -Nru gtk-sharp2-2.12.40/debian/changelog gtk-sharp2-2.12.40/debian/changelog --- gtk-sharp2-2.12.40/debian/changelog 2016-11-15 14:04:31.0 +0100 +++ gtk-sharp2-2.12.40/debian/changelog 2017-03-27 22:19:06.0 +0200 @@ -1,3 +1,10 @@ +gtk-sharp2 (2.12.40-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * Add debian/patches/no-void-cachetype.patch (Closes: #849932) + + -- Andreas HenrikssonMon, 27 Mar 2017 22:19:06 +0200 + gtk-sharp2 (2.12.40-1) unstable; urgency=medium * The "from Hong Kong's hackerspace DimSumLabs with love" release diff -Nru gtk-sharp2-2.12.40/debian/patches/no-void-cachetype.patch gtk-sharp2-2.12.40/debian/patches/no-void-cachetype.patch --- gtk-sharp2-2.12.40/debian/patches/no-void-cachetype.patch 1970-01-01 01:00:00.0 +0100 +++ gtk-sharp2-2.12.40/debian/patches/no-void-cachetype.patch 2017-03-27 22:19:06.0 +0200 @@ -0,0 +1,24 @@ +Don't generate return variable for void types + +Closes: #849932 + +--- a/generator/Method.cs b/generator/Method.cs +@@ -54,7 +54,7 @@ + + if (Name == "GetType") { + Name = "GetGType"; +- cacheValue = !(container_type is StructBase); ++ cacheValue = !(container_type is StructBase) && !retval.IsVoid; + cacheName = "_gtype"; + } + } +@@ -220,7 +220,7 @@ + public void GenerateCacheValue (StreamWriter sw) + { + if (!cacheValue) +- return; ++ return; + sw.WriteLine ("\t\tstatic {0} {1} = new {0} ({2});", retval.CSType, cacheName, CName + call); + } + diff -Nru gtk-sharp2-2.12.40/debian/patches/series gtk-sharp2-2.12.40/debian/patches/series --- gtk-sharp2-2.12.40/debian/patches/series2016-11-15 14:04:31.0 +0100 +++ gtk-sharp2-2.12.40/debian/patches/series2017-03-27 22:07:20.0 +0200 @@ -1,3 +1,4 @@ 01_dllmaps 02_pcfiles 03_missing_gtk-sharp_dllmap_entry +no-void-cachetype.patch
Bug#849932: libindicate: FTBFS (Fields cannot have void type)
Control: reassign -1 gtk-sharp2-gapi Control: affects -1 src:libindicate Control: retitle -1 gtk-sharp2-gapi: gapi2-codegen generates fields with void type Gilles Filippini a écrit le 01/02/2017 à 00:05 : > On Mon, 02 Jan 2017 12:01:41 + Santiago Vilawrote: >> I tried to build this package in stretch with "dpkg-buildpackage -A" >> (which is what the "Arch: all" autobuilder would do to build it) >> but it failed: [snip] >> /usr/bin/mono-csc >> -keyfile:/<>/./bindings/mono/indicate/indicate.snk >> -nowarn:0169,0612,0618 -unsafe -out:indicate-sharp.dll -target:library >> -r:/usr/lib/pkgconfig/../../lib/cli/pango-sharp-2.0/pango-sharp.dll >> -r:/usr/lib/pkgconfig/../../lib/cli/atk-sharp-2.0/atk-sharp.dll >> -r:/usr/lib/pkgconfig/../../lib/cli/gdk-sharp-2.0/gdk-sharp.dll >> -r:/usr/lib/pkgconfig/../../lib/cli/gtk-sharp-2.0/gtk-sharp.dll >> -r:/usr/lib/pkgconfig/../../lib/cli/glib-sharp-2.0/glib-sharp.dll >> ./generated/*.cs AssemblyInfo.cs >> ./generated/ListenerServer.cs(62,10): error CS0670: Fields cannot have void >> type >> ./generated/ListenerServer.cs(62,28): error CS1547: Keyword `void' cannot be >> used in this context [snip] > > This is caused by gtk-sharp2 2.12.40 generating this line in file > ListenerServer.cs: > static void _gtype = new void > (indicate_listener_server_get_type(listener == null ? IntPtr.Zero : > listener.Handle, server == null ? IntPtr.Zero : server.Handle, > cb_wrapper.NativeDelegate, IntPtr.Zero)); > > This line doesn't appear when building against the previous gtk-sharp2 > release from snapshot.d.o (2.12.10). According to [1] it works with > gtk-sharp2 2.12.29 as well. A bisect between releases 2.12.29 and 2.12.40 of > gtk-sharp2 might give something. > > [1] https://github.com/chenxiaolong/Unity-for-Arch/issues/243 I've setup a simple testcase (xml file attached) to run with: $ gapi2-codegen --generate indicate-api.xml --outdir=. I've used it to bisect gtk-sharp2 releases, and I've found out that the error is introduced by gtk-sharp2 upstream commit dd4c742 [1]. [1] https://github.com/mono/gtk-sharp/commit/dd4c74292e9a91461a778f1759b64facf7cf68ac Then reassigning this bug to gtk-sharp2-gapi. Thanks, _g. signature.asc Description: OpenPGP digital signature
Bug#849932: libindicate: FTBFS (Fields cannot have void type)
On Mon, 02 Jan 2017 12:01:41 + Santiago Vilawrote: > Package: src:libindicate > Version: 0.6.92-3 > Severity: serious > > Dear maintainer: > > I tried to build this package in stretch with "dpkg-buildpackage -A" > (which is what the "Arch: all" autobuilder would do to build it) > but it failed: > > > [...] > debian/rules build-indep > CDBS WARNING:simple-patchsys.mk is deprecated since 0.4.85 - please use > source format 3.0 (quilt) instead > test -x debian/rules > mkdir -p "build" > CDBS WARNING:DEB_DH_BUILDDEB_ARGS is deprecated since 0.4.85 > mkdir -p debian/stamp-makefile-build debian/stamp-makefile-install > mkdir -p debian/stamp-makefile-check > mkdir -p debian/stamp-autotools > /usr/bin/make -f debian/rules reverse-config > make[1]: Entering directory '/<>' > CDBS WARNING:simple-patchsys.mk is deprecated since 0.4.85 - please use > source format 3.0 (quilt) instead > set -e; > if test -e debian/autoreconf.before; then \ > > [... snipped ...] > > && touch generated-stamp > Name: propertydata Type: GVariant* in callback > indicate_listener_get_property_variant_cb > Name: value Type: GVariant** in callback > indicate_server_get_indicator_property_group_slot_t > rettype: GVariant* in method GetPropertyVariant in type Indicate.Indicator > Name: value Type: GVariant* in indicate_indicator_set_property_variant in > method SetPropertyVariant in type Indicate.Indicator > Name: menu Type: DbusmenuServer* in indicate_server_set_menu in method > SetMenu in type Indicate.Server > Name: propertydata Type: GVariant* in callback GetPropertyVariantCallback > Defaulting GetPropertyTimeCallback param to 'call' scope in method > Listener.GetPropertyTime > Defaulting GetPropertyIntCallback param to 'call' scope in method > Listener.GetPropertyInt > Defaulting GetPropertyCallback param to 'call' scope in method > Listener.GetProperty > Defaulting GetPropertyBoolCallback param to 'call' scope in method > Listener.GetPropertyBool > Defaulting GetCountCallback param to 'call' scope in method > ListenerServer.GetCount > Defaulting GetDesktopCallback param to 'call' scope in method > ListenerServer.GetDesktop > Defaulting GetTypeCallback param to 'call' scope in method > ListenerServer.GetGType > Defaulting GetMenuCallback param to 'call' scope in method > ListenerServer.GetMenu > Defaulting GetIconThemeCallback param to 'call' scope in method > ListenerServer.GetIconTheme > > Generation Summary: > Enums: 1 Structs: 0 Boxed: 0 Opaques: 2 Interfaces: 0 Objects: 3 > Callbacks: 18 > Properties: 0 Signals: 2 Methods: 54 Constructors: 3 Throttled: 5 > Total Nodes: 88 > > /usr/bin/mono-csc > -keyfile:/<>/./bindings/mono/indicate/indicate.snk > -nowarn:0169,0612,0618 -unsafe -out:indicate-sharp.dll -target:library > -r:/usr/lib/pkgconfig/../../lib/cli/pango-sharp-2.0/pango-sharp.dll > -r:/usr/lib/pkgconfig/../../lib/cli/atk-sharp-2.0/atk-sharp.dll > -r:/usr/lib/pkgconfig/../../lib/cli/gdk-sharp-2.0/gdk-sharp.dll > -r:/usr/lib/pkgconfig/../../lib/cli/gtk-sharp-2.0/gtk-sharp.dll > -r:/usr/lib/pkgconfig/../../lib/cli/glib-sharp-2.0/glib-sharp.dll > ./generated/*.cs AssemblyInfo.cs > ./generated/ListenerServer.cs(62,10): error CS0670: Fields cannot have void > type > ./generated/ListenerServer.cs(62,28): error CS1547: Keyword `void' cannot be > used in this context > Compilation failed: 2 error(s), 0 warnings > Makefile:854: recipe for target 'indicate-sharp.dll' failed > make[6]: *** [indicate-sharp.dll] Error 1 > make[6]: Leaving directory > '/<>/build/gtk2/bindings/mono/indicate' > Makefile:546: recipe for target 'all-recursive' failed > make[5]: *** [all-recursive] Error 1 > make[5]: Leaving directory > '/<>/build/gtk2/bindings/mono/indicate' This is caused by gtk-sharp2 2.12.40 generating this line in file ListenerServer.cs: static void _gtype = new void (indicate_listener_server_get_type(listener == null ? IntPtr.Zero : listener.Handle, server == null ? IntPtr.Zero : server.Handle, cb_wrapper.NativeDelegate, IntPtr.Zero)); This line doesn't appear when building against the previous gtk-sharp2 release from snapshot.d.o (2.12.10). According to [1] it works with gtk-sharp2 2.12.29 as well. A bisect between releases 2.12.29 and 2.12.40 of gtk-sharp2 might give something. [1] https://github.com/chenxiaolong/Unity-for-Arch/issues/243 Thanks, _g. signature.asc Description: OpenPGP digital signature
Bug#849932: libindicate: FTBFS (Fields cannot have void type)
Package: src:libindicate Version: 0.6.92-3 Severity: serious Dear maintainer: I tried to build this package in stretch with "dpkg-buildpackage -A" (which is what the "Arch: all" autobuilder would do to build it) but it failed: [...] debian/rules build-indep CDBS WARNING:simple-patchsys.mk is deprecated since 0.4.85 - please use source format 3.0 (quilt) instead test -x debian/rules mkdir -p "build" CDBS WARNING:DEB_DH_BUILDDEB_ARGS is deprecated since 0.4.85 mkdir -p debian/stamp-makefile-build debian/stamp-makefile-install mkdir -p debian/stamp-makefile-check mkdir -p debian/stamp-autotools /usr/bin/make -f debian/rules reverse-config make[1]: Entering directory '/<>' CDBS WARNING:simple-patchsys.mk is deprecated since 0.4.85 - please use source format 3.0 (quilt) instead set -e; if test -e debian/autoreconf.before; then \ [... snipped ...] && touch generated-stamp Name: propertydata Type: GVariant* in callback indicate_listener_get_property_variant_cb Name: value Type: GVariant** in callback indicate_server_get_indicator_property_group_slot_t rettype: GVariant* in method GetPropertyVariant in type Indicate.Indicator Name: value Type: GVariant* in indicate_indicator_set_property_variant in method SetPropertyVariant in type Indicate.Indicator Name: menu Type: DbusmenuServer* in indicate_server_set_menu in method SetMenu in type Indicate.Server Name: propertydata Type: GVariant* in callback GetPropertyVariantCallback Defaulting GetPropertyTimeCallback param to 'call' scope in method Listener.GetPropertyTime Defaulting GetPropertyIntCallback param to 'call' scope in method Listener.GetPropertyInt Defaulting GetPropertyCallback param to 'call' scope in method Listener.GetProperty Defaulting GetPropertyBoolCallback param to 'call' scope in method Listener.GetPropertyBool Defaulting GetCountCallback param to 'call' scope in method ListenerServer.GetCount Defaulting GetDesktopCallback param to 'call' scope in method ListenerServer.GetDesktop Defaulting GetTypeCallback param to 'call' scope in method ListenerServer.GetGType Defaulting GetMenuCallback param to 'call' scope in method ListenerServer.GetMenu Defaulting GetIconThemeCallback param to 'call' scope in method ListenerServer.GetIconTheme Generation Summary: Enums: 1 Structs: 0 Boxed: 0 Opaques: 2 Interfaces: 0 Objects: 3 Callbacks: 18 Properties: 0 Signals: 2 Methods: 54 Constructors: 3 Throttled: 5 Total Nodes: 88 /usr/bin/mono-csc -keyfile:/<>/./bindings/mono/indicate/indicate.snk -nowarn:0169,0612,0618 -unsafe -out:indicate-sharp.dll -target:library -r:/usr/lib/pkgconfig/../../lib/cli/pango-sharp-2.0/pango-sharp.dll -r:/usr/lib/pkgconfig/../../lib/cli/atk-sharp-2.0/atk-sharp.dll -r:/usr/lib/pkgconfig/../../lib/cli/gdk-sharp-2.0/gdk-sharp.dll -r:/usr/lib/pkgconfig/../../lib/cli/gtk-sharp-2.0/gtk-sharp.dll -r:/usr/lib/pkgconfig/../../lib/cli/glib-sharp-2.0/glib-sharp.dll ./generated/*.cs AssemblyInfo.cs ./generated/ListenerServer.cs(62,10): error CS0670: Fields cannot have void type ./generated/ListenerServer.cs(62,28): error CS1547: Keyword `void' cannot be used in this context Compilation failed: 2 error(s), 0 warnings Makefile:854: recipe for target 'indicate-sharp.dll' failed make[6]: *** [indicate-sharp.dll] Error 1 make[6]: Leaving directory '/<>/build/gtk2/bindings/mono/indicate' Makefile:546: recipe for target 'all-recursive' failed make[5]: *** [all-recursive] Error 1 make[5]: Leaving directory '/<>/build/gtk2/bindings/mono/indicate' Makefile:426: recipe for target 'all-recursive' failed make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory '/<>/build/gtk2/bindings/mono' Makefile:428: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory '/<>/build/gtk2/bindings' Makefile:489: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/<>/build/gtk2' Makefile:421: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/<>/build/gtk2' /usr/share/cdbs/1/class/makefile.mk:77: recipe for target 'debian/stamp-makefile-build/gtk2' failed make: *** [debian/stamp-makefile-build/gtk2] Error 2 dpkg-buildpackage: error: debian/rules build-indep gave error exit status 2 The relevant part of the build log is included above. If this is really a bug in one of the build-depends, please use reassign and affects, so that this is still visible in the page for this package. If you could not reproduce this using sbuild on a single CPU virtual machine (as I did), please do not downgrade or mark as unreproducible, I would then consider giving you access to a virtual machine on which I can reproduce it so that you can as well. (In such case, please contact me off-list for details). Thanks.