-
Notifications
You must be signed in to change notification settings - Fork 459
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
add CD support for armv6 and armv7 #479
Conversation
The Travis workflow was deactivated anyway, right? So if (?) this works, the |
@@ -34,40 +34,87 @@ jobs: | |||
artifact_prefix: linux | |||
audio_backend: alsa | |||
target: x86_64-unknown-linux-gnu | |||
- build_target: linux-armhf | |||
os: ubuntu-18.04 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since "bionic" is needed when adding the Ubuntu Ports source later, this must be hard-coded to ubuntu-18.04
.
- name: Packaging final binary | ||
shell: bash | ||
run: | | ||
cd target/${{ matrix.target }}/release | ||
|
||
strip spotifyd |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
strip
will not recognise cross-compiled binaries, so we cannot always use it (and just assume that Rust creates good-enough ones).
Great work! Yes, the current DBUS doesn't work in headless for most cases. I've tried the same with
I think I've posted this somewhere in one of our issues so I don't forget this. That is the case, yes. The binary you created should be armv7 iirc. If you have the time, could you try to run it in a qemu armv6 emulator and see if it loads? Because I am actually not sure what target armhf exactly targets. THis could be expanded to support aarch64 as well as most dependencies should be available there as well. The tricky part is to find a working mirror that provides those files for us. That was the main issue I faced with my try. |
Would it be possible to extend this for armv6 as well @nicokaiser? |
@nicokaiser could you trigger a new release on your fork and see if the workflow works correctly? This can be done by creating and pushing a new tag to the master branch. |
Okay the I managed to add a build for armv6 using the Raspberry Pi toolchain, however due to the very old gcc version (gcc-4.9.3 from 2015) and its libc-2.19 the There are other repositories with updated toolchains (such as Pro/raspi-toolchain), however I think the |
Awesome! Thank you very much! I will merge it once you added the armv6 chain. If the builds work as expected we can remove Travis altogether. |
I forked your repo and ran a test. All binaries sucessfully built and were deployed. Thank you very very much! You did an awesome job here! Really appreciated! |
This PR adds a workflow that creates "arm-unknown-linux-gnueabihf" builds for the "slim" and "full" versions with "alsa_backend" using cross compilation.
The resulting packages are called
spotifyd-linux-armhf-slim.tar.gz
andspotifyd-linux-armhf-full.tar.gz
.As a new package source has to be installed,
ubuntu-latest
cannot be used here, so the new step usesubuntu-18.04
(which currently is the same, but we need to be sure).Instead of a full
sbuild
setup, the armhf packages are installed and copied manually, which may look dirty. Unfortunately,dbus-rs
needs quite some system packages, so we need to download and put them where the linker expects them to be. This process is described here: diwic/dbus-rs#184 (comment)Issues:
full
version? I can build it, but cannot get MPRIS D-Bus running on my machine, which may as well be a client problem: the process refuses to start without$DISPLAY
, and when using the system dbus,playerctl
acts up and won't display anything. Not sure if I broke this or it did not work at all in the first place. (If I understand it correctly, starting thefull
version always requires D-Bus? Dbus not avalible when headless #244)Related: #259, #280, #286