diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index fd8d33a13965da..12696eb3917903 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -21898,6 +21898,13 @@ githubId = 5253988; name = "yvt"; }; + yzx9 = { + email = "yuan.zx@outlook.com"; + github = "yzx9"; + githubId = 41458459; + name = "Zexin Yuan"; + keys = [ { fingerprint = "FE16 B281 90EF 6C3F F661 6441 C2DD 1916 FE47 1BE2"; } ]; + }; zachcoyle = { email = "zach.coyle@gmail.com"; github = "zachcoyle"; diff --git a/pkgs/by-name/db/dbeaver-bin/package.nix b/pkgs/by-name/db/dbeaver-bin/package.nix index 4f516930c313a1..ff03897cebc232 100644 --- a/pkgs/by-name/db/dbeaver-bin/package.nix +++ b/pkgs/by-name/db/dbeaver-bin/package.nix @@ -1,23 +1,23 @@ -{ lib -, stdenvNoCC -, fetchurl -, makeWrapper -, openjdk17 -, gnused -, autoPatchelfHook -, wrapGAppsHook3 +{ + lib, + stdenvNoCC, + fetchurl, + undmg, + makeWrapper, + openjdk17, + gnused, + autoPatchelfHook, + wrapGAppsHook3, + gtk3, + swt, + glib, + webkitgtk, + glib-networking, }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "dbeaver-bin"; - version = "24.0.5"; - - nativeBuildInputs = [ - makeWrapper - gnused - autoPatchelfHook - wrapGAppsHook3 - ]; + version = "24.1.5"; src = let @@ -26,10 +26,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-FdrQDQ+2nsZp44+sARXT89/ZXlkl/OGej1JuezXGgU4="; + aarch64-linux = "sha256-oNP0ntsQ79ckNXuQ3TeVf9ooGzwCq7WXI0TbjTLC5DI="; + x86_64-darwin = "sha256-YcmMZPigykA9vNEF32NzCQWMWPt1GM7VaWGSAZp/1YM="; + aarch64-darwin = "sha256-tz+Ap/YZJbc+obCLqq2b2HgRUORWkaOHVGEEJtwEJXo="; }; in fetchurl { @@ -37,31 +41,68 @@ 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}" \ + --prefix CLASSPATH : "$out/dbeaver/plugins/*:${swt}/jars/swt.jar" \ + --prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \ + --prefix LD_LIBRARY_PATH : "$out/lib:${ + lib.makeLibraryPath [ + swt + gtk3 + glib + webkitgtk + glib-networking + ] + }" + + 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 +117,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"; }; }) diff --git a/pkgs/by-name/db/dbeaver-bin/update.sh b/pkgs/by-name/db/dbeaver-bin/update.sh index ad09144f9a4b09..31f9a369d2c1b7 100755 --- a/pkgs/by-name/db/dbeaver-bin/update.sh +++ b/pkgs/by-name/db/dbeaver-bin/update.sh @@ -14,7 +14,9 @@ fi for i in \ "x86_64-linux linux.gtk.x86_64-nojdk.tar.gz" \ - "aarch64-linux linux.gtk.aarch64-nojdk.tar.gz" + "aarch64-linux linux.gtk.aarch64-nojdk.tar.gz" \ + "x86_64-darwin macos-x86_64.dmg" \ + "aarch64-darwin macos-aarch64.dmg" do set -- $i prefetch=$(nix-prefetch-url "https://github.com/dbeaver/dbeaver/releases/download/$latestVersion/dbeaver-ce-$latestVersion-$2")