nixpkgs/pkgs/applications/misc/xmind/default.nix
Vladimír Čunát 2e6bf42a22
Merge branch 'master' into staging-next
There ver very many conflicts, basically all due to
name -> pname+version.  Fortunately, almost everything was auto-resolved
by kdiff3, and for now I just fixed up a couple evaluation problems,
as verified by the tarball job.  There might be some fallback to these
conflicts, but I believe it should be minimal.

Hydra nixpkgs: ?compare=1538299
2019-08-24 08:55:37 +02:00

90 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";
};
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 stdenv.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 ma27 ];
};
}