{ stdenv, lib, rustPlatform, fetchCrate, pkg-config, libusb1, nix-update-script, versionCheckHook, }: rustPlatform.buildRustPackage rec { pname = "wchisp"; version = "0.3.0"; src = fetchCrate { inherit pname version; hash = "sha256-6WNXsRvbldEjAykMn1DCiuKctBrsTHGv1fJuRXBblu0="; }; cargoHash = "sha256-5kJ0MK0rUzyJvLZH/3nje+gTAM6et0mNE3sxVoK1L5s="; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libusb1 ]; doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook ]; passthru = { updateScript = nix-update-script { }; }; meta = { description = "A command-line implementation of WCHISPTool, for flashing ch32 MCUs"; homepage = "https://ch32-rs.github.io/wchisp/"; changelog = "https://github.com/ch32-rs/wchisp/releases/tag/v${version}"; license = with lib.licenses; [ gpl2Only ]; platforms = with lib.platforms; linux ++ darwin ++ windows; broken = !stdenv.hostPlatform.isLinux; maintainers = with lib.maintainers; [ jwillikers ]; mainProgram = "wchisp"; }; }