diff options
| author | Max Audron <audron@cocaine.farm> | 2025-10-22 17:59:59 +0200 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2025-10-22 18:01:05 +0200 |
| commit | c42d7c4594de675adfc60aa090c359a4a172acbd (patch) | |
| tree | 805206f02c9e2083d2d16c0e0495fd16bfca6646 /modules/tlmp/slsk_package.nix | |
| parent | add slskd (diff) | |
deploy soulseek and fix tlmp VPN
Diffstat (limited to '')
| -rw-r--r-- | modules/tlmp/slsk_package.nix | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/modules/tlmp/slsk_package.nix b/modules/tlmp/slsk_package.nix new file mode 100644 index 0000000..5ddfc6c --- /dev/null +++ b/modules/tlmp/slsk_package.nix @@ -0,0 +1,88 @@ +{ + lib, + buildDotnetModule, + buildPackages, + dotnetCorePackages, + fetchFromGitHub, + fetchNpmDeps, + mono, + nodejs_20, + slskd, + testers, + nix-update-script, +}: + +let + nodejs = nodejs_20; + # https://github.com/NixOS/nixpkgs/blob/d88947e91716390bdbefccdf16f7bebcc41436eb/pkgs/build-support/node/build-npm-package/default.nix#L62 + npmHooks = buildPackages.npmHooks.override { inherit nodejs; }; +in +buildDotnetModule rec { + pname = "slskd"; + version = "2025-10-21"; + + src = fetchFromGitHub { + owner = "slskd"; + repo = "slskd"; + rev = "0a15a71028c2a12795023550f28d416dd050763d"; + hash = "sha256-vq78sT9wPGaTggZi+8O1ATBWpPTiSSki4H8u9M/xH3w="; + }; + + nativeBuildInputs = [ + nodejs + npmHooks.npmConfigHook + ]; + + runtimeDeps = [ mono ]; + + npmRoot = "src/web"; + npmDeps = fetchNpmDeps { + name = "${pname}-${version}-npm-deps"; + inherit src; + sourceRoot = "${src.name}/${npmRoot}"; + hash = "sha256-BqEOoqLpFO2Usbi3GgOmZtRxRqFvplAqtHMsWhcDfHI="; + }; + + projectFile = "slskd.sln"; + nugetDeps = ./deps.json; + + dotnet-sdk = dotnetCorePackages.sdk_8_0; + dotnet-runtime = dotnetCorePackages.aspnetcore_8_0; + + testProjectFile = "tests/slskd.Tests.Unit/slskd.Tests.Unit.csproj"; + doCheck = true; + disabledTests = [ + # Random failures on OfBorg, cause unknown + "slskd.Tests.Unit.Transfers.Uploads.UploadGovernorTests+ReturnBytes.Returns_Bytes_To_Bucket" + ]; + + postBuild = '' + pushd "$npmRoot" + npm run build --legacy-peer-deps + popd + ''; + + postInstall = '' + rm -r $out/lib/slskd/wwwroot + mv "$npmRoot"/build $out/lib/slskd/wwwroot + ''; + + passthru = { + tests.version = testers.testVersion { package = slskd; }; + updateScript = nix-update-script { }; + }; + + meta = { + description = "Modern client-server application for the Soulseek file sharing network"; + homepage = "https://github.com/slskd/slskd"; + changelog = "https://github.com/slskd/slskd/releases/tag/${version}"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ + ppom + melvyn2 + getchoo + ]; + mainProgram = "slskd"; + platforms = lib.platforms.linux; + }; +} |
