summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
authorMario Rodas <marsam@users.noreply.github.com>2023-11-19 09:38:18 -0500
committerGitHub <noreply@github.com>2023-11-19 09:38:18 -0500
commitd69346e062eb5f1e4e9b0871f189431fe5a8c957 (patch)
tree214ebc5d186c2d1916acb77392a832ced5c74ba6 /pkgs/servers
parentdc6295050ce6ca454964e181881f38f4548c91d3 (diff)
parent08e2f9caeb1a2bff4f82b0b16ccf43d64136664b (diff)
Merge pull request #267706 from anthonyroussel/updates/h2
h2: 2.2.220 -> 2.2.224
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/h2/default.nix60
1 files changed, 29 insertions, 31 deletions
diff --git a/pkgs/servers/h2/default.nix b/pkgs/servers/h2/default.nix
index 3ec3c396a7e86..84a8b98b6dfc9 100644
--- a/pkgs/servers/h2/default.nix
+++ b/pkgs/servers/h2/default.nix
@@ -1,47 +1,45 @@
-{ lib, stdenv, fetchzip, jre, makeWrapper }:
-stdenv.mkDerivation rec {
+{ lib, maven, fetchFromGitHub, jre, makeWrapper, nix-update-script }:
+
+maven.buildMavenPackage rec {
   pname = "h2";
-  version = "2.2.220";
+  version = "2.2.224";
+
+  outputs = [ "out" "doc" ];
 
-  src = fetchzip {
-    url = "https://github.com/h2database/h2database/releases/download/version-${version}/h2-2023-07-04.zip";
-    hash = "sha256-nSOkCZuHcy0GR4SRjx524+MLqxJyO1PRkImPOFR1yts=";
+  src = fetchFromGitHub {
+    owner = "h2database";
+    repo = "h2database";
+    rev = "refs/tags/version-${version}";
+    hash = "sha256-pS9jSiuInA0eULPOZK5cjwr9y5KDVY51blhZ9vs4z+g=";
   };
 
-  outputs = [ "out" "doc" ];
+  mvnParameters = "-f h2/pom.xml -DskipTests";
+  mvnHash = "sha256-hUzE4F+RNCAfoY836pjrivf04xqN4m9SkiLXhmVzZRA=";
 
   nativeBuildInputs = [ makeWrapper ];
 
-  installPhase =
-    let
-      h2ToolScript = ''
-        #!/usr/bin/env bash
-        dir=$(dirname "$0")
-
-        if [ -n "$1" ]; then
-          ${jre}/bin/java -cp "$dir/h2-${version}.jar:$H2DRIVERS:$CLASSPATH" $1 "''${@:2}"
-        else
-          echo "You have to provide the full java class path for the h2 tool you want to run. E.g. 'org.h2.tools.Server'"
-        fi
-      '';
-    in ''
-      mkdir -p $out $doc/share/doc/
-      cp -R bin $out/
-      cp -R docs $doc/share/doc/h2
+  installPhase = ''
+    mkdir -p $out/share/java
+    install -Dm644 h2/target/h2-${version}.jar $out/share/java
 
-      echo '${h2ToolScript}' > $out/bin/h2tool.sh
+    makeWrapper ${jre}/bin/java $out/bin/h2 \
+      --add-flags "-cp \"$out/share/java/h2-${version}.jar:\$H2DRIVERS:\$CLASSPATH\" org.h2.tools.Console"
 
-      substituteInPlace $out/bin/h2.sh --replace "java" "${jre}/bin/java"
+    mkdir -p $doc/share/doc/h2
+    cp -r h2/src/docsrc/* $doc/share/doc/h2
+  '';
 
-      chmod +x $out/bin/*.sh
-    '';
+  passthru.updateScript = nix-update-script {
+    extraArgs = [ "--version-regex" "^version-([0-9.]+)$" ];
+  };
 
   meta = with lib; {
     description = "The Java SQL database";
-    homepage = "http://www.h2database.com/html/main.html";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    homepage = "https://h2database.com/html/main.html";
+    changelog = "https://h2database.com/html/changelog.html";
     license = licenses.mpl20;
-    platforms = lib.platforms.linux;
-    maintainers = with maintainers; [ mahe ];
+    platforms = lib.platforms.unix;
+    maintainers = with maintainers; [ mahe anthonyroussel ];
+    mainProgram = "h2";
   };
 }