ripasso-cursive: cosmetic changes (#361736)
[NixPkgs.git] / pkgs / by-name / po / portablemc / package.nix
blob3b3c399d4a9e892e94c2c22b55233b8aedec39cb
2   lib,
3   stdenv,
4   python3Packages,
5   fetchFromGitHub,
6   installShellFiles,
7   jre,
9   libX11,
10   libXext,
11   libXcursor,
12   libXrandr,
13   libXxf86vm,
14   libpulseaudio,
15   libGL,
16   glfw,
17   openal,
18   udev,
20   textToSpeechSupport ? stdenv.hostPlatform.isLinux,
21   flite,
24 let
25   # Copied from the `prismlauncher` package
26   runtimeLibs = [
27     libX11
28     libXext
29     libXcursor
30     libXrandr
31     libXxf86vm
33     # lwjgl
34     libpulseaudio
35     libGL
36     glfw
37     openal
38     (lib.getLib stdenv.cc.cc)
40     # oshi
41     udev
42   ] ++ lib.optional textToSpeechSupport flite;
44 python3Packages.buildPythonApplication rec {
45   pname = "portablemc";
46   version = "4.4.0";
47   pyproject = true;
49   disabled = python3Packages.pythonOlder "3.8";
51   src = fetchFromGitHub {
52     owner = "mindstorm38";
53     repo = "portablemc";
54     rev = "refs/tags/v${version}";
55     hash = "sha256-JDosvjbpoDC+xJ15ejcMJd+jA09RLR+whVZblMu+ljk=";
56   };
58   patches = [
59     # Use the jre package provided by nixpkgs by default
60     ./use-builtin-java.patch
61   ];
63   nativeBuildInputs = [ installShellFiles ];
65   build-system = [ python3Packages.poetry-core ];
67   dependencies = [ python3Packages.certifi ];
69   # Note: Tests use networking, so we don't run them
71   postInstall = ''
72     installShellCompletion --cmd portablemc \
73         --bash <($out/bin/portablemc show completion bash) \
74         --zsh <($out/bin/portablemc show completion zsh)
75   '';
77   preFixup = ''
78     makeWrapperArgs+=(
79       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath runtimeLibs}
80       --prefix PATH : ${lib.makeBinPath [ jre ]}
81     )
82   '';
84   meta = {
85     homepage = "https://github.com/mindstorm38/portablemc";
86     description = "Fast, reliable and cross-platform command-line Minecraft launcher and API for developers";
87     longDescription = ''
88       A fast, reliable and cross-platform command-line Minecraft launcher and API for developers.
89       Including fast and easy installation of common mod loaders such as Fabric, Forge, NeoForge and Quilt.
90       This launcher is compatible with the standard Minecraft directories.
91     '';
92     changelog = "https://github.com/mindstorm38/portablemc/releases/tag/${lib.removePrefix "refs/tags/" src.rev}";
93     license = lib.licenses.gpl3Only;
94     mainProgram = "portablemc";
95     maintainers = with lib.maintainers; [ tomasajt ];
96   };