aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/tools/misc/sweep-visualizer/default.nix
blob: 21e6f49df1f58104a4ea8222e75d466b01b95ed8 (plain)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
{ stdenv, lib, makeWrapper, fetchurl,
  alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib,
  gnome2, gtk2-x11, nspr, nss,
  libX11, libxcb, libXcomposite, libXcursor, libXdamage, libXext, libXfixes,
  libXi, libXrandr, libXrender, libXScrnSaver, libXtst,
  libudev0-shim
}:
  stdenv.mkDerivation rec {
    pname = "sweep-visualizer";
    version = "0.15.0";

    src = fetchurl {
      url = "https://s3.amazonaws.com/scanse/Visualizer/v${version}/sweepvisualizer_${version}_amd64.deb";
      sha256 = "1k6rdjw2340qrzafv6hjxvbvyh3s1wad6d3629nchdcrpyx9xy1c";
    };

    nativeBuildInputs = [ makeWrapper ];

    sourceRoot = ".";
    unpackCmd = ''
      ar p "$src" data.tar.xz | tar xJ
    '';

    buildPhase = ":";

    installPhase = ''
      mkdir -p $out/bin $out/share/sweep-visualizer
      mv usr/share/* $out/share
      mv opt/Sweep\ Visualizer\ BETA/* $out/share/sweep-visualizer/
      ln -s $out/share/sweep-visualizer/sweep_visualizer $out/bin/sweep_visualizer
    '';

    preFixup = let
      libPath = lib.makeLibraryPath [
        alsaLib atk cairo cups.lib dbus.lib expat fontconfig.lib freetype
        gdk-pixbuf glib gnome2.GConf gnome2.pango gtk2-x11 nspr nss stdenv.cc.cc.lib
        libX11 libxcb libXcomposite libXcursor libXdamage libXext libXfixes
        libXi libXrandr libXrender libXScrnSaver libXtst
      ];
      runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
    in ''
      for lib in $out/share/sweep-visualizer/*.so; do
        patchelf --set-rpath "$out/share/sweep-visualizer:${libPath}" $lib
      done
      patchelf \
        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
        --set-rpath "$out/share/sweep-visualizer:${libPath}" \
        $out/share/sweep-visualizer/sweep_visualizer
      wrapProgram "$out/bin/sweep_visualizer" --prefix LD_LIBRARY_PATH : ${runtimeLibs}
    '';

    meta = with stdenv.lib; {
      homepage = "https://support.scanse.io/hc/en-us/articles/115006008948-Visualizer-Overview";
      description = "A minimal desktop application for interfacing with the Sweep device";
      license = licenses.unfree;
      platforms = [ "x86_64-linux" ];
      maintainers = with maintainers; [ mt-caret ];
    };
  }