Closed Ismail-Smile closed 2 months ago
Nothing to do with this bug, but that upload (like many Simplici7y files) is inauthentic. Check out the version at https://citadel.lhowon.org/ which uses a more modern automated tool to port the originals.
I didn't know of Citadel, thanks!
I'm not able to reproduce this issue with the citadel.lhowon.org port, for what it's worth
Just tried it with the version from Citadel and it crashes in the exact same way for me. Maybe it's fixed with AO 1.7.1? I'm using 1.7
/usr/include/c++/13.2.1/bits/stl_vector.h:1125: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = SoundHeader; _Alloc = std::allocator<SoundHeader>; reference = SoundHeader&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.
I tried it with 1.7, 1.7.1., and git. All worked fine. Can you post the output of ./configure? Maybe we have a different set of options enabled.
This is what .configure outputs for me. For what it's worth I'm compiling with an AUR build script. I also attach it at the end.
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for g++... g++
checking whether the compiler supports GNU Objective C++... no
checking whether g++ accepts -g... no
checking dependency style of g++... gcc3
checking for ranlib... ranlib
checking whether g++ supports C++17 features by default... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for unistd.h... (cached) yes
checking for pwd.h... yes
checking for boostlib >= 1.65.0 (106500)... yes
checking whether the Boost::System library is available... yes
checking for exit in -lboost_system... yes
checking whether the Boost::Filesystem library is available... yes
checking for exit in -lboost_filesystem... yes
checking for boost/tokenizer.hpp... yes
checking for boost/unordered_map.hpp... yes
checking for boost/algorithm/string/predicate.hpp... yes
checking for boost/iostreams/stream_buffer.hpp... yes
checking for boost/property_tree/xml_parser.hpp... yes
checking for boost/uuid/uuid.hpp... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking for sysconf... yes
checking for sysctlbyname... no
checking for mkstemp... yes
checking for library containing gethostbyname... none required
checking for library containing socket... none required
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for sdl2 >= 2.0.2... yes
checking for SDL2_ttf... yes
checking for SDL2_net... yes
checking for zlib... yes
checking for sndfile... yes
checking for openal >= 1.14.0... yes
checking for OpenGL support... yes
checking for gluScaleImage in -lGLU... yes
checking for GL/glext.h... yes
checking for SDL2_image... yes
checking for libavcodec >= 54.35.0 libavformat >= 54.20.0 libavutil >= 52.3.0 libswscale >= 2.1.1 libswresample >= 3.0.0 ... yes
checking for smpeg/smpeg.h... no
checking for libcurl >= 7.31.0... yes
checking for zziplib >= 0.10.75... yes
checking for libpng... yes
checking for miniupnpc/miniupnpc.h... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating AlephOne.spec
config.status: creating Source_Files/Makefile
config.status: creating Source_Files/CSeries/Makefile
config.status: creating Source_Files/FFmpeg/Makefile
config.status: creating Source_Files/Files/Makefile
config.status: creating Source_Files/GameWorld/Makefile
config.status: creating Source_Files/Input/Makefile
config.status: creating Source_Files/Lua/Makefile
config.status: creating Source_Files/Misc/Makefile
config.status: creating Source_Files/ModelView/Makefile
config.status: creating Source_Files/Network/Makefile
config.status: creating Source_Files/Network/Metaserver/Makefile
config.status: creating Source_Files/RenderMain/Makefile
config.status: creating Source_Files/RenderOther/Makefile
config.status: creating Source_Files/Sound/Makefile
config.status: creating Source_Files/TCPMess/Makefile
config.status: creating Source_Files/XML/Makefile
config.status: creating tools/Makefile
config.status: creating tools/headertest/GNUmakefile
config.status: creating data/Makefile
config.status: creating data/default_theme/Makefile
config.status: creating data/icons/Makefile
config.status: creating config.h
config.status: executing depfiles commands
Compilation settings:
CC: gcc
CXX: g++
CPP: gcc -E
CFLAGS: -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -flto=auto
CXXFLAGS: -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto
CPPFLAGS: -I/usr/include/libpng16 -I/usr/include/ffmpeg4.4 -I/usr/include/SDL2 -D_REENTRANT -I/usr/include/libpng16 -DHWY_SHARED_DEFINE -DAVIF_DLL -I/usr/include/webp -I/usr/include/AL -I/usr/include/opus -I/usr/include/SDL2 -D_REENTRANT -I/usr/include/SDL2 -D_REENTRANT -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/SDL2 -D_REENTRANT -DSDL
LDFLAGS: -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto
LIBS: -lpng16 -lzzip -lz -lcurl -L/usr/lib/ffmpeg4.4 -lavcodec -lavformat -lavutil -lswscale -lswresample -lSDL2_image -lSDL2 -lopenal -lsndfile -lz -lSDL2_net -lSDL2 -lSDL2_ttf -lSDL2 -lboost_filesystem -lboost_system -lSDL2 -lGL -lpthread -lGLU
Summary of optional features:
Enabled: OpenGL rendering
Enabled: built-in Lua scripting
Enabled: SDL2_image support
Enabled: FFmpeg playback and film export
Not found: SMPEG movie playback
Enabled: cURL for HTTP communication
Enabled: zziplib support
Enabled: libpng PNG screenshot support
Not found: miniupnpc support
AUR PKGBUILD file:
# Maintainer: Frederic Bezies <fredbezies at gmail dot com>
# Contributors: Marcin Skory, Arkham, Christoph Zeiler, Jacek Poplawski, carstene1ns
pkgname=alephone
_pkgdate=20240119
pkgver=1.7.1_$_pkgdate
pkgrel=1
pkgdesc='A free, enhanced port of the classic FPS "Marathon 2" by Bungie Software'
arch=('i686' 'x86_64')
url="https://alephone.lhowon.org/"
license=('GPL3')
depends=('sdl2_ttf' 'sdl2_image' 'sdl2_net' 'libmad' 'glu' 'zziplib'
'ffmpeg4.4' 'boost-libs' 'curl')
optdepends=('alephone-eternalx: community-made scenario'
'alephone-evil: community-made scenario'
'alephone-infinity: original data for Marathon Infinity'
'alephone-marathon: M1A1 data converted for AlephOne'
'alephone-marathon2: original data for Marathon 2: Durandal')
makedepends=('boost' 'mesa' 'icoutils')
source=("https://github.com/Aleph-One-Marathon/alephone/releases/download/release-$_pkgdate/AlephOne-$_pkgdate.tar.bz2")
sha256sums=('7acaa384e4abaad6a99d2f7117f1138609f673fbd6e214e932979c5d6e81cc04')
prepare() {
cd AlephOne-$_pkgdate
# convert the windows icons
cd Resources/Windows
icotool -x -w 48 alephone.ico -o "$srcdir"/alephone.png
icotool -x -w 48 marathon.ico -o "$srcdir"/alephone-marathon.png
icotool -x -w 48 marathon2.ico -o "$srcdir"/alephone-marathon2.png
icotool -x -w 48 marathon-infinity.ico -o "$srcdir"/alephone-infinity.png
}
build() {
cd AlephOne-$_pkgdate
PKG_CONFIG_PATH="/usr/lib/ffmpeg4.4/pkgconfig" ./configure --prefix=/usr
make
}
package() {
cd AlephOne-$_pkgdate
make DESTDIR="$pkgdir/" install
# icons
install -d "$pkgdir"/usr/share/icons
install -m644 "$srcdir"/*.png "$pkgdir"/usr/share/icons
# docs
#install -Dm644 README.txt "$pkgdir"/usr/share/doc/alephone/README
#install -m644 docs/*.html "$pkgdir"/usr/share/doc/alephone
}
That looks similar to what I have. Weird...
Tried with 1.7.1 from git and it worked perfectly! It must be one of the options from the PKGBUILD file from the AUR that is causing the problem.
Running ./configure from the git source gives me this:
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for g++... g++
checking whether the compiler supports GNU Objective C++... no
checking whether g++ accepts -g... no
checking dependency style of g++... gcc3
checking for ranlib... ranlib
checking whether g++ supports C++17 features by default... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for unistd.h... (cached) yes
checking for pwd.h... yes
checking for boostlib >= 1.65.0 (106500)... yes
checking whether the Boost::System library is available... yes
checking for exit in -lboost_system... yes
checking whether the Boost::Filesystem library is available... yes
checking for exit in -lboost_filesystem... yes
checking for boost/tokenizer.hpp... yes
checking for boost/unordered_map.hpp... yes
checking for boost/algorithm/string/predicate.hpp... yes
checking for boost/iostreams/stream_buffer.hpp... yes
checking for boost/property_tree/xml_parser.hpp... yes
checking for boost/uuid/uuid.hpp... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking for sysconf... yes
checking for sysctlbyname... no
checking for mkstemp... yes
checking for library containing gethostbyname... none required
checking for library containing socket... none required
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for sdl2 >= 2.0.2... yes
checking for SDL2_ttf... yes
checking for SDL2_net... yes
checking for zlib... yes
checking for sndfile... yes
checking for openal >= 1.14.0... yes
checking for OpenGL support... yes
checking for gluScaleImage in -lGLU... yes
checking for GL/glext.h... yes
checking for SDL2_image... yes
checking for libavcodec >= 54.35.0 libavformat >= 54.20.0 libavutil >= 52.3.0 libswscale >= 2.1.1 libswresample >= 3.0.0 ... yes
checking for smpeg/smpeg.h... no
checking for libcurl >= 7.31.0... yes
checking for zziplib >= 0.10.75... yes
checking for libpng... yes
checking for miniupnpc/miniupnpc.h... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating AlephOne.spec
config.status: creating Source_Files/Makefile
config.status: creating Source_Files/CSeries/Makefile
config.status: creating Source_Files/FFmpeg/Makefile
config.status: creating Source_Files/Files/Makefile
config.status: creating Source_Files/GameWorld/Makefile
config.status: creating Source_Files/Input/Makefile
config.status: creating Source_Files/Lua/Makefile
config.status: creating Source_Files/Misc/Makefile
config.status: creating Source_Files/ModelView/Makefile
config.status: creating Source_Files/Network/Makefile
config.status: creating Source_Files/Network/Metaserver/Makefile
config.status: creating Source_Files/RenderMain/Makefile
config.status: creating Source_Files/RenderOther/Makefile
config.status: creating Source_Files/Sound/Makefile
config.status: creating Source_Files/TCPMess/Makefile
config.status: creating Source_Files/XML/Makefile
config.status: creating tools/Makefile
config.status: creating tools/headertest/GNUmakefile
config.status: creating data/Makefile
config.status: creating data/default_theme/Makefile
config.status: creating data/icons/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
Compilation settings:
CC: gcc
CXX: g++
CPP: gcc -E
CFLAGS: -g -O2
CXXFLAGS: -g -O2
CPPFLAGS: -I/usr/include/libpng16 -I/usr/include/SDL2 -D_REENTRANT -I/usr/include/libpng16 -DHWY_SHARED_DEFINE -DAVIF_DLL -I/usr/include/webp -I/usr/include/AL -I/usr/include/opus -I/usr/include/SDL2 -D_REENTRANT -I/usr/include/SDL2 -D_REENTRANT -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/SDL2 -D_REENTRANT -DSDL
LDFLAGS:
LIBS: -lpng16 -lzzip -lz -lcurl -lavcodec -lavformat -lavutil -lswscale -lswresample -lSDL2_image -lSDL2 -lopenal -lsndfile -lz -lSDL2_net -lSDL2 -lSDL2_ttf -lSDL2 -lboost_filesystem -lboost_system -lSDL2 -lGL -lpthread -lGLU
Summary of optional features:
Enabled: OpenGL rendering
Enabled: built-in Lua scripting
Enabled: SDL2_image support
Enabled: FFmpeg playback and film export
Not found: SMPEG movie playback
Enabled: cURL for HTTP communication
Enabled: zziplib support
Enabled: libpng PNG screenshot support
Not found: miniupnpc support
Configuration done. Now type "make".
What jumps out to me as the most notable difference is that the AUR adds a lot of CXXFLAGS.
CXXFLAGS: -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto
Versus this:
CXXFLAGS: -g -O2
Going to the second map of Pfh'Joueur (from here https://simplici7y.com/items/pfh-joueur-a1-unimap-3/) titled Mera'Tahara, either by completing map 1 or by CTRL+SHIFT warping to it crashes to desktop with the following error message in the terminal:
/usr/include/c++/13.2.1/bits/stl_vector.h:1125: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = SoundHeader; _Alloc = std::allocator<SoundHeader>; reference = SoundHeader&; size_type = long unsigned int]: Assertion '__n < this->size()' failed. fish: Job 1, 'alephone .' terminated by signal SIGABRT (Abort)
The crash happens after the map intro image fades out. Tried on a fully updated Manjaro. This is the info that Aleph One prints on start: