diff --git a/pkgs/games/freenukum/default.nix b/pkgs/games/freenukum/default.nix new file mode 100644 index 000000000000..d428a0bf02f1 --- /dev/null +++ b/pkgs/games/freenukum/default.nix @@ -0,0 +1,72 @@ +{ stdenv +, rustPlatform +, fetchFromGitLab +, makeDesktopItem +, installShellFiles +, dejavu_fonts +, SDL2 +, SDL2_ttf +}: +let + pname = "freenukum"; + description = "Clone of the original Duke Nukum 1 Jump'n Run game"; + + desktopItem = makeDesktopItem { + desktopName = pname; + name = pname; + exec = pname; + icon = pname; + terminal = "false"; + comment = description; + type = "Application"; + categories = "Game;ArcadeGame;ActionGame"; + genericName = pname; + fileValidation = false; + }; + +in +rustPlatform.buildRustPackage rec { + inherit pname; + version = "0.3.5"; + + src = fetchFromGitLab { + owner = "silwol"; + repo = pname; + rev = "v${version}"; + sha256 = "0yqfzh0c8fqk92q9kmidy15dc5li0ak1gbn3v7p3xw5fkrzf99gy"; + }; + + cargoSha256 = "1mi98ccp4026gdc5x9jc6518zb7z4dplxl8vir78ivgdpifzz4pw"; + + nativeBuildInputs = [ + installShellFiles + ]; + + buildInputs = [ + SDL2 + SDL2_ttf + ]; + + postPatch = '' + substituteInPlace src/graphics.rs \ + --replace /usr $out + ''; + + postInstall = '' + mkdir -p $out/share/fonts/truetype/dejavu + ln -sf \ + ${dejavu_fonts}/share/fonts/truetype/DejaVuSans.ttf \ + $out/share/fonts/truetype/dejavu/DejaVuSans.ttf + mkdir -p $out/share/doc/freenukum + install -Dm644 README.md CHANGELOG.md COPYING $out/share/doc/freenukum/ + installManPage doc/freenukum.6 + install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/ + ''; + + meta = with stdenv.lib; { + description = "Clone of the original Duke Nukum 1 Jump'n Run game"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ _0x4A6F ]; + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 36dafc455852..0fca5d4920db 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4051,6 +4051,8 @@ in freedroidrpg = callPackage ../games/freedroidrpg { }; + freenukum = callPackage ../games/freenukum { }; + freebind = callPackage ../tools/networking/freebind { }; freeipmi = callPackage ../tools/system/freeipmi {};