-
-
Notifications
You must be signed in to change notification settings - Fork 244
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
Allow for Local ARM64 Linux Building #1451
Conversation
524fea4
to
2f33270
Compare
no code changes besides removing my custom manifest if the plan is to merge #1446 then this will need to be reworked slightly (it actually would make this a little simpler) |
I have rebased on another branch on top of @Eskaan 's changes in another branch. They greatly simplify this PR, I would like those changes first. I will push those changes to this branch once their PR merges |
33ed196
to
d56bfd4
Compare
@theofficialgman I know it was some time, and I now took over some of the maintenance myself. I guess you'll be fairly happy seeing #1446 merged (20148d6) |
arm is added as an alias for armv7l makes building easier
d56bfd4
to
1a0b6ae
Compare
@Eskaan luckily I had already done the rebase, so just did a couple of quick edits. I can drop the java memory commit if you want. I was running on systems with less than 4GB of ram and if the user doesn't know to change it then it just refuses to start java |
I guess most users that run on a low memory system will know that they have to decrease their java memory usage. It is a sensible default as most systems nowadays have at least 8G. |
1a0b6ae
to
b937ae8
Compare
alright then, I have dropped it |
...so he removed the commit anyways. Whatever. Continuing my review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Maybe you want to fiddle with a solution to run the linux CI for ARM too in some future pr? Although the github sctions runner does not support arm64 natively, there are some actions for it that simulate arm64.
possibly though not right now plus that wouldn't be any use unless you also accept my meta repo changes for arm64/arm32. theofficialgman@bb5c7e2 |
So, does this code work on ARM without the metadata changes? |
it compiles and the launcher works. minecraft itself will not. hence the name of this PR: |
Yeah, I think I will tell @killpowa to include those files in the web backend and link them later. Thanks for your efforts in making the launcher ARM compatible! |
* update project/deploy configs * add system architecture detection to java jre/jvm downloader * Update package.json * update electron-builder and electron-updater arm is added as an alias for armv7l makes building easier
* update project/deploy configs * add system architecture detection to java jre/jvm downloader * Update package.json * update electron-builder and electron-updater arm is added as an alias for armv7l makes building easier
Purpose
Allow for building GDLauncher on ARM64 Linux and use custom arm64 mojang meta repo https://github.com/theofficialgman/piston-meta-arm64
Approach
Makes necessary changes to the build infrastructure where necessay and provides arm64 binaires in the repo where x64 ones exist (note about the binaries, I did not build them and do not know how to do so, they were built by @nicholasaiello) .
build commands used (with nodejs 16 and npm 8)
If this PR #1446 gets merged, then this PR will conflict. I will rework this PR where necessary if that gets merged.
Learning
issue #727
Notes
This PR is functional for ARM64 linux (builds produced on arm64 bionic here: https://github.com/Pi-Apps-Coders/files/releases/tag/large-files ) but will remain as a draft until a better solution for replacing the
MC_MANIFEST_URL
is made, ideally through a build argument instead of source modification.System FPM is necessary for building on anything other than x64, so it has been defined in the
.env
. The easiest way to install system FPM issudo apt-get install ruby-dev build-essential -y && sudo gem i fpm -f
Incorrect and duplicate options have been removed in the
.env
so that gdlauncher can be built.Finally, the user is expected to provide their own java. It would be nice if arm64 linux java binaries could be added and the code modified to download themedit: looks like GDLauncher provides its own temurin json files for java 8 and 17 so the info is here. However it was hardcoded to download x86_64 only and didn't do runtime detection... that has also been fixed in this PR