add support for Linux arm64 and Linux arm#1633
Conversation
|
@shiftkey needed to support GitHub Desktop linux on all currently built architectures. Please help this get merged. |
|
bump |
mjcheetham
left a comment
There was a problem hiding this comment.
Thanks for this! Adding Linux ARM support has been a long standing request, but we've just not had time to get around to it, or time to review other submissions.
I think your changes here work good! The only request I have is let's take this time to change the gcm-linux_$ARCH artifact format to match the others: gcm-$RUNTIME.
This way we also only pass the same $RUNTIME argument to all the build scripts, and only compute the $ARCH for the Debian control file in pack.sh.
af5de74 to
339b8eb
Compare
Co-Authored-By: Matthew John Cheetham <mjcheetham@github.com>
339b8eb to
628acd0
Compare
|
@mjcheetham I implemented the changes, squashed (since there was really no need to keep the history, it just would make it more confusing), and gave you co-authorship. The changes should be finished. |
mjcheetham
left a comment
There was a problem hiding this comment.
This is great work! Thank you
|
@mjcheetham https://github.com/git-ecosystem/git-credential-manager/actions/runs/11706008472/job/32602083045#step:5:344 that is an oversight. I was not aware this scripting was used in anything other than the debian based release actions. |
Thanks for alerting me. I am looking at this now. |
@mjcheetham this should fix this #1633 (comment) it also fixes as a side effect the alpine linux build from source being built against the wrong [glibc linux (linux-x64)](https://github.com/git-ecosystem/git-credential-manager/actions/runs/11573830139/job/32216761503#step:5:142) runtime instead of the correct [musl linux (linux-musl-x64)](https://github.com/theofficialgman/git-credential-manager/actions/runs/11706600286/job/32604070640#step:5:142) runtime full test run: https://github.com/theofficialgman/git-credential-manager/actions/runs/11706600286
|
@mjcheetham now that this has been included for a few weeks, is there any timeline for a new release to be made? I know there are some dependent projects waiting on this. |
|
+1 on getting a new release out that has arm64 debs. It's currently a big pain to try and build a dual amd64/arm64 container as you need the overhead of installing the .NET SDK and then installing it as a tool. |
|
@mjcheetham just checking in on this and noticed that this is still not in the latest release https://github.com/git-ecosystem/git-credential-manager/releases/tag/v2.6.1 . Any timeline on when a tag will be made on main head? |
|
@theofficialgman I have no official timeline, even though I am happy to report that the ownership issues seem to have been resolved now. Hopefully it is now only a matter of weeks at most until a new release can be made. |
Successor of #1846 Currently, GCM is only offered as an x86 build for Windows. On arm64, this results in poor performance because the code has to be fully emulated. Luckily, `dotnet` fully supports `win-arm64` nowadays. Even the .NET Framework [supports](https://devblogs.microsoft.com/dotnet/announcing-dotnet-framework-481/) it! [Here's some more details](dotnet/core#7709). This PR follows the same logic as #1633, which added support for Linux arm64. The main `git-credential-manager.exe` executable now becomes native, while the DLLs remain `Any CPU`. This allows for .NET Framework to run natively on arm64. I also added `win-x64` while at it. Confirmed to work correctly both on x64 and arm64 for GitHub operations. <img src="https://github.com/user-attachments/assets/4e1d772d-5593-42e4-ab7d-3779940864d1" width="200" /> ### x64  ### arm64  Also confirmed to correctly generate the installers for Windows arm64. The system-wide installer also correctly installs into the 64-bit `C:\Program Files\Git Credential Manager` folder: <img width="1123" height="811" alt="image" src="https://github.com/user-attachments/assets/33cff543-4a7a-4d15-9bd3-888bac9b4df3" />
**Changes:** - Documentation updates & fixes - #1713 - #1722 - #1884 - #2123 - #2154 - Fix Generic provider refresh token refresh logic (#1838) - Version bump to 2.7.0 (#2177) - CODEOWNERS (#2053) - Allow unsafe remotes via config (#1721) - Drop no longer needed GitLab OAuth params (#1538) - No-op credential storage option (#1740) - Fixes to CI & build - #1746 - #1747 - #1752 - #2104 - #2217 - Use Azure Pipelines for official builds - #2054 - #2176 - Fix TRACE2 logging (#1909) - Linux ARM and ARM64 support - #1633 - #2232 - Windows ARM64 and x64 support (#2230) - Linux install-from-source bug fixes - #1757 - #2049 - #2052 - Support Oracle Linux vis install-from-source (#2212) - macOS enterprise defaults (#1811) - Actions dependency updates - #1725 - #1751 - #1750 - #1760 - #1799 - #2022 - #2048 - #1989 - #2011 - #2029 - #2051 - #2050 - #2070 - #2080 - #2089 - #2088 - #2092 - #2189 - #2193
Adds support for building and publishing Linux ARM64 and Linux ARM32
replaces #237
replaces #1526
closes #606
needed for GitHub Desktop which uses dugite desktop/desktop#18700 desktop/dugite-native#510
CC @niik @shiftkey
continuous-integration works https://github.com/theofficialgman/git-credential-manager/actions/runs/9391634166
can't test release due to lack of keys