From 5d004c12d05bf6aba067c194acc7f8ab5f0af62f Mon Sep 17 00:00:00 2001 From: Trumeet Date: Mon, 27 Dec 2021 00:31:39 -0800 Subject: First Commit --- README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..c1c6825 --- /dev/null +++ b/README.md @@ -0,0 +1,49 @@ +# Arch packages for Minecraft + +This repository contains build scripts (PKGBUILDs and their generation scripts) to use Pacman as a Minecraft version manager. + +Packages are separated into `minecraft-xxx` and `minecraft-assets-xxx`, because the later is huge and takes a long to package, and is also optional for some users. + +I made a generator in C to fetch version JSONs and convert them into partial PKGBUILDs and launcher.gen files. + +This repository does not contain any launchers. Instead, it exposes some variables from the manifest to launchers through launcher.gen files. Launchers should source them to run the game (see `launcher` as an example). + +## makepkg + +1. Compile the generator and generate `PKGBUILD.gen` and `launcher.gen`: `./switch 1.18.1` + +2. Bulid and install the Minecraft package: `cd mc; makepkg` + +3. (Optional) Build and install the assets package: `cd assets; makepkg` + +Whenever you need to build a different Minecraft version, do the steps again (changing the arguments of `./switch` will cause it to generate new build files). + +## Tested versions + +1.18 + +1.17 + +1.13 + +Basic testing for 1.14, 1.15 and 1.16 (no assets) + +## TODO + +Fabric support + +Forge support + +## Known issues + +Assets folders cannot be shared across versions (i.e. you must have a dedicated assets folder for each asset version). + +Library compatibility issues with version <= 1.12: Inconsistency detected by ld.so: dl-lookup.c: 105: check_match: Assertion `version->filename == NULL || ! _dl_name_match_p (version->filename, map)' failed! + +## License + +Thanks to my friends' help. + +Minecraft itself is a proprietary software. Its files subject to its EULA and are not included in this repository. + +The build scripts are licensed under GPL v2. -- cgit v1.2.3