mumble-voip / mumble

Mumble is an open-source, low-latency, high quality voice chat software.
https://www.mumble.info
Other
6.44k stars 1.12k forks source link

Feature request: Apple Silicon/Universal build #4876

Open josefleventon opened 3 years ago

josefleventon commented 3 years ago

Context MumbleLink, when working with Mumble on some games running natively on an M1-SoC Apple Silicon Mac, does not work due to Mumble running on Rosetta 2.

Describe the feature you have in mind A build for ARM-powered Macs.

Describe alternatives you've considered I've tried building from source on multiple different versions (including LTS), does not work. App will launch and immediately crash.

davidebeatrici commented 3 years ago

You should be able to build for ARM64 macOS just fine, but we are definitely going to release official builds soon.

We currently don't have ARM64 builders, but we can cross-compile on x64. However, dependencies such as Qt also contain tools in addition to libraries and as far as I know they're all built for the target architecture in vcpkg.

josefleventon commented 3 years ago

@davidebeatrici I've been using this guide. Is that wrong?

davidebeatrici commented 3 years ago

No, it's correct.

According to @cfstras (#4765) the client runs fine.

josefleventon commented 3 years ago

Super interesting, thank you. I'll make sure to follow his guide.

davidebeatrici commented 3 years ago

No problem.

josefleventon commented 3 years ago

Personally I'm just trying to get it to run with mumblelink, as long as it doesn't crash all the time I'm good to go :) Thank you for your guide Claus!

josefleventon commented 3 years ago

@cfstras I would recommend adding -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl to the options. For some reason OpenSSL isn't recognized by make

cfstras commented 3 years ago

As mentioned in #4765, I symlinked my /opt/homebrew/opt to /usr/local/opt to fix all these path issues in one go. YMMV. See here: https://gist.github.com/cfstras/f741087c77a899d5f77eb4664c5b4a70#file-mumble-build-m1-sh-L50-L54

josefleventon commented 3 years ago

Got it! Thank you for your help.

iJaack commented 3 years ago

As per the macOS build, I get this error when running cmake ..:

CMake Error at cmake/pkg-utils.cmake:87 (message): Qt5 component not found: Core Call Stack (most recent call first): src/CMakeLists.txt:17 (find_pkg)

Anyone can help?

cfstras commented 3 years ago

@iJaack please have a read through the "Caveats" section in #4765. You can use this build script to get you started: https://gist.github.com/cfstras/f741087c77a899d5f77eb4664c5b4a70 (Please do read through it before executing, it symlinks your /opt/homebrew to /usr/local, so it won't work if you have an existing x86 homebrew installed.

iJaack commented 3 years ago

OK it works, thank you!

keybits commented 2 years ago

Now that 1.4 is generally available, are the plans for an Apple Silicon (ARM64) / Universal version for macOS still active?

Krzmbrzl commented 2 years ago

To my knowledge they are not

davidebeatrici commented 2 years ago

MacStadium kindly replaced our gen 3 Mac Mini with a gen 5 one for free, as part of their open-source program.

As a result, we can now build and test ARM64 binaries and may be able to deliver official releases for that architecture soon.

iakat commented 1 year ago

Is there any plans for this?

davidebeatrici commented 1 year ago

If I recall correctly there was an issue with the Qt port in vcpkg, which could be fixed now.

ghost commented 1 year ago

updates?

Krzmbrzl commented 1 year ago

No

iakat commented 1 year ago

ok

ForlornWongraven commented 1 year ago

Mumble is the only application that still requires Rosetta2 on my iMac. Any update?

Krzmbrzl commented 1 year ago

No - nobody has had the time to work on this yet

thegcat commented 10 months ago

As a datapoint and maybe as an inspiration for those that don't need the game-related functionality of Mumble: I've been compiling and using Mumble fine with -DCMAKE_BUILD_TYPE=Release -Doverlay=off -Dice=off. I need to recompile every so often because the libs from homebrew get updated, but apart from that it's been smooth so far.

davidebeatrici commented 10 months ago

That's good news, as it means there should be no issues in our codebase.

@Krzmbrzl We should probably revisit the ARM64 vcpkg build.

Krzmbrzl commented 10 months ago

There were some recent vcpkg PRs that we need to be merged as they fixed some issues for the ARM build. However, they have been merged by now. We'll have to update the macOS target to at least 11 as one of the nibs requires at least that version. This will involve rewriting (or disabling) the overlay to use Metal instead of OpenGL.

davidebeatrici commented 10 months ago

As far as I know there are no games that make use of Metal directly and for good reason: Vulkan exists.

I'm pretty sure most engines make use of MoltenVK, which is a translation layer that enables the use of Vulkan on top of Metal.

Krzmbrzl commented 10 months ago

Well, in that case we need a Vulkan overlay - the main point being that the OpenGL API is deprecated after 10.15

Avi-D-coder commented 6 months ago

This builds the client on macos arm aarch64-darwin https://github.com/Avi-D-coder/mumble-nix-flake-macos. Just run nix build then open result/Mumble.app The client is very buggy especially when changing settings, but it does work.