about summary refs log tree commit diff
path: root/pkgs/by-name
diff options
context:
space:
mode:
authorAdrien Langou <adrien.langou@epita.fr>2024-03-05 00:49:19 +0100
committerAdrien Langou <adrien.langou@epita.fr>2024-03-06 20:42:49 +0100
commitbfd8cef2828134fa9d0fca7707446bb1c73f42b6 (patch)
tree7156fc312309906cc4dadb95aae28215b9cf2b93 /pkgs/by-name
parentdb952cc105875528f3292aa0dc1497b82b44425b (diff)
downloadnixlib-bfd8cef2828134fa9d0fca7707446bb1c73f42b6.tar
nixlib-bfd8cef2828134fa9d0fca7707446bb1c73f42b6.tar.gz
nixlib-bfd8cef2828134fa9d0fca7707446bb1c73f42b6.tar.bz2
nixlib-bfd8cef2828134fa9d0fca7707446bb1c73f42b6.tar.lz
nixlib-bfd8cef2828134fa9d0fca7707446bb1c73f42b6.tar.xz
nixlib-bfd8cef2828134fa9d0fca7707446bb1c73f42b6.tar.zst
nixlib-bfd8cef2828134fa9d0fca7707446bb1c73f42b6.zip
olvid: init at 1.5.0
Diffstat (limited to 'pkgs/by-name')
-rw-r--r--pkgs/by-name/ol/olvid/package.nix93
1 files changed, 84 insertions, 9 deletions
diff --git a/pkgs/by-name/ol/olvid/package.nix b/pkgs/by-name/ol/olvid/package.nix
index 49cd8fa275be..813d4ae4052e 100644
--- a/pkgs/by-name/ol/olvid/package.nix
+++ b/pkgs/by-name/ol/olvid/package.nix
@@ -1,33 +1,108 @@
-{ stdenv, lib, fetchurl, zlib, autoPatchelfHook }:
+{ stdenv
+, lib
+, fetchurl
+, zlib
+, libXext
+, libX11
+, libXrender
+, libXtst
+, libXi
+, freetype
+, alsa-lib
+, jdk21
+, openjfx21
+, autoPatchelfHook
+, makeBinaryWrapper
+, wrapGAppsHook
+}:
 
-stdenv.mkDerivation rec {
+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/${pname}-${version}.tar.gz";
-    hash = "sha256-4CkijAlenhht8tyk3nBULaBPE0GBf6DVII699/RmmWI=";
+    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
   ];
 
-  # sourceRoot = ".";
-
   installPhase = ''
     runHook preInstall
-    tar xzf olvid-1.5.0.tar.gz -C $out
+
+    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";
-    description = "Secure french messanger";
+    license = licenses.agpl3;
+    mainProgram = "olvid";
+    maintainers = with maintainers; [ rookeur ];
     platforms = platforms.linux;
   };
-}
+})