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

Native Apple M1 releases (arm64) #2357

Closed
6 tasks done
hoffie opened this issue Feb 7, 2022 · 9 comments
Closed
6 tasks done

Native Apple M1 releases (arm64) #2357

hoffie opened this issue Feb 7, 2022 · 9 comments
Assignees
Labels
feature request Feature request
Milestone

Comments

@hoffie
Copy link
Member

hoffie commented Feb 7, 2022

Has this feature been discussed and generally agreed?

Apple M1 is currently supported via Rosetta 2. There is demand for native builds. This issue tracks the required work.

Describe the solution you'd like

Describe alternatives that have been considered

There've been no reports about problems with running the x86_64 builds via Rosetta 2 on M1. Still, running something latency-critical as Jamulus via potentially avoidable translation layers sounds non-optimal.

@hoffie hoffie added the feature request Feature request label Feb 7, 2022
@hoffie hoffie added this to the Release 3.9.0 milestone Feb 7, 2022
@ann0see
Copy link
Member

ann0see commented Feb 7, 2022

I‘d prefer universal builds. Why should we provide 3 macOS binaries? Doesn’t that confuse people?

How much work are universal builds?

@hoffie
Copy link
Member Author

hoffie commented Feb 7, 2022

I‘d prefer universal builds. Why should we provide 3 macOS binaries? Doesn’t that confuse people?

Yep, a single build would be best (+ legacy...).

How much work are universal builds?

I can't judge. I think it's possible (lipo seems to be the tool to make that happen). I'm not opposed (the only downsides might be download sizes and longer build times for a single target) at all, it's just that it's one step more which is why I've listed it as an individual item. If we can't do it along with the other stuff, it should not be blocking.

@hoffie
Copy link
Member Author

hoffie commented Mar 5, 2022

My initial tests were done on macos-11 with latest Xcode. While we can do that if we have a dedicated M1 build, we decided against updating to those versions for the existing build (see #2463).
However, if we aim for a universal build in the end, we should probably try it on the currently configured versions.

Per the docs, it should be sufficient:

To build a universal binary, you need Xcode 12 or a later version, which adds arm64 to the standard list of build architectures for macOS binaries.

hoffie added a commit to hoffie/jamulus that referenced this issue Apr 5, 2022
hoffie added a commit to hoffie/jamulus that referenced this issue Apr 5, 2022
hoffie added a commit to hoffie/jamulus that referenced this issue Apr 5, 2022
@hoffie hoffie self-assigned this Apr 26, 2022
@pljones
Copy link
Collaborator

pljones commented May 22, 2022

@hoffie is this likely to make 3.9.0?

@ann0see
Copy link
Member

ann0see commented May 22, 2022

@pljones I think this would need macOS builds with Qt 6

@pljones pljones modified the milestones: Release 3.9.0, Release 3.9.1 Jun 18, 2022
@pljones
Copy link
Collaborator

pljones commented Jun 18, 2022

Moved to 3.9.1.

hoffie added a commit to hoffie/jamulus that referenced this issue Jun 30, 2022
@hoffie
Copy link
Member Author

hoffie commented Jun 30, 2022

Qt is supposed to have rather good support for universal binaries (QMAKE_APPLE_DEVICE_ARCHS = x86_64 arm64). Sadly, this doesn't play well with our opus build which contains arch-specific code paths: https://github.com/hoffie/jamulus/runs/7139920524?check_suite_focus=true

Raw lipo usage might be an option, but I'm not sure if it works on .app files.

@pljones pljones closed this as completed in 1331b11 Jul 6, 2022
@ann0see ann0see reopened this Jul 6, 2022
@ann0see
Copy link
Member

ann0see commented Jul 6, 2022

Re-Opening as the universal build is something for the next version.

@hoffie
Copy link
Member Author

hoffie commented Aug 20, 2022

I've opened new issues for the two remaining items of this issue (universal binaries, signing). I'm therefore closing this issue.

@hoffie hoffie closed this as completed Aug 20, 2022
@ann0see ann0see removed this from the Release 3.9.1 milestone Aug 20, 2022
@pljones pljones added this to the Release 3.9.0 milestone Oct 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Feature request
Projects
None yet
Development

No branches or pull requests

3 participants