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

ARM build missing #3

Closed
azlux opened this issue May 7, 2022 · 32 comments · Fixed by #42
Closed

ARM build missing #3

azlux opened this issue May 7, 2022 · 32 comments · Fixed by #42

Comments

@azlux
Copy link
Collaborator

azlux commented May 7, 2022

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

  • Compilation with Openssl 3 is fix on upstream, but not released yet. So we cannot build on Ubuntu 22.04
  • Compilation with Ubuntu 20.04 isn't working on ARM (some lib are missing)
  • Compilation is working on 21.10, but this Ubuntu version is almost EOL (July, 2022), we don't want unsupported system.

This will be fix on next mumble-server release.

@azlux azlux pinned this issue May 7, 2022
@Krzmbrzl
Copy link
Member

Krzmbrzl commented May 7, 2022

Compilation with Ubuntu 20.04 isn't working on ARM (some lib are missing)

That's for ARM v7
On ARM64, the issue is mumble-voip/mumble#3845

@timothysu
Copy link

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
Copy link
Member

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

@sirjeannot
Copy link

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

@Matthew-Beckett
Copy link

Matthew-Beckett commented Nov 18, 2022

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
Copy link
Member

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
Copy link

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
Copy link

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
Copy link
Member

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
Copy link

Had a little time to look into this earlier today. I've been able to build per the discussion in mumble-voip/mumble#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
Copy link
Member

We already have mumble-voip/mumble#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 🤔

@stryker7176
Copy link

Any idea when this will be completed?

@Krzmbrzl
Copy link
Member

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
Copy link

Coxis commented Apr 13, 2023

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

@Krzmbrzl
Copy link
Member

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

☝️

@Coxis
Copy link

Coxis commented Jul 15, 2023

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
Copy link
Member

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

☝️

☝️

Obviously, everyone is more than welcome to contribute the necessary fixes themselves. I certainly don't insist on doing everything myself 🤷
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
Copy link

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

theAkito added a commit to theAkito/docker-murmur that referenced this issue Jul 22, 2023
Just to see what happens...

Inspired by mumble-voip/mumble-docker#3
Krzmbrzl added a commit to Krzmbrzl/mumble-docker that referenced this issue Jan 7, 2024
Now that mumble-voip/mumble#5960 has been
merged, building on ARM should no longer suffer from failing test cases
and thus the corresponding images can now be enabled here.

See also mumble-voip#3
@Krzmbrzl
Copy link
Member

Krzmbrzl commented Jan 7, 2024

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
Copy link

Abbode commented Jan 8, 2024

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

@eTaurus
Copy link

eTaurus commented Jan 8, 2024

+1 for ARM64

@CogentRedTester
Copy link

CogentRedTester commented Jan 8, 2024

armhf for older raspberry pis would be nice.

@mmBesar
Copy link

mmBesar commented Jan 11, 2024

arm64 would be nice, thanks

@wikiwang1991
Copy link

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

@sbodese
Copy link

sbodese commented Mar 22, 2024

armv7 also pls :-)

@Vysp3r
Copy link

Vysp3r commented Apr 6, 2024

+1 for ARM64

@davidebeatrici
Copy link
Member

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
Copy link

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
Copy link

Coxis commented Apr 8, 2024

armv8 would be appreciated as well.

@Krzmbrzl
Copy link
Member

Krzmbrzl commented Apr 8, 2024

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 #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
Copy link
Member

In #42 I have added support for

  • ARM v7 (which as far as I understand is the same as armhf?)
  • ARM v8
    and I think that was all that has been requested here. If I missed something, please let me know.

@sirjeannot
Copy link

thanks a lot for the follow up!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.