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