AM2R-Community-Developers / AM2R-Autopatcher-Linux

Host repository for the AM2R Linux update data.
GNU General Public License v3.0
43 stars 8 forks source link

Patch out insecure dependencies and add NixOS instructions #30

Closed IvarWithoutBones closed 2 years ago

IvarWithoutBones commented 2 years ago

This commit uses patchelf to remove the dependency on OpenSSL 1.0, which is outdated and considered insecure. It replaces this dependency with libcurl, of which the latest version works just fine. I tested the multiplayer mod as well and didn't notice any issues.

This should make sure that any distrobution can run the generated binary out of the box, without needing a dynamically linked placeholder.

I also noticed the game failed to start on my AMD machine, and after looking through Mesa's Gitlab I found a workaround using an environment variable. A wrapper bash script that sets this variable and executes the runner binary is added to take care of this automatically.

This commit adds instructions on how to run the game on NixOS as well. I will also PR a derivation to nixpkgs (our package repository) to make the process of running the game a bit more seamless in the future.

IvarWithoutBones commented 2 years ago

Rebased this PR and addressed feedback :+1:

IvarWithoutBones commented 2 years ago

Also, this should require testing on Intel and Nvidia GPUs as well, since last time I checked, those also had specific environment variables to get around those issues. Don't have any specific PRs to link, but see the FAQ question for Intel here and for Nvidia here

Works perfectly on an NVidia GPU. I dont have access to one from intel, but since they're using mesa as well im fairly certaing the fix works there across vendors.

The flags linked on said FAQ should not be required at all, they are working around the issue with multithreaded shader compilation by disabling all renderer optimizations, which is inconsistent and slower. The fix I provided is used in upstream mesa, so im certain it should work across vendors.

Miepee commented 2 years ago

The flags linked on said FAQ should not be required at all

Yup, we talked about this in DMs after, the FAQ-env vars were needed back then when we shipped the outdated GPU libraries.

IvarWithoutBones commented 2 years ago

Content is good, grammar's a bit less so lol. Should be clear to merge after resolving these.

Pushed fixes to all your suggestions. Most of these comments were an issue before my PR, but we might as well get them fixed now :)

Btw, when you have something you would like to suggest in CR, you can use suggestion blocks as follows: image

It'll properly format your suggestion which makes it a lot easier to read. Note that the contents dont really matter here, its just an example from a previous CR I did.

Miepee commented 2 years ago

Also quickly chiming in: no need to type ```suggestion, GH has an icon next to the other markdown elements that inserts one automatically.

Miepee commented 2 years ago

Seems good, thanks for the PR! :)