From cd6825c7e9a54a0d0ae91ded482bfd32005cb919 Mon Sep 17 00:00:00 2001 From: emaryn Date: Thu, 27 Mar 2025 00:37:48 +0800 Subject: [PATCH] xmind: 8-update9 -> 25.01.01061-202501070800 --- .../xm/xmind/java-env-config-fixes.patch | 40 ---- pkgs/by-name/xm/xmind/package.nix | 189 ++++++++---------- 2 files changed, 88 insertions(+), 141 deletions(-) delete mode 100644 pkgs/by-name/xm/xmind/java-env-config-fixes.patch diff --git a/pkgs/by-name/xm/xmind/java-env-config-fixes.patch b/pkgs/by-name/xm/xmind/java-env-config-fixes.patch deleted file mode 100644 index f359a9c2ba46..000000000000 --- a/pkgs/by-name/xm/xmind/java-env-config-fixes.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/XMind_amd64/XMind.ini b/XMind_amd64/XMind.ini -index bdd8a37..5f35daf 100644 ---- a/XMind_amd64/XMind.ini -+++ b/XMind_amd64/XMind.ini -@@ -1,11 +1,11 @@ - -configuration --./configuration -+@user.home/.xmind/configuration-cathy_linux_64 - -data --../workspace -+@user.home/.xmind/workspace-cathy - -startup --../plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar -+plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar - --launcher.library --../plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444 -+plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444 - --launcher.defaultAction - openFile - --launcher.GTK_version -diff --git a/XMind_i386/XMind.ini b/XMind_i386/XMind.ini -index 4ed3225..1d74258 100644 ---- a/XMind_i386/XMind.ini -+++ b/XMind_i386/XMind.ini -@@ -1,11 +1,11 @@ - -configuration --./configuration -+@user.home/.xmind/configuration-cathy_linux_64 - -data --../workspace -+@user.home/.xmind/workspace-cathy - -startup --../plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar -+plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar - --launcher.library --../plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.400.v20160518-1444 -+plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.400.v20160518-1444 - --launcher.defaultAction - openFile - --launcher.GTK_version diff --git a/pkgs/by-name/xm/xmind/package.nix b/pkgs/by-name/xm/xmind/package.nix index d40709c05ea0..52d03207c56a 100644 --- a/pkgs/by-name/xm/xmind/package.nix +++ b/pkgs/by-name/xm/xmind/package.nix @@ -1,114 +1,101 @@ { - stdenv, lib, - fetchzip, + stdenv, fetchurl, + dpkg, + autoPatchelfHook, + glib, + at-spi2-atk, + cairo, + pango, gtk3, - jre8, - libXtst, - makeWrapper, - makeDesktopItem, - runtimeShell, + nss, + nspr, + cups, + dbus, + libdrm, + libxkbcommon, + alsa-lib, + expat, + xorg, + libgbm, + systemd, + libGL, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "xmind"; - version = "8-update9"; + version = "25.01.01061-202501070800"; - src = fetchzip { - url = "https://www.xmind.app/xmind/downloads/${pname}-${version}-linux.zip"; - stripRoot = false; - sha256 = "9769c4a9d42d3370ed2c2d1bed5a5d78f1fc3dc5bd604b064b56101fc7f90bb4"; + src = fetchurl { + url = "https://dl3.xmind.app/Xmind-for-Linux-amd64bit-${finalAttrs.version}.deb"; + hash = "sha256-Mp2aC/yHoB29t9QY4Tnbgn//J8Gordt5S1JrJn0BvXg="; }; - srcIcon = fetchurl { - url = "https://aur.archlinux.org/cgit/aur.git/plain/xmind.png?h=xmind&id=41936c866b244b34d7dfbee373cbb835eed7860b"; - sha256 = "0jxq2fiq69q9ly0m6hx2qfybqad22sl42ciw636071khpqgc885f"; - }; - - preferLocalBuild = true; - - patches = [ ./java-env-config-fixes.patch ]; - - nativeBuildInputs = [ makeWrapper ]; - - dontBuild = true; - dontPatchELF = true; - dontStrip = true; - - libPath = lib.makeLibraryPath [ - gtk3 - libXtst + nativeBuildInputs = [ + dpkg + autoPatchelfHook ]; - desktopItem = makeDesktopItem { - name = "XMind"; - exec = "XMind"; - icon = "xmind"; - desktopName = "XMind"; - comment = meta.description; - categories = [ "Office" ]; - mimeTypes = [ - "application/xmind" - "x-scheme-handler/xmind" - ]; + buildInputs = [ + (lib.getLib stdenv.cc.cc) + xorg.libX11 + xorg.libXext + xorg.libxcb + xorg.libXcomposite + xorg.libXdamage + xorg.libXfixes + xorg.libXrandr + xorg.libxkbfile + glib + at-spi2-atk + cairo + pango + gtk3 + nss + nspr + cups + dbus + libdrm + libxkbcommon + alsa-lib + expat + libgbm + ]; + + runtimeDependencies = map lib.getLib [ + systemd + ]; + + installPhase = '' + runHook preInstall + + cp -r usr $out + substituteInPlace $out/share/applications/xmind.desktop \ + --replace-fail "/opt/Xmind/xmind" "/opt/Xmind/" + mkdir -p $out/opt $out/bin + cp -r opt/Xmind $out/opt/xmind + ln -s $out/opt/xmind/xmind $out/bin/xmind + + runHook postInstall + ''; + + preFixup = '' + patchelf --add-needed libGL.so.1 \ + --add-rpath ${ + lib.makeLibraryPath [ + libGL + ] + } $out/opt/xmind/xmind + ''; + + meta = { + description = "All-in-one thinking tool featuring mind mapping, AI generation, and real-time collaboration"; + homepage = "https://xmind.app"; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + mainProgram = "xmind"; + license = lib.licenses.unfree; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ michalrus ]; }; - - installPhase = - let - targetDir = if stdenv.hostPlatform.system == "i686-linux" then "XMind_i386" else "XMind_amd64"; - in - '' - mkdir -p $out/{bin,libexec/configuration/,share/{applications/,fonts/,icons/hicolor/scalable/apps/}} - cp -r ${targetDir}/{configuration,p2,XMind{,.ini}} $out/libexec - cp -r {plugins,features} $out/libexec/ - cp -r fonts $out/share/fonts/ - cp "${desktopItem}/share/applications/XMind.desktop" $out/share/applications/XMind.desktop - cp ${srcIcon} $out/share/icons/hicolor/scalable/apps/xmind.png - - patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ - $out/libexec/XMind - - wrapProgram $out/libexec/XMind \ - --prefix LD_LIBRARY_PATH : "${libPath}" - - # Inspired by https://aur.archlinux.org/cgit/aur.git/tree/?h=xmind - cat >$out/bin/XMind <