Files
nur/pkgs/common/sable.nix
T

88 lines
2.3 KiB
Nix
Raw Normal View History

2026-05-21 08:41:07 -04:00
{
lib,
buildNpmPackage,
pnpm_10,
fetchPnpmDeps,
pnpmConfigHook,
nodejs_24,
fetchFromGitHub,
}:
2026-09-06 16:15:49 -04:00
buildNpmPackage (
finalAttrs:
let
pnpm = pnpm_10.override {
nodejs = nodejs_24;
};
matrixrtcSrc = fetchFromGitHub {
owner = "SableClient";
repo = "matrix-rtc";
rev = "519fe6b863cfac78700f4e2b1748649103bb8a8d";
hash = "sha256-n5f7529RdRxY8/a43Xkgrhg4yRz5aNgfoZqWrB7kvak=";
};
livekitMobileSrc = fetchFromGitHub {
owner = "SableClient";
repo = "tauri-plugin-livekit-mobile";
rev = "c6f0d02ab3da1174535bc1dc8e598a2e6873f977";
hash = "sha256-ZPx6Ic+Gkvzg9LXYP9BaQALzOrvLCcQHOms8U3VfnU0=";
};
in
{
pname = "sable-unwrapped";
version = "1.21.0";
src = fetchFromGitHub {
owner = "SableClient";
repo = "Sable";
tag = "v${finalAttrs.version}";
hash = "sha256-vYoKNflV4vdJpgYVxYCxAQhvqDh1Qf+7qgIFHxriTTU=";
};
2026-05-21 08:41:07 -04:00
nodejs = nodejs_24;
2026-09-06 16:15:49 -04:00
nativeBuildInputs = [ pnpm ];
npmConfigHook = pnpmConfigHook;
2026-05-21 08:41:07 -04:00
2026-09-06 16:15:49 -04:00
npmDeps = finalAttrs.pnpmDeps;
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherVersion = 3;
hash = "sha256-tzIU/5DQ4SpLABKOt6/Z2aD2d6nVt+MJvY7vHHnO4No=";
};
2026-05-21 08:41:07 -04:00
2026-09-06 16:15:49 -04:00
npmInstallFlags = [
"--ignore-scripts"
2026-05-21 08:41:07 -04:00
];
2026-09-06 16:15:49 -04:00
preBuild = ''
cp -r --no-preserve=mode ${matrixrtcSrc}/. node_modules/@sableclient/matrixrtc/
pnpm exec tsc -p node_modules/@sableclient/matrixrtc/tsconfig.build.json
cp -r --no-preserve=mode ${livekitMobileSrc}/. node_modules/@sableclient/tauri-plugin-livekit-mobile/
pnpm exec tsc \
-p node_modules/@sableclient/tauri-plugin-livekit-mobile/tsconfig.json \
--noEmit false \
--declaration \
--rootDir node_modules/@sableclient/tauri-plugin-livekit-mobile/guest-js \
--outDir node_modules/@sableclient/tauri-plugin-livekit-mobile/dist-js
'';
installPhase = ''
runHook preInstall
cp -r dist $out
runHook postInstall
'';
meta = {
description = "An almost stable Matrix client";
homepage = "https://app.sable.moe/";
maintainers = with lib.maintainers; [
wymillerlinux
];
license = lib.licenses.agpl3Only;
platforms = lib.platforms.all;
};
}
)