Unverified Commit 2c08690d authored by Pol Dellaiera's avatar Pol Dellaiera Committed by GitHub
Browse files

Merge pull request #312940 from drupol/freeplane/bump

freeplane: minor refactor
parents 59f09319 97ea42f6
Loading
Loading
Loading
Loading
+40 −35
Original line number Diff line number Diff line
{ stdenv
, lib
, fetchpatch
, fetchFromGitHub
, makeWrapper
, makeDesktopItem
, writeText
, runtimeShell
, jdk17
, perl
, gradle_7
, which
{
  stdenvNoCC,
  lib,
  fetchFromGitHub,
  makeBinaryWrapper,
  makeDesktopItem,
  writeText,
  jdk17,
  perl,
  gradle_7,
  which,
}:

let
  pname = "freeplane";
  version = "1.11.8";

  src_hash = "sha256-Qh2V265FvQpqGKmPsiswnC5yECwIcNwMI3/Ka9sBqXE=";
  deps_outputHash = "sha256-2Zaw4FW12dThdr082dEB1EYkGwNiayz501wIPGXUfBw=";
  version = "1.11.14";

  jdk = jdk17;
  gradle = gradle_7;

  src = fetchFromGitHub {
    owner = pname;
    repo = pname;
    owner = "freeplane";
    repo = "freeplane";
    rev = "release-${version}";
    hash = src_hash;
    hash = "sha256-zEQjB57iiKVQnH8VtynpEGKNAa2e+WpqnGt6fnv5Rjs=";
  };

  deps = stdenv.mkDerivation {
  deps = stdenvNoCC.mkDerivation {
    pname = "${pname}-deps";
    inherit src version;

@@ -40,28 +36,30 @@ let
    ];

    buildPhase = ''
      runHook preBuild
      GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk} --no-daemon build
      runHook postBuild
    '';

    # Mavenize dependency paths
    # e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.0.jar
    installPhase = ''
      runHook preInstall
      find ./caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
        | sh
      # com/squareup/okio/okio/2.10.0/okio-jvm-2.10.0.jar expected to exist under name okio-2.10.0.jar
      # com/squareup/okio/okio-jvm/x.y.z/okio-jvm-x.y.z.jar is expected to exist under com/squareup/okio/okio/x.y.z/okio-x.y.z.jar
      while IFS="" read -r -d "" path; do
        dir=''${path%/*}; file=''${path##*/}; dest=''${file//-jvm-/-}
        [[ -e $dir/$dest ]] && continue
        ln -s "$dir/$file" "$dir/$dest"
        ln -s "$path" ''${path//okio-jvm/okio}
      done < <(find "$out" -type f -name 'okio-jvm-*.jar' -print0)
      runHook postInstall
    '';
    # otherwise the package with a namespace starting with info/... gets moved to share/info/...
    forceShare = [ "dummy" ];

    outputHashAlgo = "sha256";
    outputHashMode = "recursive";
    outputHash = deps_outputHash;
    outputHash = "sha256-mWQTe/hOWGwWtsUPCZ7gle2FtskcEmJwsGQZITEc/Uc=";
  };

  # Point to our local deps repo
@@ -83,17 +81,18 @@ let
      }
    }
  '';

in stdenv.mkDerivation rec {
in
stdenvNoCC.mkDerivation (finalAttrs: {
  inherit pname version src;

  nativeBuildInputs = [
    makeWrapper
    makeBinaryWrapper
    jdk
    gradle
  ];

  buildPhase = ''
    runHook preBuild
    mkdir -p freeplane/build

    GRADLE_USER_HOME=$PWD \
@@ -101,6 +100,7 @@ in stdenv.mkDerivation rec {
      --no-daemon --offline --init-script ${gradleInit} \
      -x test \
      build
    runHook postBuild
  '';

  desktopItems = [
@@ -110,7 +110,7 @@ in stdenv.mkDerivation rec {
      genericName = "Mind-mapper";
      exec = "freeplane";
      icon = "freeplane";
      comment = meta.description;
      comment = finalAttrs.meta.description;
      mimeTypes = [
        "application/x-freemind"
        "application/x-freeplane"
@@ -134,19 +134,24 @@ in stdenv.mkDerivation rec {
    makeWrapper $out/share/freeplane/freeplane.sh $out/bin/freeplane \
      --set FREEPLANE_BASE_DIR $out/share/freeplane \
      --set JAVA_HOME ${jdk} \
      --prefix PATH : ${lib.makeBinPath [ jdk which ]} \
      --prefix PATH : ${
        lib.makeBinPath [
          jdk
          which
        ]
      } \
      --prefix _JAVA_AWT_WM_NONREPARENTING : 1 \
      --prefix _JAVA_OPTIONS : "-Dawt.useSystemAAFontSettings=on"

    runHook postInstall
  '';

  meta = with lib; {
  meta = {
    description = "Mind-mapping software";
    homepage = "https://freeplane.org/";
    license = licenses.gpl2Plus;
    platforms = platforms.linux;
    maintainers = with maintainers; [ chaduffy ];
    license = lib.licenses.gpl2Plus;
    platforms = lib.platforms.linux;
    maintainers = with lib.maintainers; [ chaduffy ];
    mainProgram = "freeplane";
  };
}
})
+0 −2
Original line number Diff line number Diff line
@@ -31158,8 +31158,6 @@ with pkgs;
  freeoffice = callPackage ../applications/office/softmaker/freeoffice.nix { };
  freeplane = callPackage ../applications/misc/freeplane { };
  freepv = callPackage ../applications/graphics/freepv { };
  xfontsel = callPackage ../applications/misc/xfontsel { };