sdrangel: fix build on x86_64-darwin
[NixPkgs.git] / pkgs / games / oh-my-git / default.nix
blob9fe0fb9ac4205d577415dc7c058b6629f151e119
1 { lib
2 , autoPatchelfHook
3 , copyDesktopItems
4 , fetchFromGitHub
5 , makeDesktopItem
6 , stdenv
7 , alsa-lib
8 , gcc-unwrapped
9 , git
10 , godot3-export-templates
11 , godot3-headless
12 , libGLU
13 , libX11
14 , libXcursor
15 , libXext
16 , libXfixes
17 , libXi
18 , libXinerama
19 , libXrandr
20 , libXrender
21 , libglvnd
22 , libpulseaudio
23 , perl
24 , zlib
25 , udev # for libudev
28 stdenv.mkDerivation rec {
29   pname = "oh-my-git";
30   version = "0.6.5";
32   src = fetchFromGitHub {
33     owner = "git-learning-game";
34     repo = "oh-my-git";
35     rev = version;
36     sha256 = "sha256-XqxliMVU55D5JSt7Yo5btvZnnTlagSukyhXv6Akgklo=";
37   };
39   nativeBuildInputs = [
40     autoPatchelfHook
41     copyDesktopItems
42     godot3-headless
43   ];
45   buildInputs = [
46     alsa-lib
47     gcc-unwrapped.lib
48     git
49     libGLU
50     libX11
51     libXcursor
52     libXext
53     libXfixes
54     libXi
55     libXinerama
56     libXrandr
57     libXrender
58     libglvnd
59     libpulseaudio
60     perl
61     zlib
62     udev
63   ];
65   desktopItems = [
66     (makeDesktopItem {
67       name = "oh-my-git";
68       exec = "oh-my-git";
69       icon = "oh-my-git";
70       desktopName = "oh-my-git";
71       comment = "An interactive Git learning game!";
72       genericName = "An interactive Git learning game!";
73       categories = [ "Game" ];
74     })
75   ];
77   # patch shebangs so that e.g. the fake-editor script works:
78   # error: /usr/bin/env 'perl': No such file or directory
79   # error: There was a problem with the editor
80   postPatch = ''
81     patchShebangs scripts
82   '';
84   buildPhase = ''
85     runHook preBuild
87     # Cannot create file '/homeless-shelter/.config/godot/projects/...'
88     export HOME=$TMPDIR
90     # Link the export-templates to the expected location. The --export commands
91     # expects the template-file at .../templates/3.2.3.stable/linux_x11_64_release
92     # with 3.2.3 being the version of godot.
93     mkdir -p $HOME/.local/share/godot
94     ln -s ${godot3-export-templates}/share/godot/templates $HOME/.local/share/godot
96     mkdir -p $out/share/oh-my-git
97     godot3-headless --export "Linux" $out/share/oh-my-git/oh-my-git
99     runHook postBuild
100   '';
102   installPhase = ''
103     runHook preInstall
105     mkdir -p $out/bin
106     ln -s $out/share/oh-my-git/oh-my-git $out/bin
108     # Patch binaries.
109     interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
110     patchelf \
111       --set-interpreter $interpreter \
112       --set-rpath ${lib.makeLibraryPath buildInputs} \
113       $out/share/oh-my-git/oh-my-git
115     mkdir -p $out/share/pixmaps
116     cp images/oh-my-git.png $out/share/pixmaps/oh-my-git.png
118     runHook postInstall
119   '';
121   runtimeDependencies = map lib.getLib [
122     alsa-lib
123     libpulseaudio
124     udev
125   ];
127   meta = with lib; {
128     homepage = "https://ohmygit.org/";
129     description = "An interactive Git learning game";
130     mainProgram = "oh-my-git";
131     license = with licenses; [ blueOak100 ];
132     platforms   = [ "x86_64-linux" ];
133     maintainers = with maintainers; [ jojosch ];
134   };