97 lines
2.2 KiB
Nix
97 lines
2.2 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
python3Packages,
|
|
fetchFromGitHub,
|
|
installShellFiles,
|
|
jre,
|
|
|
|
libX11,
|
|
libXext,
|
|
libXcursor,
|
|
libXrandr,
|
|
libXxf86vm,
|
|
libpulseaudio,
|
|
libGL,
|
|
glfw,
|
|
openal,
|
|
udev,
|
|
|
|
textToSpeechSupport ? stdenv.isLinux,
|
|
flite,
|
|
}:
|
|
|
|
let
|
|
# Copied from the `prismlauncher` package
|
|
runtimeLibs = [
|
|
libX11
|
|
libXext
|
|
libXcursor
|
|
libXrandr
|
|
libXxf86vm
|
|
|
|
# lwjgl
|
|
libpulseaudio
|
|
libGL
|
|
glfw
|
|
openal
|
|
stdenv.cc.cc.lib
|
|
|
|
# oshi
|
|
udev
|
|
] ++ lib.optional textToSpeechSupport flite;
|
|
in
|
|
python3Packages.buildPythonApplication rec {
|
|
pname = "portablemc";
|
|
version = "4.3.0";
|
|
pyproject = true;
|
|
|
|
disabled = python3Packages.pythonOlder "3.8";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "mindstorm38";
|
|
repo = "portablemc";
|
|
rev = "v${version}";
|
|
hash = "sha256-jCv4ncXUWbkWlBZr3P1hNeVpdQzY9HtrFz+pmKknL0I=";
|
|
};
|
|
|
|
patches = [
|
|
# Use the jre package provided by nixpkgs by default
|
|
./use-builtin-java.patch
|
|
];
|
|
|
|
nativeBuildInputs = [ installShellFiles ];
|
|
|
|
build-system = [ python3Packages.poetry-core ];
|
|
|
|
dependencies = [ python3Packages.certifi ];
|
|
|
|
# Note: Tests use networking, so we don't run them
|
|
|
|
postInstall = ''
|
|
installShellCompletion --cmd portablemc \
|
|
--bash <($out/bin/portablemc show completion bash) \
|
|
--zsh <($out/bin/portablemc show completion zsh)
|
|
'';
|
|
|
|
preFixup = ''
|
|
makeWrapperArgs+=(
|
|
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath runtimeLibs}
|
|
--prefix PATH : ${lib.makeBinPath [ jre ]}
|
|
)
|
|
'';
|
|
|
|
meta = {
|
|
homepage = "https://github.com/mindstorm38/portablemc";
|
|
description = "A fast, reliable and cross-platform command-line Minecraft launcher and API for developers";
|
|
longDescription = ''
|
|
A fast, reliable and cross-platform command-line Minecraft launcher and API for developers.
|
|
Including fast and easy installation of common mod loaders such as Fabric, Forge, NeoForge and Quilt.
|
|
This launcher is compatible with the standard Minecraft directories.
|
|
'';
|
|
changelog = "https://github.com/mindstorm38/portablemc/releases/tag/${src.rev}";
|
|
license = lib.licenses.gpl3Only;
|
|
mainProgram = "portablemc";
|
|
maintainers = with lib.maintainers; [ tomasajt ];
|
|
};
|
|
}
|