about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/aeron/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/aeron/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/aeron/default.nix184
1 files changed, 184 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/aeron/default.nix b/nixpkgs/pkgs/servers/aeron/default.nix
new file mode 100644
index 000000000000..202f2748c4e8
--- /dev/null
+++ b/nixpkgs/pkgs/servers/aeron/default.nix
@@ -0,0 +1,184 @@
+{
+  lib,
+  stdenv,
+  fetchMavenArtifact,
+  jdk11,
+  makeWrapper
+}:
+
+let
+  pname = "aeron";
+  version = "1.42.1";
+  groupId = "io.aeron";
+
+  aeronAll_1_40_0 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.40.0";
+    artifactId = "aeron-all";
+    hash = "sha512-NyhYaQqOWcSBwzwpje6DMAp36CEgGSNXBSdaRrDyP+Fn2Z0nvh5o2czog6GKKtbjH9inYfyyF/21gehfgLF6qA==";
+  };
+
+  aeronAgent_1_40_0 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.40.0";
+    artifactId = "aeron-agent";
+    hash = "sha512-3XZ6XxPwlNchMe4p4MuDNTWntGokFPnetN7AUMlhXzIgeXBExXvn+BdxI2crfq/xgVGrF/hjHD2shwu2NBa0Tg==";
+  };
+
+  aeronArchive_1_40_0 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.40.0";
+    artifactId = "aeron-archive";
+    hash = "sha512-tmH+/020d1iNkGb8nvenDG9YU+H4PLuO2hSm2dULUIjSXX5AHLDkkrQ3uVQADV9koRNMtC4UXloqtqncay18kQ==";
+  };
+
+  aeronClient_1_40_0 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.40.0";
+    artifactId = "aeron-client";
+    hash = "sha512-y3/8Lu2EgMICRNPEWe0hrKpVhF35pDjCO6ip/Af9nPZ70ZRqGmlfEG7OzWVok11DuI8pYJ64jv6bEtUfSHTYXQ==";
+  };
+
+  aeronCluster_1_40_0 =fetchMavenArtifact {
+    inherit groupId;
+    version = "1.40.0";
+    artifactId = "aeron-cluster";
+    hash = "sha512-28m14Etjse3MVKBLvaQONujMfvdRQZG0ArezzVcjPEqVqTGd33mrqjPngALV8CG2nJTtcrJmsieRGLEosaXqTw==";
+  };
+
+  aeronDriver_1_40_0 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.40.0";
+    artifactId = "aeron-driver";
+    hash = "sha512-SRWHMHR6J1YEtCbSHqSLYm3vo8XgkVXGK3cFQbONT60TZvawP5UlZs7e3eFNpu3qQSA4prqEjjWO9Xc9M/sjKw==";
+  };
+
+  aeronSamples_1_40_0 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.40.0";
+    artifactId = "aeron-samples";
+    hash = "sha512-vyAq4mfLDDyaVk7wcIpPvPcxSt92Ek8mxfuuZwaX+0Wu9oJCpwbnjvS9+bvzcE4qSGxzY6eJIIX6nMdw0LkACg==";
+  };
+
+  aeronAll_1_42_1 = fetchMavenArtifact {
+    inherit groupId;
+    artifactId = "aeron-all";
+    inherit version;
+    hash = "sha512-pjX+JopK6onDwElMIroj+ZXrKwdPj5H2uPg08XgNlrK1rAkHo9MUT8weBGbuFVFDLeqOZrHj0bt1wJ9XgYY5aA==";
+  };
+
+  aeronAgent_1_42_1 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.42.1";
+    artifactId = "aeron-agent";
+    hash = "sha512-3XZ6XvPwlNdiMe4p4MuDNTWntGokFPnetN7AUMlhXzIgeXBExXvn+BdxI2crfq/xgVGrF/hjHD2shwu2NBa0Tg==";
+  };
+
+  aeronArchive_1_42_1 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.42.1";
+    artifactId = "aeron-archive";
+    hash = "sha512-1DmeI9flgfzanbP4jSNUSAQAv2SGBvnlb3G4LbO1m+BN/gPn/nahvVHzotvGJjJA5b65DE1Sc5tqPnItRTK0zQ==";
+  };
+
+  aeronClient_1_42_1 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.42.1";
+    artifactId = "aeron-client";
+    hash = "sha512-td2k2WNpaD3+2PNvlCCJ8cZRr615sFjngiQDKzuY2e9/de1OUwvER3zzVAFOonEIV+s5EhwVeQvWq3Wj5Uhadg==";
+  };
+
+  aeronCluster_1_42_1 =fetchMavenArtifact {
+    inherit groupId;
+    version = "1.42.1";
+    artifactId = "aeron-cluster";
+    hash = "sha512-RiqGeY3pRqN6wWpeJqbeB1SCxrZWnQghrJlCGhew2M/GZAaWHkhhJs5haJqRvR5oOAbaI4RfIWvi5U7TiUo88g==";
+  };
+
+  aeronDriver_1_42_1 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.42.1";
+    artifactId = "aeron-driver";
+    hash = "sha512-fKEN5oQCxD1h3qPODKkqFwYbKW6L03RFHNylpsYaNlztNODlCJd0CS5dBR6K8rbOdb2dVIXK/dW/IPBvOi5q/g==";
+  };
+  aeronSamples_1_42_1 = fetchMavenArtifact {
+    inherit groupId;
+    version = "1.42.1";
+    artifactId = "aeron-samples";
+    hash = "sha512-4JnHn22vJf2lmOg6ev5PD+/YiaL3KgfuyWAK92djX3KBVXO7ERMY2kH79dveVCJG1rbekvE1j1pnjaAIxwJcqg==";
+  };
+
+  aeronAll = aeronAll_1_42_1;
+  aeronArchive = aeronArchive_1_42_1;
+  aeronClient = aeronClient_1_42_1;
+  aeronCluster = aeronCluster_1_42_1;
+  aeronDriver= aeronDriver_1_42_1;
+  aeronSamples = aeronSamples_1_42_1;
+
+in stdenv.mkDerivation {
+
+  inherit pname version;
+
+  buildInputs = [
+    aeronAll
+    aeronArchive
+    aeronClient
+    aeronCluster
+    aeronDriver
+    aeronSamples
+  ];
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir --parents "$out/share/java"
+    ln --symbolic "${aeronAll.jar}" "$out/share/java/${pname}-all.jar"
+    ln --symbolic "${aeronArchive.jar}" "$out/share/java/${pname}-archive.jar"
+    ln --symbolic "${aeronClient.jar}" "$out/share/java/${pname}-client.jar"
+    ln --symbolic "${aeronCluster.jar}" "$out/share/java/${pname}-cluster.jar"
+    ln --symbolic "${aeronDriver.jar}" "$out/share/java/${pname}-driver.jar"
+    ln --symbolic "${aeronSamples.jar}" "$out/share/java/${pname}-samples.jar"
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    function wrap {
+      makeWrapper "${jdk11}/bin/java" "$out/bin/$1" \
+        --add-flags "--add-opens java.base/sun.nio.ch=ALL-UNNAMED" \
+        --add-flags "--class-path ${aeronAll.jar}" \
+        --add-flags "$2"
+    }
+
+    wrap "${pname}-media-driver" io.aeron.driver.MediaDriver
+    wrap "${pname}-stat" io.aeron.samples.AeronStat
+    wrap "${pname}-archiving-media-driver" io.aeron.archive.ArchivingMediaDriver
+    wrap "${pname}-archive-tool" io.aeron.archive.ArchiveTool
+    wrap "${pname}-logging-agent" io.aeron.agent.DynamicLoggingAgent
+    wrap "${pname}-clustered-media-driver" io.aeron.cluster.ClusteredMediaDriver
+    wrap "${pname}-cluster-tool" io.aeron.cluster.ClusterTool
+  '';
+
+  passthru = {
+    jar = aeronAll.jar;
+  };
+
+  meta = with lib; {
+    description = "Low-latency messaging library";
+    homepage = "https://aeron.io/";
+    license = licenses.asl20;
+    mainProgram = "${pname}-media-driver";
+    maintainers = [ maintainers.vaci ];
+    sourceProvenance = [
+      sourceTypes.binaryBytecode
+    ];
+  };
+}