1{ stdenv, fetchurl, buildFHSUserEnv, writeTextFile, alsaLib, atk, cairo, cups
2, dbus, expat, fontconfig, freetype, gcc, gdk_pixbuf, glib, gnome2, gtk2, nspr
3, nss, pango, systemd, xorg, utillinuxMinimal }:
4
5let
6 libPath = stdenv.lib.makeLibraryPath [
7 alsaLib
8 atk
9 cairo
10 cups
11 dbus
12 expat
13 fontconfig
14 freetype
15 gcc.cc
16 gdk_pixbuf
17 glib
18 gnome2.GConf
19 gtk2
20 nspr
21 nss
22 pango
23 systemd
24 xorg.libX11
25 xorg.libxcb
26 xorg.libXcomposite
27 xorg.libXcursor
28 xorg.libXdamage
29 xorg.libXext
30 xorg.libXfixes
31 xorg.libXi
32 xorg.libXrandr
33 xorg.libXrender
34 xorg.libXScrnSaver
35 xorg.libXtst
36 ];
37in
38stdenv.mkDerivation rec {
39 name = "keybase-gui-${version}";
40 version = "1.0.44-20180223200436.9a9ccec79";
41 src = fetchurl {
42 url = "https://s3.amazonaws.com/prerelease.keybase.io/linux_binaries/deb/keybase_${version}_amd64.deb";
43 sha256 = "0dmi0fw39924kpahlsk853hbmpy8a6nj78lrh1wharayjpvj6jv3";
44 };
45 phases = ["unpackPhase" "installPhase" "fixupPhase"];
46 unpackPhase = ''
47 ar xf $src
48 tar xf data.tar.xz
49 '';
50 installPhase = ''
51 mkdir -p $out/bin
52 mv usr/share $out/share
53 mv opt/keybase $out/share/
54
55 cat > $out/bin/keybase-gui <<EOF
56 #!${stdenv.shell}
57
58 checkFailed() {
59 if [ "\$NIX_SKIP_KEYBASE_CHECKS" = "1" ]; then
60 return
61 fi
62 echo "Set NIX_SKIP_KEYBASE_CHECKS=1 if you want to skip this check." >&2
63 exit 1
64 }
65
66 if [ ! -S "\$XDG_RUNTIME_DIR/keybase/keybased.sock" ]; then
67 echo "Keybase service doesn't seem to be running." >&2
68 echo "You might need to run: keybase service" >&2
69 checkFailed
70 fi
71
72 ${utillinuxMinimal}/bin/mountpoint /keybase &>/dev/null
73 if [ "\$?" -ne "0" ]; then
74 echo "Keybase is not mounted to /keybase." >&2
75 echo "You might need to run: kbfsfuse /keybase" >&2
76 checkFailed
77 fi
78
79 exec $out/share/keybase/Keybase "\$@"
80 EOF
81 chmod +x $out/bin/keybase-gui
82
83 substituteInPlace $out/share/applications/keybase.desktop \
84 --replace run_keybase $out/bin/keybase-gui
85 '';
86 postFixup = ''
87 patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath "${libPath}:\$ORIGIN" "$out/share/keybase/Keybase"
88 '';
89
90 meta = with stdenv.lib; {
91 homepage = https://www.keybase.io/;
92 description = "The Keybase official GUI.";
93 platforms = platforms.linux;
94 maintainers = with maintainers; [ puffnfresh np ];
95 };
96}