GNOME Bugzilla – Bug 167875
WSDL compilation problem with mono 1.0.5 on debian unstable
Last modified: 2005-03-14 10:02:51 UTC
Distribution: Debian 3.1 Package: beagle Severity: normal Version: GNOME2.8.1 unspecified Gnome-Distributor: Debian Synopsis: WSDL compilation problem with mono 1.0.5 on debian unstable Bugzilla-Product: beagle Bugzilla-Component: General Bugzilla-Version: unspecified Description: Description of Problem: GoogleSearch.wsdl doesn't compile. wsdl complains: Error: <operation xmlns='http://schemas.xmlsoap.org/wsdl/soap/'> was not expected when trying to execute: wsdl -namespace:Beagle.Util -out:GoogleSearch.cs GoogleSearch.wsdl which is quite right for me: i know nothing about wsdl but i know some about xml schema, and that tag is not expected to be there - for what i can understand by reading the wsdl schema definition. using debian unstable of Feb 18-19 2005 (always updated) ./configure goes well: i installed dbus and gmime-sharp from source, while leaving all the other stuff from debian unstable updated mono packages, versions 1.0.5-2,3 (mono-mcs is 1.0.5-3) Steps to reproduce the problem: 1. install debian sid :-) 2. install lots of mono packages (i had already got them for other reasons): matteo@jimi:/usr/local/src$ dpkg -l|grep mono ii libmono-dev 1.0.5-2 libraries for the Mono interpreter - Develop ii libmono0 1.0.5-2 libraries for the Mono interpreter ii mono-apache-se 1.0-3 The mod-mono server ii mono-assemblie 1.0.5-3 architecture specific files for Mono's class ii mono-assemblie 1.0.5-3 Mono class library ii mono-common 1.0.5-2 common files for the Mono CLI runtimes ii mono-gac 1.0.5-3 Mono GAC tool ii mono-jay 1.0.5-3 LALR(1) parser generator oriented to Java/.N ii mono-jit 1.0.5-2 fast CLI/.NET JIT compiler for Mono ii mono-mcs 1.0.5-3 Mono C# compiler ii mono-utils 1.0.5-2 Mono utilities ii mono-xsp 1.0-3 simple web server to run ASP.NET application ii monodevelop 0.5.1-2 C#/Java/Nermele/ILasm Development Environmen ii monodoc 1.0.4-1 The Mono documentation viewer ii monodoc-base 1.0.4-1 shared MonoDoc binaries ii monodoc-browse 1.0.4-1 MonoDoc GTK+ based viewer ii monodoc-http 1.0.4-1 MonoDoc http based viewer ii monodoc-manual 1.0.4-1 compiled XML documentation from the Mono pro 3. install gmime and dbus with c# bindings (not provided by normal sid packages, i made them myself): matteo@jimi:/usr/local/src/beagle$ apt-show-versions |grep dbus dbus 0.23.1-1 installed: No available version in archive matteo@jimi:/usr/local/src/beagle$ apt-show-versions |grep gmime gmime2.1 2.1.11-1 installed: No available version in archive 4. get beagle from CVS on Fri Feb 18 2005 5. run ./autogen.sh (and ./configure with no particular options) in the beagle root directory 6. run make Actual Results: matteo@jimi:/usr/local/src/beagle$ make make all-recursive make[1]: Entering directory `/usr/local/src/beagle' Making all in Util make[2]: Entering directory `/usr/local/src/beagle/Util' wsdl -namespace:Beagle.Util -out:GoogleSearch.cs GoogleSearch.wsdl Mono Web Services Description Language Utility Error: <operation xmlns='http://schemas.xmlsoap.org/wsdl/soap/'> was not expected make[2]: *** [GoogleSearch.cs] Error 2 make[2]: Leaving directory `/usr/local/src/beagle/Util' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/beagle' make: *** [all] Error 2 Expected Results: working compilation How often does this happen? always Additional Information: I'd really think it would be better (instead of bugzilla posts like this...) if there were a beagle-users (or beagle-peoplewhodreallyliketobeusersbutthesoftwarestilldoesntcompile:-)) @gnome.org mailing list. Interaction would be much easier (I could just look for other people who run all this stuff correctly on debian sid, and ask them: how? so that maybe we could put infos on the wiki...). We could create a user community and wouldn't make you waste time on dashboard-hackers (I'm no hacker). Anyway, thank you all for your work Matteo ------- Bug moved to this database by unknown@bugzilla.gnome.org 2005-02-19 08:12 ------- Unknown platform unknown. Setting to default platform "Other". Unknown milestone "unknown" in product "beagle". Setting to default milestone for this product, '---' Setting to default status "UNCONFIRMED". Setting qa contact to the default for this product. This bug either had no qa contact or an invalid one.
dashboard-hackers is low enough traffic that it's not a problem to just send questions like this to the list. I'm using 1.1.3 and the file compiles fine, but you mention: Error: <operation xmlns='http://schemas.xmlsoap.org/wsdl/soap/'> was not expected This line never appears in the wsdl file. All the <operation> tags have a "name" attribute, but not xmlns. There are a couple <soap:operation> tags, but they have soapAction attributes.
just updated all of the packages to last debian sid, re-downloaded beagle from cvs and the behaviour is totally the same. anyway, it isn't that I've got *that* tag there! wsdl visibly complains after having parsed the xml file and trying to validate its structure against the schema which applies to the subtree definitions::binding::operation in the document, which is also the default one for this document (http://schemas.xmlsoap.org/wsdl/). so the tag which shouldn't be there (together with subsequent similar ones at the same level) is <soap:operation soapAction="urn:GoogleSearchAction"/>. this is what the schema says: <xs:complexType name="tBinding"> <xs:complexContent> <xs:extension base="wsdl:tExtensibleDocumented"> <xs:sequence> <xs:element name="operation" type="wsdl:tBindingOperation" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="xs:NCName" use="required"/> <xs:attribute name="type" type="xs:QName" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> no <operation>s with namespace "soap" (which stands for http://schemas.xmlsoap.org/wsdl/soap/) or whatever else are expected! i'll repeat that: i know _nothing_ about wsdl, but this is plain xml schema stuff, and the structures don't match. i've tried to comment out these <soap:operation> nodes and i didn't expect the thing to work, but when doing that it gets to the end of the file (issuing warnings about other "unsupported operations", i think it doesn't really care about anything "soap") and creates the .cs counterpart, which obviously doesn't compile after that. i haven't found a way to get rid of this validation inside the wsdl executable from the binary sid package, if you want me to try to download the official mono sources and retry with (maybe) other compilation options i will be glad to do this... when i've got some more spare time :-) i could also contact the mono sid maintainers if the problem turned out to be theirs, but as long as it seems that you (or maybe google?) are violating the wsdl schema they can't be the first ones to be contacted :-) if you want to post this link to dashboard-hackers so that we can get additional comments (and maybe solutions) i've already subscribed there, though i've never written a C# line... thx for your help bye matteo
Ok, thanks for the info! I was confused by the wsdl output there. The WSDL file is the one from google. I'll see if there is an updated one available. The really bizarre thing is that it doesn't seem to fail on 1.1.3 or 1.1.4. Maybe the tool is actually downloading the schema for you but not for me?
Created attachment 37945 [details] google wsdl file Try this wsdl file instead of the one included in the beagle cvs
i couldn't understand the diff, then i got it: matteo@jimi:/usr/local/src/beagle/Util$ flip GoogleSearch.wsdl* -u matteo@jimi:/usr/local/src/beagle/Util$ diff GoogleSearch.wsdl* matteo@jimi:/usr/local/src/beagle/Util$ don't think this is the problem: matteo@jimi:/usr/local/src/beagle/Util$ make wsdl -namespace:Beagle.Util -out:GoogleSearch.cs GoogleSearch.wsdl Mono Web Services Description Language Utility Error: <operation xmlns='http://schemas.xmlsoap.org/wsdl/soap/'> was not expected make: *** [GoogleSearch.cs] Error 2 matteo@jimi:/usr/local/src/beagle/Util$ flip GoogleSearch.wsdl -m matteo@jimi:/usr/local/src/beagle/Util$ make wsdl -namespace:Beagle.Util -out:GoogleSearch.cs GoogleSearch.wsdl Mono Web Services Description Language Utility Error: <operation xmlns='http://schemas.xmlsoap.org/wsdl/soap/'> was not expected make: *** [GoogleSearch.cs] Error 2 i tried downloading the sources from debian sid but there don't seem to be configure options for avoiding validation in wsdl... well, i'm going to look for another wsdl binary maybe (when i've got more time)
I was able to build a GoogleSearch.cs with debian mono 1.0.5 and a beagle-0.6.1 tarball. It did not work with beagle from cvs, though it were the same wsdl files. My guess at the time was that some other file is involved. I ran a sniffer, but could not detect any http traffic, i ran strace but could find no difference between the two runs. I updated to mono 1.1.4 and now I cannot build the interface, i just copy the old GoogleSearch.cs to the Util dir after every make clean.
ciao mario! :-) did you really manage to have the wsdl binary from debian sid repository write GoogleSearch.cs with *that* GoogleSearch.wsdl (the one in the tarball)? here it doesn't work: matteo@jimi:~/tarballs$ wget http://ftp.gnome.org/pub/GNOME/sources/beagle/0.0/beagle-0.0.6.1.tar.gz matteo@jimi:~/tarballs$ tar xvzf beagle-0.0.6.1.tar.gz -C /usr/local/src/ matteo@jimi:~/tarballs$ cd /usr/local/src/beagle-0.0.6.1/ matteo@jimi:/usr/local/src/beagle-0.0.6.1$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig && ./configure && make last lines of configure and the whole make output: Prefix: /usr/local Evolution-Sharp? no gsf-sharp? no gst-sharp? yes Epiphany Extension? no (missing dependencies) Mozilla Extension? yes wv1? no Enable Network no make all-recursive make[1]: Entering directory `/usr/local/src/beagle-0.0.6.1' Making all in Util make[2]: Entering directory `/usr/local/src/beagle-0.0.6.1/Util' wsdl -namespace:Beagle.Util -out:GoogleSearch.cs GoogleSearch.wsdl Mono Web Services Description Language Utility Error: <operation xmlns='http://schemas.xmlsoap.org/wsdl/soap/'> was not expected make[2]: *** [GoogleSearch.cs] Error 2 make[2]: Leaving directory `/usr/local/src/beagle-0.0.6.1/Util' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/beagle-0.0.6.1' make: *** [all] Error 2 so, no differences between tarballs and cvs. i've already dumped my mono installed packages before, now i have reduced that but there are no changes, anyway: # apt-show-versions |grep mono mono-assemblies-base/unstable uptodate 1.0.5-3 mono-jay/unstable uptodate 1.0.5-3 mono-mcs/unstable uptodate 1.0.5-3 monodoc/unstable uptodate 1.0.4-1 monodoc-browser/unstable uptodate 1.0.4-1 monodevelop/unstable uptodate 0.5.1-2 libmono-dev/unstable uptodate 1.0.5-2 monodoc-manual/unstable uptodate 1.0.4-1 monodoc-base/unstable uptodate 1.0.4-1 mono-common/unstable uptodate 1.0.5-2 libmono0/unstable uptodate 1.0.5-2 mono-jit/unstable uptodate 1.0.5-2 maybe it has got something to do with some libraries i have installed and that can do the validation trick for my wsdl program while others don't have it so their program falls back on parsing this file without validating it. anyway, i can't find them (and the whole validation stuff seems to be in the mono-mcs package, so i can't understand). a question to everybody reading this thread (assuming you are all debian-sid users, otherwise why should you be reading this?): which is the most stable mono release i should adopt in order to try out this piece of software in a usable fashion? is it easy to let cohabit debian's mono (and all the packages which depend from it) and mono's mono without having to do extra work at every debian upgrade? if there's extra work to be done, i won't do it :-) i've always lived without beagle, and i can go on like that. any hints? thx bye matteo ps: if someone sends me/uploads here his/her own GoogleSearch.cs i could try and go on with the compilation and maybe that could suggest something for my problem. pps: mario: after moving to mono 1.1.4 (from source, i guess...) + GoogleSearch.cs did you notice any other problems with compilation? ppps: all of this just because google doesn't seem to respect wsdl schema... ah! the power of echelon! ;-)
Created attachment 37977 [details] the 'missing' file
I just tried on another computer and it works for me. Prefix: /usr/local Evolution-Sharp? yes gsf-sharp? no gst-sharp? no Epiphany Extension? no (missing dependencies) Mozilla Extension? yes wv1? no Enable Network no (0) mm@curta:~/src/beagle/beagle-0.0.6.1$ cd Util/ (0) mm@curta:~/src/beagle/beagle-0.0.6.1/Util$ make wsdl -namespace:Beagle.Util -out:GoogleSearch.cs GoogleSearch.wsdl Mono Web Services Description Language Utility Writing file 'GoogleSearch.cs' I tried the cvs again and now it is working, too. I have this mono packages installed: apt-show-versions |grep mono |grep install mono-assemblies-base 1.0.5-2 install ok installed mono-mcs 1.0.5-2 install ok installed mono-assemblies-arch 1.0.5-2 install ok installed mono-utils 1.0.5-1 install ok installed libmono-dev 1.0.5-2 install ok installed mono-common 1.0.5-1 install ok installed libmono0 1.0.5-2 install ok installed mono-jit 1.0.5-1 install ok installed mono 1.0.5-1 install ok installed Just upgraded some of these packages to current debian unstable and it is still working. I also installed the following packages: libgtkspell-dev epiphany-browser-dev evolution-data-server-dev libglib2.0-dev libmono-dev mozilla-dev libdbus-cil libgconf-cil libgecko-cil libglade-cil libglib-cil libgnome-cil libgtk-cil libgtksourceview-cil libvte-cil Moving to mono 1.1.4 was not that hard. I downloaded the source tar ball and did "./configure;make". Then I decided I want packages instead. So I copied the debian dir from debians mono source and run "dch -d" to upgrade the version number, after this "fakeroot dpkg-buildpackage -nc" worked. Debian splits the assemblies. So i copied the unstable mcs directory somewhere else and put the "debian" dir from "apt-get source mono-mcs" into it, ran "dch -d" again. Building the assemblies gave some error about a missing gacutils, fixed that with a symlink. I'm sorry I forgot to reset my cflags, so I can't really share the packages i guess. mono 1.1.4 and GoogleSearch.wsdl is no real improvement. It just throws return code 255 and no error message.
Oops. My 'home-brewn' mono packages make more problems than expected. 'wsdl' never worked cause it did not find 'wsdl.exe', there are some symlinks missing in '/usr/share/dotnet/bin/'. If i call '/usr/share/dotnet/mono/1.0/wsdl.exe -namespace:Beagle.Util -out:GoogleSearch.cs GoogleSearch.wsdl' everything is fine with mono 1.1.4. So maybe I should have used 'checkinstall' instead of copying debian dirs around...
well i've just tried on another machine with the *same* mono set-up (debian sid, 1.0.5-3) and wsdl works for the .wsdl in 0.0.7 new release... downloaded that release on the previous PC and it keeps on complaining about schemas... as i'm missing some other libs on the new machine i haven't tried building the whole beagle on it, and i've got no time for it now... anyway, i think this issue is definitely not about beagle but about debian packaging (and maybe google, i don't think their wsdl doc is correct, at least with those namespace declarations). if i find out something about sid packages, i'm going to tell the maintainers. it would be nice to find out that someone is going to build debian packages for http://www.mono-project.com/Downloads#Unstable_release. i'm definitely not going to be that one. :-) should i close this bug? it's the first time i use a bugzilla, don't know what's best... maybe set this "NOTGNOME"?
It sounds like NOTGNOME to me. Matteo and Mario: Thanks for taking the time to look into his.
yes, it is NOTGNOME, it looks like it's Mono's: http://bugzilla.ximian.com/show_bug.cgi?id=72568 the conclusion seems to be: use mono 1.1.4 also see this: http://www.beaglewiki.org/index.php/DebianInstall and this post: http://mail.gnome.org/archives/dashboard-hackers/2005-March/msg00042.html