pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / servers / aeron / default.nix
blob2addc87feaa8ec3c352e50736f7e91e7841c98d2
2   lib,
3   stdenv,
4   fetchMavenArtifact,
5   jdk11,
6   makeWrapper
7 }:
9 let
10   pname = "aeron";
11   version = "1.44.1";
12   groupId = "io.aeron";
14   aeronAll_1_40_0 = fetchMavenArtifact {
15     inherit groupId;
16     version = "1.40.0";
17     artifactId = "aeron-all";
18     hash = "sha512-NyhYaQqOWcSBwzwpje6DMAp36CEgGSNXBSdaRrDyP+Fn2Z0nvh5o2czog6GKKtbjH9inYfyyF/21gehfgLF6qA==";
19   };
21   aeronSamples_1_40_0 = fetchMavenArtifact {
22     inherit groupId;
23     version = "1.40.0";
24     artifactId = "aeron-samples";
25     hash = "sha512-vyAq4mfLDDyaVk7wcIpPvPcxSt92Ek8mxfuuZwaX+0Wu9oJCpwbnjvS9+bvzcE4qSGxzY6eJIIX6nMdw0LkACg==";
26   };
28   aeronAll_1_42_1 = fetchMavenArtifact {
29     inherit groupId;
30     artifactId = "aeron-all";
31     version = "1.42.1";
32     hash = "sha512-pjX+JopK6onDwElMIroj+ZXrKwdPj5H2uPg08XgNlrK1rAkHo9MUT8weBGbuFVFDLeqOZrHj0bt1wJ9XgYY5aA==";
33   };
35   aeronSamples_1_42_1 = fetchMavenArtifact {
36     inherit groupId;
37     version = "1.42.1";
38     artifactId = "aeron-samples";
39     hash = "sha512-4JnHn22vJf2lmOg6ev5PD+/YiaL3KgfuyWAK92djX3KBVXO7ERMY2kH79dveVCJG1rbekvE1j1pnjaAIxwJcqg==";
40   };
42   aeronAll_1_43_0 = fetchMavenArtifact {
43     inherit groupId;
44     artifactId = "aeron-all";
45     version = "1.43.0";
46     hash = "sha512-ZKjUA1Kp++RLnCNUOi2K/iGc4zIIR4pC4j8qPfO+rcgp7ghZfgsXO8sB+JD307kzeikUXnPFX7ef28DlzI8s8Q==";
47   };
49   aeronSamples_1_43_0 = fetchMavenArtifact {
50     inherit groupId;
51     version = "1.43.0";
52     artifactId = "aeron-samples";
53     hash = "sha512-a/ti4Kd8WwzOzDGMgdYk0pxsu8vRA4kRD9cm4D3S+r6xc/rL8ECHVoogOMDeabDd1EYSIbx/sKE01BJOW7BVsg==";
54   };
56   aeronAll_1_44_1 = fetchMavenArtifact {
57     inherit groupId;
58     artifactId = "aeron-all";
59     version = "1.44.1";
60     hash = "sha256-O80bWp7F6mRh3me1znzpfFfFEpvvMVjL4PrAt7+3Fq0=";
61   };
63   aeronSamples_1_44_1 = fetchMavenArtifact {
64     inherit groupId;
65     version = "1.44.1";
66     artifactId = "aeron-samples";
67     hash = "sha256-ZSuTed45BRzr4JJuGeXghUgEifv/FpnCzTNJWa+nwjo=";
68   };
70   aeronAll = aeronAll_1_44_1;
71   aeronSamples = aeronSamples_1_44_1;
73 in stdenv.mkDerivation {
75   inherit pname version;
77   buildInputs = [
78     aeronAll
79     aeronSamples
80   ];
82   nativeBuildInputs = [
83     makeWrapper
84   ];
86   dontUnpack = true;
87   dontConfigure = true;
88   dontBuild = true;
90   installPhase = ''
91     runHook preInstall
93     mkdir --parents "$out/share/java"
94     ln --symbolic "${aeronAll.jar}" "$out/share/java/${pname}-all.jar"
95     ln --symbolic "${aeronSamples.jar}" "$out/share/java/${pname}-samples.jar"
97     runHook postInstall
98   '';
100   postFixup = ''
101     function wrap {
102       makeWrapper "${jdk11}/bin/java" "$out/bin/$1" \
103         --add-flags "--add-opens java.base/sun.nio.ch=ALL-UNNAMED" \
104         --add-flags "--class-path ${aeronAll.jar}" \
105         --add-flags "$2"
106     }
108     wrap "${pname}-media-driver" io.aeron.driver.MediaDriver
109     wrap "${pname}-stat" io.aeron.samples.AeronStat
110     wrap "${pname}-archiving-media-driver" io.aeron.archive.ArchivingMediaDriver
111     wrap "${pname}-archive-tool" io.aeron.archive.ArchiveTool
112     wrap "${pname}-logging-agent" io.aeron.agent.DynamicLoggingAgent
113     wrap "${pname}-clustered-media-driver" io.aeron.cluster.ClusteredMediaDriver
114     wrap "${pname}-cluster-tool" io.aeron.cluster.ClusterTool
115   '';
117   passthru = {
118     jar = aeronAll.jar;
119   };
121   meta = with lib; {
122     description = "Low-latency messaging library";
123     homepage = "https://aeron.io/";
124     license = licenses.asl20;
125     mainProgram = "${pname}-media-driver";
126     maintainers = [ maintainers.vaci ];
127     sourceProvenance = [
128       sourceTypes.binaryBytecode
129     ];
130   };