Announcement

Collapse
No announcement yet.

My Alpine Linux Repo for LMS and Squeezelite

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #91
    Just a note about the Spotty plugin for LMS if you are using my packages. Alpine uses musl libc, not glibc like most other distros use so generally, software should be built against musl to run on Alpine. There are ways around it, which you can read about here but again generally, it's "best" to to compile the software from source for the target environment.

    The Spotty plugin includes helper binaries for different architectures:

    Code:
    InstalledPlugins/Plugins/Spotty/Bin/i386-linux/spotty-x86_64
    InstalledPlugins/Plugins/Spotty/Bin/i386-linux/spotty
    InstalledPlugins/Plugins/Spotty/Bin/arm-linux/spotty-hf
    InstalledPlugins/Plugins/Spotty/Bin/darwin-thread-multi-2level/spotty
    InstalledPlugins/Plugins/Spotty/Bin/MSWin32-x86-multi-thread/spotty.exe
    InstalledPlugins/Plugins/Spotty/Bin/aarch64-linux/spotty
    The i386-linux binaries are statically linked so those work out of the box on Alpine:

    Code:
    server:/var/opt/lms/cache/InstalledPlugins/Plugins/Spotty/Bin$ file i386-linux/spotty
    i386-linux/spotty: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, BuildID[sha1]=5e320001d63c07a82ee333379eea2b77b829b31f, stripped
    
    server:/var/opt/lms/cache/InstalledPlugins/Plugins/Spotty/Bin$ file i386-linux/spotty-x86_64 
    i386-linux/spotty-x86_64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=ffcc50d53d957922dbb94a29dd3192e623962fe4, stripped
    The issue I had was trying to run LMS with my car project which uses an armv7 cpu. The arm binaries included with Spotty are dynamically linked and won't run on Alpine as-is:

    Code:
    server:/var/opt/lms/cache/InstalledPlugins/Plugins/Spotty/Bin$ file arm-linux/spotty-hf 
    arm-linux/spotty-hf: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.26, BuildID[sha1]=65f83e7aa10c3accfc378452d474253bc19bbb4e, stripped
    
    server:/var/opt/lms/cache/InstalledPlugins/Plugins/Spotty/Bin$ file aarch64-linux/spotty 
    aarch64-linux/spotty: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=c295a41b3d01fa8389286e32e342deed7dd8efe0, stripped
    The Spotty plugin looks for and uses a helper binary named "spotty-custom" so that end users can build their own with that name and the plugin will find it automatically. So long story long, that's what I ended up doing, building the spotty helpers natively on Alpine for armv7, aarch64, x86, and x86_64. I didn't really need to do x86 and x86_64 since the statically linked ones included with the plugin work, but I was testing on x86_64 so I just built them both anyway.

    If you want to use the Alpine spotty helpers, make sure you have my repo added and:

    Code:
    # apk update
    # apk add spotty
    # rc-service lms restart
    In the spotty plugin settings, you should see /usr/bin/spotty-custom automatically selected:
    Attached Files

    Comment


      #92
      With the official release of LMS 8.3 today and the start of the 8.4 branch, I updated the lms-nocpan to 8.4. Working ok for me:

      Code:
      Logitech Media Server Version: 8.4.0 - 1667572584 @ Fri 04 Nov 2022 04:01:12 PM CET
      Also a reminder that the release of Alpine 3.17 is expected very soon, sometime between now and a couple of weeks if I read the IRC banter correctly. With that comes a new perl version so if you decide to update Alpine to 3.17 on release day, your LMS will break if you are using my packages. I need to update the lms-modules package for the new perl version. I'm going to try and get it ready ahead of time but it might not be updated and available until a day or so after the Alpine release.

      I'll update this thread when I have it all sorted out.

      Comment


        #93
        I upgraded my server to Alpine 3.17.0_rc1 and rebuilt the lms-modules package against perl 5.36 (was 5.34 but upgraded as part of the Alpine 3.17 upgrade). The new lms-modules package only has the 5.36 modules in it but I wasn't sure if you already had the 5.34 modules installed whether they would stay and the 5.36 would just be added alongside, but no, it looks like apk removed the 5.34 when doing the upgrade. So I think that means you don't have much choice other than to upgrade both - Alpine to 3.17 and lms-modules to lms-modules-8-r6.

        I don't have the new packages uploaded to sodface.com/repo yet though I've tested locally and it seems good:

        Code:
        Logitech Media Server Version: 8.4.0 - 1667914576 @ Tue 08 Nov 2022 03:13:40 PM CET
        Hostname: server
        Server IP Address: 10.0.0.10
        Server HTTP Port Number: 9000
        Operating system: Alpine Linux - EN - utf8
        Platform Architecture: x86_64-linux
        Perl Version: 5.36.0 - x86_64-linux-thread-multi
        Audio::Scan: 1.05
        IO::Socket::SSL: 2.075
        Database Version: DBD::SQLite 1.58 (sqlite 3.22.0)
        Total Players Recognized: 2
        I'm building lms-modules for the other architectures now. I plan to upload on the same day Alpine 3.17.0 final is released. To upgrade everything then, check your /etc/apk/repositories file and make sure it's pointing to either latest-stable or v3.17, and make sure the sodface.com repo is uncommented eg:

        Code:
        http://dl-cdn.alpinelinux.org/alpine/v3.17/main
        http://dl-cdn.alpinelinux.org/alpine/v3.17/community
        #http://dl-cdn.alpinelinux.org/alpine/edge/testing
        http://www.sodface.com/repo
        Then update and upgrade:

        Code:
        $ sudo apk update
        $ sudo apk upgrade --available

        Comment


          #94
          Upgraded my local packages to latest nightly and audio-scan 1.06 being discussed here. I don't know what the audio-scan change brings exactly but it's exciting to see the number go up! Will upload soon when Alpine 3.17 is released, but, I repeat myself.

          Code:
          Logitech Media Server Version: 8.4.0 - 1668416677 @ Mon 14 Nov 2022 10:29:44 AM CET
          Hostname: server
          Server IP Address: 10.0.0.10
          Server HTTP Port Number: 9000
          Operating system: Alpine Linux - EN - utf8
          Platform Architecture: x86_64-linux
          Perl Version: 5.36.0 - x86_64-linux-thread-multi
          Audio::Scan: 1.06
          IO::Socket::SSL: 2.075
          Database Version: DBD::SQLite 1.58 (sqlite 3.22.0)
          Total Players Recognized: 3
          Last edited by sodface; 2022-11-14, 15:38.

          Comment


            #95
            Originally posted by sodface View Post
            Code:
            Logitech Media Server Version: 8.4.0 - 1668416677 @ Mon 14 Nov 2022 10:29:44 AM CET
            Hostname: server
            Server IP Address: 10.0.0.10
            Server HTTP Port Number: 9000
            Operating system: Alpine Linux - EN - utf8
            Platform Architecture: x86_64-linux
            Perl Version: 5.36.0 - x86_64-linux-thread-multi
            Audio::Scan: 1.06
            IO::Socket::SSL: 2.075
            Database Version: DBD::SQLite 1.58 (sqlite 3.22.0)
            Total Players Recognized: 3
            That's great!

            Audio Scan 1.06 fixes parsing large comment headers (such as large embedded images) in opus files.
            Ralphy

            1-Touch, 5-Classics, 3-Booms, 2-UE Radio
            Squeezebox client builds donations always appreciated.

            Comment


              #96
              Originally posted by ralphy View Post
              That's great!

              Audio Scan 1.06 fixes parsing large comment headers (such as large embedded images) in opus files.
              Thanks for the info ralphy. It's really nice to see things moving along and maintained in the LMS ecosystem.

              Slightly off topic, but, I had an issue yesterday with squeezelite refusing to play mp3's on a cbm I had running Alpine 3.17_rc1. Fix was to rebuild squeezelite against 3.17, so I did that on all arches yesterday and will upload those along with the LMS updates on 3.17 release day. I was a bit behind on squeezelite versions anyway so updating was sort of needed regardless. I'm just glad I caught it.

              For future reference, I was seeing error log messages on the server like:

              Code:
              [22-11-14 10:53:56.3843] Slim::Player::Song::open (425) Error: Couldn't create command line for mp3 playback for [podcast://https://podtrac.com/pts/redirect.mp3/traffic.libsyn.com/latenightlinux/LNL202.mp3]
              [22-11-14 10:54:11.7813] Slim::Player::Song::open (425) Error: Couldn't create command line for mp3 playback for [podcast://https://podtrac.com/pts/redirect.mp3/traffic.libsyn.com/latenightlinux/LNL202.mp3]
              [22-11-14 10:54:22.1254] Slim::Player::Song::open (425) Error: Couldn't create command line for mp3 playback for [podcast://https://podtrac.com/pts/redirect.mp3/traffic.libsyn.com/latenightlinux/LNL201.mp3]
              Last edited by sodface; 2022-11-15, 12:47.

              Comment


                #97
                Alpine 3.17.0 was released today. I uploaded updated squeezelite and lms related packages to the sodface.com repo.

                See post #93 above for upgrade tips.

                Just remember, if you stay on Alpine 3.16 but update using my lms packages, lms will likely break because of the perl version change. Conversely, if you upgrade Alpine to 3.17.0 but don't update my lms packages, lms will also likely break.

                Please update/upgrade everything!

                I hope this does not cause any issues, please let me know if you run into any problems.

                Comment


                  #98
                  All Good Here!

                  Just applied the 3.17 and LMS upgrades, without problem.

                  Thanks for your continued, and continuing, support.

                  Comment


                    #99
                    Originally posted by Yatsushiro View Post
                    Just applied the 3.17 and LMS upgrades, without problem.

                    Thanks for your continued, and continuing, support.
                    Great! Thanks for the report!!

                    Comment


                      Yeah, same here, works great!
                      Thanks again!!

                      Comment


                        Originally posted by jpmenil View Post
                        Yeah, same here, works great!
                        Thanks again!!
                        My pleasure, glad to hear I didn't screw anything up (so far!).

                        Comment


                          I noticed this in Alpine's IRC logs yesterday:

                          2022-11-23 16:39:18 <ncopa> i have been thinking of sunset armhf. rpi1 is not worth supporting anymore. so its only rpi zero. I think even the latest gen of rpi zero runs armv7 IIRC
                          2022-11-23 16:39:43 <ncopa> I would like to drop armhf
                          2022-11-23 16:50:37 <mps> I agree
                          2022-11-23 16:57:06 <ayakael> Copy that, I won't pursue armhf support for dotnet7 then. Thanks!
                          2022-11-23 19:53:33 <ayakael> Latest gen of rpi zero (2nd gen) still is based on armv6, FWIW
                          Which would be kind of disappointing. I have a bunch of original pi zero w's though I'm not really currently using them for anything. The chromebase/box is 32bit also but armv7 which I guess Alpine should support for a while yet, though I think the days are numbered for 32bit generally, not just for Alpine. Time marches on.

                          Comment


                            Originally posted by sodface View Post
                            I noticed this in Alpine's IRC logs yesterday:



                            Which would be kind of disappointing. I have a bunch of original pi zero w's though I'm not really currently using them for anything. The chromebase/box is 32bit also but armv7 which I guess Alpine should support for a while yet, though I think the days are numbered for 32bit generally, not just for Alpine. Time marches on.
                            The chromebase works fine on its alpine os, so upgrading is optional as long as squeezelite is supported. While it’s within the LAN (no ports forwarded) I hope it is secure. Or as secure as the network anyway.

                            It’s remarkable that a device sold new in 2019 was 32 bit.
                            SB Touch (Community firmware v8.01) UE Radio, SMSL Sanskrit MkII, Talk Electronic Cyclone 1.2 amplifier. LMS 8.2 Snakeoil OS, HP t520 thin client.
                            BBCiPlayer, BBC Sounds, Shairtunes2 plugins, edo applet

                            Comment


                              Originally posted by Patricia P View Post
                              The chromebase works fine on its alpine os, so upgrading is optional as long as squeezelite is supported. While it’s within the LAN (no ports forwarded) I hope it is secure. Or as secure as the network anyway.

                              It’s remarkable that a device sold new in 2019 was 32 bit.
                              Yes, that is my thinking too. As I (sort of) understand it, Postmarketos, which is built on Alpine, uses armv7 to support older 32bit phones so hopefully that influences Alpine to continue support for armv7 for some time.

                              Comment


                                Just a head's up that Alpine is close to releasing 3.17.1:
                                https://gitlab.alpinelinux.org/alpin...-/issues/14539

                                Shouldn't be any breaking changes.

                                Comment

                                Working...
                                X