diff --git a/pkgs/by-name/he/headphones-toolbox/package.nix b/pkgs/by-name/he/headphones-toolbox/package.nix index 550fe4e55f42..876717323add 100644 --- a/pkgs/by-name/he/headphones-toolbox/package.nix +++ b/pkgs/by-name/he/headphones-toolbox/package.nix @@ -1,51 +1,61 @@ { + cargo-tauri, + fetchFromGitHub, + fetchYarnDeps, lib, - stdenv, - dpkg, - fetchurl, - autoPatchelfHook, - webkitgtk_4_0, + nix-update-script, + nodejs, + pkg-config, + rustPlatform, + webkitgtk_4_1, + wrapGAppsHook3, + yarnConfigHook, }: -stdenv.mkDerivation (finalAttrs: { - name = "headphones-toolbox"; - version = "0.0.5"; +rustPlatform.buildRustPackage (rec { + pname = "headphones-toolbox"; + version = "0.0.7"; + tag = "test-tauri-v2-2"; - src = fetchurl { - url = "https://github.com/ploopyco/headphones-toolbox/releases/download/app-v${finalAttrs.version}/ploopy-headphones-toolbox_${finalAttrs.version}_amd64.deb"; - hash = "sha256-lWjmpybGcL3sbBng8zCTUtwYhlrQ6cCrKkhiu+g9MsE="; + src = fetchFromGitHub { + owner = "george-norton"; + repo = "headphones-toolbox"; + rev = "${tag}"; + hash = "sha256-X2HTEPxvBzbhfN1vqQVk81Qk1Z+EV+7/SpjZrDHv+fM="; }; + offlineCache = fetchYarnDeps { + yarnLock = "${src}/yarn.lock"; + hash = "sha256-Ln5U0KKsKm6ZLViZIWfBiBjm/mQNEIxaj4nTR55PcRg="; + }; + + useFetchCargoVendor = true; + cargoHash = "sha256-VgCxYYNBV45sTzouS5NE7nOUViPj0gJO7DSKlJSAT4U="; + cargoRoot = "src-tauri"; + buildAndTestSubdir = cargoRoot; + nativeBuildInputs = [ - dpkg - autoPatchelfHook + cargo-tauri.hook + nodejs + pkg-config + wrapGAppsHook3 + yarnConfigHook ]; - buildInputs = [ - webkitgtk_4_0 - ]; + buildInputs = [ webkitgtk_4_1 ]; - installPhase = '' - runHook preInstall + passthru.updateScript = nix-update-script { }; - mkdir -p $out/bin - mv usr/bin $out - mv usr/lib $out - mv usr/share $out - - runHook postInstall - ''; - - meta = with lib; { + meta = { description = "UI for configuring Ploopy Headphones"; homepage = "https://github.com/ploopyco/headphones-toolbox/"; - maintainers = with maintainers; [ + license = lib.licenses.gpl3Only; + mainProgram = "headphones-toolbox"; + maintainers = with lib.maintainers; [ + flacks knarkzel nyabinary ]; - license = licenses.gpl3Only; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - platforms = [ "x86_64-linux" ]; - mainProgram = "headphones-toolbox"; + platforms = lib.platforms.linux; }; })