ansible-later: 2.0.22 -> 2.0.23
[NixPkgs.git] / pkgs / games / runescape-launcher / default.nix
blob75ed66c01e004f7447d2c2830c0dc8aa7396ba90
1 { stdenv, lib, buildFHSUserEnv, dpkg, glibc, gcc-unwrapped, autoPatchelfHook, fetchurl, wrapGAppsHook
2 , gnome2, xorg
3 , libSM, libXxf86vm, libX11, glib, pango, cairo, gtk2-x11, zlib, openssl
4 , libpulseaudio
5 , SDL2, xorg_sys_opengl, libGL
6 }:
7 let
9   runescape = stdenv.mkDerivation rec {
10     pname = "runescape-launcher";
11     version = "2.2.9";
13     # Packages: https://content.runescape.com/downloads/ubuntu/dists/trusty/non-free/binary-amd64/Packages
14     # upstream is https://content.runescape.com/downloads/ubuntu/pool/non-free/r/${pname}/${pname}_${version}_amd64.deb
15     src = fetchurl {
16       url = "https://archive.org/download/${pname}_${version}_amd64/${pname}_${version}_amd64.deb";
17       sha256 = "1zilpxh8k8baylbl9nqq9kgjiv2xzw4lizbgcmzky5rhmych8n4g";
18     };
20     nativeBuildInputs = [
21       autoPatchelfHook
22       wrapGAppsHook
23       dpkg
24     ];
26     buildInputs = [
27       glibc
28       gcc-unwrapped
29       libSM
30       libXxf86vm
31       libX11
32       glib
33       pango
34       cairo
35       gtk2-x11
36       zlib
37       openssl
38     ];
40     runtimeDependencies = [
41       libpulseaudio
42       libGL
43       SDL2
44       xorg_sys_opengl
45       openssl
46       zlib
47     ];
49     dontUnpack = true;
51     preBuild = ''
52       export DH_VERBOSE=1
53     '';
55     envVarsWithXmodifiers = ''
56       export MESA_GLSL_CACHE_DIR=~/Jagex
57       export GDK_SCALE=2
58       unset XMODIFIERS
59     '';
61     installPhase = ''
62       mkdir -p $out/bin $out/share
63       dpkg -x $src $out
65       patchShebangs $out/usr/bin/runescape-launcher
66       substituteInPlace $out/usr/bin/runescape-launcher \
67         --replace "unset XMODIFIERS" "$envVarsWithXmodifiers" \
68         --replace "/usr/share/games/runescape-launcher/runescape" "$out/share/games/runescape-launcher/runescape"
70       cp -r $out/usr/bin $out/
71       cp -r $out/usr/share $out/
73       rm -r $out/usr
74     '';
77     meta = with lib; {
78       description = "Launcher for RuneScape 3, the current main RuneScape";
79       homepage = "https://www.runescape.com/";
80       sourceProvenance = with sourceTypes; [ binaryNativeCode ];
81       license = licenses.unfree;
82       maintainers = with maintainers; [ grburst ];
83       platforms = [ "x86_64-linux" ];
84     };
85   };
89   /*
90   * We can patch the runescape launcher, but it downloads a client at runtime and checks it for changes.
91   * For that we need use a buildFHSUserEnv.
92   * FHS simulates a classic linux shell
93   */
94   buildFHSUserEnv {
95     name = "RuneScape";
96     targetPkgs = pkgs: [
97       runescape
98       dpkg glibc gcc-unwrapped
99       libSM libXxf86vm libX11 glib pango cairo gtk2-x11 zlib openssl
100       libpulseaudio
101       xorg.libX11
102       SDL2 xorg_sys_opengl libGL
103     ];
104     multiPkgs = pkgs: [ libGL ];
105     runScript = "runescape-launcher";
106     extraInstallCommands = ''
107       mkdir -p "$out/share/applications"
108       cp ${runescape}/share/applications/runescape-launcher.desktop "$out/share/applications"
109       cp -r ${runescape}/share/icons "$out/share/icons"
110       substituteInPlace "$out/share/applications/runescape-launcher.desktop" \
111         --replace "/usr/bin/runescape-launcher" "RuneScape"
112     '';
114     meta = with lib; {
115       description = "RuneScape Game Client (NXT) - Launcher for RuneScape 3";
116       homepage = "https://www.runescape.com/";
117       license = licenses.unfree;
118       maintainers = with maintainers; [ grburst ];
119       platforms = [ "x86_64-linux" ];
120     };
121   }