Closed azlux closed 6 months ago
Compilation with Ubuntu 20.04 isn't working on ARM (some lib are missing)
That's for ARM v7 On ARM64, the issue is https://github.com/mumble-voip/mumble/issues/3845
Any updates on when an ARM version will be available? Or is there any chance the image that was released before the repo got taken down / restored could be also restored? For context I have an image I pulled from mumblevoip/mumble-server in March that has the ARM binaries...but that seems to be no longer available?
No updates yet, no. Restoring the old image is also not possible afaik (and would seem to be legally questionable anyway).
It looks like there won't be any for a while :(
Hi @Krzmbrzl,
I have successfully build, tested and deployed Mumble Server from your branch streamline-packetdatastream-imp.
As part of this I forked this repository and re-added building of ARM64 images, docker build caching, and the ability to build images in the Mumble Docker repository with code sources from a fork.
Would you like me to PR this work upstream?
Ideally if so, we should remove my development build and re-enable all the stable builds for all platforms. Change my work to push to GitHub Container Registry back to DockerHub, and probably remove the ability to build from foreign repository.
I added this to build from your fork, but I can see this being a potential supply chain vulnerability, if one of the maintainers GitHub account was compromised, it could be used to build malicious Mumble code from a fork and pushed to the official image repository.
Hi @Matthew-Beckett, Upstreaming this eventually would be great. However, we need to take care that we only enable ARM for builds that actually contain the necessary patch. After my branch gets merged that'll only be the master branch. Potentially we could backport it to the 1.4.x branch, but in either case none of the currently existing releases will be buildable on ARM as they don't contain the necessary patch.
So the ARM build should be enabled only conditionally. This should be easy enough though, as we specify the build targets and the corresponding target platforms explicitly anyway.
But first things first: The PR has to get merged. At the moment there are still some unresolved issues related to the new build flags.
Hi @Matthew-Beckett,
Upstreaming this eventually would be great. However, we need to take care that we only enable ARM for builds that actually contain the necessary patch. After my branch gets merged that'll only be the master branch. Potentially we could backport it to the 1.4.x branch, but in either case none of the currently existing releases will be buildable on ARM as they don't contain the necessary patch.
So the ARM build should be enabled only conditionally. This should be easy enough though, as we specify the build targets and the corresponding target platforms explicitly anyway.
But first things first: The PR has to get merged. At the moment there are still some unresolved issues related to the new build flags.
Once merged if you want me to handle back-porting I can take a look.
Did the patch make it into the 1.5.x release candidate? I tried building with the v1.5.517
tag and the tests still fail.
No the patch has not even been merged to master yet as there are unresolved build issues related to it and I have not yet found the time to look into this properly
Had a little time to look into this earlier today. I've been able to build per the discussion in https://github.com/mumble-voip/mumble/issues/3845. As a result I have the v1.4.287 and v1.5.517 arm64 and amd64 builds available at https://hub.docker.com/r/timothysu/mumble-server/tags. I also still have the original v1.4.230 arm64 build published a long time ago repushed.
If you wish to build it yourself, it should work with --build-arg MUMBLE_CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE=\"-fsigned-char\""
.
The full command I used for the images pushed on my repo is docker buildx build --platform linux/amd64,linux/arm64 --build-arg MUMBLE_VERSION="v1.5.517" --build-arg MUMBLE_CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE=\"-fsigned-char\"" -t timothysu/mumble-server:v1.5.517 . --push
.
If this is legit could we get an official build via the above @Krzmbrzl?
We already have https://github.com/mumble-voip/mumble/pull/5960 that will fix this issue. There are only a couple of small things left that need to be fixed before this can be merged.
However, I'm not particularly fond of spreading workarounds all over the place - aka: I'd prefer fixing up that PR than using a hand-crafted workaround in this repo :thinking:
Any idea when this will be completed?
I can't really give a proper estimate. The answer is essentially "once I have the time to finish this", but as things stand right now, I can't tell you when that will be :/ Right now, working on the 1.5 release has priority. After that I'll probably turn to this.
We're coming up on the anniversary of this issue. Hopefully this can be resolved soon.
I can't really give a proper estimate. The answer is essentially "once I have the time to finish this", but as things stand right now, I can't tell you when that will be
:point_up:
Hi again. I understand and appreciate that you do this in your free time with no remuneration and I understand to an extent the importance of getting the newer version out the window, but when a subset of the user base is unable to use the software in question, I would think that would take precedence, especially when the fix was so far away (looking at the initial date of this issue). I wish there was at least an alternative for those of us wanting to run a server on docker ARM, like republishing an old image or something.
I can't really give a proper estimate. The answer is essentially "once I have the time to finish this", but as things stand right now, I can't tell you when that will be
☝️
:point_up:
Obviously, everyone is more than welcome to contribute the necessary fixes themselves. I certainly don't insist on doing everything myself :shrug: I currently simply don't have enough time to work on all issues that pop up around Mumble. I might have some more time to spend in August, but we'll have to see...
Hi again. I understand and appreciate that you do this on your free time with no remuneration and I understand to an extent the importance of getting the newer version out the window, but when a subset of the user base is unable to use the software in question, I would think that would take precedence, especially when the fix was so far away (looking at the initial date of this issue). I wish there was at least an alternative for those of us wanting to run a server on docker ARM, like republishing an old image or something.
In such urgent cases, you would usually build your own, patched version, of the software in question.
If there's a workaround by using some Docker or OS internals, I can also help you with that.
It also depends on what "ARM" you all want. My Docker wrapper for murmur
has just been awakened from its 3 year long sleep & I provide some ARM builds, that I think are common.
These are the platforms I build for. I probably could add more.
linux/arm/v7,linux/arm64/v8,linux/amd64
Alright folks, what kind of ARM images do you need? I have just added support for ARM64 via #37 which will become available as pre-built images for the new release series. Any other architectures that are needed?
For me ARM64 it is.
Thanks for listening to us.
+1 for ARM64
armhf
for older raspberry pis would be nice.
arm64 would be nice, thanks
+1 for aarch64, thanks, looking forward to use official images
armv7 also pls :-)
+1 for ARM64
We now have an AArch64/ARM64 instance, kindly provided by OSU Open Source Lab: https://osuosl.org/services/aarch64
All components seem to build just fine and without any warnings, meaning that there shouldn't be any blockers left. That is, unless there is an issue with Docker.
I've been able to build on aarch64 using a docker-compose.yml with 'build: https://github.com/mumble-voip/mumble-docker.git'. I didn't test it extensively but it seemed to be working fine.
armv8 would be appreciated as well.
All components seem to build just fine and without any warnings, meaning that there shouldn't be any blockers left. That is, unless there is an issue with Docker.
@davidebeatrici ->
I have just added support for ARM64 via https://github.com/mumble-voip/mumble-docker/pull/37 which will become available as pre-built images for the new release series.
That means that the only "blocker" is that 1.5 isn't released yet.
In #42 I have added support for
thanks a lot for the follow up!
Currently the ARM build aren't available on the Docker Hub. Reasons :
This will be fix on next mumble-server release.