summary refs log tree commit diff
path: root/pkgs/applications/misc/yubioath-desktop/default.nix
blob: db48c2e7c808ad885d2b7f2a9092fd5471baaa03 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{ stdenv, fetchurl,  python27Packages, swig, gettext, pcsclite, qt48Full, yubikey-personalization }:

python27Packages.buildPythonApplication rec {
    namePrefix = "";
    name = "yubioath-desktop-${version}";
    version = "3.1.0";

    src = fetchurl {
      url = "http://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz";
      sha256 = "0jfvllgh88g2vwd8sg6willlnn2hq05nd9d3xmv98lhl7gyy1akw";
    };

    doCheck = false;

    buildInputs = [ stdenv ];

    propagatedBuildInputs = [ python27Packages.pycrypto python27Packages.click python27Packages.pyscard python27Packages.pyside ];

    # Need LD_PRELOAD for libykpers as the Nix cpython disables ctypes.cdll.LoadLibrary
    # support that the yubicommon library uses to load libykpers
    makeWrapperArgs = ''--prefix LD_LIBRARY_PATH : "${stdenv.lib.getLib pcsclite}/lib:${yubikey-personalization}/lib" --prefix LD_PRELOAD : "${yubikey-personalization}/lib/libykpers-1.so"'';

    postInstall = ''
      mkdir -p $out/share/applications
      cp resources/yubioath.desktop $out/share/applications/yubioath.desktop
      mkdir -p $out/share/yubioath/icons
      cp resources/yubioath*.{icns,ico,png,xpm} $out/share/yubioath/icons
      substituteInPlace $out/share/applications/yubioath.desktop \
        --replace 'Exec=yubioath-gui' "Exec=$out/bin/yubioath-gui" \
        --replace 'Icon=yubioath' "Icon=$out/share/yubioath/icons"

    '';

    meta = {
      description = "Yubikey Desktop Authenticator";

      homepage = https://www.yubico.com/support/knowledge-base/categories/articles/yubico-authenticator-download/;

      license = stdenv.lib.licenses.gpl3;
    };
}