photoqt: 4.6 -> 4.7 (#361171)
[NixPkgs.git] / pkgs / games / papermc / derivation.nix
blobc7ad650d00f69993c7f3d132724d28ea00d6004a
1 { lib, stdenvNoCC, fetchurl, makeBinaryWrapper, jre, version, hash, udev }:
3 stdenvNoCC.mkDerivation (finalAttrs: {
4   pname = "papermc";
5   inherit version hash;
7   src =
8     let
9       version-split = lib.strings.splitString "-" finalAttrs.version;
10       mcVersion = builtins.elemAt version-split 0;
11       buildNum = builtins.elemAt version-split 1;
12     in
13     fetchurl {
14       url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar";
15       inherit (finalAttrs) hash;
16     };
18   installPhase = ''
19     runHook preInstall
21     install -D $src $out/share/papermc/papermc.jar
23     makeWrapper ${lib.getExe jre} "$out/bin/minecraft-server" \
24       --append-flags "-jar $out/share/papermc/papermc.jar nogui" \
25       ${lib.optionalString stdenvNoCC.hostPlatform.isLinux "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}"}
27     runHook postInstall
28   '';
30   nativeBuildInputs = [
31     makeBinaryWrapper
32   ];
34   dontUnpack = true;
35   preferLocalBuild = true;
36   allowSubstitutes = false;
38   passthru = {
39     updateScript = ./update.py;
40   };
42   meta = {
43     description = "High-performance Minecraft Server";
44     homepage = "https://papermc.io/";
45     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
46     license = lib.licenses.gpl3Only;
47     platforms = lib.platforms.unix;
48     maintainers = with lib.maintainers; [ aaronjanse neonfuz MayNiklas ];
49     mainProgram = "minecraft-server";
50   };