Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 23 additions & 40 deletions pkgs/servers/monitoring/karma/default.nix
Original file line number Diff line number Diff line change
@@ -1,39 +1,42 @@
{ pkgs
, lib
{ lib
, stdenv
, buildGoModule
, callPackage
, fetchFromGitHub
, fetchNpmDeps
, nixosTests
, nodejs_18
, nodejs
, npmHooks
}:

let
uiNodeDependencies = (import ./node-composition.nix {
inherit pkgs;
inherit (stdenv.hostPlatform) system;
# pin nodejs version
nodejs = nodejs_18;
}).nodeDependencies;
in

buildGoModule rec {
pname = "karma";
version = "0.114";
version = "0.115";

src = fetchFromGitHub {
owner = "prymitive";
repo = "karma";
rev = "v${version}";
hash = "sha256-ZstBumK2ywwdr1ksMN7P8mHdYUiMOpfpYnvt0v0Io4w=";
hash = "sha256-SW/nmJcSk/LmoKLuD5stsSaRGaJctl6hVSODNCT9i64=";
};

vendorHash = "sha256-Y55AaB8KRV+Tq/Trg1BOOwziyt+yJ2b3iVYA6bDebQY=";

npmDeps = fetchNpmDeps {
src = "${src}/ui";
hash = "sha256-/L+eU0xwaopL2im9epiZiZ23dUqJ+3OwhWw/rIZC6hI=";
};

vendorHash = "sha256-ZsXPA4KyKbc/bwkidyHNDg62mE8KlE+yIssOBZLmHVg=";
npmRoot = "ui";

nativeBuildInputs = [
nodejs_18
nodejs
npmHooks.npmConfigHook
];

Comment thread
dotlambda marked this conversation as resolved.
Outdated
overrideModAttrs = oldAttrs: {
nativeBuildInputs = lib.filter (drv: drv != npmHooks.npmConfigHook) oldAttrs.nativeBuildInputs;
};

postPatch = ''
# Since we're using node2nix packages, the NODE_INSTALL hook isn't needed in the makefile
sed -i \
Expand All @@ -43,32 +46,11 @@ buildGoModule rec {
'';

buildPhase = ''
# node will fail without this
export HOME=$(mktemp -d)

# build requires a writable .cache directory, so we'll create a
# temporary writable node_modules dir and link every package to it

# simply linking the node_modules directory would increase the closure size for uiNodeDependencies to >700MB
cp -r ${uiNodeDependencies}/lib/node_modules ./ui/
chmod -R +w ./ui/node_modules
mkdir -p ./ui/node_modules/.bin

pushd ./ui/node_modules/.bin

for x in ${uiNodeDependencies}/lib/node_modules/.bin/*; do
ln -sfv ./$(readlink "$x") ./$(basename "$x")
done

popd

mkdir -p ./ui/node_modules/.cache
runHook preBuild

# build package
VERSION="v${version}" make -j$NIX_BUILD_CORES

# clean up
rm -rf ./ui/node_modules
runHook postBuild
'';

installPhase = ''
Expand All @@ -78,6 +60,7 @@ buildGoModule rec {
passthru.tests.karma = nixosTests.karma;

meta = with lib; {
changelog = "https://github.com/prymitive/karma/blob/${src.rev}/CHANGELOG.md";
description = "Alert dashboard for Prometheus Alertmanager";
homepage = "https://karma-dashboard.io/";
license = licenses.asl20;
Expand Down
30 changes: 0 additions & 30 deletions pkgs/servers/monitoring/karma/generate-dependencies.sh

This file was deleted.

17 changes: 0 additions & 17 deletions pkgs/servers/monitoring/karma/node-composition.nix

This file was deleted.

Loading