diff options
Diffstat (limited to 'pkgs/applications/misc/freemind/default.nix')
-rw-r--r-- | pkgs/applications/misc/freemind/default.nix | 83 |
1 files changed, 58 insertions, 25 deletions
diff --git a/pkgs/applications/misc/freemind/default.nix b/pkgs/applications/misc/freemind/default.nix index 0bdf8df306a83..5e5d205c8ae99 100644 --- a/pkgs/applications/misc/freemind/default.nix +++ b/pkgs/applications/misc/freemind/default.nix @@ -1,43 +1,76 @@ -{ lib, stdenv, fetchurl, jdk, jre, ant }: +{ + lib, + stdenv, + fetchurl, + ant, + jdk, + jre, + makeWrapper, + stripJavaArchivesHook, +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "freemind"; version = "1.0.1"; src = fetchurl { - url = "mirror://sourceforge/freemind/freemind-src-${version}.tar.gz"; - sha256 = "06c6pm7hpwh9hbmyah3lj2wp1g957x8znfwc5cwygsi7dc98b0h1"; + url = "mirror://sourceforge/freemind/freemind-src-${finalAttrs.version}.tar.gz"; + hash = "sha256-AYKFEmsn6uc5K4w7+1E/Jb1wuZB0QOXrggnyC0+9hhk="; }; - buildInputs = [ jdk ant ]; + nativeBuildInputs = [ + ant + jdk + makeWrapper + stripJavaArchivesHook + ]; - preConfigure = '' - chmod +x check_for_duplicate_resources.sh - sed 's,/bin/bash,${stdenv.shell},' -i check_for_duplicate_resources.sh + postPatch = '' + # disable the <buildnumer> task because it would edit version.properties + # and add a "last edited" header to it, which is non-deterministic + sed -i '/<buildnumber/d' build.xml - ## work around javac encoding errors - export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8" + # replace dependency on `which` + substituteInPlace freemind.sh \ + --replace-fail "which" "type -p" ''; - buildPhase = "ant dist"; + preConfigure = '' + chmod +x *.sh + patchShebangs *.sh + ''; + + # Workaround for javac encoding errors + # Note: not sure if this is still needed + env.JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF8"; + + buildPhase = '' + runHook preBuild + ant build + runHook postBuild + ''; installPhase = '' - mkdir -p $out/{bin,nix-support} - cp -r ../bin/dist $out/nix-support - sed -i 's/which/type -p/' $out/nix-support/dist/freemind.sh - - cat >$out/bin/freemind <<EOF - #! ${stdenv.shell} - JAVA_HOME=${jre} $out/nix-support/dist/freemind.sh - EOF - chmod +x $out/{bin/freemind,nix-support/dist/freemind.sh} + runHook preInstall + ant dist -Ddist=$out/share/freemind + runHook postInstall + ''; + + postFixup = '' + makeWrapper $out/share/freemind/freemind.sh $out/bin/freemind \ + --set JAVA_HOME ${jre} ''; - meta = with lib; { + meta = { description = "Mind-mapping software"; - mainProgram = "freemind"; homepage = "https://freemind.sourceforge.net/wiki/index.php/Main_Page"; - license = licenses.gpl2Plus; - platforms = platforms.linux; + mainProgram = "freemind"; + maintainers = with lib.maintainers; [ tomasajt ]; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; + sourceProvenance = with lib.sourceTypes; [ + fromSource + binaryBytecode # source bundles dependencies as jars + ]; }; -} +}) |