http://bugs.winehq.org/show_bug.cgi?id=24897
Summary: Age of Empires III trial complains "parsing error in Fonts2.xml" without native msxml4 Product: Wine Version: 1.3.5 Platform: x86 URL: http://www.agecommunity.com/all_downloads.aspx OS/Version: Linux Status: NEW Keywords: download, Installer Severity: normal Priority: P2 Component: msxml4 AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
The game installs fine, but when you start, it aborts with a dialog box. The +msxml,+text log shows:
trace:msxml:bind_url L"file:\\C:\Program Files\Microsoft Games\Age of Empires III Trial\Fonts\Fonts2.xml" trace:msxml:bsc_AddRef (0x133b40) ref=2 trace:msxml:bsc_QueryInterface interface {6d5140c1-7436-11ce-8034-00aa006009fa} not implemented trace:msxml:bsc_QueryInterface interface {aaa74ef9-8ee7-4659-88d9-f8c504da73cc} not implemented trace:msxml:bsc_OnStartBinding (0x133b40)->(ff 0x16d478) trace:msxml:bsc_QueryInterface interface {79eac9e4-baf9-11ce-8c82-00aa004ba90b} not implemented trace:msxml:bsc_OnDataAvailable (0x133b40)->(5 91592 0x32c10c 0x32c120) trace:msxml:bsc_OnStopBinding (0x133b40)->(00000000 (null)) trace:msxml:saxxmlreader_AddRef 0x16d3c0 trace:msxml:SAXLocator_create returning 0x16dc18 fixme:msxml:libxmlFatalError Error handling is not compatible. ... trace:text:DrawTextExW L"XML parsing error in Fonts2.xml. No fonts will be loaded.", -1, [(0,0)-(180,110)] 00000050
The dialog keeps coming up multiple times, not sure if you can play by just clicking ok over and over, it's quite annoying.
winetricks msxml3 doesn't help, but winetricks msxml4 does.
Once past startup successfully, you can remove the msmxl4 override, the game will then start ok; seems this is only needed on first run?
http://bugs.winehq.org/show_bug.cgi?id=24897
Adam Martinson amartinson@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |amartinson@codeweavers.com
--- Comment #1 from Adam Martinson amartinson@codeweavers.com 2010-10-25 22:19:42 CDT --- Attach a log with +msxml please.
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #2 from Dan Kegel dank@kegel.com 2010-10-25 23:36:00 CDT --- Created an attachment (id=31532) --> (http://bugs.winehq.org/attachment.cgi?id=31532) +relay log of problem (I hit ^c when the dialog box appeared)
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #3 from Dan Kegel dank@kegel.com 2010-10-26 11:12:49 CDT --- (In reply to comment #2)
Created an attachment (id=31532)
--> (http://bugs.winehq.org/attachment.cgi?id=31532) [details]
+relay log of problem (I hit ^c when the dialog box appeared)
err, that was an +msxml log, not a +relay log.
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #4 from Adam Martinson amartinson@codeweavers.com 2010-10-26 13:43:55 CDT --- (In reply to comment #3)
trace:msxml:bind_url L"file:\\C:\Program Files\Microsoft Games\Age of Empires III Trial\Fonts\Fonts2.xml" trace:msxml:bsc_AddRef (0x14ade8) ref=2 trace:msxml:bsc_QueryInterface interface {6d5140c1-7436-11ce-8034-00aa006009fa} not implemented trace:msxml:bsc_QueryInterface interface {aaa74ef9-8ee7-4659-88d9-f8c504da73cc} not implemented trace:msxml:bsc_OnStartBinding (0x14ade8)->(ff 0x1828e0) trace:msxml:bsc_QueryInterface interface {79eac9e4-baf9-11ce-8c82-00aa004ba90b} not implemented
I would bet the problem is one or more of the unimplemented interfaces.
trace:msxml:bsc_OnDataAvailable (0x14ade8)->(5 91592 0x32c10c 0x32c120) trace:msxml:bsc_OnStopBinding (0x14ade8)->(00000000 (null)) trace:msxml:saxxmlreader_AddRef 0x182828 trace:msxml:SAXLocator_create returning 0x182f98 fixme:msxml:libxmlFatalError Error handling is not compatible.
There is a problem with the fatal error callback, but it shouldn't get there unless there were serious problems before that.
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #5 from Nikolay Sivov bunglehead@gmail.com 2010-10-26 16:29:53 CDT --- Created an attachment (id=31543) --> (http://bugs.winehq.org/attachment.cgi?id=31543) patch
Dan, please attach new log +msxml,+tid with that patch, I'd like to see if some readable output will be in.
P.S. reported unimplemented interfaces aren't a problem, it's only about urlmon and our bind callback interaction, urlmon queries for supported interfaces to call more methods during bind operation. Application can't mess with that too.
http://bugs.winehq.org/show_bug.cgi?id=24897
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #31543|0 |1 is obsolete| |
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com 2010-10-27 18:46:47 CDT --- This file has valid UTF-8 BOM mark, and it is UTF-8 encoded. Specified encoding in a file is UTF-16, so it doesn't match BOM and actual encoding. If I understand XML spec right this case should be considered as a fatal error for a parser.
libxml2 does the following:
- detects input encoding using BOM; - finds encoding attribute in xml declaration, UTF-16 for this file; - encodings don't match and we didn't specify explicit encoding for parser context, so it means a fatal error for it.
This clearly needs some tests to figure out a possible workaround for that, I'll start with that. We did something similar for DOM parsing already, some mess with default parser encoding.
http://bugs.winehq.org/show_bug.cgi?id=24897
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|wine-bugs@winehq.org |bunglehead@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #7 from Nikolay Sivov bunglehead@gmail.com 2010-10-28 17:45:06 CDT --- Finally it appears to work for me, and this is a bit surprising cause I didn't make any fixes for that. I don't see any fatal errors. Here is a part of log:
--- 0009:trace:msxml:internal_putContentHandler (0x1af488)->(0x33e0b8) 0009:trace:msxml:internal_putErrorHandler (0x1af488)->(0x33e0bc) 0009:trace:msxml:internal_parseURL (0x1af488)->(L"file:\\C:\Program Files\Microsoft Games\Age of Empires III Trial\Fonts\Fonts2.xml") 0009:trace:msxml:bind_url L"file:\\C:\Program Files\Microsoft Games\Age of Empires III Trial\Fonts\Fonts2.xml" 0009:trace:msxml:bsc_AddRef (0x12e788) ref=2 0009:trace:msxml:bsc_QueryInterface interface {6d5140c1-7436-11ce-8034-00aa006009fa} not implemented 0009:trace:msxml:bsc_QueryInterface interface {aaa74ef9-8ee7-4659-88d9-f8c504da73cc} not implemented 0009:trace:msxml:bsc_OnStartBinding (0x12e788)->(ff 0x1af540) 0009:trace:msxml:bsc_QueryInterface interface {79eac9e4-baf9-11ce-8c82-00aa004ba90b} not implemented 0009:trace:msxml:bsc_OnDataAvailable (0x12e788)->(5 91592 0x33c0ac 0x33c0c0) 0009:trace:msxml:bsc_OnStopBinding (0x12e788)->(00000000 (null)) 0009:trace:msxml:saxxmlreader_AddRef 0x1af488 0009:trace:msxml:SAXLocator_create returning 0x1afaf0 0009:trace:msxml:SAXAttributes_create returning 0x21e4c0 0009:trace:msxml:isaxattributes_getLength Length set to 0 0009:trace:msxml:isaxattributes_Release 0x21e4c0 0009:trace:msxml:SAXAttributes_create returning 0x21e4c0 0009:trace:msxml:isaxattributes_getLength Length set to 1 0009:trace:msxml:isaxattributes_getLocalName (0x21e4c0)->(0) 0009:trace:msxml:isaxattributes_getValue (0x21e4c0)->(0) 0009:trace:msxml:isaxattributes_Release 0x21e4c0 ... (and so on) ---
I have some uncommitted patches, but they shouldn't make any differences (yesterday I tried cleanly and it still loaded fine, didn't capture a log though but no message boxes).
Dan, what libxml2 version are you running?
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #8 from Dan Kegel dank@kegel.com 2010-10-28 17:52:04 CDT --- libxml2-2.7.6
This is Gentoo, but http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/libxml2/lib... seems to show they're not doing any patching.
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #9 from Nikolay Sivov bunglehead@gmail.com 2010-10-28 18:03:37 CDT --- Mine is 2.6.32.dfsg-5+lenny1.
Is it possible for you to downgrade to vanilla 2.6.32 for example?
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #10 from Nikolay Sivov bunglehead@gmail.com 2010-10-28 18:57:03 CDT --- It fails for you because of libxml2 change that introduce a regression at wine side.
Particular commit is http://git.gnome.org/browse/libxml2/commit/?id=373345764b92c5959154ec233163a... (see commit comment and comment at xmlParseEncodingDecl chunk).
Commit is between 2.6.32 and 2.7.0.
I'll prepare a workaround for that.
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #11 from Nikolay Sivov bunglehead@gmail.com 2010-10-29 17:17:41 CDT --- Created an attachment (id=31587) --> (http://bugs.winehq.org/attachment.cgi?id=31587) patch
Dan, try this one over 1.3.6. Also please run 'make test' for msxml3 with it to make sure modern libxml2 will pass it.
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #12 from Dan Kegel dank@kegel.com 2010-10-30 08:19:19 CDT --- 'make test' is fine, but the user symptom is the same. Here's the current hitch from the log:
trace:msxml:internal_parseURL (0x132f80)->(L"file:\\C:\Program Files\Microsoft Games\Age of Empires III Trial\Fonts\Fonts2.xml") trace:msxml:bind_url L"file:\\C:\Program Files\Microsoft Games\Age of Empires III Trial\Fonts\Fonts2.xml" ... trace:msxml:internal_parseBuffer detected encoding: UTF-8 trace:msxml:libxmlFatalError fatal error for 0x1932b0: L"Start tag expected, '<' not found\n"
I'm attaching the log and the .xml file.
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #13 from Dan Kegel dank@kegel.com 2010-10-30 08:20:05 CDT --- Created an attachment (id=31591) --> (http://bugs.winehq.org/attachment.cgi?id=31591) tarball containing +msxml log and offending .xml file
http://bugs.winehq.org/show_bug.cgi?id=24897
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #31587|0 |1 is obsolete| |
--- Comment #14 from Nikolay Sivov bunglehead@gmail.com 2010-10-30 09:51:18 CDT --- Created an attachment (id=31593) --> (http://bugs.winehq.org/attachment.cgi?id=31593) patch2
Ok, a new fatal error comes out because parser doesn't expect BOM at this point. Try this second iteration patch.
http://bugs.winehq.org/show_bug.cgi?id=24897
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
--- Comment #15 from Dan Kegel dank@kegel.com 2010-10-30 13:15:31 CDT --- That one works. Thanks!
http://bugs.winehq.org/show_bug.cgi?id=24897
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|Installer | Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #16 from Nikolay Sivov bunglehead@gmail.com 2010-11-01 16:40:09 CDT --- Fixed by 678fbc172c5f54e6417f0fc1336a0a3b444b444c.
http://bugs.winehq.org/show_bug.cgi?id=24897
--- Comment #17 from Dan Kegel dank@kegel.com 2010-11-02 00:16:48 CDT --- Fast work, thanks!
http://bugs.winehq.org/show_bug.cgi?id=24897
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |shannon.vanwagner@gmail.com
--- Comment #18 from Nikolay Sivov bunglehead@gmail.com 2010-11-06 15:16:35 CDT --- *** Bug 25050 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=24897
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #19 from Alexandre Julliard julliard@winehq.org 2010-11-12 13:34:48 CST --- Closing bugs fixed in 1.3.7.
https://bugs.winehq.org/show_bug.cgi?id=24897
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|bunglehead@gmail.com |wine-bugs@winehq.org