mirror of
https://github.com/CHN-beta/nixpkgs.git
synced 2026-01-11 18:32:23 +08:00
radicle-desktop: init at 0.8.0
Co-authored-by: Matthias Beyer <mail@beyermatthias.de>
Co-authored-by: Angel J <78835633+Iamanaws@users.noreply.github.com>
(cherry picked from commit 86666a4a99)
This commit is contained in:
135
pkgs/by-name/ra/radicle-desktop/package.nix
Normal file
135
pkgs/by-name/ra/radicle-desktop/package.nix
Normal file
@@ -0,0 +1,135 @@
|
||||
{
|
||||
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";
|
||||
};
|
||||
})
|
||||
Reference in New Issue
Block a user