Package Details: snapcast 0.31.0-3

Git Clone URL: https://aur.archlinux.org/snapcast.git (read-only, click to copy)
Package Base: snapcast
Description: Synchronous multi-room audio player
Upstream URL: https://github.com/badaix/snapcast
Keywords: audio multi-room
Licenses: GPL
Submitter: mogwai
Maintainer: mogwai
Last Packager: mogwai
Votes: 37
Popularity: 0.023307
First Submitted: 2016-01-01 21:21 (UTC)
Last Updated: 2025-02-24 18:13 (UTC)

Latest Comments

1 2 3 4 5 6 .. 9 Next › Last »

mogwai commented on 2025-02-24 18:14 (UTC)

@BrainDamage: done

mogwai commented on 2025-02-23 20:32 (UTC)

@kingo55: That's how AUR packages work: if any of the dependencies are updated, it's your own responsibility to recompile it, even if the package itself has not been updated. Most dependency updates are fine, it's mainly the major release upgrades that need recompiling. Apparently that was the case with flac now.

kingo55 commented on 2025-02-23 02:04 (UTC)

There must have been some dependency changes because I had to reinstall this when libFLAC.so.12 was removed recently.

I'm an AUR noob so I'm not sure if this has to be handled in this package.

BrainDamage commented on 2025-02-22 11:20 (UTC)

jack is missing from the depedencies, the buildsystem does attempt to detect it at build time and then include if available, and will skip otherwise. Adding jack to the dep list would make this package align with the overall arch policy of building with all available features.

mogwai commented on 2025-01-26 17:58 (UTC)

@rnestler: Fixed

rnestler commented on 2025-01-26 15:25 (UTC)

The snapserver plug-ins in in /usr/share/snapserver/plug-ins/ aren't marked as executable and thus trying to use them leads to an error:

Jan 26 15:20:14 muzikskatolo snapserver[1453]: (Snapserver) Exception: Failed to start control script: '/usr/share/snapserver/plug-ins/meta_mopidy.py', exception: execve failed: Permission denied

Running sudo chmod +x /usr/share/snapserver/plug-ins/meta_mopidy.py fixes it.

In the PKGBUILD the mode on the files seems to be explicitly set to be non-executable:

# line 58
    for file in server/etc/plug-ins/*\.*;
        do install -Dm 644 ${file} -t "${pkgdir}/usr/share/snapserver/plug-ins/";
    done

rnestler commented on 2024-09-01 21:47 (UTC)

@m040601 I got it to compile successfully using a distcc setup as documented in https://wiki.archlinux.org/title/Distcc#Cross_compiling_with_distcc

m040601 commented on 2024-05-15 04:26 (UTC) (edited on 2024-05-15 05:00 (UTC) by m040601)

Update on my efforts to try to update to the latest "snapcast" 0.28 on ArchlinuxArm, Raspberry Pi 2b (1GB RAM, 32bit not 64bit), armv7h

Thanks to @mogwai for the help and tips trying to troubleshoot this.

TLDR, May the 15th, 2024:

Unfortunately I am still not able to do it. Probably insufficient memory ? And I am loosing hope I will ever be able to do it. So I guess I'll have to be stuck with "snapcast" 0.26 version on this machine. Which, although slow and painfull, has always compiled. And still works reliably.

It was always clear that as @mogwai says,

NB: This doesn't mean that you won't run into other problems like out-of-memory, though.

I knew that also. And I also knew that I could compile and run "snapcast" 0.2x ... up till 0.26 in the last years.

But now, I can never pass that "14%" done stage, before the system runs out of memory, and the "OOM" kill it, and aborts the compilation.

[ 10%] Building CXX object server/CMakeFiles/snapserver.dir/control_server.cpp.o
[ 12%] Building CXX object server/CMakeFiles/snapserver.dir/control_session_tcp.cpp.o
[ 14%] Building CXX object server/CMakeFiles/snapserver.dir/control_session_http.cpp.o
{standard input}: Assembler messages:
{standard input}:59110: Error: undefined local label `.L7628'
{standard input}:59125: Error: undefined local label `.L7628'
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [server/CMakeFiles/snapserver.dir/build.make:118: server/CMakeFiles/snapserver.dir/control_session_http.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:160: server/CMakeFiles/snapserver.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: snapcast-exit status 4

Since my last trials some weeks ago, (read the previous comments on this same page), I decided to wait some weeks to see if ArchlinuxArm would update some important outdated packages. So for example I am now using

Name            : gcc
Version         : 14.1.1+r1+g43b730b9134-1
Description     : The GNU Compiler Collection - C and C++
                  frontends
Architecture    : armv7h
Depends On      : gcc-libs=14.1.1+r1+g43b730b9134-1
                  binutils>=2.28  libmpc  zstd
                  libisl.so=23-32
Build Date      : Sat 11 May 2024 05:40:51 AM WEST
Install Date    : Wed 15 May 2024 04:25:19 AM WEST

And I also followed this advice,

the alarm maintainers did not properly block upstream changes to /etc/makepkg.conf that
are incompatible with armv7h. Please remove -mno-omit-leaf-frame-pointer from the CFLAGS in /etc/makepkg.conf

@mogwai, out of curiosity,

I've got a working snapcast binary for armv7h here that I compiled on my alarm system and that
is running on my 32-bit alarm system right now.

Which system is that actually ?

I personally still have the other system with 2GB RAM (snow chromebook) but I have not yet tested compiling snapcast 0.28 there. (broken cable). Will update here when done

mogwai commented on 2024-04-20 21:00 (UTC)

@m040601: No, none of the alarm parts are hopelessly outdated. They are outdated, but there are more than sufficient to compile any modern package. I've got a working snapcast binary for armv7h here that I compiled on my alarm system and that is running on my 32-bit alarm system right now.

What's the real problem is that the alarm maintainers did not properly block upstream changes to /etc/makepkg.conf that are incompatible with armv7h. Please remove -mno-omit-leaf-frame-pointer from the CFLAGS in /etc/makepkg.conf and try again. It's simply the case that this new flag that got introduced a few weeks ago is incompatible with 32-bit systems.

NB: This doesn't mean that you won't run into other problems like out-of-memory, though.

m040601 commented on 2024-04-20 20:47 (UTC) (edited on 2024-04-20 23:23 (UTC) by m040601)

@mogwai : Thanks for your help, trying to troubleshoot and understand these issues. Much appreciated, specially for slightly older hardware that should still be suppoorted.

mogwai commented on 2024-04-20 09:17 (UTC)
@m040601: The package does also compile and run for aarch64 and armv7h

Yes I know it does. Let me restate again to be crystal clear again. I dont mean it does not run on Arm. I mean it does not even compile or ArchlinuxArm, specifically the armv7h, that is the Raspberrpy Pi 2 v1.1 (32 bit). That is not the Raspberry Pi 2 1.2, which is the same processor as the Raspberry Pi 3 and runs 64bit ArchlinuxArm. Not because it is Arm, but because ArchlinuxArm is hopelessly outdated.

$ uname -a

Linux alarmpi 6.6.28-2-rpi #1 SMP Fri Apr 19 12:18:22 MDT 2024 armv7l GNU/Linux

$ pacman -Qi linux

Name            : linux-rpi
Version         : 6.6.28-2
Description     : Linux kernel and modules (RPi Foundation fork)
Architecture    : armv7h
URL             : https://github.com/raspberrypi/linux
Groups          : None
Provides        : linux=6.6.28  WIREGUARD-MODULE
Depends On      : coreutils  firmware-raspberrypi  kmod  linux-firmware  mkinitcpio>=0.7
Optional Deps   : wireless-regdb: to set the correct wireless channels of your country [installed]
Required By     : None
Optional For    : None
Conflicts With  : linux  linux-rpi-16k  uboot-raspberrypi
Replaces        : None
Installed Size  : 26.91 MiB
Packager        : Arch Linux ARM Build System <builder+xu0@archlinuxarm.org>
Build Date      : Fri 19 Apr 2024 06:46:31 PM WEST
Install Date    : Fri 19 Apr 2024 10:04:47 PM WEST
Install Reason  : Explicitly installed
Install Script  : Yes
Validated By    : Signature

By the day, when you say:

... The package does also compile and run for aarch64 and armv7h. I've tested this before uploading.

QUESTION 1:

Which specific armv7h board or chromebook did you test this with ? How much memory does that system have ?

I'm using a system with more then 1GB of memory, though. So that could be a difference.

Yes of course. That is very true for arm and compiling c++ applications in general. I also have another armv7h system also running ArchlinuxArm. It is a Samsung Chromebook (snow version). Instead of 1000MB of the Raspberry Pi, it has 2GB or RAM. And a 2 core but snappier CPU. It is always much much faster compiling.

Could you share the actual error that you're getting, 
related to not having enough memory?

Right now in my system, it is not related to not having enough memory. It is simply that the compiler is outdated. There is no way to even start the build.

Lets go step by step.

sudo pacman -S boost cmake

Package (5)    New Version  Net Change  Download Size

extra/cppdap   1.58.0-1       1.60 MiB       0.29 MiB
extra/jsoncpp  1.9.5-2        0.58 MiB       0.11 MiB
extra/rhash    1.4.4-1        0.32 MiB       0.17 MiB
extra/boost    1.83.0-5     172.97 MiB      13.74 MiB
extra/cmake    3.29.2-1      82.01 MiB      16.88 MiB

No problem with those above.

Let's try "snapcast":

$ yay -S snapcast

==> Making package: snapcast 0.28.0-2 (Sat 20 Apr 2024 09:33:16 PM WEST)
==> Retrieving sources...
..........
==> WARNING: Skipping verification of source file PGP signatures.
==> Validating source files with sha256sums...
    snapcast-0.28.0.tar.gz ... Passed
    snapweb-0.7.0.zip ... Passed
    snapcast.sysusers ... Passed
    snapcast.tmpfiles ... Passed
    snapcast.install ... Passed

No problems above.

:: (1/1) Parsing SRCINFO: snapcast
==> Making package: snapcast 0.28.0-2 (Sat 20 Apr 2024 09:33:49 PM WEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  ............
  -> Extracting snapcast-0.28.0.tar.gz with bsdtar
==> Starting prepare()...
==> Sources are ready.
==> Making package: snapcast 0.28.0-2 (Sat 20 Apr 2024 09:34:43 PM WEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree

No problems above.

==> Starting build()...
-- The CXX compiler identification is GNU 12.1.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ - broken
CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:60 (message):
  The C++ compiler

    "/usr/bin/c++"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/dev/shm/aurdestybashrc/snapcast/src/snapcast-0.28.0/build/CMakeFiles/CMakeScratch/TryCompile-Fn75r6'

    Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_b5b6f/fast
    /usr/bin/make  -f CMakeFiles/cmTC_b5b6f.dir/build.make CMakeFiles/cmTC_b5b6f.dir/build
    make[1]: Entering directory '/dev/shm/aurdestybashrc/snapcast/src/snapcast-0.28.0/build/CMakeFiles/CMakeScratch/TryCompile-Fn75r6'
    Building CXX object CMakeFiles/cmTC_b5b6f.dir/testCXXCompiler.cxx.o
    /usr/bin/c++   -march=armv7-a -mfloat-abi=hard -mfpu=neon -O2 -pipe -fstack-protector-strong -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS  -o CMakeFiles/cmTC_b5b6f.dir/testCXXCompiler.cxx.o -c /dev/shm/aurdestybashrc/snapcast/src/snapcast-0.28.0/build/CMakeFiles/CMakeScratch/TryCompile-Fn75r6/testCXXCompiler.cxx
    c++: error: unrecognized command-line option ‘-mno-omit-leaf-frame-pointer’; did you mean ‘-fno-omit-frame-pointer’?
    make[1]: *** [CMakeFiles/cmTC_b5b6f.dir/build.make:78: CMakeFiles/cmTC_b5b6f.dir/testCXXCompiler.cxx.o] Error 1
    make[1]: Leaving directory '/dev/shm/aurdestybashrc/snapcast/src/snapcast-0.28.0/build/CMakeFiles/CMakeScratch/TryCompile-Fn75r6'
    make: *** [Makefile:127: cmTC_b5b6f/fast] Error 2


  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:3 (project)


-- Configuring incomplete, errors occurred!
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: snapcast-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
snapcast - exit status 4

That is the problem. It's not that there is little memory available. It is an outdated version of the compiler in the ArchlinuxArm repos. It should be "13" but it is "12" from 2022.

$ pacman -Qo /usr/bin/c++

/usr/bin/c++ is owned by gcc 12.1.0-2.1

$ pacman -Qo /usr/bin/gcc

/usr/bin/gcc is owned by gcc 12.1.0-2.1

pacman -Qi gcc

Name            : gcc
Version         : 12.1.0-2.1
Description     : The GNU Compiler Collection - C and C++ frontends
Architecture    : armv7h
URL             : https://gcc.gnu.org
Licenses        : GPL3  LGPL  FDL  custom
Groups          : base-devel
Provides        : None
Depends On      : gcc-libs=12.1.0-2.1  binutils>=2.28  libmpc  zstd  libisl.so=23-32
Optional Deps   : None
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 121.91 MiB
Packager        : Arch Linux ARM Build System <builder+xu0@archlinuxarm.org>
Build Date      : Sat 28 May 2022 08:16:07 PM WEST
Install Date    : Fri 03 Jun 2022 12:40:23 AM WEST
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature


EDIT: Some usefull references:

https://archlinuxarm.org/forum/viewtopic.php?f=9&t=16808&sid=0689e401e72d76f2b8ec819be12d1f40 ,

Postby ml50 » Mon Mar 18, 2024 10:13 am

is it possible to get gcc in release 13.2 ? (actually 12.1)

The current version of gcc is erroring with some PKGBUILDS that require the -mno-omit-leaf-frame-pointer option

https://archlinuxarm.org/forum/viewtopic.php?f=7&t=16848&sid=0689e401e72d76f2b8ec819be12d1f40 ,

Postby debo » Mon Apr 15, 2024 2:21 am

Is there some reason why we are still using gcc-12 on ArchLinuxArm?