about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/misc/authy/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/authy/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/misc/authy/default.nix110
1 files changed, 110 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/authy/default.nix b/nixpkgs/pkgs/applications/misc/authy/default.nix
new file mode 100644
index 000000000000..65200d851770
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/authy/default.nix
@@ -0,0 +1,110 @@
+{ alsaLib, 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 = [
+    alsaLib
+    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" ];
+  };
+}