media-autobuild_suite icon indicating copy to clipboard operation
media-autobuild_suite copied to clipboard

libmusicbrainz: xmlParser fails building

Open LigH-de opened this issue 8 months ago • 7 comments

[1/56] Building CXX object src/CMakeFiles/make-c-interface.dir/xmlParser.cc.o
FAILED: src/CMakeFiles/make-c-interface.dir/xmlParser.cc.o 
G:\MABS\msys64\mingw32\bin\ccache.exe  g++  -IG:/MABS/build/libmusicbrainz-git/build-32bit/src -IG:/MABS/build/libmusicbrainz-git/src -IG:/MABS/build/libmusicbrainz-git/src/.. -IG:/MABS/build/libmusicbrainz-git/src/../include -IG:/MABS/build/libmusicbrainz-git/build-32bit/src/../include -IG:/MABS/local32/include/neon -IG:/MABS/local32/include/libxml2 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -mtune=generic -O2 -pipe -D__USE_MINGW_ANSI_STDIO=1 -mthreads -DLIBXML_STATIC -Wall -Wextra -pedantic-errors -Werror -O3 -DNDEBUG -MD -MT src/CMakeFiles/make-c-interface.dir/xmlParser.cc.o -MF src\CMakeFiles\make-c-interface.dir\xmlParser.cc.o.d -o src/CMakeFiles/make-c-interface.dir/xmlParser.cc.o -c G:/MABS/build/libmusicbrainz-git/src/xmlParser.cc
G:/MABS/build/libmusicbrainz-git/src/xmlParser.cc: In static member function 'static XMLNode* XMLRootNode::parseFile(const std::string&, XMLResults*)':
G:/MABS/build/libmusicbrainz-git/src/xmlParser.cc:57:11: error: 'xmlParseFile' was not declared in this scope; did you mean 'xmlSaveFile'?
   57 |     doc = xmlParseFile(filename.c_str());
      |           ^~~~~~~~~~~~
      |           xmlSaveFile
G:/MABS/build/libmusicbrainz-git/src/xmlParser.cc:59:9: error: 'xmlErrorPtr' was not declared in this scope; did you mean 'xmlDocPtr'?
   59 |         xmlErrorPtr error = xmlGetLastError();
      |         ^~~~~~~~~~~
      |         xmlDocPtr
G:/MABS/build/libmusicbrainz-git/src/xmlParser.cc:60:28: error: 'error' was not declared in this scope; did you mean 'perror'?
   60 |         results->message = error->message;
      |                            ^~~~~
      |                            perror
G:/MABS/build/libmusicbrainz-git/src/xmlParser.cc: In static member function 'static XMLNode* XMLRootNode::parseString(const std::string&, XMLResults*)':
G:/MABS/build/libmusicbrainz-git/src/xmlParser.cc:72:11: error: 'xmlParseMemory' was not declared in this scope
   72 |     doc = xmlParseMemory(xml.c_str(), xml.length());
      |           ^~~~~~~~~~~~~~
G:/MABS/build/libmusicbrainz-git/src/xmlParser.cc:74:9: error: 'xmlErrorPtr' was not declared in this scope; did you mean 'xmlDocPtr'?
   74 |         xmlErrorPtr error = xmlGetLastError();
      |         ^~~~~~~~~~~
      |         xmlDocPtr
G:/MABS/build/libmusicbrainz-git/src/xmlParser.cc:75:28: error: 'error' was not declared in this scope; did you mean 'perror'?
   75 |         results->message = error->message;
      |                            ^~~~~
      |                            perror
ninja: build stopped: subcommand failed.

Note: libmusicbrainz is rather old, the sources in @wiiaboo fork at least 3 years, the xmlParser even 9 years. So the reason must be external. Possibly a sudden incompatibility with the newest GCC?

logs.zip

LigH-de avatar Oct 08 '23 14:10 LigH-de

BTW, the original repo has no "issues" page.

LigH-de avatar Oct 08 '23 14:10 LigH-de

I have also encountered the same problem, and there is no better solution yet. I suspect that:

XmlErrorPtr is defined in libxml2, does it lack a search path?

zhangran-cn avatar Oct 09 '23 03:10 zhangran-cn

G:\MABS\msys64\mingw32\bin\ccache.exe g++ -IG:/MABS/build/libmusicbrainz-git/build-32bit/src -IG:/MABS/build/libmusicbrainz-git/src -IG:/MABS/build/libmusicbrainz-git/src/.. -IG:/MABS/build/libmusicbrainz-git/src/../include -IG:/MABS/build/libmusicbrainz-git/build-32bit/src/../include -IG:/MABS/local32/include/neon -IG:/MABS/ local32/include/libxml2 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -mtune=generic -O2 -pipe -D__USE_MINGW_ANSI_STDIO=1 -mthreads -DLIBXML_STATIC -Wall -Wextra -pedantic-errors -Werror -O3 -DNDEBUG -MD -MT src/CMakeFiles/make-c-interface.dir/xmlParser.cc.o -MF src\CMakeFiles\make-c-interface.dir\xmlParser.cc.o.d -o src/CMakeFiles/make-c-interface.dir/xmlParser.cc.o -c G:/MABS/build/libmusicbrainz-git/src/xmlParser.cc

I don't have a path of local32/include/libxml2.

zhangran-cn avatar Oct 09 '23 03:10 zhangran-cn

Can you try https://github.com/m-ab-s/media-autobuild_suite/commit/e9c402e7a0cc9ccd03def6479efdcec0a8b0642d ? It seems it's due to changes done in libxml2 with transitive includes.

1480c1 avatar Oct 09 '23 03:10 1480c1

Can you try e9c402e ? It seems it's due to changes done in libxml2 with transitive includes.

Success, thank you!

zhangran-cn avatar Oct 09 '23 15:10 zhangran-cn

I guess you build without vulkan ? any hints on how to get a working build would be much appreciated.

hydra3333 avatar Oct 10 '23 02:10 hydra3333

Today I was able to build everything, non-free license, almost every module enabled.

Before running the suite I removed all the subdirectories in build and local## to enforce a completely fresh download and build of all sources.

media-autobuild_suite.ini.txt ffmpeg_options.txt

The only patch which failed was the "cabac not inline" patch for ffmepg.

compile.stripped.log

LigH-de avatar Oct 10 '23 19:10 LigH-de