mumble-voip / mumble-docker

The official Mumble Docker image
BSD 3-Clause "New" or "Revised" License
146 stars 34 forks source link

ARM build missing #3

Closed azlux closed 6 months ago

azlux commented 2 years ago

Currently the ARM build aren't available on the Docker Hub. Reasons :

This will be fix on next mumble-server release.

Krzmbrzl commented 2 years 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

timothysu commented 2 years ago

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?

Krzmbrzl commented 2 years ago

No updates yet, no. Restoring the old image is also not possible afaik (and would seem to be legally questionable anyway).

sirjeannot commented 2 years ago

It looks like there won't be any for a while :(

Matthew-Beckett commented 2 years ago

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.

Krzmbrzl commented 2 years ago

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.

Matthew-Beckett commented 2 years ago

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.

timothysu commented 1 year ago

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.

Krzmbrzl commented 1 year ago

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

timothysu commented 1 year ago

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?

Krzmbrzl commented 1 year ago

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:

stryker7176 commented 1 year ago

Any idea when this will be completed?

Krzmbrzl commented 1 year ago

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.

Coxis commented 1 year ago

We're coming up on the anniversary of this issue. Hopefully this can be resolved soon.

Krzmbrzl commented 1 year ago

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:

Coxis commented 1 year ago

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.

Krzmbrzl commented 1 year ago

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...

theAkito commented 1 year ago

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

https://github.com/theAkito/docker-murmur

https://hub.docker.com/r/akito13/murmur

Krzmbrzl commented 10 months ago

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?

Abbode commented 10 months ago

For me ARM64 it is.
Thanks for listening to us.

eTaurus commented 10 months ago

+1 for ARM64

CogentRedTester commented 10 months ago

armhf for older raspberry pis would be nice.

mmBesar commented 10 months ago

arm64 would be nice, thanks

wikiwang1991 commented 10 months ago

+1 for aarch64, thanks, looking forward to use official images

sbodese commented 8 months ago

armv7 also pls :-)

Vysp3r commented 7 months ago

+1 for ARM64

davidebeatrici commented 7 months ago

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.

bgvaughan commented 7 months ago

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.

Coxis commented 7 months ago

armv8 would be appreciated as well.

Krzmbrzl commented 7 months ago

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.

Krzmbrzl commented 6 months ago

In #42 I have added support for

sirjeannot commented 6 months ago

thanks a lot for the follow up!