This repository has no description
2.1 kB
109 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 pname = "boosteroid";
55 inherit version;
56
57 targetPkgs = _: [
58 unwrapped
59 alsa-lib
60 dbus
61 fontconfig
62 freetype
63 libGL
64 libX11
65 libxcb
66 libXfixes
67 libXi
68 libva
69 libvdpau
70 libxkbcommon
71 numactl
72 pcre2
73 pulseaudio
74 systemd # libudev
75 wayland
76 xcb-util-cursor
77 libxrender
78 libxcb-util
79 libxcb-image
80 libxcb-keysyms
81 libxcb-render-util
82 libxcb-wm
83 ];
84
85 runScript = writeShellScript "boosteroid-wrapper" ''
86 dir="''${XDG_DATA_HOME:-$HOME/.local/share}/boosteroid"
87 mkdir -p "$dir"
88 # Boosteroid writes logs next to its binary (via /proc/self/exe),
89 # so we copy it to a writable directory
90 bin="$(command -v Boosteroid)"
91 if [ ! -x "$dir/Boosteroid" ] || ! cmp -s "$bin" "$dir/Boosteroid"; then
92 cp "$bin" "$dir/Boosteroid"
93 chmod +x "$dir/Boosteroid"
94 fi
95 cd "$dir"
96 exec "$dir/Boosteroid" "$@"
97 '';
98
99 passthru.updateScript = ./update.sh;
100
101 meta = {
102 description = "Boosteroid cloud gaming client";
103 homepage = "https://boosteroid.com";
104 # proprietary but freely downloadable, using lib.licenses.free to avoid --impure
105 license = lib.licenses.free;
106 platforms = [ "x86_64-linux" ];
107 mainProgram = "boosteroid";
108 };
109}