diff --git a/pkgs/by-name/ga/gale/package.nix b/pkgs/by-name/ga/gale/package.nix new file mode 100644 index 000000000000..c7863715c7ae --- /dev/null +++ b/pkgs/by-name/ga/gale/package.nix @@ -0,0 +1,91 @@ +{ + lib, + stdenv, + rustPlatform, + fetchFromGitHub, + + fetchNpmDeps, + npmHooks, + nodejs, + cargo-tauri, + pkg-config, + wrapGAppsHook3, + + openssl, + libsoup_3, + webkitgtk_4_1, +}: + +let + cargo-tauri_2 = + let + pname = "cargo-tauri"; + version = "2.0.0-rc.3"; + src = fetchFromGitHub { + owner = "tauri-apps"; + repo = "tauri"; + rev = "tauri-v${version}"; + hash = "sha256-PV8m/MzYgbY4Hv71dZrqVbrxmxrwFfOAraLJIaQk6FQ="; + }; + in + cargo-tauri.overrideAttrs { + inherit src version; + cargoDeps = rustPlatform.fetchCargoTarball { + inherit pname version src; + sourceRoot = "${src.name}/tooling/cli"; + hash = "sha256-JPlMaoPw6a7D20KQH7iuhHKfGT5oUKf55tMaMYEM/Z4="; + }; + }; +in +stdenv.mkDerivation (finalAttrs: { + pname = "gale"; + version = "0.8.11"; + + src = fetchFromGitHub { + owner = "Kesomannen"; + repo = "gale"; + rev = "refs/tags/${finalAttrs.version}"; + hash = "sha256-PXK64WD3vb3uVxBFNU+LiGOipUjIAKW9RLWr1o4RigU="; + }; + + npmDeps = fetchNpmDeps { + name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps"; + inherit (finalAttrs) src; + hash = "sha256-W0ryt3WH/3SireaOHa9i1vKpuokzIsDlD8R9Fnd0s4k="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit (finalAttrs) pname version src; + sourceRoot = "${finalAttrs.src.name}/${finalAttrs.cargoRoot}"; + hash = "sha256-zXZkjSYN6/qNwBh+xUgJPWQvduIUSMVSt/XGbocKTwg="; + }; + + cargoRoot = "src-tauri"; + + buildAndTestSubdir = finalAttrs.cargoRoot; + + nativeBuildInputs = [ + npmHooks.npmConfigHook + nodejs + rustPlatform.cargoSetupHook + (cargo-tauri.hook.override { cargo-tauri = cargo-tauri_2; }) + rustPlatform.cargoCheckHook + pkg-config + wrapGAppsHook3 + ]; + + buildInputs = [ + libsoup_3 + webkitgtk_4_1 + openssl + ]; + + meta = { + description = "Lightweight Thunderstore client"; + homepage = "https://github.com/Kesomannen/gale"; + license = lib.licenses.gpl3Only; + mainProgram = "gale"; + maintainers = with lib.maintainers; [ tomasajt ]; + platforms = lib.platforms.linux; + }; +})