From 24b9f263ec3b63ff7d86bea4e4e58149593ed1a2 Mon Sep 17 00:00:00 2001 From: James Conroy-Finn Date: Thu, 23 Nov 2023 18:38:12 +0000 Subject: [PATCH 1/9] clojure-lsp: Remove references to GraalVM derivation --- .../tools/misc/clojure-lsp/default.nix | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix index 5102c8deed00..024bc6a2b8ae 100644 --- a/pkgs/development/tools/misc/clojure-lsp/default.nix +++ b/pkgs/development/tools/misc/clojure-lsp/default.nix @@ -1,4 +1,14 @@ -{ lib, stdenv, buildGraalvmNativeImage, babashka, fetchurl, fetchFromGitHub, clojure, writeScript }: +{ lib +, stdenv +, buildGraalvmNativeImage +, graalvmCEPackages +, removeReferencesTo +, babashka +, fetchurl +, fetchFromGitHub +, clojure +, writeScript +}: buildGraalvmNativeImage rec { pname = "clojure-lsp"; @@ -16,11 +26,19 @@ buildGraalvmNativeImage rec { sha256 = "c301821ac6914999a44f5c1cd371d46b248fe9a2e31d43a666d0bc2656cfdd78"; }; + graalvmDrv = graalvmCEPackages.graalvm-ce; + + nativeBuildInputs = [ removeReferencesTo ]; + extraNativeImageBuildArgs = [ "--no-fallback" "--native-image-info" ]; + postInstall = '' + remove-references-to -t ${graalvmDrv} $out/bin/${pname} + ''; + doCheck = true; checkPhase = '' runHook preCheck From e9180043219afaa2a6ff5b291b561bb3e8aa87fa Mon Sep 17 00:00:00 2001 From: James Conroy-Finn Date: Thu, 23 Nov 2023 18:48:32 +0000 Subject: [PATCH 2/9] jet: Remove references to GraalVM derivation --- pkgs/development/tools/jet/default.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/jet/default.nix b/pkgs/development/tools/jet/default.nix index 5341944e14cd..7fb232dc50b3 100644 --- a/pkgs/development/tools/jet/default.nix +++ b/pkgs/development/tools/jet/default.nix @@ -1,4 +1,9 @@ -{ lib, buildGraalvmNativeImage, fetchurl }: +{ lib +, buildGraalvmNativeImage +, graalvmCEPackages +, removeReferencesTo +, fetchurl +}: buildGraalvmNativeImage rec { pname = "jet"; @@ -9,6 +14,10 @@ buildGraalvmNativeImage rec { sha256 = "sha256-250/1DBNCXlU1b4jjLUUOXI+uSbOyPXtBN1JJRpdmFc="; }; + graalvmDrv = graalvmCEPackages.graalvm-ce; + + nativeBuildInputs = [ removeReferencesTo ]; + extraNativeImageBuildArgs = [ "-H:+ReportExceptionStackTraces" "-H:Log=registerResource:" @@ -16,6 +25,10 @@ buildGraalvmNativeImage rec { "--no-server" ]; + postInstall = '' + remove-references-to -t ${graalvmDrv} $out/bin/${pname} + ''; + meta = with lib; { description = "CLI to transform between JSON, EDN, YAML and Transit, powered with a minimal query language"; homepage = "https://github.com/borkdude/jet"; From df99d99aed04bbd8d65eb2ea49d72353a4d221d5 Mon Sep 17 00:00:00 2001 From: James Conroy-Finn Date: Thu, 23 Nov 2023 18:58:48 +0000 Subject: [PATCH 3/9] cljfmt: Remove references to GraalVM derivation --- pkgs/by-name/cl/cljfmt/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/cl/cljfmt/package.nix b/pkgs/by-name/cl/cljfmt/package.nix index 1c6f30cc9d76..9be40d69f708 100644 --- a/pkgs/by-name/cl/cljfmt/package.nix +++ b/pkgs/by-name/cl/cljfmt/package.nix @@ -1,5 +1,7 @@ { lib , buildGraalvmNativeImage +, graalvmCEPackages +, removeReferencesTo , fetchurl , nix-update-script , testers @@ -15,6 +17,10 @@ buildGraalvmNativeImage rec { sha256 = "sha256-vEldQ7qV375mHMn3OUdn0FaPd+f/v9g+C+PuzbSTWtk="; }; + graalvmDrv = graalvmCEPackages.graalvm-ce; + + nativeBuildInputs = [ removeReferencesTo ]; + extraNativeImageBuildArgs = [ "-H:+ReportExceptionStackTraces" "-H:Log=registerResource:" @@ -24,6 +30,10 @@ buildGraalvmNativeImage rec { "--no-fallback" ]; + postInstall = '' + remove-references-to -t ${graalvmDrv} $out/bin/${pname} + ''; + passthru.updateScript = nix-update-script { }; passthru.tests.version = testers.testVersion { From 680f0ca1fc33ae14f0dfb59783c75de580b15b66 Mon Sep 17 00:00:00 2001 From: James Conroy-Finn Date: Thu, 23 Nov 2023 19:05:03 +0000 Subject: [PATCH 4/9] zprint: Remove references to GraalVM derivation --- pkgs/development/tools/zprint/default.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/zprint/default.nix b/pkgs/development/tools/zprint/default.nix index e5d12c00367a..c59c44d597d6 100644 --- a/pkgs/development/tools/zprint/default.nix +++ b/pkgs/development/tools/zprint/default.nix @@ -1,4 +1,9 @@ -{ lib, buildGraalvmNativeImage, fetchurl }: +{ lib +, buildGraalvmNativeImage +, graalvmCEPackages +, removeReferencesTo +, fetchurl +}: buildGraalvmNativeImage rec { pname = "zprint"; @@ -9,6 +14,10 @@ buildGraalvmNativeImage rec { sha256 = "sha256-o0yoW45a5r+sTGvjEqr5VZgQKm72qsPH/kbLTbMTgEM="; }; + graalvmDrv = graalvmCEPackages.graalvm-ce; + + nativeBuildInputs = [ removeReferencesTo ]; + extraNativeImageBuildArgs = [ "--no-server" "-H:EnableURLProtocols=https,http" @@ -18,6 +27,10 @@ buildGraalvmNativeImage rec { "--no-fallback" ]; + postInstall = '' + remove-references-to -t ${graalvmDrv} $out/bin/${pname} + ''; + meta = with lib; { description = "Clojure/EDN source code formatter and pretty printer"; longDescription = '' From b807221d06d873ea22eb7928e4cc20bfa994b1f2 Mon Sep 17 00:00:00 2001 From: James Conroy-Finn Date: Thu, 23 Nov 2023 19:44:49 +0000 Subject: [PATCH 5/9] clojure-lsp: Add version test --- pkgs/development/tools/misc/clojure-lsp/default.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix index 024bc6a2b8ae..ac1051410630 100644 --- a/pkgs/development/tools/misc/clojure-lsp/default.nix +++ b/pkgs/development/tools/misc/clojure-lsp/default.nix @@ -8,6 +8,8 @@ , fetchFromGitHub , clojure , writeScript +, testers +, clojure-lsp }: buildGraalvmNativeImage rec { @@ -46,12 +48,18 @@ buildGraalvmNativeImage rec { export HOME="$(mktemp -d)" ./${pname} --version | fgrep -q '${version}' '' - # TODO: fix classpath issue per https://github.com/NixOS/nixpkgs/pull/153770 - #${babashka}/bin/bb integration-test ./${pname} + # TODO: fix classpath issue per https://github.com/NixOS/nixpkgs/pull/153770 + #${babashka}/bin/bb integration-test ./${pname} + '' runHook postCheck ''; + passthru.tests.version = testers.testVersion { + inherit version; + package = clojure-lsp; + command = "clojure-lsp --version"; + }; + passthru.updateScript = writeScript "update-clojure-lsp" '' #!/usr/bin/env nix-shell #!nix-shell -i bash -p curl common-updater-scripts gnused jq nix From 5006421b150509be56f1973dea5b5bbbc438bd97 Mon Sep 17 00:00:00 2001 From: James Conroy-Finn Date: Thu, 23 Nov 2023 19:45:32 +0000 Subject: [PATCH 6/9] jet: Add version test --- pkgs/development/tools/jet/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/tools/jet/default.nix b/pkgs/development/tools/jet/default.nix index 7fb232dc50b3..5bab7afd4a35 100644 --- a/pkgs/development/tools/jet/default.nix +++ b/pkgs/development/tools/jet/default.nix @@ -3,6 +3,8 @@ , graalvmCEPackages , removeReferencesTo , fetchurl +, testers +, jet }: buildGraalvmNativeImage rec { @@ -29,6 +31,12 @@ buildGraalvmNativeImage rec { remove-references-to -t ${graalvmDrv} $out/bin/${pname} ''; + passthru.tests.version = testers.testVersion { + inherit version; + package = jet; + command = "jet --version"; + }; + meta = with lib; { description = "CLI to transform between JSON, EDN, YAML and Transit, powered with a minimal query language"; homepage = "https://github.com/borkdude/jet"; From 4bef5460b5c2a889b45deb9760900e4b0ae7ee05 Mon Sep 17 00:00:00 2001 From: James Conroy-Finn Date: Thu, 23 Nov 2023 19:46:02 +0000 Subject: [PATCH 7/9] zprint: Add version test --- pkgs/development/tools/zprint/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/tools/zprint/default.nix b/pkgs/development/tools/zprint/default.nix index c59c44d597d6..ac3ab104bb60 100644 --- a/pkgs/development/tools/zprint/default.nix +++ b/pkgs/development/tools/zprint/default.nix @@ -3,6 +3,8 @@ , graalvmCEPackages , removeReferencesTo , fetchurl +, testers +, zprint }: buildGraalvmNativeImage rec { @@ -31,6 +33,12 @@ buildGraalvmNativeImage rec { remove-references-to -t ${graalvmDrv} $out/bin/${pname} ''; + passthru.tests.version = testers.testVersion { + inherit version; + package = zprint; + command = "zprint --version"; + }; + meta = with lib; { description = "Clojure/EDN source code formatter and pretty printer"; longDescription = '' From 56aedbd477e78c9064d7c0558eeb820ab11c4ef8 Mon Sep 17 00:00:00 2001 From: James Conroy-Finn Date: Sun, 26 Nov 2023 11:05:31 +0000 Subject: [PATCH 8/9] Move reference removal logic into build support --- .../build-graalvm-native-image/default.nix | 9 ++++++++- pkgs/by-name/cl/cljfmt/package.nix | 10 ---------- pkgs/development/tools/jet/default.nix | 10 ---------- pkgs/development/tools/misc/clojure-lsp/default.nix | 10 ---------- pkgs/development/tools/zprint/default.nix | 10 ---------- 5 files changed, 8 insertions(+), 41 deletions(-) diff --git a/pkgs/build-support/build-graalvm-native-image/default.nix b/pkgs/build-support/build-graalvm-native-image/default.nix index 6a5e82427f7b..63f463f13251 100644 --- a/pkgs/build-support/build-graalvm-native-image/default.nix +++ b/pkgs/build-support/build-graalvm-native-image/default.nix @@ -3,6 +3,7 @@ , glibcLocales # The GraalVM derivation to use , graalvmDrv +, removeReferencesTo , executable ? args.pname # JAR used as input for GraalVM derivation, defaults to src , jar ? args.src @@ -37,12 +38,13 @@ let "buildPhase" "nativeBuildInputs" "installPhase" + "postInstall" ]; in stdenv.mkDerivation ({ inherit dontUnpack jar; - nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvmDrv glibcLocales ]; + nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvmDrv glibcLocales removeReferencesTo ]; nativeImageBuildArgs = nativeImageBuildArgs ++ extraNativeImageBuildArgs ++ [ graalvmXmx ]; @@ -62,6 +64,11 @@ stdenv.mkDerivation ({ runHook postInstall ''; + postInstall = '' + remove-references-to -t ${graalvmDrv} $out/bin/${executable} + ${args.postInstall or ""} + ''; + disallowedReferences = [ graalvmDrv ]; passthru = { inherit graalvmDrv; }; diff --git a/pkgs/by-name/cl/cljfmt/package.nix b/pkgs/by-name/cl/cljfmt/package.nix index 9be40d69f708..1c6f30cc9d76 100644 --- a/pkgs/by-name/cl/cljfmt/package.nix +++ b/pkgs/by-name/cl/cljfmt/package.nix @@ -1,7 +1,5 @@ { lib , buildGraalvmNativeImage -, graalvmCEPackages -, removeReferencesTo , fetchurl , nix-update-script , testers @@ -17,10 +15,6 @@ buildGraalvmNativeImage rec { sha256 = "sha256-vEldQ7qV375mHMn3OUdn0FaPd+f/v9g+C+PuzbSTWtk="; }; - graalvmDrv = graalvmCEPackages.graalvm-ce; - - nativeBuildInputs = [ removeReferencesTo ]; - extraNativeImageBuildArgs = [ "-H:+ReportExceptionStackTraces" "-H:Log=registerResource:" @@ -30,10 +24,6 @@ buildGraalvmNativeImage rec { "--no-fallback" ]; - postInstall = '' - remove-references-to -t ${graalvmDrv} $out/bin/${pname} - ''; - passthru.updateScript = nix-update-script { }; passthru.tests.version = testers.testVersion { diff --git a/pkgs/development/tools/jet/default.nix b/pkgs/development/tools/jet/default.nix index 5bab7afd4a35..b71b7caee2e9 100644 --- a/pkgs/development/tools/jet/default.nix +++ b/pkgs/development/tools/jet/default.nix @@ -1,7 +1,5 @@ { lib , buildGraalvmNativeImage -, graalvmCEPackages -, removeReferencesTo , fetchurl , testers , jet @@ -16,10 +14,6 @@ buildGraalvmNativeImage rec { sha256 = "sha256-250/1DBNCXlU1b4jjLUUOXI+uSbOyPXtBN1JJRpdmFc="; }; - graalvmDrv = graalvmCEPackages.graalvm-ce; - - nativeBuildInputs = [ removeReferencesTo ]; - extraNativeImageBuildArgs = [ "-H:+ReportExceptionStackTraces" "-H:Log=registerResource:" @@ -27,10 +21,6 @@ buildGraalvmNativeImage rec { "--no-server" ]; - postInstall = '' - remove-references-to -t ${graalvmDrv} $out/bin/${pname} - ''; - passthru.tests.version = testers.testVersion { inherit version; package = jet; diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix index ac1051410630..e1956f7ea8bf 100644 --- a/pkgs/development/tools/misc/clojure-lsp/default.nix +++ b/pkgs/development/tools/misc/clojure-lsp/default.nix @@ -1,8 +1,6 @@ { lib , stdenv , buildGraalvmNativeImage -, graalvmCEPackages -, removeReferencesTo , babashka , fetchurl , fetchFromGitHub @@ -28,19 +26,11 @@ buildGraalvmNativeImage rec { sha256 = "c301821ac6914999a44f5c1cd371d46b248fe9a2e31d43a666d0bc2656cfdd78"; }; - graalvmDrv = graalvmCEPackages.graalvm-ce; - - nativeBuildInputs = [ removeReferencesTo ]; - extraNativeImageBuildArgs = [ "--no-fallback" "--native-image-info" ]; - postInstall = '' - remove-references-to -t ${graalvmDrv} $out/bin/${pname} - ''; - doCheck = true; checkPhase = '' runHook preCheck diff --git a/pkgs/development/tools/zprint/default.nix b/pkgs/development/tools/zprint/default.nix index ac3ab104bb60..6e76f0819fc1 100644 --- a/pkgs/development/tools/zprint/default.nix +++ b/pkgs/development/tools/zprint/default.nix @@ -1,7 +1,5 @@ { lib , buildGraalvmNativeImage -, graalvmCEPackages -, removeReferencesTo , fetchurl , testers , zprint @@ -16,10 +14,6 @@ buildGraalvmNativeImage rec { sha256 = "sha256-o0yoW45a5r+sTGvjEqr5VZgQKm72qsPH/kbLTbMTgEM="; }; - graalvmDrv = graalvmCEPackages.graalvm-ce; - - nativeBuildInputs = [ removeReferencesTo ]; - extraNativeImageBuildArgs = [ "--no-server" "-H:EnableURLProtocols=https,http" @@ -29,10 +23,6 @@ buildGraalvmNativeImage rec { "--no-fallback" ]; - postInstall = '' - remove-references-to -t ${graalvmDrv} $out/bin/${pname} - ''; - passthru.tests.version = testers.testVersion { inherit version; package = zprint; From c973975aa04bca80efb893937213d3145d20311f Mon Sep 17 00:00:00 2001 From: James Conroy-Finn Date: Sun, 26 Nov 2023 11:12:24 +0000 Subject: [PATCH 9/9] babashka: Remove superfluous removal of references --- pkgs/development/interpreters/babashka/default.nix | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/pkgs/development/interpreters/babashka/default.nix b/pkgs/development/interpreters/babashka/default.nix index 7f8281dd1de2..c56ca1ed252c 100644 --- a/pkgs/development/interpreters/babashka/default.nix +++ b/pkgs/development/interpreters/babashka/default.nix @@ -1,7 +1,6 @@ { lib , buildGraalvmNativeImage , graalvmCEPackages -, removeReferencesTo , fetchurl , writeScript , installShellFiles @@ -21,7 +20,7 @@ let executable = "bb"; - nativeBuildInputs = [ removeReferencesTo installShellFiles ]; + nativeBuildInputs = [ installShellFiles ]; extraNativeImageBuildArgs = [ "-H:+ReportExceptionStackTraces" @@ -39,11 +38,7 @@ let $out/bin/bb '(prn "bépo àê")' | fgrep 'bépo àê' ''; - # As of v1.2.174, this will remove references to ${graalvmDrv}/conf/chronology, - # not sure the implications of this but this file is not available in - # graalvm-ce anyway. postInstall = '' - remove-references-to -t ${graalvmDrv} $out/bin/${executable} installShellCompletion --cmd bb --bash ${./completions/bb.bash} installShellCompletion --cmd bb --zsh ${./completions/bb.zsh} installShellCompletion --cmd bb --fish ${./completions/bb.fish}