PolyMC / PolyMC

A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC)
https://polymc.org/
GNU General Public License v3.0
1.82k stars 262 forks source link

FreeBSD packaging #9

Closed d-513 closed 2 years ago

d-513 commented 2 years ago

Role

-

Suggestion

FreeBSD packaging

Benefit

To install it on FreeBSD

This suggestion is unique

You may use the editor below to elaborate further.

Upstream added FreeBSD support in 3efcccf334e28d03605dd0597f53f900105cf04b. Currently we don't have builds for this. This issue is to track the progress of FreeBSD packaging

ghost commented 2 years ago

I don't really know how to package for FreeBSD except through ports.

Questions:

d-513 commented 2 years ago

I don’t use bsd, only made it to track progress since upstream added it. I think a source build would be good enough

d-513 commented 2 years ago

As for binary builds, I found this guide on media wiki about Jenkins with QEMU https://m.mediawiki.org/wiki/Continuous_integration/Qemu Basically you set up ssh in the vm for Jenkins to execute commands

question is, is Jenkins a separate server or a VM? If VM, it must have nesting enabled for QEMU to work I think

ghost commented 2 years ago

Jenkins is on a dedicated real server. I've tested VMs on it before and it worked so that could indeed work

It might actually be necessary to upgrade the RAM though, to 16GB.

ghost commented 2 years ago

Alternatively, I DO have a few spare computers lying around, one of which could run FreeBSD no problem. I can upgrade that one's RAM to 8GB as well if necessary--and set up SSH and build tools and all that

I'll just need to figure out what I'm supposed to do to publish packages.

d-513 commented 2 years ago

first would be to figure out if cross compile is possible

d-513 commented 2 years ago

Btw it seems GitHub actions can run freebsd in QEMU too, also I think it would be better to have releases built by Actions than the current jenkins setup (and actions is free)

ghost commented 2 years ago

jenkins is free too, however Actions is really cancer to use and I like the current Jenkins setup.

It also supports a master-slave architecture. So That's probably what we're going to do

ghost commented 2 years ago

This is something I'd like to get done soon.

However, I haven't touched BSD in months and still have no clue how I would even use it.

So if any BSD expert can help that would be appreciated.

glowiak commented 2 years ago

I have already compiled the binary for FreeBSD, will make a pull request (both with the Slackware package)

CRKatri commented 2 years ago

I use FreeBSD and thought I should butt in here. LWJGL doesn't not work on FreeBSD, this means that you have to use the system lwjgl instead of just downloading it from Microsoft. You do this by setting you Java runtime to a script like this https://git.cameronkatri.com/freebsd-ports/tree/games/multimc/files/multimc-minecraft-runtime, I have a fork of lwjgl3 here that will let you compile it for FreeBSD, using this lwjgl3 will let you run Minecraft 1.14-1.18, you need an older version for 1.13, and lwjgl2 for 1.12 and below

d-513 commented 2 years ago

@CRKatri I believe we should consider adding support for custom LGJWL downloading with presets for multiple os, mojang is very slow at updating it and other systems have issues with the official versions aswell, for example M1 macs have problems without a newer LGJWL

CRKatri commented 2 years ago

That is a good idea, but it's important to remember that Minecraft is picky about the lwjgl version, it'll require lwjgl3 3.2.3 not 3.x.

txtsd commented 2 years ago

We should probably have a checkbox for system lwjgl along with the other Native Library workarounds.

Scrumplex commented 2 years ago

Closed by #131 btw