Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide arm binaries for all platforms. #280

Open
2 of 3 tasks
mainrs opened this issue Sep 5, 2019 · 23 comments · May be fixed by #992
Open
2 of 3 tasks

Provide arm binaries for all platforms. #280

mainrs opened this issue Sep 5, 2019 · 23 comments · May be fixed by #992
Assignees
Labels
ci CI related issues or improvements
Milestone

Comments

@mainrs
Copy link
Member

mainrs commented Sep 5, 2019

  • armv6
  • armv7
  • aarch64
@mainrs mainrs self-assigned this Sep 5, 2019
@mainrs mainrs added the ci CI related issues or improvements label Sep 10, 2019
@nicokaiser
Copy link
Contributor

This is resolved by #479?

@mainrs mainrs closed this as completed Jan 24, 2020
@mainrs mainrs reopened this Jan 24, 2020
@mainrs
Copy link
Member Author

mainrs commented Jan 24, 2020

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

@nicokaiser
Copy link
Contributor

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?

@mainrs
Copy link
Member Author

mainrs commented Jan 25, 2020

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.

@CoolGames
Copy link

CoolGames commented Mar 8, 2020

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

@ljufa
Copy link

ljufa commented Sep 22, 2020

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

@jonkerj
Copy link

jonkerj commented Oct 12, 2020

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 :-)

@stale
Copy link

stale bot commented Jan 13, 2021

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 stale bot added the wontfix Issues that will not be fixed under any circumstances label Jan 13, 2021
@slondr slondr added this to the v0.3.1 milestone Jan 16, 2021
@stale stale bot removed the wontfix Issues that will not be fixed under any circumstances label Jan 16, 2021
@jonkerj
Copy link

jonkerj commented Jan 29, 2021

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/*?)

@mainrs
Copy link
Member Author

mainrs commented Jan 29, 2021

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.

@jonkerj
Copy link

jonkerj commented Jan 29, 2021

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.

@mainrs
Copy link
Member Author

mainrs commented Jan 29, 2021

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.

@stale
Copy link

stale bot commented Apr 30, 2021

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 stale bot added the wontfix Issues that will not be fixed under any circumstances label Apr 30, 2021
@stale stale bot closed this as completed May 10, 2021
@jonkerj jonkerj linked a pull request Aug 27, 2021 that will close this issue
@MichaIng
Copy link

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.

@jonkerj
Copy link

jonkerj commented Sep 22, 2021

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.

@agneevX
Copy link

agneevX commented Dec 27, 2021

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

@jonkerj
Copy link

jonkerj commented Jan 10, 2022

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.

@georgefst
Copy link

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

@georgefst
Copy link

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.

@slondr
Copy link
Member

slondr commented Sep 9, 2022

Could we get this reopened now that that's been disabled (#1061)?

Absolutely.

@slondr slondr reopened this Sep 9, 2022
@slondr slondr modified the milestones: v0.3.1, v0.3.4 Sep 9, 2022
@eladyn eladyn removed the wontfix Issues that will not be fixed under any circumstances label Oct 2, 2022
@slondr slondr modified the milestones: v0.3.4, v0.3.5 Nov 23, 2022
@slondr slondr modified the milestones: v0.3.5, v0.3.6 Mar 30, 2023
@caliguIa
Copy link

any update on this?

@eladyn
Copy link
Member

eladyn commented May 18, 2023

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.

@georgefst georgefst mentioned this issue Sep 9, 2023
@jessebot
Copy link

jessebot commented Sep 9, 2023

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: #1209 (comment) It's not perfect, but it could be helpful to those in a pickle 💚

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci CI related issues or improvements
Projects
None yet