[go: up one dir, main page]

Menu

#35 Building XMMS2 plugin fails with

N-A
closed-fixed
None
5
2026-01-03
2023-05-08
Drei Eck
No

When I run make asap-xmms2, it fails with
libxmms_asap.c:109:19: error: expected declaration specifiers or ‘...’ before string constant
and other errors:

xmms2/libxmms_asap.c:109:19: error: expected declaration specifiers or ... before string constant
  109 | XMMS_XFORM_PLUGIN("asap",
      |                   ^~~~~~
xmms2/libxmms_asap.c:110:9: error: expected declaration specifiers or ... before string constant
  110 |         "ASAP decoder", ASAPInfo_VERSION,
      |         ^~~~~~~~~~~~~~
In file included from xmms2/libxmms_asap.c:27:
./asap.h:150:26: error: expected declaration specifiers or ... before string constant
  150 | #define ASAPInfo_VERSION "5.3.0"
      |                          ^~~~~~~
xmms2/libxmms_asap.c:110:25: note: in expansion of macro ASAPInfo_VERSION
  110 |         "ASAP decoder", ASAPInfo_VERSION,
      |                         ^~~~~~~~~~~~~~~~
xmms2/libxmms_asap.c:111:9: error: expected declaration specifiers or ... before string constant
  111 |         "Another Slight Atari Player decoder",
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xmms2/libxmms_asap.c:112:9: error: expected declaration specifiers or ... before xmms_asap_setup
  112 |         xmms_asap_setup);
      |         ^~~~~~~~~~~~~~~
xmms2/libxmms_asap.c:93:17: warning: xmms_asap_setup defined but not used [-Wunused-function]
   93 | static gboolean xmms_asap_setup(xmms_xform_plugin_t *xform_plugin)
      |                 ^~~~~~~~~~~~~~~
make: *** [xmms2/xmms2.mk:14: libxmms_asap.so] Error 1

Installed xmms2: 0.9.2 (including /usr/include/xmms2/xmms/-files).
GCC version: 13.1.1 20230429

Discussion

  • Piotr Fusik

    Piotr Fusik - 2023-05-08
     
  • Piotr Fusik

    Piotr Fusik - 2023-05-08

    Looks like a breaking change in xmms2.
    Both my Ubuntu 22.04 and FC37 have xmms2 0.8 and I released asap-xmms2 this February.

    I will accept a patch that fixes this without breaking the two mentioned OSes.

     
  • Piotr Fusik

    Piotr Fusik - 2025-03-08
    • Group: 3.0.0_BETA --> N-A
     
  • Piotr Fusik

    Piotr Fusik - 2025-12-13
    • status: open --> accepted
    • assigned_to: Piotr Fusik
     
  • Piotr Fusik

    Piotr Fusik - 2025-12-13

    Yeah, it's a breaking change in xmms2-devel:
    https://github.com/xmms2/xmms2-devel/commit/4e21ce68d6984e561e27eff2a7c9ad89afec0c97

    Now, how do I use xmms2 so I can test it?

     
    • Drei Eck

      Drei Eck - 2025-12-15

      Now, how do I use xmms2

      You mean version 0.9.x? I don't now other than either using a distribution which offers newer version (maybe in a chroot or virtual machine), compile yourself, or find a backport.

       
      • Piotr Fusik

        Piotr Fusik - 2025-12-15

        I have a Fedora 43 that includes xmms2 0.9.5.
        "xmms2" is a command-line program. After I installed the plugin, I tried "xmms2 add Komar.mpt" and "xmms2 play". Are these the correct commands? There's no error message but I cannot hear anything.

         

        Last edit: Piotr Fusik 2025-12-15
        • Drei Eck

          Drei Eck - 2026-01-01

          When I start xmms2d, I get an error about the plugin:

          20:43:05 ERROR in core: ../src/xmms/plugin.c:394: Failed to find plugin header in /usr/lib/xmms2/libxmms_asap.so
          

          Full output of xmms2d:

           INFO in core: ../src/xmms/log.c:50: Initialized logging system :)
          20:46:12  INFO in core: ../src/xmms/ipc.c:981: IPC listening on 'unix:///tmp/xmms-ipc-felics'.
          20:46:12 ERROR in core: ../src/xmms/plugin.c:394: Failed to find plugin header in /usr/lib/xmms2/libxmms_asap.so
          20:46:12 ERROR in core: ../src/xmms/collsync.c:486: Could not restore collections from disk.
          20:46:12  INFO: ../src/xmms/main.c:682: Using output plugin: pulse
          [wmav2 @ 0x7fa898017700] Could not update timestamps for skipped samples.
          20:46:12  INFO in core: ../src/xmms/xform.c:1340: Successfully setup chain for 'file:///home/felics/Music/Contact_Improvisation/flat/Japon_Gagaku/01_-_Etenraku.wma' (642) containing gvfs:magic:asf:avcodec:segment
          free(): double free detected in tcache 2
          Aborted                    xmms2d
          Starting XMMS2 phone home agent...
          Could not connect to xmms2d: xmms2d is not running.
          

          Regards!

           
          • Piotr Fusik

            Piotr Fusik - 2026-01-01

            With this patch

            --- a/xmms2/libxmms_asap.c
            +++ b/xmms2/libxmms_asap.c
            @@ -108,6 +108,7 @@ static gboolean xmms_asap_setup(xmms_xform_plugin_t *xform_plugin)
            
             #ifdef XMMS_XFORM_PLUGIN_DEFINE
             // xmms2-devel 0.9.x
            +#define XMMS_PLUGIN_DESC_SYMBOL_NAME XMMS_PLUGIN_DESC
             XMMS_XFORM_PLUGIN_DEFINE("asap",
                    "ASAP decoder", ASAPInfo_VERSION,
                    "Another Slight Atari Player decoder",
            

            the error message of xmms2d goes away. But I still don't know how to play a file?

             
            • Drei Eck

              Drei Eck - 2026-01-03

              I actually cannot start xmms2d either, it aborts for me. So I cannot test further, either.

              I actually just do this for "completeness" in packaging: Arch Linux AUR package "asap-chiptunes-player-git".


              Just for reference:
              My failure of starting xmms2d:

               INFO in core: ../src/xmms/log.c:50: Initialized logging system :)
              13:39:47  INFO in core: ../src/xmms/ipc.c:981: IPC listening on 'unix:///tmp/xmms-ipc-[username]'.
              13:39:47 ERROR in core: ../src/xmms/collsync.c:486: Could not restore collections from disk.
              13:39:47  INFO: ../src/xmms/main.c:682: Using output plugin: pulse
              [wmav2 @ 0x7f8904016f00] Could not update timestamps for skipped samples.
              13:39:47  INFO in core: ../src/xmms/xform.c:1340: Successfully setup chain for 'file:///home/[username]/Music/Contact_Improvisation/flat/Japon_Gagaku/02_-_Bato.wma' (642) containing gvfs:magic:asf:avcodec:segment
              free(): double free detected in tcache 2
              Aborted                    xmms2d
              Starting XMMS2 phone home agent...
              Could not connect to xmms2d: xmms2d is not running.
              

              gdb backtrace:

              Reading symbols from xmms2d...
              (No debugging symbols found in xmms2d)
              (gdb) run
              Starting program: /usr/bin/xmms2d 
              [Thread debugging using libthread_db enabled]
              Using host libthread_db library "/usr/lib/libthread_db.so.1".
               INFO in core: ../src/xmms/log.c:50: Initialized logging system :)
              13:40:41  INFO in core: ../src/xmms/ipc.c:981: IPC listening on 'unix:///tmp/xmms-ipc-[username]'.
              [New Thread 0x7fffe28e16c0 (LWP 21887)]
              [New Thread 0x7fffe20e06c0 (LWP 21891)]
              [New Thread 0x7fffe18df6c0 (LWP 21893)]
              [New Thread 0x7fffdaa916c0 (LWP 21948)]
              [New Thread 0x7fffda2906c0 (LWP 21949)]
              13:40:42 ERROR in core: ../src/xmms/collsync.c:486: Could not restore collections from disk.
              [New Thread 0x7fffd9a8f6c0 (LWP 21951)]
              [wmav2 @ 0x7fffd0016f40] Could not update timestamps for skipped samples.
              [New Thread 0x7fffd928e6c0 (LWP 21952)]
              13:40:42  INFO: ../src/xmms/main.c:682: Using output plugin: pulse
              13:40:42  INFO in core: ../src/xmms/xform.c:1340: Successfully setup chain for 'file:///home/[username]/Music/Contact_Improvisation/flat/Japon_Gagaku/02_-_Bato.wma' (642) containing gvfs:magic:asf:avcodec:segment
              [New Thread 0x7fffd8a8d6c0 (LWP 21953)]
              free(): double free detected in tcache 2
              
              Thread 6 "x2 media info" received signal SIGABRT, Aborted.
              [Switching to Thread 0x7fffda2906c0 (LWP 21949)]
              Downloading 4.48 K source file /usr/src/debug/glibc/glibc/nptl/pthread_kill.c
              __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44                                    
              44        return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
              (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  0x00007ffff7a96543 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89
              #2  0x00007ffff7a3e108 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
              #3  0x00007ffff7a25667 in __GI_abort () at abort.c:77
              #4  0x00007ffff7a266d7 in __libc_message_impl (fmt=fmt@entry=0x7ffff7bac355 "%s\n") at ../sysdeps/posix/libc_fatal.c:138
              #5  0x00007ffff7aa07a7 in malloc_printerr (str=str@entry=0x7ffff7bafd58 "free(): double free detected in tcache 2") at malloc.c:5892
              #6  0x00007ffff7aa5cbb in tcache_double_free_verify (e=<optimized out>) at malloc.c:3350
              #7  0x00007ffff7f812c7 in ??? () at /usr/lib/xmms2/libxmms_avcodec.so
              #8  0x00005555555848f6 in ??? ()
              #9  0x000055555556e646 in xmms_object_unref ()
              #10 0x000055555556e646 in xmms_object_unref ()
              #11 0x000055555556da0e in ??? ()
              #12 0x00007ffff7e82139 in ??? () at /usr/lib/libglib-2.0.so.0
              #13 0x00007ffff7a94605 in start_thread (arg=<optimized out>) at pthread_create.c:448
              #14 0x00007ffff7b1554c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
              (gdb) cont
              Continuing.
              ❌️ Cannot find user-level thread for LWP 21957: generic error
              (gdb) ../../gdb/linux-nat.c:330: internal-error: report_exit_events_for: Assertion `thr != nullptr' failed.
              A problem internal to GDB has been detected,
              further debugging may prove unreliable.
              ----- Backtrace -----
              0x5641bbc7fd8e ???
              0x5641bc2336c4 ???
              0x5641bc6e7093 ???
              0x5641bbedd895 ???
              0x5641bbef8fbe ???
              0x5641bbf0aaa6 ???
              0x5641bc1c4c81 ???
              0x5641bbeb3227 ???
              0x5641bbebd0ff ???
              0x5641bc6edad9 ???
              0x5641bbf36d99 ???
              0x5641bbb554e4 ???
              0x7f956a22773a ???
              0x7f956a2277fb ???
              0x5641bbb73f74 ???
              0xffffffffffffffff ???
              ---------------------
              ../../gdb/linux-nat.c:330: internal-error: report_exit_events_for: Assertion `thr != nullptr' failed.
              A problem internal to GDB has been detected,
              further debugging may prove unreliable.
              Quit this debugging session? (y or n) n
              
              This is a bug, please report it.  For instructions, see:
              <https://www.gnu.org/software/gdb/bugs/>.
              
              ../../gdb/linux-nat.c:330: internal-error: report_exit_events_for: Assertion `thr != nullptr' failed.
              A problem internal to GDB has been detected,
              further debugging may prove unreliable.
              Create a core file of GDB? (y or n) n
              ❌️ Command aborted.
              (gdb) [Thread 0x7fffd8a8d6c0 (LWP 21953) exited]
              [Thread 0x7fffd928e6c0 (LWP 21952) exited]
              [Thread 0x7fffd9a8f6c0 (LWP 21951) exited]
              [Thread 0x7fffda2906c0 (LWP 21949) exited]
              [Thread 0x7fffdaa916c0 (LWP 21948) exited]
              [Thread 0x7fffe18df6c0 (LWP 21893) exited]
              [Thread 0x7fffe20e06c0 (LWP 21891) exited]
              [Thread 0x7fffe28e16c0 (LWP 21887) exited]
              ⚠️ warning: unable to open /proc file '/proc/21804/status'
              
              ❌️ Cannot execute this command without a live selected thread.
              (gdb) cont
              ❌️ Cannot execute this command without a live selected thread.
              (gdb) quit
              A debugging session is active.
              
                  Inferior 1 [process 21804] will be killed.
              
              Quit anyway? (y or n) y
              
              
              Fatal signal: Segmentation fault
              ----- Backtrace -----
              0x5641bbc7fd8e ???
              0x5641bbdd7872 ???
              0x5641bbdd7ae8 ???
              0x7f956a23e23f ???
              0x5641bbef15d7 ???
              0x5641bbef1983 ???
              0x5641bbef0c28 ???
              0x5641bbef1311 ???
              0x5641bc1c166f ???
              0x5641bc1e5f8e ???
              0x5641bbcc9f9b ???
              0x5641bbcc1e87 ???
              0x5641bc1f0c50 ???
              0x5641bbde5b8f ???
              0x5641bbde5c40 ???
              0x5641bbdd7345 ???
              0x7f956b42ca6e ???
              0x5641bbdddde3 ???
              0x5641bbde5a31 ???
              0x5641bc22743f ???
              0x5641bc6ed685 ???
              0x5641bc6eda1e ???
              0x5641bbf36d99 ???
              0x5641bbb554e4 ???
              0x7f956a22773a ???
              0x7f956a2277fb ???
              0x5641bbb73f74 ???
              0xffffffffffffffff ???
              ---------------------
              A fatal error internal to GDB has been detected, further
              debugging is not possible.  GDB will now terminate.
              
              This is a bug, please report it.  For instructions, see:
              <https://www.gnu.org/software/gdb/bugs/>.
              
              Segmentation fault         gdb xmms2d
              

              Seems like something hickups on /home/[username]/Music/Contact_Improvisation/flat/Japon_Gagaku/02_-_Bato.wma. mplayer can play it fine.

              I don't want to go into the rabbit hole debugging this (including understanding how to use XMMS2 to not read that file), so I cannot help further testing with XMMS2 more than reporting compile errors.

              Regards!

               
  • Piotr Fusik

    Piotr Fusik - 2025-12-13
    • status: accepted --> pending
     
  • Piotr Fusik

    Piotr Fusik - 2026-01-03

    I got XMMS2 playing under Fedora 43. The sound is "choking", also on MP3s, but that might be because I'm running it in VirtualBox.

    I looked at ASAP's plugin source and realized it only supports *.SAP. :) I'll try to add the other formats.

     
  • Piotr Fusik

    Piotr Fusik - 2026-01-03
    • status: pending --> accepted
     
  • Piotr Fusik

    Piotr Fusik - 2026-01-03
    • status: accepted --> closed-fixed
     
  • Piotr Fusik

    Piotr Fusik - 2026-01-03

    I could only add the FC format.
    The other formats start with FF FF bytes which makes them misdetected as MP3 by the "mad" plugin and after "mad" fails, ASAP is not given a chance.

    How to use XMMS2:

    xmms2 add NINJA.FC
    xmms2 play
    

    Starting xmms2d first is optional, but useful to see the logs. xmms2d -v gives more logs.

    For testing, use a *.FC file (from https://asap.sourceforge.net/examples.zip), as XMMS2's "gme" plugin provides a partial (inferior to ASAP) support for the SAP format.

     

Log in to post a comment.