diff options
Diffstat (limited to 'pkgs/by-name/db/dbeaver-bin/package.nix')
-rw-r--r-- | pkgs/by-name/db/dbeaver-bin/package.nix | 103 |
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"; }; }) |