From d5ea371e34d90627edabcbf76feac7e44cd4f745 Mon Sep 17 00:00:00 2001 From: qzylinra Date: Wed, 8 Oct 2025 13:24:32 +0800 Subject: [PATCH] navicat-premium: 17.3.1 -> 17.3.3 --- pkgs/by-name/na/navicat-premium/package.nix | 145 ++++++++++++++++---- 1 file changed, 120 insertions(+), 25 deletions(-) diff --git a/pkgs/by-name/na/navicat-premium/package.nix b/pkgs/by-name/na/navicat-premium/package.nix index cc42ed4057d7..22a419a60da1 100644 --- a/pkgs/by-name/na/navicat-premium/package.nix +++ b/pkgs/by-name/na/navicat-premium/package.nix @@ -3,35 +3,130 @@ stdenv, fetchurl, appimageTools, + autoPatchelfHook, + qt6, + cjson, + curl, + e2fsprogs, + expat, + fontconfig, + freetype, + glib, + glibc, + harfbuzz, + libGL, + libX11, + libgpg-error, + libselinux, + libxcb, + libxcrypt, + libxcrypt-legacy, + libxkbcommon, + p11-kit, + pango, }: -let + +stdenv.mkDerivation (finalAttrs: { pname = "navicat-premium"; - version = "17.3.1"; + version = "17.3.3"; - src = - { - x86_64-linux = fetchurl { - url = "https://web.archive.org/web/20250904095427/https://dn.navicat.com/download/navicat17-premium-en-x86_64.AppImage"; - hash = "sha256-5vGctpbAg3mVhalr+Yg3iFZNCyY+0+a98sldhUcHkm0="; - }; - aarch64-linux = fetchurl { - url = "https://web.archive.org/web/20250904095643/https://dn.navicat.com/download/navicat17-premium-en-aarch64.AppImage"; - hash = "sha256-r31u/b/3HO9PEQtIr9AZ/5NVrRcgJ+GACHPWCICZYec="; - }; - } - .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); - - appimageContents = appimageTools.extractType2 { - inherit pname version src; + src = appimageTools.extractType2 { + inherit (finalAttrs) pname version; + src = + { + x86_64-linux = fetchurl { + url = "https://web.archive.org/web/20251008050849/https://dn.navicat.com/download/navicat17-premium-en-x86_64.AppImage"; + hash = "sha256-gXXj2FXOw2OHUTaX5XYtd0/nL/E/hNmcmvc0TDaOCUQ="; + }; + aarch64-linux = fetchurl { + url = "https://web.archive.org/web/20251008051000/https://dn.navicat.com/download/navicat17-premium-en-aarch64.AppImage"; + hash = "sha256-18JbUJV8jAXRiVVerfYZLsjy+5K2DjwqAY+Hqjtlnfg="; + }; + } + .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); }; -in -appimageTools.wrapType2 { - inherit pname version src; - extraInstallCommands = '' - cp -r ${appimageContents}/usr/share $out/share - substituteInPlace $out/share/applications/navicat.desktop \ - --replace-fail "Exec=navicat" "Exec=navicat-premium" + nativeBuildInputs = [ + autoPatchelfHook + qt6.wrapQtAppsHook + ]; + + buildInputs = [ + cjson + curl + e2fsprogs + expat + fontconfig + freetype + glib + glibc + harfbuzz + libGL + libX11 + libgpg-error + libselinux + libxcb + libxcrypt + libxcrypt-legacy + libxkbcommon + p11-kit + pango + qt6.qtbase + ]; + + installPhase = '' + runHook preInstall + + cp -r --no-preserve=mode usr $out + chmod +x $out/bin/navicat + mkdir -p $out/usr + ln -s $out/lib $out/usr/lib + + runHook postInstall + ''; + + autoPatchelfIgnoreMissingDeps = lib.optionals stdenv.hostPlatform.isAarch64 [ + "libgs_ktool.so" + "libkmc.so" + ]; + + dontWrapQtApps = true; + + preFixup = '' + rm $out/lib/libselinux.so.1 + ln -s ${libselinux.out}/lib/libselinux.so.1 $out/lib/libselinux.so.1 + rm $out/lib/glib/libglib-2.0.so.0 + ln -s ${glib.out}/lib/libglib-2.0.so.0 $out/lib/glib/libglib-2.0.so.0 + patchelf --replace-needed libcrypt.so.1 \ + ${libxcrypt}/lib/libcrypt.so.2 $out/lib/pq-g/libpq.so.5.5 + patchelf --replace-needed libcrypt.so.1 \ + ${libxcrypt}/lib/libcrypt.so.2 $out/lib/pq-g/libpq_ce.so.5.5 + patchelf --replace-needed libselinux.so.1 \ + ${libselinux.out}/lib/libselinux.so.1 $out/lib/pq-g/libpq.so.5.5 + wrapQtApp $out/bin/navicat \ + --prefix LD_LIBRARY_PATH : ${ + lib.makeLibraryPath [ + e2fsprogs + expat + fontconfig + freetype + glib + glibc + harfbuzz + libGL + libX11 + libgpg-error + libselinux + libxcb + libxkbcommon + p11-kit + pango + ] + }:$out/lib \ + --set QT_PLUGIN_PATH $out/plugins \ + --set QT_QPA_PLATFORM xcb \ + --set QT_STYLE_OVERRIDE Fusion \ + --chdir $out ''; meta = { @@ -47,4 +142,4 @@ appimageTools.wrapType2 { ]; mainProgram = "navicat-premium"; }; -} +})