Update nix/README.md

This commit is contained in:
Evan Goode 2024-05-20 11:06:23 -04:00
parent 2778fe760b
commit d19074302c

View File

@ -1,10 +1,4 @@
# Prism Launcher Nix Packaging # Fjord Launcher Nix Packaging
## Installing a stable release (nixpkgs)
Prism Launcher is packaged in [nixpkgs](https://github.com/NixOS/nixpkgs/) since 22.11.
See [Package variants](#package-variants) for a list of available packages.
## Installing a development release (flake) ## Installing a development release (flake)
@ -31,7 +25,7 @@ Example (NixOS):
### Using the overlay ### Using the overlay
After adding `github:PrismLauncher/PrismLauncher` to your flake inputs, you can add the `default` overlay to your nixpkgs instance. After adding `github:unmojang/FjordLauncher` to your flake inputs, you can add the `default` overlay to your nixpkgs instance.
Example: Example:
@ -39,23 +33,23 @@ Example:
{ {
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
prismlauncher = { fjordlauncher = {
url = "github:PrismLauncher/PrismLauncher"; url = "github:unmojang/FjordLauncher";
# Optional: Override the nixpkgs input of prismlauncher to use the same revision as the rest of your flake # Optional: Override the nixpkgs input of fjordlauncher to use the same revision as the rest of your flake
# Note that overriding any input of prismlauncher may break reproducibility # Note that overriding any input of fjordlauncher may break reproducibility
# inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = {nixpkgs, prismlauncher}: { outputs = {nixpkgs, fjordlauncher}: {
nixosConfigurations.foo = nixpkgs.lib.nixosSystem { nixosConfigurations.foo = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
({pkgs, ...}: { ({pkgs, ...}: {
nixpkgs.overlays = [prismlauncher.overlays.default]; nixpkgs.overlays = [fjordlauncher.overlays.default];
environment.systemPackages = [pkgs.prismlauncher]; environment.systemPackages = [pkgs.fjordlauncher];
}) })
]; ];
}; };
@ -65,7 +59,7 @@ Example:
### Installing the package directly ### Installing the package directly
Alternatively, if you don't want to use an overlay, you can install Prism Launcher directly by installing the `prismlauncher` package. Alternatively, if you don't want to use an overlay, you can install Fjord Launcher directly by installing the `fjordlauncher` package.
This way the installed package is fully reproducible. This way the installed package is fully reproducible.
Example: Example:
@ -74,21 +68,21 @@ Example:
{ {
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
prismlauncher = { fjordlauncher = {
url = "github:PrismLauncher/PrismLauncher"; url = "github:unmojang/FjordLauncher";
# Optional: Override the nixpkgs input of prismlauncher to use the same revision as the rest of your flake # Optional: Override the nixpkgs input of fjordlauncher to use the same revision as the rest of your flake
# Note that overriding any input of prismlauncher may break reproducibility # Note that overriding any input of fjordlauncher may break reproducibility
# inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = {nixpkgs, prismlauncher}: { outputs = {nixpkgs, fjordlauncher}: {
nixosConfigurations.foo = nixpkgs.lib.nixosSystem { nixosConfigurations.foo = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
({pkgs, ...}: { ({pkgs, ...}: {
environment.systemPackages = [prismlauncher.packages.${pkgs.system}.prismlauncher]; environment.systemPackages = [fjordlauncher.packages.${pkgs.system}.fjordlauncher];
}) })
]; ];
}; };
@ -103,11 +97,11 @@ You can simply call the default package of this flake.
Example: Example:
```shell ```shell
nix run github:PrismLauncher/PrismLauncher nix run github:unmojang/FjordLauncher
nix shell github:PrismLauncher/PrismLauncher nix shell github:unmojang/FjordLauncher
nix profile install github:PrismLauncher/PrismLauncher nix profile install github:unmojang/FjordLauncher
``` ```
## Installing a development release (without flakes) ## Installing a development release (without flakes)
@ -140,22 +134,22 @@ Example:
```nix ```nix
{pkgs, ...}: { {pkgs, ...}: {
nixpkgs.overlays = [(import (builtins.fetchTarball "https://github.com/PrismLauncher/PrismLauncher/archive/develop.tar.gz")).overlays.default]; nixpkgs.overlays = [(import (builtins.fetchTarball "https://github.com/unmojang/FjordLauncher/archive/develop.tar.gz")).overlays.default];
environment.systemPackages = [pkgs.prismlauncher]; environment.systemPackages = [pkgs.fjordlauncher];
} }
``` ```
### Installing the package directly (`fetchTarball`) ### Installing the package directly (`fetchTarball`)
Alternatively, if you don't want to use an overlay, you can install Prism Launcher directly by installing the `prismlauncher` package. Alternatively, if you don't want to use an overlay, you can install Fjord Launcher directly by installing the `fjordlauncher` package.
This way the installed package is fully reproducible. This way the installed package is fully reproducible.
Example: Example:
```nix ```nix
{pkgs, ...}: { {pkgs, ...}: {
environment.systemPackages = [(import (builtins.fetchTarball "https://github.com/PrismLauncher/PrismLauncher/archive/develop.tar.gz")).packages.${pkgs.system}.prismlauncher]; environment.systemPackages = [(import (builtins.fetchTarball "https://github.com/unmojang/FjordLauncher/archive/develop.tar.gz")).packages.${pkgs.system}.fjordlauncher];
} }
``` ```
@ -166,29 +160,29 @@ You can add this repository as a channel and install its packages that way.
Example: Example:
```shell ```shell
nix-channel --add https://github.com/PrismLauncher/PrismLauncher/archive/develop.tar.gz prismlauncher nix-channel --add https://github.com/unmojang/FjordLauncher/archive/develop.tar.gz fjordlauncher
nix-channel --update prismlauncher nix-channel --update fjordlauncher
nix-env -iA prismlauncher.prismlauncher nix-env -iA fjordlauncher.fjordlauncher
``` ```
## Package variants ## Package variants
Both Nixpkgs and this repository offer the following packages: Both Nixpkgs and this repository offer the following packages:
- `prismlauncher` - Preferred build using Qt 6 - `fjordlauncher` - Preferred build using Qt 6
- `prismlauncher-qt5` - Legacy build using Qt 5 (i.e. for Qt 5 theming support) - `fjordlauncher-qt5` - Legacy build using Qt 5 (i.e. for Qt 5 theming support)
Both of these packages also have `-unwrapped` counterparts, that are not wrapped and can therefore be customized even further than what the wrapper packages offer. Both of these packages also have `-unwrapped` counterparts, that are not wrapped and can therefore be customized even further than what the wrapper packages offer.
### Customizing wrapped packages ### Customizing wrapped packages
The wrapped packages (`prismlauncher` and `prismlauncher-qt5`) offer some build parameters to further customize the launcher's environment. The wrapped packages (`fjordlauncher` and `fjordlauncher-qt5`) offer some build parameters to further customize the launcher's environment.
The following parameters can be overridden: The following parameters can be overridden:
- `msaClientID` (default: `null`, requires full rebuild!) Client ID used for Microsoft Authentication - `msaClientID` (default: `null`, requires full rebuild!) Client ID used for Microsoft Authentication
- `gamemodeSupport` (default: `true`) Turn on/off support for [Feral GameMode](https://github.com/FeralInteractive/gamemode) - `gamemodeSupport` (default: `true`) Turn on/off support for [Feral GameMode](https://github.com/FeralInteractive/gamemode)
- `jdks` (default: `[ jdk17 jdk8 ]`) Java runtimes added to `PRISMLAUNCHER_JAVA_PATHS` variable - `jdks` (default: `[ jdk17 jdk8 ]`) Java runtimes added to `FJORDLAUNCHER_JAVA_PATHS` variable
- `additionalLibs` (default: `[ ]`) Additional libraries that will be added to `LD_LIBRARY_PATH` - `additionalLibs` (default: `[ ]`) Additional libraries that will be added to `LD_LIBRARY_PATH`