mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-12 16:53:21 +00:00
ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
119 lines
2.8 KiB
Nix
119 lines
2.8 KiB
Nix
{ stdenv, lib, fetchurl, alsa-lib, atk, cairo, cups, udev, libdrm, mesa
|
|
, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, gtk3, libappindicator-gtk3
|
|
, libnotify, nspr, nss, pango, systemd, xorg, autoPatchelfHook, wrapGAppsHook
|
|
, runtimeShell, gsettings-desktop-schemas }:
|
|
|
|
let
|
|
versionSuffix = "20240101011938.ae7e4a1c15";
|
|
in
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "keybase-gui";
|
|
version = "6.2.4"; # Find latest version and versionSuffix 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";
|
|
hash = "sha256-XyGb9F83z8+OSjxOaO5k+h2qIY78ofS/ZfTXki54E5Q=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
autoPatchelfHook
|
|
wrapGAppsHook
|
|
];
|
|
|
|
buildInputs = [
|
|
alsa-lib
|
|
atk
|
|
cairo
|
|
cups
|
|
dbus
|
|
expat
|
|
fontconfig
|
|
freetype
|
|
gdk-pixbuf
|
|
glib
|
|
gsettings-desktop-schemas
|
|
gtk3
|
|
libappindicator-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
|
|
libdrm
|
|
mesa.out
|
|
];
|
|
|
|
runtimeDependencies = [
|
|
(lib.getLib udev)
|
|
libappindicator-gtk3
|
|
];
|
|
|
|
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 lib; {
|
|
homepage = "https://www.keybase.io/";
|
|
description = "The Keybase official GUI";
|
|
mainProgram = "keybase-gui";
|
|
platforms = [ "x86_64-linux" ];
|
|
maintainers = with maintainers; [ avaq rvolosatovs puffnfresh np Br1ght0ne shofius ];
|
|
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
|
license = licenses.bsd3;
|
|
};
|
|
}
|