This repository has no description
2.0 kB
105 lines
1{
2 lib,
3 stdenv,
4 fetchurl,
5 buildFHSEnv,
6 writeShellScript,
7 # runtime deps
8 alsa-lib,
9 dbus,
10 fontconfig,
11 freetype,
12 libGL,
13 libX11,
14 libxcb,
15 libXfixes,
16 libXi,
17 libva,
18 libvdpau,
19 libxkbcommon,
20 numactl,
21 pcre2,
22 pulseaudio,
23 systemd,
24 wayland,
25 xcb-util-cursor,
26 libxrender,
27 libxcb-util,
28 libxcb-image,
29 libxcb-keysyms,
30 libxcb-render-util,
31 libxcb-wm,
32}:
33
34let
35 pname = "boosteroid";
36 version = "1.0.0";
37
38 src = fetchurl {
39 url = "https://boosteroid.com/linux/installer/boosteroid_portable.tar";
40 hash = "sha256-xXpFD9dzHbakOqOIQ1sqzmGRo49EYbVqHZT0nGvRPcI=";
41 };
42
43 unwrapped = stdenv.mkDerivation {
44 inherit pname version src;
45 sourceRoot = ".";
46 unpackCmd = "tar xf $curSrc";
47 installPhase = ''
48 install -Dm755 Boosteroid $out/bin/Boosteroid
49 '';
50 };
51in
52buildFHSEnv {
53 name = "boosteroid";
54
55 targetPkgs = _: [
56 unwrapped
57 alsa-lib
58 dbus
59 fontconfig
60 freetype
61 libGL
62 libX11
63 libxcb
64 libXfixes
65 libXi
66 libva
67 libvdpau
68 libxkbcommon
69 numactl
70 pcre2
71 pulseaudio
72 systemd # libudev
73 wayland
74 xcb-util-cursor
75 libxrender
76 libxcb-util
77 libxcb-image
78 libxcb-keysyms
79 libxcb-render-util
80 libxcb-wm
81 ];
82
83 runScript = writeShellScript "boosteroid-wrapper" ''
84 dir="''${XDG_DATA_HOME:-$HOME/.local/share}/boosteroid"
85 mkdir -p "$dir"
86 # Boosteroid writes logs next to its binary (via /proc/self/exe),
87 # so we copy it to a writable directory
88 bin="$(command -v Boosteroid)"
89 if [ ! -x "$dir/Boosteroid" ] || ! cmp -s "$bin" "$dir/Boosteroid"; then
90 cp "$bin" "$dir/Boosteroid"
91 chmod +x "$dir/Boosteroid"
92 fi
93 cd "$dir"
94 exec "$dir/Boosteroid" "$@"
95 '';
96
97 meta = {
98 description = "Boosteroid cloud gaming client";
99 homepage = "https://boosteroid.com";
100 # proprietary but freely downloadable, using lib.licenses.free to avoid --impure
101 license = lib.licenses.free;
102 platforms = [ "x86_64-linux" ];
103 mainProgram = "boosteroid";
104 };
105}