{ stdenv , lib , fetchurl , zlib , libXext , libX11 , libXrender , libXtst , libXi , freetype , alsa-lib , jdk21 , openjfx21 , autoPatchelfHook , makeBinaryWrapper , wrapGAppsHook }: let repo = "olvid"; javafxModules = [ "swing" "controls" "media" "fxml" "graphics" "base" ]; classpath = lib.concatMap (mod: [ "${openjfx21}/modules_src/javafx.${mod}/module-info.java" "${openjfx21}/modules/javafx.${mod}" "${openjfx21}/modules_libs/javafx.${mod}" ]) javafxModules ++ [ "$out/share/${repo}/*" ]; jvmArgs = [ "-cp" (lib.concatStringsSep ":" classpath) "-Djpackage.app-version=$version" "-Dolvid.sqlcipher=true" "-Dolvid.dev=false" "-Dolvid.packaged=true" "-Dolvid.multiuser=false" "-Dolvid.debug=false" "-Dolvid.version=$version" "-Djava.net.useSystemProxies=true" "-Djava.library.path=$out/lib/" "-Xss8M" "-XX:+ShowCodeDetailsInExceptionMessages" "--add-opens=java.desktop/java.awt=ALL-UNNAMED" "--add-opens=java.desktop/java.awt.geom=ALL-UNNAMED" "--add-opens=java.desktop/sun.awt.geom=ALL-UNNAMED" "--add-opens=java.base/java.util=ALL-UNNAMED" "--add-opens=java.desktop/javax.swing=ALL-UNNAMED" "--add-opens=java.desktop/sun.awt.shell=ALL-UNNAMED" ]; in stdenv.mkDerivation (finalAttrs: { pname = "olvid"; version = "1.5.0"; dontUnpack = true; dontWrapGApps = true; src = fetchurl { url = "https://static.olvid.io/linux/${repo}-${finalAttrs.version}.tar.gz"; hash = "sha256-iiMc9mM+uUVeS1i1gzXMZaMwSChdz7vNrL9uqJlR8NU="; }; nativeBuildInputs = [ autoPatchelfHook makeBinaryWrapper wrapGAppsHook ]; buildInputs = [ zlib libXext libX11 libXrender libXtst libXi freetype alsa-lib ]; installPhase = '' runHook preInstall install -dm755 "$out/share/${repo}" tar -xf "$src" -C "$out/share/${repo}" --wildcards --strip-components 3 olvid/lib/app/'*.jar' install -dm755 "$out/lib" tar -xf "$src" -C "$out/lib" --strip-components 4 olvid/lib/runtime/lib/ install -dm755 "$out/bin" makeBinaryWrapper ${jdk21}/bin/java $out/bin/${repo} \ "''${gappsWrapperArgs[@]}" \ --add-flags "${lib.concatStringsSep " " jvmArgs} io.olvid.windows.messenger.start_up.Launcher" runHook postInstall ''; meta = with lib; { description = "The secure french messenger"; homepage = "https://www.olvid.io"; license = licenses.agpl3Only; mainProgram = "olvid"; maintainers = with maintainers; [ rookeur ]; platforms = platforms.linux; }; })