diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/ol/olvid/package.nix')
-rw-r--r-- | nixpkgs/pkgs/by-name/ol/olvid/package.nix | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/ol/olvid/package.nix b/nixpkgs/pkgs/by-name/ol/olvid/package.nix new file mode 100644 index 000000000000..1aaf472fef5a --- /dev/null +++ b/nixpkgs/pkgs/by-name/ol/olvid/package.nix @@ -0,0 +1,108 @@ +{ 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; + }; +}) |