{ pkgs ? import <nixpkgs> { }, self }:
with pkgs;
let
    version = "0.0.1";
    gstPluginPath = lib.makeSearchPath "lib/gstreamer-1.0" [
      gst_all_1.gstreamer.out
      gst_all_1.gst-plugins-base
      gst_all_1.gst-plugins-good
      gst_all_1.gst-plugins-bad
      gst_all_1.gst-plugins-ugly
      libnice
    ] + ":" + lib.makeLibraryPath [
      gst_all_1.gstreamer.out
      gst_all_1.gst-plugins-base
      gst_all_1.gst-plugins-good
      gst_all_1.gst-plugins-bad
      gst_all_1.gst-plugins-ugly
      libnice
    ];
in
pkgs.buildGo123Module {
  pname = "catie";
  inherit version;

  src = lib.cleanSource self;

  buildInputs = [
    gst_all_1.gstreamer
    gst_all_1.gstreamer.dev
    gst_all_1.gst-plugins-base
    gst_all_1.gst-plugins-good
    gst_all_1.gst-plugins-bad
    gst_all_1.gst-plugins-ugly
    libnice
    glib
    ndi
  ];

  nativeBuildInputs = [
    gcc glib
    pkg-config
    makeWrapper
  ];

  postInstall = ''
    wrapProgram $out/bin/catie  \
        --set GST_PLUGIN_SYSTEM_PATH_1_0 ${gstPluginPath} \
        --set GST_PLUGIN_PATH_1_0 ${gstPluginPath}
        --set NDI_RUNTIME_DIR_V5 ${lib.makeLibraryPath [ ndi ]} \
  '';

  tags = [ ];

  #vendorHash = lib.fakeHash;
  vendorHash = "sha256-/D1ZF4ordHROjrDQxrR/lNvsRFW9u4mDGWZE+M/zO/U=";
  #proxyVendor = true;
}