diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/security/keybase/gui.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/security/keybase/gui.nix | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/security/keybase/gui.nix b/nixpkgs/pkgs/tools/security/keybase/gui.nix new file mode 100644 index 000000000000..f84f0039347e --- /dev/null +++ b/nixpkgs/pkgs/tools/security/keybase/gui.nix @@ -0,0 +1,112 @@ +{ stdenv, fetchurl, alsaLib, atk, cairo, cups, udev +, dbus, expat, fontconfig, freetype, gdk_pixbuf, glib, gtk3 +, libnotify, nspr, nss, pango, systemd, xorg, autoPatchelfHook, wrapGAppsHook +, runtimeShell, gsettings-desktop-schemas }: + +let + versionSuffix = "20190612201656.952fee6c59"; +in + +stdenv.mkDerivation rec { + name = "keybase-gui-${version}"; + version = "4.1.0"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages + + src = fetchurl { + url = "https://s3.amazonaws.com/prerelease.keybase.io/linux_binaries/deb/keybase_${version + "-" + versionSuffix}_amd64.deb"; + sha256 = "0jwxw75yz7sbvfqw2aksa3p7jlcv817743fl59qk6rq1x9ag6qpx"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + wrapGAppsHook + ]; + + buildInputs = [ + alsaLib + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk_pixbuf + glib + gsettings-desktop-schemas + gtk3 + libnotify + nspr + nss + pango + systemd + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libxcb + ]; + + runtimeDependencies = [ + udev.lib + ]; + + dontBuild = true; + dontConfigure = true; + dontPatchElf = true; + + unpackPhase = '' + ar xf $src + tar xf data.tar.xz + ''; + + installPhase = '' + mkdir -p $out/bin + mv usr/share $out/share + mv opt/keybase $out/share/ + + cat > $out/bin/keybase-gui <<EOF + #!${runtimeShell} + + checkFailed() { + if [ "\$NIX_SKIP_KEYBASE_CHECKS" = "1" ]; then + return + fi + echo "Set NIX_SKIP_KEYBASE_CHECKS=1 if you want to skip this check." >&2 + exit 1 + } + + if [ ! -S "\$XDG_RUNTIME_DIR/keybase/keybased.sock" ]; then + echo "Keybase service doesn't seem to be running." >&2 + echo "You might need to run: keybase service" >&2 + checkFailed + fi + + if [ -z "\$(keybase status | grep kbfsfuse)" ]; then + echo "Could not find kbfsfuse client in keybase status." >&2 + echo "You might need to run: kbfsfuse" >&2 + checkFailed + fi + + exec $out/share/keybase/Keybase "\$@" + EOF + chmod +x $out/bin/keybase-gui + + substituteInPlace $out/share/applications/keybase.desktop \ + --replace run_keybase $out/bin/keybase-gui + ''; + + meta = with stdenv.lib; { + homepage = https://www.keybase.io/; + description = "The Keybase official GUI"; + platforms = platforms.linux; + maintainers = with maintainers; [ rvolosatovs puffnfresh np ]; + license = licenses.bsd3; + }; +} |