Commit d051f421 authored by Karolis Stasaitis's avatar Karolis Stasaitis
Browse files

packetry: init at 0.4.0

parent 2789dcae
Loading
Loading
Loading
Loading
+63 −0
Original line number Diff line number Diff line
{
  fetchFromGitHub,
  lib,
  stdenv,
  rustPlatform,
  gtk4,
  pkg-config,
  pango,
  wrapGAppsHook4,
  apple-sdk_11,
  versionCheckHook,
}:

rustPlatform.buildRustPackage rec {
  pname = "packetry";
  version = "0.4.0";

  src = fetchFromGitHub {
    owner = "greatscottgadgets";
    repo = "packetry";
    rev = "refs/tags/v${version}";
    hash = "sha256-eDVom0kAL1QwO8BtrJS76VTvxtKs7CP6Ob5BWlE6wOM=";
  };

  cargoHash = "sha256-xz9PdVVB1u6s/anPBRonWS1kMN+4kfkK/gaOlF9Z3yk=";

  nativeBuildInputs = [
    pkg-config
    wrapGAppsHook4
  ];

  buildInputs =
    [
      gtk4
      pango
    ]
    ++ lib.optionals stdenv.isDarwin [
      apple-sdk_11
    ];

  # Disable test_replay tests as they need a gui
  preCheck = ''
    sed -i 's:#\[test\]:#[test] #[ignore]:' src/test_replay.rs
  '';

  nativeInstallCheckInputs = [ versionCheckHook ];
  versionCheckProgramArg = "--version";
  doInstallCheck = true;

  # packetry-cli is only necessary on windows https://github.com/greatscottgadgets/packetry/pull/154
  postInstall = ''
    rm $out/bin/packetry-cli
  '';

  meta = {
    description = "USB 2.0 protocol analysis application for use with Cynthion";
    homepage = "https://github.com/greatscottgadgets/packetry";
    license = lib.licenses.bsd3;
    maintainers = with lib.maintainers; [ carlossless ];
    mainProgram = "packetry";
    platforms = lib.platforms.linux ++ lib.platforms.darwin;
  };
}