nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchMavenArtifact,
5 jdk11,
6 makeWrapper,
7}:
8
9let
10 pname = "aeron";
11 version = "1.44.1";
12 groupId = "io.aeron";
13
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 };
20
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 };
27
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 };
34
35 aeronSamples_1_42_1 = fetchMavenArtifact {
36 inherit groupId;
37 version = "1.42.1";
38 artifactId = "aeron-samples";
39 hash = "sha512-4JnHn22vJf2lmOg6ev5PD+/YiaL3KgfuyWAK92djX3KBVXO7ERMY2kH79dveVCJG1rbekvE1j1pnjaAIxwJcqg==";
40 };
41
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 };
48
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 };
55
56 aeronAll_1_44_1 = fetchMavenArtifact {
57 inherit groupId;
58 artifactId = "aeron-all";
59 version = "1.44.1";
60 hash = "sha256-O80bWp7F6mRh3me1znzpfFfFEpvvMVjL4PrAt7+3Fq0=";
61 };
62
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 };
69
70 aeronAll = aeronAll_1_44_1;
71 aeronSamples = aeronSamples_1_44_1;
72
73in
74stdenv.mkDerivation {
75
76 inherit pname version;
77
78 buildInputs = [
79 aeronAll
80 aeronSamples
81 ];
82
83 nativeBuildInputs = [
84 makeWrapper
85 ];
86
87 dontUnpack = true;
88 dontConfigure = true;
89 dontBuild = true;
90
91 installPhase = ''
92 runHook preInstall
93
94 mkdir --parents "$out/share/java"
95 ln --symbolic "${aeronAll.jar}" "$out/share/java/${pname}-all.jar"
96 ln --symbolic "${aeronSamples.jar}" "$out/share/java/${pname}-samples.jar"
97
98 runHook postInstall
99 '';
100
101 postFixup = ''
102 function wrap {
103 makeWrapper "${jdk11}/bin/java" "$out/bin/$1" \
104 --add-flags "--add-opens java.base/sun.nio.ch=ALL-UNNAMED" \
105 --add-flags "--class-path ${aeronAll.jar}" \
106 --add-flags "$2"
107 }
108
109 wrap "${pname}-media-driver" io.aeron.driver.MediaDriver
110 wrap "${pname}-stat" io.aeron.samples.AeronStat
111 wrap "${pname}-archiving-media-driver" io.aeron.archive.ArchivingMediaDriver
112 wrap "${pname}-archive-tool" io.aeron.archive.ArchiveTool
113 wrap "${pname}-logging-agent" io.aeron.agent.DynamicLoggingAgent
114 wrap "${pname}-clustered-media-driver" io.aeron.cluster.ClusteredMediaDriver
115 wrap "${pname}-cluster-tool" io.aeron.cluster.ClusterTool
116 '';
117
118 passthru = {
119 jar = aeronAll.jar;
120 };
121
122 meta = with lib; {
123 description = "Low-latency messaging library";
124 homepage = "https://aeron.io/";
125 license = licenses.asl20;
126 mainProgram = "${pname}-media-driver";
127 maintainers = [ maintainers.vaci ];
128 sourceProvenance = [
129 sourceTypes.binaryBytecode
130 ];
131 };
132}