nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 rustPlatform,
5 fetchFromGitLab,
6 makeDesktopItem,
7 installShellFiles,
8 dejavu_fonts,
9 SDL2,
10 SDL2_ttf,
11 SDL2_image,
12}:
13let
14 pname = "freenukum";
15 description = "Clone of the original Duke Nukum 1 Jump'n Run game";
16
17 desktopItem = makeDesktopItem {
18 desktopName = pname;
19 name = pname;
20 exec = pname;
21 icon = pname;
22 comment = description;
23 categories = [
24 "Game"
25 "ArcadeGame"
26 "ActionGame"
27 ];
28 genericName = pname;
29 };
30
31in
32rustPlatform.buildRustPackage rec {
33 inherit pname;
34 version = "0.4.0";
35
36 src = fetchFromGitLab {
37 domain = "salsa.debian.org";
38 owner = "silwol";
39 repo = "freenukum";
40 rev = "v${version}";
41 hash = "sha256-Tk9n2gPwyPin6JZ4RSO8d/+xVpEz4rF8C2eGKwrAXU0=";
42 };
43
44 cargoHash = "sha256-lQZ9Z/1tbL7BeLmGxJXNUvrXsOGtgzGXNt6WYGezxi0=";
45
46 nativeBuildInputs = [
47 installShellFiles
48 ];
49
50 buildInputs = [
51 SDL2
52 SDL2_ttf
53 SDL2_image
54 ];
55
56 postPatch = ''
57 substituteInPlace src/graphics.rs \
58 --replace /usr $out
59 '';
60
61 postInstall = ''
62 mkdir -p $out/share/fonts/truetype/dejavu
63 ln -sf \
64 ${dejavu_fonts}/share/fonts/truetype/DejaVuSans.ttf \
65 $out/share/fonts/truetype/dejavu/DejaVuSans.ttf
66 mkdir -p $out/share/doc/freenukum
67 install -Dm644 README.md CHANGELOG.md $out/share/doc/freenukum/
68 installManPage doc/freenukum.6
69 install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/
70 '';
71
72 meta = {
73 description = "Clone of the original Duke Nukum 1 Jump'n Run game";
74 homepage = "https://salsa.debian.org/silwol/freenukum";
75 changelog = "https://salsa.debian.org/silwol/freenukum/-/blob/v${version}/CHANGELOG.md";
76 license = lib.licenses.agpl3Plus;
77 maintainers = with lib.maintainers; [ _0x4A6F ];
78 broken = stdenv.hostPlatform.isDarwin;
79 };
80}