{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
fetchNpmDeps,
npmHooks,
nodejs,
cargo-tauri,
pkg-config,
wrapGAppsHook3,
openssl,
libsoup_3,
webkitgtk_4_1,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gale";
version = "1.1.4";
src = fetchFromGitHub {
owner = "Kesomannen";
repo = "gale";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-yAfQuLfucz522ln0YNMy8nppp2jk6tGJnP/WhK7JdhI=";
};
npmDeps = fetchNpmDeps {
name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps";
inherit (finalAttrs) src;
hash = "sha256-xKg/ABUdtylFpT3EisXVvyv38++KjucrZ+s3/fFjzmM=";
cargoDeps = rustPlatform.fetchCargoTarball {
inherit (finalAttrs) pname version src;
sourceRoot = "${finalAttrs.src.name}/${finalAttrs.cargoRoot}";
hash = "sha256-u7UbC9TyEQwYpcVWt8/NsweDNWbQi6NuD9ay9gmMDjg=";
cargoRoot = "src-tauri";
buildAndTestSubdir = finalAttrs.cargoRoot;
nativeBuildInputs = [
npmHooks.npmConfigHook
nodejs
rustPlatform.cargoSetupHook
cargo-tauri.hook
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;
})