about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranz Pletz <fpletz@fnordicwalking.de>2024-09-28 15:32:49 +0200
committerGitHub <noreply@github.com>2024-09-28 15:32:49 +0200
commit8f2d7f187c23ebe3c41c089b4af1ef3bd30b4fd1 (patch)
tree960d24bf67e61a17549c9caedcb4a828e1786c29
parentcc2142b9f028c90fc1e9ab85fb1c4ea51746da28 (diff)
parentd4735e4f99648afce30ffc13f7b3f4133a12697c (diff)
slskd: 0.21.3 -> 0.21.4 (#344958)
-rw-r--r--pkgs/by-name/sl/slskd/package.nix92
1 files changed, 52 insertions, 40 deletions
diff --git a/pkgs/by-name/sl/slskd/package.nix b/pkgs/by-name/sl/slskd/package.nix
index 8ab85a4eef3f7..ed60e90b7c636 100644
--- a/pkgs/by-name/sl/slskd/package.nix
+++ b/pkgs/by-name/sl/slskd/package.nix
@@ -1,70 +1,82 @@
 {
   lib,
-  buildNpmPackage,
-  fetchFromGitHub,
-  dotnetCorePackages,
   buildDotnetModule,
+  buildPackages,
+  dotnetCorePackages,
+  fetchFromGitHub,
+  fetchNpmDeps,
   mono,
   nodejs_18,
+  slskd,
+  testers,
 }:
+
 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.3";
+  version = "0.21.4";
 
   src = fetchFromGitHub {
     owner = "slskd";
     repo = "slskd";
-    rev = version;
-    hash = "sha256-qAS8uiXAG0JTOCW/bIVYhv6McUSBihAHFjJu3b5Ttoc=";
+    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;
-  };
+  nativeBuildInputs = [
+    nodejs
+    npmHooks.npmConfigHook
+  ];
 
-  wwwroot = buildNpmPackage {
-    inherit meta version;
+  runtimeDeps = [ mono ];
 
-    pname = "slskd-web";
-    src = "${src}/src/web";
-    npmFlags = [ "--legacy-peer-deps" ];
-    nodejs = nodejs_18;
-    npmDepsHash = "sha256-06qQ1y870TrkXhkHYADjnWVhdyiLWEqdDt3qrJ1BBFo=";
-    installPhase = ''
-      cp -r build $out
-    '';
+  npmRoot = "src/web";
+  npmDeps = fetchNpmDeps {
+    name = "${pname}-${version}-npm-deps";
+    inherit src;
+    sourceRoot = "${src.name}/${npmRoot}";
+    hash = "sha256-WANoxgPbBoMx6o8fjhSTsKBRZadO2QaeErMMMXk0tgE=";
   };
 
-in
-buildDotnetModule {
-  inherit
-    pname
-    version
-    src
-    meta
-    ;
-
-  runtimeDeps = [ mono ];
+  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
   '';
+
+  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";
+    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;
+  };
 }