about summary refs log tree commit diff
path: root/pkgs/by-name/db/dbeaver-bin/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/db/dbeaver-bin/package.nix')
-rw-r--r--pkgs/by-name/db/dbeaver-bin/package.nix103
1 files changed, 66 insertions, 37 deletions
diff --git a/pkgs/by-name/db/dbeaver-bin/package.nix b/pkgs/by-name/db/dbeaver-bin/package.nix
index 4f516930c313a..34115a39d21d4 100644
--- a/pkgs/by-name/db/dbeaver-bin/package.nix
+++ b/pkgs/by-name/db/dbeaver-bin/package.nix
@@ -1,23 +1,18 @@
-{ lib
-, stdenvNoCC
-, fetchurl
-, makeWrapper
-, openjdk17
-, gnused
-, autoPatchelfHook
-, wrapGAppsHook3
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  undmg,
+  makeWrapper,
+  openjdk17,
+  gnused,
+  autoPatchelfHook,
+  wrapGAppsHook3,
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "dbeaver-bin";
-  version = "24.0.5";
-
-  nativeBuildInputs = [
-    makeWrapper
-    gnused
-    autoPatchelfHook
-    wrapGAppsHook3
-  ];
+  version = "24.1.0";
 
   src =
     let
@@ -26,10 +21,14 @@ stdenvNoCC.mkDerivation (finalAttrs: {
       suffix = selectSystem {
         x86_64-linux = "linux.gtk.x86_64-nojdk.tar.gz";
         aarch64-linux = "linux.gtk.aarch64-nojdk.tar.gz";
+        x86_64-darwin = "macos-x86_64.dmg";
+        aarch64-darwin = "macos-aarch64.dmg";
       };
       hash = selectSystem {
-        x86_64-linux = "sha256-q6VIr55hXn47kZrE2i6McEOfp2FBOvwB0CcUnRHFMZs=";
-        aarch64-linux = "sha256-Xn3X1C31UALBAsZIGyMWdp0HNhJEm5N+7Go7nMs8W64=";
+        x86_64-linux = "sha256-cJcjUoZSpD87jy4GGIxMinZW4gxRZfcGO0GdGUGXI6g=";
+        aarch64-linux = "sha256-96t/T/VzzzaSWJbPBb1CH2FXqfhiH1d0MjRoPsRMRwo=";
+        x86_64-darwin = "sha256-8xqSL8fTveg1Y5huBTYZLyubajt27h4XUBzyYVF394A=";
+        aarch64-darwin = "sha256-r7WqJrNF1IgQHx3Na1fGk0ywsfh5t4Dl/u8hH6CPuoE=";
       };
     in
     fetchurl {
@@ -37,31 +36,57 @@ stdenvNoCC.mkDerivation (finalAttrs: {
       inherit hash;
     };
 
+  sourceRoot = lib.optional stdenvNoCC.isDarwin "dbeaver.app";
+
+  nativeBuildInputs =
+    [ makeWrapper ]
+    ++ lib.optionals (!stdenvNoCC.isDarwin) [
+      gnused
+      wrapGAppsHook3
+      autoPatchelfHook
+    ]
+    ++ lib.optionals stdenvNoCC.isDarwin [ undmg ];
+
   dontConfigure = true;
   dontBuild = true;
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/opt/dbeaver $out/bin
-    cp -r * $out/opt/dbeaver
-    makeWrapper $out/opt/dbeaver/dbeaver $out/bin/dbeaver \
-      --prefix PATH : "${openjdk17}/bin" \
-      --set JAVA_HOME "${openjdk17.home}"
+  installPhase =
+    if !stdenvNoCC.isDarwin then
+      ''
+        runHook preInstall
+
+        mkdir -p $out/opt/dbeaver $out/bin
+        cp -r * $out/opt/dbeaver
+        makeWrapper $out/opt/dbeaver/dbeaver $out/bin/dbeaver \
+          --prefix PATH : "${openjdk17}/bin" \
+          --set JAVA_HOME "${openjdk17.home}"
+
+        mkdir -p $out/share/icons/hicolor/256x256/apps
+        ln -s $out/opt/dbeaver/dbeaver.png $out/share/icons/hicolor/256x256/apps/dbeaver.png
+
+        mkdir -p $out/share/applications
+        ln -s $out/opt/dbeaver/dbeaver-ce.desktop $out/share/applications/dbeaver.desktop
 
-    mkdir -p $out/share/icons/hicolor/256x256/apps
-    ln -s $out/opt/dbeaver/dbeaver.png $out/share/icons/hicolor/256x256/apps/dbeaver.png
+        substituteInPlace $out/opt/dbeaver/dbeaver-ce.desktop \
+          --replace-fail "/usr/share/dbeaver-ce/dbeaver.png" "dbeaver" \
+          --replace-fail "/usr/share/dbeaver-ce/dbeaver" "$out/bin/dbeaver"
 
-    mkdir -p $out/share/applications
-    ln -s $out/opt/dbeaver/dbeaver-ce.desktop $out/share/applications/dbeaver.desktop
+        sed -i '/^Path=/d' $out/share/applications/dbeaver.desktop
 
-    substituteInPlace $out/opt/dbeaver/dbeaver-ce.desktop \
-      --replace-fail "/usr/share/dbeaver-ce/dbeaver.png" "dbeaver" \
-      --replace-fail "/usr/share/dbeaver-ce/dbeaver" "$out/bin/dbeaver"
+        runHook postInstall
+      ''
+    else
+      ''
+        runHook preInstall
 
-    sed -i '/^Path=/d' $out/share/applications/dbeaver.desktop
+        mkdir -p $out/{Applications/dbeaver.app,bin}
+        cp -R . $out/Applications/dbeaver.app
+        makeWrapper $out/{Applications/dbeaver.app/Contents/MacOS,bin}/dbeaver \
+          --prefix PATH : "${openjdk17}/bin" \
+          --set JAVA_HOME "${openjdk17.home}"
 
-    runHook postInstall
-  '';
+        runHook postInstall
+      '';
 
   passthru.updateScript = ./update.sh;
 
@@ -76,8 +101,12 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     '';
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ gepbird mkg20001 ];
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [
+      gepbird
+      mkg20001
+      yzx9
+    ];
     mainProgram = "dbeaver";
   };
 })