spotifyd icon indicating copy to clipboard operation
spotifyd copied to clipboard

Provide arm binaries for all platforms.

Open mainrs opened this issue 6 years ago • 23 comments

  • [x] armv6
  • [x] armv7
  • [ ] aarch64

mainrs avatar Sep 05 '19 18:09 mainrs

This is resolved by #479?

nicokaiser avatar Jan 24 '20 21:01 nicokaiser

Not completely. The newest architecture, aarch64 is missing :)

mainrs avatar Jan 24 '20 21:01 mainrs

Is aarch64 worth being optimised for yet? Since Raspbian does not use its instructions (neither Debian or Ubuntu armhf), would it even make a difference, performance wise for decoding MPEG-4 Audio?

nicokaiser avatar Jan 24 '20 23:01 nicokaiser

No clue to be honest. I know that some distributions don't work with aarch64 (like rasbian for example), some on the other hand do (arch). Needs more research for sure.

mainrs avatar Jan 25 '20 14:01 mainrs

Tried armhf downloaded from github then running spotifyd

on Odroid N2 4GB Ubuntu 18.04 lts with Amlogic S922X

create conf at ~/.config/spotifyd/spotifyd.conf similar to this...

SpotifyDummy.conf.txt

Ran armhf in extracted location after cd to same place.

` $ ls -lh ./spotifyd -rwxr-xr-x 1 xxxxxxxx xxxxxxx 17M Jan 24 14:28 spotifyd

$ ./spotifyd bash: ./spotifyd: No such file or directory $ uname -a Linux odroid 4.9.213-67 #1 SMP PREEMPT Thu Feb 13 14:59:00 -03 2020 aarch64 aarch64 aarch64 GNU/Linux $ `

UPDATE: Success building from SOURCE in 30 minutes native on Odroid N2 with default ALSA using Android 10 app on Google Pixel 3a Spotify D - Screenshot_2020-03-08_14-56-31

CoolGames avatar Mar 08 '20 17:03 CoolGames

armv6 full is also missing. Personally I would like to use d-bus control on rpi zero.

ljufa avatar Sep 22 '20 14:09 ljufa

Just a little message to let you guys know I am still meaning to restart my efforts to fix/clean up the CD, include ARM64 and fix armv6 soon :-)

jonkerj avatar Oct 12 '20 08:10 jonkerj

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Jan 13 '21 14:01 stale[bot]

Some news: I've restarted my efforts to clean-up the CD and adding arm64/aarch64 to it. I'm going to leverage debian's multiarch, so you can do stuff like this:

dpkg --add-architecture ${DEBARCH}
apt-get update
apt-get install -y -qq \
        gcc-${ARCH}-linux-${ABI} libc6-${DEBARCH}-cross libc6-dev-${DEBARCH}-cross \
        libasound2-dev:${DEBARCH} libssl-dev:${DEBARCH} libssl1.1:${DEBARCH}
if [ "${BUILD_TYPE}" = "full" ]; then
        apt-get install -y -qq \
                libdbus-1-dev:${DEBARCH} libdbus-1-3:${DEBARCH} libsystemd0:${DEBARCH} libgcrypt20:${DEBARCH} liblzma5:${DEBARCH} liblz4-1:${DEBARCH} libgpg-error0:${DEBARCH}
fi

Multiarch is the way to install foreign architecture packages on your system. Makes installing easier (compare with apt-get download + dpkg -x) and has an additional benefit that a lot of tools don't have to be told which paths to search.

I will put this into gh-action, but doing it in bash makes testing much faster.

I have a couple of questions to the main devs of Spotifyd (probably @SirWindfield):

  • are you OK if I pin ubuntu to 'focal' instead of 'latest'? This is a LTS release, which will be supported for several years. Latest should change twice a year, risking CD breakage
  • I would like to rename x86_64 artifacts: spotifyd-linux-full.tar.gz to spotifyd-linux-x86_64-full.tar.gz: what do you think? This will make the CD code much less convoluted
  • I am inclined to put some of the "set up the repos and install build dependency packages" into simple bash scripts, so there are less conditionals in the GH action yaml. What's your view on that? If you agress, where do you want me to put them (./ci/*?)

jonkerj avatar Jan 29 '21 09:01 jonkerj

I actually tried the multiarch approach the first time for the CD. But it failed. I couldn't get the apt repositories working and it kept installing the wrong arch packages for some of the packages that we needed. It failed to compile some of the packages that it probably just came down to user error and my missing experience.

  1. Not sure if that breaks anything. I don't think so.
  2. Yes, the change is fine with me.
  3. No opinion on this to be honest. Maybe others can chime in here.

mainrs avatar Jan 29 '21 10:01 mainrs

I took me a while to get working too. Turned out that when you do not have the exact same package versions for native and cross things explode. For example, when your native sources contain updates/security and your cross doesnt, the version for libc6 can mismatch.

I'll keep working on this, stay tuned.

jonkerj avatar Jan 29 '21 10:01 jonkerj

I took me a while to get working too. Turned out that when you do not have the exact same package versions for native and cross things explode. For example, when your native sources contain updates/security and your cross doesnt, the version for libc6 can mismatch.

I'll keep working on this, stay tuned.

That was the exact issue I had! Good to know what the reason was.

mainrs avatar Jan 29 '21 11:01 mainrs

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Apr 30 '21 00:04 stale[bot]

Hey guys, the question about aarch64 binaries just came up our end. An official Raspberry Pi OS 64-bit is in beta, Armbian and DietPi provide aarch64 images for a large set of 64-bit capable SBCs, including Raspberry Pi 2 v1.2 and up.

And while writing I see it is worked on here, right? 😃 Let me know if we can help testing.

MichaIng avatar Sep 22 '21 13:09 MichaIng

Yeah, that PR revamps the CD code, and in the process it adds aarch64/arm64 support. It just needs review of one of the main devs.

jonkerj avatar Sep 22 '21 17:09 jonkerj

Any update on this guys? Ubuntu now has arm64 builds available for Raspberry Pis, so this would be very helpful.

agneevX avatar Dec 27 '21 14:12 agneevX

Not really. My revamp/cleanup of the CD inherently breaks Armv7 support (due to a chain reaction of legacy libs needed), and to be honest: it's more effort for me to tackle that issue than to manually compile spotifyd every new release.

So I gues I gave up, basically, I'm sorry.

jonkerj avatar Jan 10 '22 10:01 jonkerj

I'm not really sure why this is closed while AArch64 support is still blocked on https://github.com/Spotifyd/spotifyd/pull/992. Anyway, in the meantime, I'm running Raspotify, which added support in https://github.com/dtcooper/raspotify/pull/507. But I would prefer to return to Spotifyd.

georgefst avatar Sep 02 '22 16:09 georgefst

I'm not really sure why this is closed

Oh, of course, it's my old enemy the stale bot. Could we get this reopened now that that's been disabled (#1061)? It would have allowed me to discover much sooner that this is still an issue, and I'm sure it would help others do the same.

georgefst avatar Sep 02 '22 16:09 georgefst

Could we get this reopened now that that's been disabled (https://github.com/Spotifyd/spotifyd/pull/1061)?

Absolutely.

slondr avatar Sep 09 '22 03:09 slondr

any update on this?

caliguIa avatar May 12 '23 13:05 caliguIa

I'm planning to take another shot at #992 some time, and - while I'm at it - add additional platform support. But I'm not yet sure, when I will find the time to do that, so if someone else steps up, that would be welcome as well.

eladyn avatar May 18 '23 19:05 eladyn

In #1209, because I didn't see this issue earlier, I wrote a small docker image that may be helpful to those who just need a binary quickly: https://github.com/Spotifyd/spotifyd/issues/1209#issuecomment-1580077632 It's not perfect, but it could be helpful to those in a pickle :green_heart:

jessebot avatar Sep 09 '23 07:09 jessebot