Skip to content

Commit

Permalink
q2pro: init at r3510 (#286460)
Browse files Browse the repository at this point in the history
  • Loading branch information
Aleksanaa authored Oct 29, 2024
2 parents 78e2ce1 + 2ff03b2 commit 023e5c7
Showing 1 changed file with 109 additions and 0 deletions.
109 changes: 109 additions & 0 deletions pkgs/by-name/q2/q2pro/package.nix
Original file line number Diff line number Diff line change
@@ -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";
};
})

0 comments on commit 023e5c7

Please sign in to comment.