nixpkgs/pkgs/applications/misc/xmind/default.nix
Maximilian Bosch 3da886bf41
treewide: remove ma27 from the maintainer-list of a few packages
These are all packages that I stopped using and hence just create noise
in my inbox for each change affecting them and let's face it, while I
still enjoy contributing to nixpkgs, it doesn't really make sense to be
listed there if I can't do much anyways.

Each of these packages can be taken over by someone or removed if
people think that's reasonable.

Of course, if other maintainers face issues, I can answer some questions
if needed & possible.
2021-08-27 22:28:49 +02:00

93 lines
2.9 KiB
Nix

{ stdenv, lib, fetchzip, fetchurl, gtk2, jre, libXtst, makeWrapper, makeDesktopItem, runtimeShell }:
stdenv.mkDerivation rec {
pname = "xmind";
version = "8-update8";
src = fetchzip {
url = "https://xmind.net/xmind/downloads/${pname}-${version}-linux.zip";
stripRoot = false;
sha256 = "1p68z0b4brgiyybz190alqv716ncql49vsksm41y90mcjd8s4jhn";
};
srcIcon = fetchurl {
url = "https://aur.archlinux.org/cgit/aur.git/plain/xmind.png?h=xmind";
sha256 = "0jxq2fiq69q9ly0m6hx2qfybqad22sl42ciw636071khpqgc885f";
};
preferLocalBuild = true;
patches = [ ./java-env-config-fixes.patch ];
nativeBuildInputs = [ makeWrapper ];
dontBuild = true;
dontPatchELF = true;
dontStrip = true;
libPath = lib.makeLibraryPath [ gtk2 libXtst ];
desktopItem = makeDesktopItem {
name = "XMind";
exec = "XMind";
icon = "xmind";
desktopName = "XMind";
comment = meta.description;
categories = "Office;";
mimeType = "application/xmind;x-scheme-handler/xmind";
};
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 <<EOF
#! ${runtimeShell}
if [ ! -d "\$HOME/.xmind" ]; then
mkdir -p "\$HOME/.xmind/configuration-cathy/"
cp -r $out/libexec/configuration/ \$HOME/.xmind/configuration-cathy/
fi
exec "$out/libexec/XMind" "\$@"
EOF
chmod +x $out/bin/XMind
ln -s ${jre} $out/libexec/jre
'';
meta = with lib; {
description = "Mind-mapping software";
longDescription = ''
XMind is a mind mapping and brainstorming software. In addition
to the management elements, the software can capture ideas,
clarify thinking, manage complex information, and promote team
collaboration for higher productivity.
It supports mind maps, fishbone diagrams, tree diagrams,
organization charts, spreadsheets, etc. Normally, it is used for
knowledge management, meeting minutes, task management, and
GTD. Meanwhile, XMind can read FreeMind and MindManager files,
and save to Evernote.
'';
homepage = "https://www.xmind.net/";
license = licenses.unfree;
platforms = platforms.linux;
maintainers = with maintainers; [ michalrus ];
};
}