Files
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

136 lines
2.9 KiB
Nix

{
fetchFromGitHub,
cargo-tauri,
fetchFromRadicle,
git,
glib,
gtk3,
fetchNpmDeps,
npmHooks,
lib,
libsoup_3,
nodejs,
openssh,
openssl,
pkg-config,
playwright-driver,
radicle-node,
rustPlatform,
webkitgtk_4_1,
wrapGAppsHook4,
rustfmt,
clippy,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "radicle-desktop";
version = "0.8.0";
src = fetchFromRadicle {
seed = "seed.radicle.xyz";
repo = "z4D5UCArafTzTQpDZNQRuqswh3ury";
rev = "aeb405aaf53b56a426ab8d68c7f89b8953683224";
hash = "sha256-Z/6GdXf3ag/89H8UMD2GNU4CXA8TWyX8dl8uh0CTem8=";
leaveDotGit = true;
postFetch = ''
git -C $out rev-parse --short HEAD > $out/.git_head
rm -rf $out/.git
'';
};
postPatch = ''
patchShebangs scripts/copy-katex-assets scripts/check-js scripts/check-rs
mkdir -p public/twemoji
cp -t public/twemoji -r -- ${finalAttrs.twemojiAssets}/assets/svg/*
: >scripts/install-twemoji-assets
substituteInPlace scripts/check-rs \
--replace-fail "-Dwarnings" ""
'';
npmDeps = fetchNpmDeps {
inherit (finalAttrs) src;
hash = "sha256-lcSNGmIv6u7DT47lOC69BRbVSK5IPiwjtdAS8aVxwqM=";
};
cargoHash = "sha256-z5fnwc7EjSvkyu4zTUyAvVfs6quwH2p9VFDK/TdzZJE=";
twemojiAssets = fetchFromGitHub {
owner = "twitter";
repo = "twemoji";
tag = "v14.0.2";
hash = "sha256-YoOnZ5uVukzi/6bLi22Y8U5TpplPzB7ji42l+/ys5xI=";
};
env = {
HW_RELEASE = "nixpkgs";
PLAYWRIGHT_BROWSERS_PATH = playwright-driver.browsers;
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = true;
PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS = true;
};
nativeBuildInputs = [
cargo-tauri.hook
npmHooks.npmConfigHook
nodejs
pkg-config
wrapGAppsHook4
];
buildInputs = [
glib
gtk3
libsoup_3
openssl
webkitgtk_4_1
];
preBuild = ''
export GIT_HEAD=$(<$src/.git_head)
'';
nativeCheckInputs = [
git
openssh
radicle-node
rustfmt
clippy
];
checkPhase = ''
runHook preCheck
export RAD_HOME="$PWD/_rad-home"
export RAD_PASSPHRASE=""
rad auth --alias test
bins="tests/tmp/bin/heartwood/$HW_RELEASE"
mkdir -p "$bins"
cp -t "$bins" -- ${radicle-node}/bin/*
echo -n "$HW_RELEASE" >tests/support/heartwood-release
npm run build:http
npm run test:unit
scripts/check-js
scripts/check-rs
runHook postCheck
'';
passthru.env = finalAttrs.env;
meta = {
description = "Radicle desktop app";
homepage = "https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:z4D5UCArafTzTQpDZNQRuqswh3ury";
changelog = "https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:z4D5UCArafTzTQpDZNQRuqswh3ury/tree/CHANGELOG.md";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
matthiasbeyer
defelo
faukah
];
mainProgram = "radicle-desktop";
};
})