From 5f34e0d6628937002f0e246f0aed07c802c94f34 Mon Sep 17 00:00:00 2001 From: melvyn Date: Fri, 27 Sep 2024 17:50:49 -0400 Subject: [PATCH 1/5] slskd: 0.21.3 -> 0.21.4 --- pkgs/by-name/sl/slskd/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sl/slskd/package.nix b/pkgs/by-name/sl/slskd/package.nix index 8ab85a4eef3f..2364c1f71b91 100644 --- a/pkgs/by-name/sl/slskd/package.nix +++ b/pkgs/by-name/sl/slskd/package.nix @@ -9,13 +9,13 @@ }: let pname = "slskd"; - version = "0.21.3"; + version = "0.21.4"; src = fetchFromGitHub { owner = "slskd"; repo = "slskd"; rev = version; - hash = "sha256-qAS8uiXAG0JTOCW/bIVYhv6McUSBihAHFjJu3b5Ttoc="; + hash = "sha256-9EKlCmc+zdiuEPa8YNjoQ3QLTy8vt2qcZ+6D0sWgwEU="; }; meta = with lib; { @@ -36,7 +36,7 @@ let src = "${src}/src/web"; npmFlags = [ "--legacy-peer-deps" ]; nodejs = nodejs_18; - npmDepsHash = "sha256-06qQ1y870TrkXhkHYADjnWVhdyiLWEqdDt3qrJ1BBFo="; + npmDepsHash = "sha256-WANoxgPbBoMx6o8fjhSTsKBRZadO2QaeErMMMXk0tgE="; installPhase = '' cp -r build $out ''; From 29fea16b3d45cc6f85b9ccafbf31a88d3c71aff6 Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 27 Sep 2024 19:21:19 -0400 Subject: [PATCH 2/5] slskd: don't split derivations for build --- pkgs/by-name/sl/slskd/package.nix | 84 ++++++++++++++++--------------- 1 file changed, 44 insertions(+), 40 deletions(-) diff --git a/pkgs/by-name/sl/slskd/package.nix b/pkgs/by-name/sl/slskd/package.nix index 2364c1f71b91..713ca58ef7a5 100644 --- a/pkgs/by-name/sl/slskd/package.nix +++ b/pkgs/by-name/sl/slskd/package.nix @@ -1,70 +1,74 @@ { lib, - buildNpmPackage, - fetchFromGitHub, - dotnetCorePackages, buildDotnetModule, + buildPackages, + dotnetCorePackages, + fetchFromGitHub, + fetchNpmDeps, mono, nodejs_18, }: + let + nodejs = nodejs_18; + # 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 = "0.21.4"; src = fetchFromGitHub { owner = "slskd"; repo = "slskd"; - rev = version; + rev = "refs/tags/${version}"; hash = "sha256-9EKlCmc+zdiuEPa8YNjoQ3QLTy8vt2qcZ+6D0sWgwEU="; }; - meta = with lib; { - description = "Modern client-server application for the Soulseek file sharing network"; - homepage = "https://github.com/slskd/slskd"; - license = licenses.agpl3Plus; - maintainers = with maintainers; [ - ppom - melvyn2 - ]; - platforms = platforms.linux; - }; - - wwwroot = buildNpmPackage { - inherit meta version; - - pname = "slskd-web"; - src = "${src}/src/web"; - npmFlags = [ "--legacy-peer-deps" ]; - nodejs = nodejs_18; - npmDepsHash = "sha256-WANoxgPbBoMx6o8fjhSTsKBRZadO2QaeErMMMXk0tgE="; - installPhase = '' - cp -r build $out - ''; - }; - -in -buildDotnetModule { - inherit - pname - version - src - meta - ; + nativeBuildInputs = [ + nodejs + npmHooks.npmConfigHook + ]; runtimeDeps = [ mono ]; + npmRoot = "src/web"; + npmDeps = fetchNpmDeps { + name = "${pname}-${version}-npm-deps"; + inherit src; + sourceRoot = "${src.name}/${npmRoot}"; + hash = "sha256-WANoxgPbBoMx6o8fjhSTsKBRZadO2QaeErMMMXk0tgE="; + }; + + projectFile = "slskd.sln"; + nugetDeps = ./deps.nix; + dotnet-sdk = dotnetCorePackages.sdk_8_0; dotnet-runtime = dotnetCorePackages.aspnetcore_8_0; - projectFile = "slskd.sln"; - testProjectFile = "tests/slskd.Tests.Unit/slskd.Tests.Unit.csproj"; doCheck = true; - nugetDeps = ./deps.nix; + postBuild = '' + pushd "$npmRoot" + npm run build --legacy-peer-deps + popd + ''; postInstall = '' rm -r $out/lib/slskd/wwwroot - ln -s ${wwwroot} $out/lib/slskd/wwwroot + mv "$npmRoot"/build $out/lib/slskd/wwwroot ''; + + 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 + ]; + platforms = lib.platforms.linux; + }; } From 8acd29403227d63ac3b3009d4fb5d46dbe0beb5d Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 27 Sep 2024 19:22:50 -0400 Subject: [PATCH 3/5] slskd: add meta.mainProgram --- pkgs/by-name/sl/slskd/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/sl/slskd/package.nix b/pkgs/by-name/sl/slskd/package.nix index 713ca58ef7a5..3e3148fc656e 100644 --- a/pkgs/by-name/sl/slskd/package.nix +++ b/pkgs/by-name/sl/slskd/package.nix @@ -69,6 +69,7 @@ buildDotnetModule rec { ppom melvyn2 ]; + mainProgram = "slskd"; platforms = lib.platforms.linux; }; } From 02464bd414598482d356902e758bd544a74fb951 Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 27 Sep 2024 19:23:02 -0400 Subject: [PATCH 4/5] slskd: add getchoo as maintainer --- pkgs/by-name/sl/slskd/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/sl/slskd/package.nix b/pkgs/by-name/sl/slskd/package.nix index 3e3148fc656e..804828c5c415 100644 --- a/pkgs/by-name/sl/slskd/package.nix +++ b/pkgs/by-name/sl/slskd/package.nix @@ -68,6 +68,7 @@ buildDotnetModule rec { maintainers = with lib.maintainers; [ ppom melvyn2 + getchoo ]; mainProgram = "slskd"; platforms = lib.platforms.linux; From d4735e4f99648afce30ffc13f7b3f4133a12697c Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 27 Sep 2024 19:24:03 -0400 Subject: [PATCH 5/5] slskd: add version test --- pkgs/by-name/sl/slskd/package.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/by-name/sl/slskd/package.nix b/pkgs/by-name/sl/slskd/package.nix index 804828c5c415..ed60e90b7c63 100644 --- a/pkgs/by-name/sl/slskd/package.nix +++ b/pkgs/by-name/sl/slskd/package.nix @@ -7,6 +7,8 @@ fetchNpmDeps, mono, nodejs_18, + slskd, + testers, }: let @@ -60,6 +62,10 @@ buildDotnetModule rec { mv "$npmRoot"/build $out/lib/slskd/wwwroot ''; + passthru = { + tests.version = testers.testVersion { package = slskd; }; + }; + meta = { description = "Modern client-server application for the Soulseek file sharing network"; homepage = "https://github.com/slskd/slskd";