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