Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
performous installs but does (almost) nothing...
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
Lebkoungcity
Apprentice
Apprentice


Joined: 16 Nov 2008
Posts: 217
Location: near Lebkoungcity (='Gingerbreadcity' =Nuremberg)

PostPosted: Tue Oct 29, 2024 3:15 pm    Post subject: performous installs but does (almost) nothing... Reply with quote

Hi :)

since about two years ago I played performous on my ThnkPad Yoga 460. For this I copied the ebuild for version performous-1.1-r3 and the file-directory with its patches I found here https://gpo.zugaina.org/games-arcade/performous to my '/usr/local/portage/games-arcade/', changed the keyword from ~amd64 to amd64 for convenience, ran 'ebuild performous-1.1-r3.ebuild manifest' and it worked. Same on my Raspberry Pi4 (with keyword arm64). (Did this because I didn't want to loose the ebuild in case the overlay would be changed - which was the case some time later.)
Now with newer ffmpeg's switch from libavresample to libswresample this version doesn't work anymore.

I was very happy to see performous came to the main portage tree with version 1.2.0 as testing. So I added it to my '/etc/portage/package.accept_keywords/package.keywords.original' and emerged it. But it doesn't run. All it does is to tell me this on both, the ThinkPad and the Pi4:

Code:
$ performous -l debug
logger/notice: Logging any events of debug or higher level. Log file: /home/andy/.cache/performous/infolog.txt
stderr/info: Standard error output redirected here
core/notice: Performous 1.2+ starting...
  Internationalization: Enabled
  MIDI Hardware I/O:    Disabled
  Webcam support:       Disabled
config/info: Parsing "/usr/share/performous/config/schema.xml"
config/info: Skipping "/etc/xdg/performous/config.xml" (not found)
config/info: Parsing "/home/andy/.config/performous/config.xml"
Abgebrochen


and this on the ThinkPad:

Code:
$ gdb performous
GNU gdb (Gentoo 15.2 vanilla) 15.2
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from performous...
(No debugging symbols found in performous)
(gdb) run
Starting program: /usr/bin/performous
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
logger/notice: Logging all notices, warnings and errors. Log file: /home/andy/.cache/performous/infolog.txt
[New Thread 0x7fffefd386c0 (LWP 9004)]
core/notice: Performous 1.2+ starting...
  Internationalization: Enabled
  MIDI Hardware I/O:    Disabled
  Webcam support:       Disabled

Thread 1 "performous" received signal SIGABRT, Aborted.
0x00007ffff51b50ac in ?? () from /lib64/libc.so.6
(gdb) show configuration
This GDB was configured as follows:
   configure --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu
             --with-auto-load-dir=$debugdir:$datadir/auto-load
             --with-auto-load-safe-path=$debugdir:$datadir/auto-load
             --with-expat
             --with-gdb-datadir=/usr/share/gdb (relocatable)
             --with-jit-reader-dir=/usr/lib64/gdb (relocatable)
             --without-libunwind-ia64
             --without-lzma
             --without-babeltrace
             --without-intel-pt
             --without-xxhash
             --with-python=/usr (relocatable)
             --with-python-libdir=/usr/lib (relocatable)
             --without-debuginfod
             --with-curses
             --without-guile
             --without-amd-dbgapi
             --disable-source-highlight
             --enable-threading
             --enable-tui
             --with-system-readline
             --with-separate-debug-dir=/usr/lib/debug (relocatable)

("Relocatable" means the directory can be moved with the GDB installation
tree, and GDB will still find it.)
(gdb)


and practically the same on the Pi4:
Code:
$ gdb performous
GNU gdb (Gentoo 15.2 vanilla) 15.2
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "aarch64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from performous...
(No debugging symbols found in performous)
(gdb) run
Starting program: /usr/bin/performous
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
logger/notice: Logging all notices, warnings and errors. Log file: /home/pandora/.cache/performous/infolog.txt
[New Thread 0x7fe69dee20 (LWP 6281)]
core/notice: Performous 1.2+ starting...
  Internationalization: Enabled
  MIDI Hardware I/O:    Disabled
  Webcam support:       Disabled

Thread 1 "performous" received signal SIGABRT, Aborted.
0x0000007ff4155db8 in ?? () from /usr/lib64/libc.so.6
(gdb) show configuration
This GDB was configured as follows:
   configure --host=aarch64-unknown-linux-gnu --target=aarch64-unknown-linux-gnu
             --with-auto-load-dir=$debugdir:$datadir/auto-load
             --with-auto-load-safe-path=$debugdir:$datadir/auto-load
             --with-expat
             --with-gdb-datadir=/usr/share/gdb (relocatable)
             --with-jit-reader-dir=/usr/lib64/gdb (relocatable)
             --without-libunwind-ia64
             --without-lzma
             --without-babeltrace
             --without-intel-pt
             --without-xxhash
             --with-python=/usr (relocatable)
             --with-python-libdir=/usr/lib (relocatable)
             --without-debuginfod
             --with-curses
             --without-guile
             --without-amd-dbgapi
             --disable-source-highlight
             --enable-threading
             --enable-tui
             --with-system-readline
             --with-separate-debug-dir=/usr/lib/debug (relocatable)

("Relocatable" means the directory can be moved with the GDB installation
tree, and GDB will still find it.)
(gdb)


Isn't '/usr/lib64/libc.so.6' from glibc? I have 'sys-libs/glibc-2.39-r6' on both machines. Might this be some incompatibility with this glibc's version?


Regards,
Andy

P.S.: I already tried to adjust this old performous-1.1-r3 to the new libswresample with the help of this https://github.com/performous/performous/pull/400/. But I ran in too many problems beside of this I couldn't handle with my limited understanding...
_________________
"The most dangerous world view is the world view of the ones who haven't viewed the world."
Alexander von Humboldt (1769-1859)
Back to top
View user's profile Send private message
sam_
Developer
Developer


Joined: 14 Aug 2020
Posts: 1934

PostPosted: Tue Oct 29, 2024 7:00 pm    Post subject: Reply with quote

When you're in gdb, please run "bt" and show the output. You may need to rebuild glibc as well as performous with debugging symbols per https://wiki.gentoo.org/wiki/Debugging#Per-package.
Back to top
View user's profile Send private message
Lebkoungcity
Apprentice
Apprentice


Joined: 16 Nov 2008
Posts: 217
Location: near Lebkoungcity (='Gingerbreadcity' =Nuremberg)

PostPosted: Wed Oct 30, 2024 1:58 am    Post subject: Reply with quote

Hey Sam, thanks!

Finally I have made my systems accept that I want them to emerge glibc and performous with debugging symbols.

First the ThinkPad. When I ran it with gdb the first time I noticed a line with 'config' in it and I wondered if it would change anything if I would delete performous' config and cache. And yes, now it runs on the ThinkPad. Kind of embarrassing I didn't think of that before posting... :wink:

But then the Pi4. Deleting performous' config and cache didn't let it run. So, here is the output of running it with gdb:

Code:
$ gdb performous
GNU gdb (Gentoo 15.2 vanilla) 15.2
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "aarch64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from performous...
(gdb) run
Starting program: /usr/bin/performous
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
logger/notice: Logging all notices, warnings and errors. Log file: /home/pandora/.cache/performous/infolog.txt
[New Thread 0x7fe69dee20 (LWP 20837)]
core/notice: Performous 1.2+ starting...
  Internationalization: Enabled
  MIDI Hardware I/O:    Disabled
  Webcam support:       Disabled
core/notice: Starting the audio subsystem (errors printed on console may be ignored).
[New Thread 0x7fe616ee20 (LWP 20838)]
[Thread 0x7fe616ee20 (LWP 20838) exited]
[New Thread 0x7fe616ee20 (LWP 20839)]
[Thread 0x7fe616ee20 (LWP 20839) exited]
[New Thread 0x7fe616ee20 (LWP 20840)]
[Thread 0x7fe616ee20 (LWP 20840) exited]
[New Thread 0x7fe616ee20 (LWP 20841)]
[Thread 0x7fe616ee20 (LWP 20841) exited]
audio/error: Audio device 'dev="USBMIC" mics="blue,red"': No such device.
audio/error: Audio device 'dev="Microphone" mics="*"': No such device.
[New Thread 0x7fe616ee20 (LWP 20842)]
[New Thread 0x7fe589ee20 (LWP 20843)]

Thread 1 "performous" received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
warning: 44     pthread_kill.c: Datei oder Verzeichnis nicht gefunden
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x0000007ff4155ef4 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x0000007ff410c1bc in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x0000007ff40f7b80 in __GI_abort () at abort.c:79
#4  0x0000007ff41057ec in __assert_fail_base
    (fmt=0x7ff42205a0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7ff496b048 "self->capture.nfds || self->playback.nfds", file=file@entry=0x7ff4964720 "/var/tmp/portage/media-libs/portaudio-19.07.00-r2/work/portaudio/src/hostapi/alsa/pa_linux_alsa.c", line=line@entry=2180, function=function@entry=0x7ff496e588 "PaAlsaStream_Initialize")
    at assert.c:94
#5  0x0000007ff410585c in __assert_fail
    (assertion=0x7ff496b048 "self->capture.nfds || self->playback.nfds", file=0x7ff4964720 "/var/tmp/portage/media-libs/portaudio-19.07.00-r2/work/portaudio/src/hostapi/alsa/pa_linux_alsa.c", line=2180, function=0x7ff496e588 "PaAlsaStream_Initialize") at assert.c:103
#6  0x0000007ff49609b8 in ??? () at /usr/lib64/libportaudio.so.2
#7  0x0000007ff4957610 in Pa_OpenStream () at /usr/lib64/libportaudio.so.2
#8  0x000000555558136c in portaudio::Stream::Stream<Device>
    (flags=<optimized out>, framesPerBuffer=<optimized out>, sampleRate=<optimized out>, output=<optimized out>, input=<optimized out>, functor=<optimized out>, this=<optimized out>)
    at /var/tmp/portage/games-arcade/performous-1.2.0/work/performous-1.2.0/game/libda/portaudio.hpp:215
#9  Device::Device (this=0x555584d650, in=0, out=2, rate=48000, dev=0) at /var/tmp/portage/games-arcade/performous-1.2.0/work/performous-1.2.0/game/audio.cc:412
#10 0x000000555559cf48 in std::__new_allocator<Device>::construct<Device, unsigned int&, unsigned int&, unsigned int&, unsigned int const&> (__p=<optimized out>, this=0x555582b948)
    at /usr/lib/gcc/aarch64-unknown-linux-gnu/13/include/g++-v13/bits/new_allocator.h:189
#11 std::allocator_traits<std::allocator<Device> >::construct<Device, unsigned int&, unsigned int&, unsigned int&, unsigned int const&> (__p=<optimized out>, __a=...)
    at /usr/lib/gcc/aarch64-unknown-linux-gnu/13/include/g++-v13/bits/alloc_traits.h:538
#12 std::deque<Device, std::allocator<Device> >::emplace_back<unsigned int&, unsigned int&, unsigned int&, unsigned int const&> (this=0x555582b948)
    at /usr/lib/gcc/aarch64-unknown-linux-gnu/13/include/g++-v13/bits/deque.tcc:170
#13 Audio::Impl::Impl (this=0x555582b7b0) at /var/tmp/portage/games-arcade/performous-1.2.0/work/performous-1.2.0/game/audio.cc:505
#14 0x0000005555581fd0 in std::make_unique<Audio::Impl> () at /usr/lib/gcc/aarch64-unknown-linux-gnu/13/include/g++-v13/bits/unique_ptr.h:1070
#15 Audio::Audio (this=this@entry=0x7fffffd790) at /var/tmp/portage/games-arcade/performous-1.2.0/work/performous-1.2.0/game/audio.cc:550
#16 0x000000555560adb8 in mainLoop (songlist="") at /var/tmp/portage/games-arcade/performous-1.2.0/work/performous-1.2.0/game/main.cc:130
#17 0x00000055555749b8 in main (argc=<optimized out>, argv=<optimized out>) at /var/tmp/portage/games-arcade/performous-1.2.0/work/performous-1.2.0/game/main.cc:392
(gdb)



edit: had posted the wrong data
_________________
"The most dangerous world view is the world view of the ones who haven't viewed the world."
Alexander von Humboldt (1769-1859)
Back to top
View user's profile Send private message
sam_
Developer
Developer


Joined: 14 Aug 2020
Posts: 1934

PostPosted: Wed Oct 30, 2024 3:08 am    Post subject: Reply with quote

Thanks!

It is crashing in media-libs/portaudio, in an assertion (sanity check) related to ALSA. The assertion is at https://github.com/PortAudio/portaudio/blob/v19.7.0/src/hostapi/alsa/pa_linux_alsa.c#L2180.

If you build portaudio with debugging symbols, you can probe that frame when it asserts to inspect self->capture and self->playback, but I've no idea about ALSA or portaudio.

Before it asserts, your log has:
Quote:

core/notice: Starting the audio subsystem (errors printed on console may be ignored).
[...]
audio/error: Audio device 'dev="USBMIC" mics="blue,red"': No such device.
audio/error: Audio device 'dev="Microphone" mics="*"': No such device.


... so I guess your ALSA config may be bogus, or at least could be tweaked to work around the problem?

Alternatively (if the above ideas don't work out), you could try build portaudio without ALSA support or configuring performous without portaudio (or perhaps ALSA) support if it has alternatives that it supports. But those should be seen as last resorts.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum