On 2021/04/13 17:40, Stuart Henderson wrote: > On 2021/04/13 18:28, Marcus MERIGHI wrote: > > Hello! > > > > After pkg_add'ing games/supertux and starting it I get: > > > > $ supertux2 > > [FATAL] > > /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/main.cpp:601 > > Unexpected exception: boost::filesystem::status: Permission denied: > > "/usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/data/credits.stxt" > > > > Do I miss something? Or have I found a breakage? > > > > Marcus > > > > Looks like PREFIX in games/supertux/patches/patch-src_supertux_main_cpp > should really be TRUEPREFIX. > > Here's a diff but I can't check if it fixes things because I don't hit > this error, just an immediate segfault at startup (backtrace for that > below).
Marcus, you can fetch a pre-built package at https://junkpile.org/supertux-0.6.0p3.tgz if that's easier to test. Better trace from my crash with symbols. I tried another sdl2 program (neverball) and that worked ok. (gdb) bt #0 SDL_memcpySSE (dst=0x85343a82fa0 "", src=0x852c7332fa0 "", len=128) at /usr/obj/ports/sdl2-2.0.14/SDL2-2.0.14/src/video/SDL_blit_copy.c:40 #1 SDL_BlitCopy (info=<optimized out>) at /usr/obj/ports/sdl2-2.0.14/SDL2-2.0.14/src/video/SDL_blit_copy.c:135 #2 0x000008534606b78a in SDL_SoftBlit (src=0x852cb6e7600, srcrect=<optimized out>, dst=0x852cb6f5780, dstrect=0x7f7ffffe5b50) at /usr/obj/ports/sdl2-2.0.14/SDL2-2.0.14/src/video/SDL_blit.c:88 #3 0x00000853460a5e9b in SDL_LowerBlit_REAL (src=0x852cb6e7600, srcrect=<optimized out>, dst=0x852cb6f5780, dstrect=0x7f7ffffe5b50) at /usr/obj/ports/sdl2-2.0.14/SDL2-2.0.14/src/video/SDL_surface.c:642 #4 SDL_UpperBlit_REAL (src=0x852cb6e7600, srcrect=<optimized out>, dst=0x852cb6f5780, dstrect=0x7f7ffffe5b50) at /usr/obj/ports/sdl2-2.0.14/SDL2-2.0.14/src/video/SDL_surface.c:739 #5 0x000008506842a5f8 in GLTexture::GLTexture (this=0x852cb6e7100, image=..., sampler=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/video/gl/gl_texture.cpp:92 #6 0x000008506842612e in GLVideoSystem::new_texture (this=<optimized out>, image=..., sampler=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/video/gl/gl_video_system.cpp:282 #7 0x000008506842091a in TextureManager::create_image_texture_raw (this=<optimized out>, filename=..., rect=..., sampler=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/video/texture_manager.cpp:324 #8 0x00000850684204ec in TextureManager::create_image_texture (this=0x852f7decc00, filename=..., rect=..., sampler=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/video/texture_manager.cpp:261 #9 0x000008506841fda4 in TextureManager::get (this=<optimized out>, _filename=..., rect=..., sampler=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/video/texture_manager.cpp:228 #10 0x000008506841dabf in Surface::from_file (filename=..., rect=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/video/surface.cpp:78 #11 0x00000850683fe793 in TileSetParser::parse_imagespecs (this=<optimized out>, images_mapping=..., surface_region=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/tile_set_parser.cpp:333 #12 0x00000850683fd142 in TileSetParser::parse_tiles (this=<optimized out>, reader=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/tile_set_parser.cpp:297 #13 0x00000850683fc079 in TileSetParser::parse (this=<optimized out>) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/tile_set_parser.cpp:72 #14 0x00000850683fada1 in TileSet::from_file (filename=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/tile_set.cpp:41 #15 0x00000850683fa87c in TileManager::get_tileset (this=<optimized out>, filename=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/tile_manager.cpp:38 #16 0x00000850682ef550 in GameObjectFactory::init_factories()::$_0::operator()(ReaderMapping const&) const ( this=<optimized out>, reader=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/game_object_factory.cpp:262 #17 std::__1::__invoke<GameObjectFactory::init_factories()::$_0&, ReaderMapping const&> (__f=..., __args=...) at /usr/include/c++/v1/type_traits:3539 #18 std::__1::__invoke_void_return_wrapper<std::__1::unique_ptr<GameObject, std::__1::default_delete<GameObject> > >::__call<GameObjectFactory::init_factories()::$_0&, ReaderMapping const&>(GameObjectFactory::init_factories()::$_0&, ReaderMapping const&) (__args=..., __args=...) at /usr/include/c++/v1/__functional_base:317 ---Type <return> to continue, or q <return> to quit--- #19 std::__1::__function::__alloc_func<GameObjectFactory::init_factories()::$_0, std::__1::allocator<GameObjectFactory::init_factories()::$_0>, std::__1::unique_ptr<GameObject, std::__1::default_delete<GameObject> > (ReaderMapping const&)>::operator()(ReaderMapping const&) (this=<optimized out>, __arg=...) at /usr/include/c++/v1/functional:1540 #20 std::__1::__function::__func<GameObjectFactory::init_factories()::$_0, std::__1::allocator<GameObjectFactory::init_factories()::$_0>, std::__1::unique_ptr<GameObject, std::__1::default_delete<GameObject> > (ReaderMapping const&)>::operator()(ReaderMapping const&) (this=<optimized out>, __arg=...) at /usr/include/c++/v1/functional:1714 #21 0x00000850683ded70 in std::__1::__function::__value_func<std::__1::unique_ptr<GameObject, std::__1::default_delete<GameObject> > (ReaderMapping const&)>::operator()(ReaderMapping const&) const (this=<optimized out>, __args=...) at /usr/include/c++/v1/functional:1867 #22 std::__1::function<std::__1::unique_ptr<GameObject, std::__1::default_delete<GameObject> > (ReaderMapping const&)>::operator()(ReaderMapping const&) const (this=<optimized out>, __arg=...) at /usr/include/c++/v1/functional:2473 #23 ObjectFactory::create (this=<optimized out>, name=..., reader=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/object_factory.cpp:42 #24 0x00000850683f445d in SectorParser::parse_object (this=<optimized out>, name_=..., reader=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/sector_parser.cpp:89 #25 0x00000850683f233b in SectorParser::parse (this=0x7f7ffffe67c0, sector=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/sector_parser.cpp:141 #26 0x00000850683f1d09 in SectorParser::from_reader (level=..., reader=..., editable=2) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/sector_parser.cpp:52 #27 0x00000850682af9ad in LevelParser::load (this=0x7f7ffffe6a50, doc=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/level_parser.cpp:173 #28 0x00000850682ae999 in LevelParser::load (this=0x7f7ffffe6a50, filepath=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/level_parser.cpp:138 #29 0x00000850682ae8da in LevelParser::from_file (filename=..., worldmap=false, editable=false) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/level_parser.cpp:70 #30 0x00000850682617ea in GameSession::restart_level (this=0x8527ca46600, after_death=<optimized out>) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/game_session.cpp:119 #31 0x000008506826149a in GameSession::GameSession (this=0x8527ca46600, levelfile_=..., savegame=..., statistics=0x0) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/game_session.cpp:75 #32 0x00000850683ff291 in TitleScreen::TitleScreen (this=0x852b7e09e80, savegame=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/title_screen.cpp:41 #33 0x0000085068259527 in std::__1::make_unique<TitleScreen, Savegame&> (__args=...) at /usr/include/c++/v1/memory:3028 #34 Main::launch_game (this=<optimized out>, args=...) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/main.cpp:521 #35 0x0000085068259e8a in Main::run (this=<optimized out>, argc=<optimized out>, argv=0x7f7ffffe7588) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/supertux/main.cpp:595 #36 0x00000850682576cb in main (argc=-952946784, argv=0x100) at /usr/obj/ports/supertux-0.6.0/SuperTux-v0.6.0-Source/src/main.cpp:23