111 lines
2.7 KiB
Nix
111 lines
2.7 KiB
Nix
{ alsa-lib, at-spi2-atk, at-spi2-core, atk, autoPatchelfHook, cairo, cups
|
|
, dbus, electron_9, expat, fetchurl, gdk-pixbuf, glib, gtk3, lib
|
|
, libappindicator-gtk3, libdbusmenu-gtk3, libuuid, makeWrapper
|
|
, nspr, nss, pango, squashfsTools, stdenv, systemd, xorg
|
|
}:
|
|
|
|
let
|
|
# Currently only works with electron 9
|
|
electron = electron_9;
|
|
in
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "authy";
|
|
version = "1.8.3";
|
|
rev = "5";
|
|
|
|
buildInputs = [
|
|
alsa-lib
|
|
at-spi2-atk
|
|
at-spi2-core
|
|
atk
|
|
cairo
|
|
cups
|
|
dbus
|
|
expat
|
|
gdk-pixbuf
|
|
glib
|
|
gtk3
|
|
libappindicator-gtk3
|
|
libdbusmenu-gtk3
|
|
libuuid
|
|
nspr
|
|
nss
|
|
pango
|
|
stdenv.cc.cc
|
|
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
|
|
];
|
|
|
|
src = fetchurl {
|
|
url = "https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_${rev}.snap";
|
|
sha256 = "1yfvkmy34mc1dan9am11yka88jv7a4dslsszy4kcc8vap4cjmgpn";
|
|
};
|
|
|
|
nativeBuildInputs = [ autoPatchelfHook makeWrapper squashfsTools ];
|
|
|
|
unpackPhase = ''
|
|
runHook preUnpack
|
|
unsquashfs "$src"
|
|
cd squashfs-root
|
|
if ! grep -q '${version}' meta/snap.yaml; then
|
|
echo "Package version differs from version found in snap metadata:"
|
|
grep 'version: ' meta/snap.yaml
|
|
echo "While the nix package specifies: ${version}."
|
|
echo "You probably chose the wrong revision or forgot to update the nix version."
|
|
exit 1
|
|
fi
|
|
runHook postUnpack
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/lib/
|
|
|
|
cp -r ./* $out/
|
|
rm -R ./*
|
|
|
|
# The snap package has the `ffmpeg.so` file which is copied over with other .so files
|
|
mv $out/*.so $out/lib/
|
|
|
|
# Replace icon name in Desktop file
|
|
sed -i 's|''${SNAP}/meta/gui/icon.png|authy|g' "$out/meta/gui/authy.desktop"
|
|
|
|
# Move the desktop file, icon, binary to their appropriate locations
|
|
mkdir -p $out/bin $out/share/applications $out/share/pixmaps/apps
|
|
cp $out/meta/gui/authy.desktop $out/share/applications/
|
|
cp $out/meta/gui/icon.png $out/share/pixmaps/authy.png
|
|
cp $out/${pname} $out/bin/${pname}
|
|
|
|
# Cleanup
|
|
rm -r $out/{data-dir,gnome-platform,meta,scripts,usr,*.sh,*.so}
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
postFixup = ''
|
|
makeWrapper ${electron}/bin/electron $out/bin/${pname} \
|
|
--add-flags $out/resources/app.asar
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "https://www.authy.com";
|
|
description = "Twilio Authy two factor authentication desktop application";
|
|
license = licenses.unfree;
|
|
maintainers = with maintainers; [ iammrinal0 ];
|
|
platforms = [ "x86_64-linux" ];
|
|
};
|
|
}
|