From 2ff03b2eb206e6bca347ddd7a8be85f606c516c0 Mon Sep 17 00:00:00 2001 From: Karolis Stasaitis Date: Mon, 5 Feb 2024 14:35:39 +0530 Subject: [PATCH] q2pro: init at r3510 --- pkgs/by-name/q2/q2pro/package.nix | 109 ++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 pkgs/by-name/q2/q2pro/package.nix diff --git a/pkgs/by-name/q2/q2pro/package.nix b/pkgs/by-name/q2/q2pro/package.nix new file mode 100644 index 0000000000000..de838ef82fef6 --- /dev/null +++ b/pkgs/by-name/q2/q2pro/package.nix @@ -0,0 +1,109 @@ +{ + lib, + stdenv, + fetchFromGitHub, + meson, + pkg-config, + ninja, + zlib, + libpng, + libjpeg, + curl, + SDL2, + openalSoft, + libogg, + libvorbis, + libXi, + wayland, + wayland-protocols, + libdecor, + ffmpeg, + wayland-scanner, + makeWrapper, + versionCheckHook, + x11Support ? stdenv.isLinux, + waylandSupport ? stdenv.isLinux, +}: + +stdenv.mkDerivation (finalAttrs: rec { + pname = "q2pro"; + version = "3510"; + + src = fetchFromGitHub { + owner = "skullernet"; + repo = "q2pro"; + rev = "refs/tags/r${version}"; + hash = "sha256-LNOrGJarXnf4QqFXDkUfUgLGrjSqbjncpIN2yttbMuk="; + }; + + nativeBuildInputs = + [ + meson + pkg-config + ninja + makeWrapper + ] + ++ lib.optionals waylandSupport [ + wayland-scanner + ]; + + buildInputs = + [ + zlib + libpng + libjpeg + curl + SDL2 + libogg + libvorbis + ffmpeg + openalSoft + ] + ++ lib.optionals waylandSupport [ + wayland + wayland-protocols + libdecor + ] + ++ lib.optionals x11Support [ libXi ]; + + mesonBuildType = "release"; + + mesonFlags = [ + (lib.mesonBool "anticheat-server" true) + (lib.mesonBool "client-gtv" true) + (lib.mesonBool "packetdup-hack" true) + (lib.mesonBool "variable-fps" true) + (lib.mesonEnable "wayland" waylandSupport) + (lib.mesonEnable "x11" x11Support) + (lib.mesonEnable "icmp-errors" stdenv.isLinux) + (lib.mesonEnable "windows-crash-dumps" false) + ]; + + postPatch = '' + echo 'r${version}' > VERSION + ''; + + postInstall = + let + ldLibraryPathEnvName = + if stdenv.hostPlatform.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"; + in + '' + mv -v $out/bin/q2pro $out/bin/q2pro-unwrapped + makeWrapper $out/bin/q2pro-unwrapped $out/bin/q2pro \ + --prefix ${ldLibraryPathEnvName} : "${lib.makeLibraryPath finalAttrs.buildInputs}" + ''; + + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "--version"; + doInstallCheck = true; + + meta = { + description = "Enhanced Quake 2 client and server focused on multiplayer"; + homepage = "https://github.com/skullernet/q2pro"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ carlossless ]; + platforms = lib.platforms.unix; + mainProgram = "q2pro"; + }; +})