Bug#1095714: caveexpress FTBFS: SDLSoundEngine.cpp:34:23: error: cannot convert ‘_Mix_Music*’ to ‘Mix_Music*’

Helmut Grohne helmut at subdivi.de
Mon Feb 10 12:31:51 GMT 2025


Source: caveexpress
Version: 2.5.2-3
Severity: serious
Tags: ftbfs

caveexpress fails to build from source in unstable on amd64. A
non-parallel build log ends as follows:

| [ 20%] Building CXX object src/modules/sound/CMakeFiles/sound.dir/SDLSoundEngine.cpp.o
| cd /build/reproducible-path/caveexpress-2.5.2/obj-x86_64-linux-gnu/src/modules/sound && /usr/bin/c++ -DHAVE_LUA_H -DPKGDATADIR=\"/usr/share/games\" -I/build/reproducible-path/caveexpress-2.5.2/src/modules/physics -I/build/reproducible-path/caveexpress-2.5.2/obj-x86_64-linux-gnu -I/build/reproducible-path/caveexpress-2.5.2/src -I/build/reproducible-path/caveexpress-2.5.2/src/modules -I/usr/include/SDL2 -I/usr/include/lua5.4 -I/usr/include/box2d -I/usr/include/glm -g -O2 -ffile-prefix-map=/build/reproducible-path/caveexpress-2.5.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fno-exceptions -fno-rtti -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/caveexpress-2.5.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wcast-qual -Wcast-align -Wpointer-arith -Wno-long-long -Wno-multichar -Wshadow -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wreturn-type -Wwrite-strings -Wno-variadic-macros -Wno-unknown-pragmas -pthread -Wnon-virtual-dtor -std=c++11 -fno-exceptions -fno-rtti -std=c++11 -fno-exceptions -fno-rtti -std=c++11 -fno-exceptions -fno-rtti -std=c++11 -fno-exceptions -fno-rtti -std=c++11 -fno-exceptions -fno-rtti -std=c++11 -fno-exceptions -fno-rtti -std=c++11 -fno-exceptions -fno-rtti -std=c++11 -fno-exceptions -fno-rtti -std=c++11 -fno-exceptions -fno-rtti -DNDEBUG -O3 -DNDEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE -D_FORTIFY_SOURCE=2 -DNDEBUG -fexpensive-optimizations -fomit-frame-pointer -O3 -std=c++11 -fPIC -MD -MT src/modules/sound/CMakeFiles/sound.dir/SDLSoundEngine.cpp.o -MF CMakeFiles/sound.dir/SDLSoundEngine.cpp.o.d -o CMakeFiles/sound.dir/SDLSoundEngine.cpp.o -c /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp
| cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp: In destructor ‘virtual SDLSoundEngine::~SDLSoundEngine()’:
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp:34:23: error: cannot convert ‘_Mix_Music*’ to ‘Mix_Music*’
|    34 |         Mix_FreeMusic(_music);
|       |                       ^~~~~~
|       |                       |
|       |                       _Mix_Music*
| In file included from /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp:11:
| /usr/include/SDL2/SDL_mixer.h:844:55: note:   initializing argument 1 of ‘void Mix_FreeMusic(Mix_Music*)’
|   844 | extern DECLSPEC void SDLCALL Mix_FreeMusic(Mix_Music *music);
|       |                                            ~~~~~~~~~~~^~~~~
| In file included from /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp:1:
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.h:8:8: note: class type ‘_Mix_Music’ is incomplete
|     8 | struct _Mix_Music;
|       |        ^~~~~~~~~~
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp: In member function ‘virtual void SDLSoundEngine::close()’:
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp:116:23: error: cannot convert ‘_Mix_Music*’ to ‘Mix_Music*’
|   116 |         Mix_FreeMusic(_music);
|       |                       ^~~~~~
|       |                       |
|       |                       _Mix_Music*
| /usr/include/SDL2/SDL_mixer.h:844:55: note:   initializing argument 1 of ‘void Mix_FreeMusic(Mix_Music*)’
|   844 | extern DECLSPEC void SDLCALL Mix_FreeMusic(Mix_Music *music);
|       |                                            ~~~~~~~~~~~^~~~~
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.h:8:8: note: class type ‘_Mix_Music’ is incomplete
|     8 | struct _Mix_Music;
|       |        ^~~~~~~~~~
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp: In member function ‘virtual int SDLSoundEngine::playMusic(const std::string&, bool)’:
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp:149:23: error: cannot convert ‘_Mix_Music*’ to ‘Mix_Music*’
|   149 |         Mix_FreeMusic(_music);
|       |                       ^~~~~~
|       |                       |
|       |                       _Mix_Music*
| /usr/include/SDL2/SDL_mixer.h:844:55: note:   initializing argument 1 of ‘void Mix_FreeMusic(Mix_Music*)’
|   844 | extern DECLSPEC void SDLCALL Mix_FreeMusic(Mix_Music *music);
|       |                                            ~~~~~~~~~~~^~~~~
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.h:8:8: note: class type ‘_Mix_Music’ is incomplete
|     8 | struct _Mix_Music;
|       |        ^~~~~~~~~~
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp:158:32: error: cannot convert ‘Mix_Music*’ to ‘_Mix_Music*’ in assignment
|   158 |         _music = Mix_LoadMUS_RW(rwops, 1);
|       |                  ~~~~~~~~~~~~~~^~~~~~~~~~
|       |                                |
|       |                                Mix_Music*
| /usr/include/SDL2/SDL_mixer.h:269:16: note: class type ‘Mix_Music’ is incomplete
|   269 | typedef struct Mix_Music Mix_Music;
|       |                ^~~~~~~~~
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp:167:39: error: cannot convert ‘_Mix_Music*’ to ‘Mix_Music*’
|   167 |         const int ret = Mix_PlayMusic(_music, loop ? -1 : 1);
|       |                                       ^~~~~~
|       |                                       |
|       |                                       _Mix_Music*
| /usr/include/SDL2/SDL_mixer.h:1834:54: note:   initializing argument 1 of ‘int Mix_PlayMusic(Mix_Music*, int)’
|  1834 | extern DECLSPEC int SDLCALL Mix_PlayMusic(Mix_Music *music, int loops);
|       |                                           ~~~~~~~~~~~^~~~~
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.h:8:8: note: class type ‘_Mix_Music’ is incomplete
|     8 | struct _Mix_Music;
|       |        ^~~~~~~~~~
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp: In member function ‘virtual void SDLSoundEngine::haltMusic(int)’:
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.cpp:185:23: error: cannot convert ‘_Mix_Music*’ to ‘Mix_Music*’
|   185 |         Mix_FreeMusic(_music);
|       |                       ^~~~~~
|       |                       |
|       |                       _Mix_Music*
| /usr/include/SDL2/SDL_mixer.h:844:55: note:   initializing argument 1 of ‘void Mix_FreeMusic(Mix_Music*)’
|   844 | extern DECLSPEC void SDLCALL Mix_FreeMusic(Mix_Music *music);
|       |                                            ~~~~~~~~~~~^~~~~
| /build/reproducible-path/caveexpress-2.5.2/src/modules/sound/SDLSoundEngine.h:8:8: note: class type ‘_Mix_Music’ is incomplete
|     8 | struct _Mix_Music;
|       |        ^~~~~~~~~~
| make[3]: *** [src/modules/sound/CMakeFiles/sound.dir/build.make:96: src/modules/sound/CMakeFiles/sound.dir/SDLSoundEngine.cpp.o] Error 1
| make[3]: Leaving directory '/build/reproducible-path/caveexpress-2.5.2/obj-x86_64-linux-gnu'
| make[2]: *** [CMakeFiles/Makefile2:815: src/modules/sound/CMakeFiles/sound.dir/all] Error 2
| make[2]: Leaving directory '/build/reproducible-path/caveexpress-2.5.2/obj-x86_64-linux-gnu'
| make[1]: *** [Makefile:159: all] Error 2
| make[1]: Leaving directory '/build/reproducible-path/caveexpress-2.5.2/obj-x86_64-linux-gnu'
| dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j1 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
| make: *** [debian/rules:6: binary] Error 25
| dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

Helmut



More information about the Pkg-games-devel mailing list